あるフォントの一覧を作成して,表示を確認する

TeX を使って,あるフォントに含まれる文字の一覧を作成して,コードポイントと記号の対応表を出力することができます. フォントの見た目を確認したい場合や,記号の番号を知りたい場合に役立ちます.



testfont のタイプセット

たとえば pifont の一覧を作成したくなったら,任意のディレクトリで*1

tex testfont

とコマンドを打ち,その後,ヘルプを参考にしながら

pzdr
\table
\end

と打てば,表が出力されます. pzdr というのは pifont の TFM 名です.

PDF 形式に変換した表を filetestfont.pdf に置いておきます(『美文書作成入門』第 2 版 pp. 232--233,第 3 版以降の付録にあるものと同じです).

これを簡単にするには,たとえば名前が tab.tex で,内容が

\input testfont \table \end

なる一行のファイルを TEXINPUTS で探せるディレクトリに置いておきます.そうして

echo pzdr | tex tab

とすれば一発で tab.dvi ができます.

なお,ファイル testfont.tex については『The METAFONTbook』(D.E. Knuth 著)の Appendix H の第 4 節(“フォントサンプル”の節) に説明があります.

他の方法

testfont のインタラクティブな入力を手間だと感じる場合は

があります. testfont や fntproof では TFM 名を調べる必要がありますが,fonttable.sty なら

\xfonttable{U}{pzd}{m}{n}

のような「エンコーディング,ファミリー,シリーズ,シェイプ」という指定ができます*2. ファミリー名のほうがもう少しアクセスしやすいと思われます(美文書にもファミリー名を掲載).

実際に埋め込まれるフォントに関する注意

PDF ではフォントが埋め込まれていないと代替フォントが充てられます. 例えば上の例で挙げた Zapf Dingbats フォントの場合は,埋め込まれていなければ Adobe Acrobat Reader DC では代替フォントとして AdobePiStd が充てられます.

欧文 14 書体(Times, Helvetica, Courier 各 4 書体に記号用フォントの Symbol と Zapf Dingbats を加えたもの)の扱いは,デフォルトでは以下のようになっています.

Adobe のフォントは商品ですので,埋め込むためには購入する必要があります. そこで,多くの方は欧文基本 14 書体を埋め込むために URW のフォントを利用しています. W32TeX の dvipdfmx で URW のフォントを埋め込むのに使う map は dlbase14.map です.

一覧表の利用例

Bad Know-How

上の例では pzdr というフォント名が何気なく出ているが,実際はどう調べるのか?

pzdr のような TFM 名を知るのは少々難しいので,これを知るためのトリックの説明です. ただし,上述のとおり fonttable.sty を使えば,TFM を知る必要がなくなります. それでも,この項(コメントアウト部分も含む)は,フォントの扱いに対する理解を深める助けとなるはずです. TeX とフォントにも簡単な説明があります.

// このページの中では,コメントアウトの形でもいろいろな情報が提供されています.
// 興味のある方は [[差分]] をクリックして,読むとためになるでしょう.

(例)

$ tex testfont
This is TeX, Version 3.141592 (Web2C 7.5.2)
encTeX v. Feb. 2003, the reencoding enabled. initialized from format, the reencoding enabled.
(c:/usr/local/share/texmf/tex/plain/base/testfont.tex

Name of the font to test = pzd
kpathsea: Running mktextfm pzd
Cannot find pzd.mf.
kpathsea: Appending font creation commands to missfont.log.
! Font \testfont=pzd not loadable: Metric (TFM) file not found.
(以下略)

*1 ちなみに,TeX 関係のコマンドは,ソースを TEXINPUTS 変数に記述してあるディレクトリから見つけ出してきて,コンパイルします.出力結果はデフォルトではカレントディレクトリに置かれます.TEXINPUTS 変数はプログラム名によって異なり,platex 用ならば TEXINPUTS.platex というような形で texmf.cnf に記述されています.
*2 testfont.tex を改変した nfssfont.tex というものもあり,こちらを使うと,インタラティブかつ「エンコーディング,ファミリー,シリーズ,シェイプ,サイズ」という指定ができます.nfssfont.tex は tex ではなく,latex で処理します.なお fonttable.sty は,nfssfont.tex を LaTeX パッケージの仕様にしたものです.
*3 そもそも " を *TeX-mode 中で打つには,C-q " としなければなりませんが.

Last-modified: 2017-08-17 (木) 15:37:24 (826d)