TBD

Computer Modern (AMSFonts) のファイル名と中身の対応表

$\LaTeX で使われている Computer Modern (AMSFonts) のファイル名を見ても中身が分からない。開いて確かめた結果を記録する。

1 Introduction

動機: \tt (Computer Modern 等幅) の太字や斜体はあるのだろうか?

aghtex は数式モードでは $\LaTeX の既定のフォントである Computer Modern を主に使っている。特に TeX 環境に付属している AMSFonts (SIL Open Font License) [1] に含まれているものを Type 1 から Web fonts の形式に変換している。一方で、段落モードでは Computer Modern は使わずに OS のフォントを使う様にしている。

しかしやはり、段落モードでも特に \tt については Computer Modern を使いたい気がする。しかし問題は Web fonts だと (Firefox でしか) font-synthesis が有効にならないこと *1。つまり、font-weight や font-style を指定しても太字や斜体にならない。これに対応する為には太字版や斜体版の Web fonts を一つ一つ用意しなければならない。そもそも Computer Modern (AMSFonts) に \tt の太字版や斜体版はあるのだろうか。

Computer Modern (AMSFonts) のファイル名は謎

Computer Modern を確認する。 Computer Modern (AMSFonts) の実体は /usr/share/texmf/fonts/type1/public/amsfonts/cm 的な場所にある。ファイル名は

cm(略号)(数字).pfb

の形式をしている。(数字)の部分はそのフォントのポイント数、つまり、どのポイント数で印刷されることを想定しているかである (Computer Modern では印刷する時の大きさに合わせて文字のバランスを微妙に変えている)。 一方で (略号) はそれぞれ何を意味しているのかすぐには分からない。 検索しても説明は見つからない。開いてみないと分からない。 結局 \tt の太字版があるかどうか全て開いて確認する羽目になった。 二度と全部開いて確かめるということはしたくないのでここにまとめておく。

因みに cmextrcm-super もファイル名だけ眺めてみたが、どれも cm にあったのと同じの気がしたので中は確認しなかった。

$\LaTeX のフォントの分類

$\LaTeX の段落モードのフォントは family と series と shape の組み合わせで指定する。

  • family には既定で \rmfamily (セリフ rm = roman), \sffamily (サンセリフ sf = sans-serif), \ttfamily (等幅 tt = typewriter text) がある。
  • series には \bfseries (太字 bf = boldface), \mdseries (普通 medium) がある。
  • shape には \upshape (直立体 up = upright), \slshape (斜体 sl = slanted), \itshape (イタリック it = italic), \scshape (small-caps) がある。

論理上は 3 x 2 x 4 = 24 の組み合わせがあることになるが、実際には全てに異なる字体が用意されている訳ではない。 何れにしても、この 3 x 2 x 4 に従って Computer Modern のファイルたちを並べてみたい。

ところで、書いていて「そういえば tt って何で tt なんだろう」と思ったけど、たぶん teletype のことの気がする。と思っていたら typewriter text っぽい。

2 対応表

どうも文章を書くと無駄な事を書き始めて良くない。完全に蛇足である。動機とか背景とか重要性とかを説明したくなる。というかですね、そもそも見た目が論文みたいである。今気づいたけれど、引用を [番号] にして下部にリスト表記したくなるのもそれだ。

2.1 rm 系のフォント

通常 太字
直立 cmr, cmex cmb, cmbx
斜体 cmsl cmxsl
イタリック cmmi, cmti cmmib, cmxti
Small-caps cmcsc N/A
  • イタリックで cmmi は数式用で cmti がテキスト用であろう。数式用の方が微妙に幅に余裕を持って設計されている。また数式用ではアルファベットのにがイタリックであるが、テキスト様では数字や記号も含めてイタリックになっている。
  • 他に cmdunh という縦長の字形の入ったフォントファイルがあった。
  • また、cmu は字形はイタリックだが直立したものである。

2.2 tt 系のフォント

tt 系のフォントには太字は用意されていない様子である。

通常 太字
直立 cmtt, cmtex N/A
斜体 cmsltt N/A
イタリック cmitt N/A
Small-caps cmtcsc N/A

他に cmvtt というファイルがあって開いてみると横長の tt に見える。v という名前から推測するに縦書き用だろうか?

2.3 sf 系のフォント

sf 系のフォントは余り用意されていない。

通常 太字 極太
直立 cmss cmssdc cmssbx
斜体 cmssi N/A N/A
イタリック N/A N/A N/A
Small-caps N/A N/A N/A

他に cmssq 及び cmssqi というのがあって、これらはそれぞれ cmss 及び cmssi の丸ゴシック的変種に見える。

2.4 cmf?

cmf? という系列があった。微妙に手書きっぽいが serif っぽくもある変な字体である。

通常 太字
直立 cmff cmfib
斜体 cmfi N/A

2.5 mathcal

cmsy 及び cmbsy (太字) は mathcal 及びその太字である。

通常 太字
直立 cmsy cmbsy

3 最後に

結論: \tt の太字はない。斜体やイタリックはある。

フォントファイルを開いて中を確認しただけでそれっぽい記事が出来上がって自分でも驚いている。 研究もこんな感じに文章を書くだけでできたらいいんだけれど。研究はファイルを開くのとは違って簡単じゃない。

余談: Variable フォント

この記事のために調べていたら variable フォントというものがあるらしい。凄い。style や weight 毎に何個ものフォントファイルがあるのは不毛だと思っていたが、parametrized されたフォントの仕様があるのだ。macOSWindowsfreetype も既に対応しているらしい?

余談: Computer Modern Unicode

以下のページから Computer Modern の Typewriter Text の Bold や Bold Italic がダウンロードできる。 しかしライセンス的にどうだろう。"Free for commercial use" と書いてあるけれど本当だろうか。このサイト自体が怪しい。

追記: 以上でダウンロードできるのは cm-unicode (Computer Modern Unicode; CMU) というプロジェクト [6] のファイルの様だ。 正式リリース 0.6.3 のライセンスは X11 License で、開発版 0.7.0 (2009年を最後に止まっている) のライセンスは SIL Open Font License (OFL) だそうだ。 開発版は SourceForge のサイト [7] からダウンロードできる。

*1:最近確かめていないので、もしかすると最近は他のブラウザもできるようになっているかもしれない。