:「出力したとき、半角で打ったアルファベットと全角で打ったアルファベットの違いはなにか教えてください。」|
[TODO] ちょっと項目名がわかりにくいので,[[TeXとフォント]]に一部統一したり,別の項目名でまとめなおしたりしてはどうでしょうか…2006 年頃からほとんど内容が変わっていないので,あまり参照されていない?
// リンク切れになっていたところはインターネットカイブに再リンクしておきました。

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

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

:「LaTeXにおける、和文フォントの半角英数字部分の利用」|
:「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を作成することを考えました。
プロポーショナルな和文 TrueType フォントのいわゆる半角英数字のグリフデザインは,そのフォントの和文字(いわゆる全角文字)とマッチするようにデザインされています。
この英数字を TeX で利用して,[[dvipdfmx]] で TrueType フォントを埋め込んだ PDF を作成することを考えました。

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

用意したtfmさえあればTeXでの組版はできて、dviが生成できます。
用意した tfm さえあれば TeX での組版はできて,dvi が生成できます。
dvi ファイルを dviout で見たければ,TrueType フォントとの対応を指定すればよいでしょう。

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

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

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

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

*** 使用例(Windowsで「MS P明朝」のtfmを生成する場合) [#w4bae0c6]
** ttf2tfm を用いる [#zafd77ab]

Windows で「MS P明朝」の tfm を生成する場合の使用例を示します。

 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”を接尾しました。

「MS P明朝」は「MS 明朝」などと一緒に TrueType フォントコレクションとして msmincho.TTC に収められていて,そのうちの2番目のフォントです。
フォントインデックスは0から数えるのでこの場合は “-f 1” と指定します。
“> mspminA.log” としておけばログをファイルに落とせます。

tfm のファイル名については何でもよいのですが,「MS P明朝」の和文部分を利用すべく dviout と一緒に配布されているファイル群では「MS P明朝」の和文部分に対して “mspmin” を割り当てているので,それと関連しつつ区別できる名前がよいでしょう。
ここではアルファベット部分というニュアンスで“A”を接尾しました。

** propw を用いる [#kf431fbf]

可能でしょうか?
[TODO] 可能でしょうか?

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

FontForge(要 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ナントカにする方がよいのでは.
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を修正します.
//* dvioutで見るための設定 [#k4529128]


* dvipdfmx で PDF にするための設定 [#p71b3596]

** vf の準備 [#z76fe41b]

** vf なしで 7bit ASCII 文字がとりあえず出力できればよい場合 [#x6807683]

FontForge で生成したファイルを適切なディレクトリにコピーし,kanjix.map を修正します.
 foo foo :0:foo

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


* その他 [#ased53ks]

最良の方法かどうかはわかりませんが、[[TeX Q&Aのやり取り:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/37936.html]]や[[ここ:http://www.klavis.info/fontnew2.html#ettf]]の解説のような、Unicode.sfd, ttf2tfmなどを用いた方法があります。半角英数字のみのフォントでも大丈夫そうです。
最良の方法かどうかはわかりませんが, 以下の解説のように Unicode.sfd, ttf2tfm などを用いた方法があります。
半角英数字のみのフォントでも大丈夫そうです。
-日本語ttfの半角部分の一利用法 [[qa:37936]]
-[[LaTeX で多書体 --- 任意のフォントを扱う方法 (WebArchive):http://web.archive.org/web/20090517112243/http://www.klavis.info/fontnew2.html]]

半角英数字のみのフォントの追加方法としての紹介でしたが、[[『解決!! LATEX2e』:http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-1168-1]]には、T1-WGL4.enc, ttf2afm, afm2tfmを用いた方法があります。試していませんが、この方法も本項目の目的を満たすことができるものかもしれません。
半角英数字のみのフォントの追加方法としての紹介でしたが,[[『解決!! LATEX2e』:http://www.shuwasystem.co.jp/products/7980html/1168.html]]には,T1-WGL4.enc, ttf2afm, afm2tfm を用いた方法があります。
試していませんが,この方法も本項目の目的を満たすことができるものかもしれません。