:「出力したとき、半角で打ったアルファベットと全角で打ったアルファベットの違いはなにか教えてください。」|
[[qa:19353]], [[qa:19392]], [[qa:19407]], [[qa:19409]], [[qa:19425]], [[qa:19429]]

:「日本語用と同じフォント」|
[[qa:30300]], [[qa:30306]], [[qa:30312]], [[qa:30324]]

:「LaTeXにおける、和文フォントの半角英数字部分の利用」|
[[qa:11509]], [[qa:11511]], [[qa:11519]], [[qa:11520]], [[qa:11524]], [[qa:11551]]

:「TTF2TFM の 0 による除算エラー」|
[[qa:11643]], [[qa:11644]], [[qa:11651]], [[qa:11668]], [[qa:11670]], [[qa:11791]], [[qa:11803]]

:「文字コードをずらす命令」|
[[qa:37494]], [[qa:37495]], [[qa:37496]], [[qa:37499]], [[qa:37501]], [[qa:37504]]

* 概要 [#e1fcdcdc]

プロポーショナルな和文TrueTypeフォントのいわゆる半角英数字のグリフデザインは、
そのフォントの和文字(いわゆる全角文字)とマッチするようにデザインされています。
この英数字をTeXで利用して、dvipdfmxでTrueTypeフォントを埋め込んだPDFを作成することを考えました。

pTeX内部では半角文字と全角文字は別々に扱われるので、元になる一つのTrueTypeフォントから半角文字部分用のtfmを生成して利用します。全角文字部分はあまりプロポーショナルな要素がないので、min10.tfm や jis.tfm を流用可能です。全角文字部分についてもきちっとやるなら、dvioutとともに配布されている propw を利用します。

用意したtfmさえあればTeXでの組版はできて、dviが生成できます。

dviをdvioutで見たければ、TrueTypeフォントとの対応を指定すればよいでしょう。

このあとdvipdfmxを用いてpdfを作成するためには... どうすればよいのでしょう??
(和文の場合なら DVIPDFM-W32.txt に情報があります)

* 半角文字部分用のtfmを生成する [#p0b70bc3]

** ttf2tfm を用いる。 [#zafd77ab]

*** 使用例(Windowsで「MS P明朝」のtfmを生成する場合) [#w4bae0c6]
 ttf2tfm c:\windows\fonts\msmincho.TTC -f 1 mspminA.tfm > mspminA.log
「MS P明朝」は「MS 明朝」などと一緒にTrueTypeフォントコレクションとしてmsmincho.TTCに収められていて、そのうちの2番目のフォントです。フォントインデックスは0から数えるのでこの場合は“-f 1”と指定します。 “> mspminA.log”としておけばログをファイルに落とせます。
tfmのファイル名については何でもよいのですが、「MS P明朝」の和文部分を利用すべくdvioutと一緒に配布されているファイル群では「MS P明朝」の和文部分に対して“mspmin”を割り当てているので、それと関連しつつ区別できる名前がよいでしょう。ここではアルファベット部分というニュアンスで“A”を接尾しました。

** propw を用いる [#kf431fbf]

可能でしょうか?

** FontForgeを用いる [#a00eaef3]
FonForge (要 X Window System)でTTF (foo.ttf)を読み込んで,PC Type 1フォントをgenerateします.このとき,Optionのボタンを押して,TFM/encをチェックし,TFMとencファイルを生成します(foo.tfm, foo.enc).

* TeX/LaTeXで組版する [#g1c66684]
** \fontで直接指定 [#c1cdfd8e]

** nfss(LaTeX流のフォント選択機構)での利用 [#mc6afe21]
 \DeclareFontFamily{OT1}{mspmin}{}
 \DeclareFontShape{OT1}{mspmin}{m}{n}{%
     <10> mspminA
 }{}
などとしておいて、
 \fontfamily{mspmin}\selectfont
で使える。(エンコーディングはOT1でいいのかしら?)

The CMR encodingとは違うから,UnknownでUにするか,ローカルなものでLナントカにする方がよいのでは.
 DeclareFontFamily{U}{mspmin}{}
 \DeclareFontShape{U}{mspmin}{m}{n}{%
   <-> s * mspminA
 }{}
で
 \fontencoding{U}\selectfont
 \fontfamily{mspmin}\selectfont
とか.

(dviout に付属の winttf の機構に乗せられないかしら?)

* dvioutで見るための設定 [#k4529128]

* dvipdfmxでpdfにするための設定 [#p71b3596]
** vfの準備 [#z76fe41b]
** vfなしで7bit ASCII文字がとりあえず出力できればよい場合 [#x6807683]
FontForgeで生成したファイルを適切なディレクトリにコピーし,cid-x.mapを修正します.
 foo foo :0:foo

-最初のfooは,foo.tfmです.
-2つめのfooは,foo.encです.
-3つめのfooは,foo.ttfです.