マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

例の(マルベリでない)フォントの話 (2)

前回の続き)

この字形定義らしきものが何もない「ソース」だけだと何のことか解らないと思うので、もう少し詳しく説明しておく。

「コンクリートなフォントとか」で述べた通り、Computer Modern は METAFONT を用いた文字通り「メタなフォント」として設計されている。すなわち、Roman、Sans Serif、Typewriter の各々のウェイトやバリアント違いの書体が、全て「一つの字形定義のセット」のパラメタ(線の太さ、セリフの有無、アセンダ・ディセンダの大きさ、等)の値の違いとして実現されている。*1従って、適切なパラメタの値のセットを用意すれば、それだけで(つまり、「メタデザイン」は Knuth によるものをそのまま用いて)、特定の和文フォントのウェイトに合った「丸ゴシック」の形状の欧文フォントを作り出すことができるのである。*2前回示したものがソースであるというのはそういう意味なのである。

前回説明したように、METAFONT のソース(*.mf)で与えられたフォントは、DVI ウェア側で何の設定も行わなくとも、そのソースファイルさえ「見える」場所にあれば、TeX 処理系や DVI ウェアで使える状態になる。これは METAFONT のソースがそれだけで TFM と PK ファイルを生成するのに必要な情報をもっているからである。

大昔は、TeX で用いられるフォントというのは METAFONT で与えられるものに限られていた。しかし、現在では TeX 文書を作成する場合の最終目標物が「印刷された紙」ではなく「PDF 文書」に変わっていることが多く、その場合に埋め込んだフォントがビットマップ形式であるのは甚だ都合が悪い。それゆえ、現在では元々 METAFONT ソースで与えられていたフォントも Type1 形式のアウトラインフォントに変換して用いることが多い。例えば、Knuth の CM フォントおよび AMS-LaTeX(つまり amsmath と amssymb パッケージ)で用いられる AMS フォントは現代的な TeX システムでは Type1 形式のものが用いられる。

というわけで、この「Attritta」フォントについても、Type1 形式に変換したものを LaTeX サポートと一緒にパッケージにして(ひっそりと)公開しておく。

一旦 Type1 形式に変換してしまえば、元が METAFONT だったということは全く関係がなくなるので、インストールの手順は普通に「Type1 フォント + TFM」で与えられたものについて updmap を利用して設定するということになる。

(それじゃ解らんという人はこちら


ちなみに、Knuth が用意した CM フォントの中には、「丸ゴシック(round sans-serif)」のフォントはないのかというと、実は存在する。「The TeXbook」の章末の引用句の出力で用いられている、「Computer Modern Sans Serif Quotation Style」というファミリで、TFM 名は直立体が cmssq8、斜体が cmssqi8 である。*3

よく見ると、このフォントは和文フォントの従属欧文に特徴的な、「ディセンダが小さい」という性質ももっている。attritta-r-ot1 のパラメタ値を決めるにあたって、このフォントでの値を参考にした。(他に cmr10、cmss10、cmssbx10 を参考にしている。)

*1:ただし「一つのセット」には例外もあって、例えば、イタリックの英小文字や数字は直立体のそれとは別の定義を用意している。

*2:さらに言うと、Computer Modern のソースでは、メインのソース(cmr10.mf 等)は「パラメタの値を設定して共通の下請けのコード(別のソースファイル)に処理を渡す」という構造になっているので、新しいフォントを作るときはこのメイン(パラメタの値のファイル)だけを用意すればよい。

*3:TeXbook での使用を用途としているので、デザインサイズが 8pt のもののみが存在する。このような特殊性があるためか、標準の LaTeX の NFSS ではこのファミリのサポートが除外されている。