USB メモリ活用講座
【実践編・TeX 欧文フォントパッケージ追加】

< 最終更新日: 2020-03-17 >

欧文フォントを扱うための基礎事項

欧文フォントの小文字の字形 (glyph) には,背の低い e や x に対し,背の高い f や h があったり,下へ突き出す g や y があるなど,和文フォントにはない特徴があります. 大文字でも幅の狭い I に対し,幅の広い M や W があります. 書体デザイナーは読みやすさ (可読性) や見た目のバランス,単語として組んだときの美しさなど,さまざまな観点から工夫を凝らし,数多くの書体がリリースされています. 欧文フォントのデザイン的な要素については,和文フォント大図鑑>欧文書体の基礎知識で図解付きで詳細に解説されているので,一度目を通しておくとよいでしょう. できれば,ベースライン (base line),エックスハイト (x-height),ディセンダ (descender),ウェイト (weight),セリフ (serif),サンセリフ (sans serif),イタリック (italic) くらいの用語は頭に入れておくとよいでしょう.

LaTeX (LaTeX2e) では,部分的に書体を変更して出力するために表1 の左の列のようなコマンドが利用できます (XXXX の部分に書体を変更して出力したい文字列を指定します). デフォルトの LaTeX 文書では Computer Modern フォント (CM フォント) の各書体が出力されますが,NFSS2 と呼ばれる欧文フォントを管理する仕組みに従って細かく指定できる \usefont コマンドを使うと,表1 の右の列のようになります※1. また,フォントサイズ (大きさ) は \tiny\scriptsize\footnotesieze\small\large\Large\LARGE\huge\Huge などの,基準となるフォントサイズ (\normalsize) に対する相対的なサイズ変更命令で指定することが一般的です※2

表1・LaTeX の代表的な書体指定コマンド
書体指定コマンド 出力される書体 デフォルトに等価な NFSS2 フォント指定
\textrm{XXXX} ローマン体 (セリフ体) {\usefont{OT1}{cmr}{m}{n}XXXX}
\textbf{XXXX} ローマン体の太字 {\usefont{OT1}{cmr}{bx}{n}XXXX}
\textit{XXXX} イタリックのローマン体 {\usefont{OT1}{cmr}{m}{it}XXXX}
\textsf{XXXX} サンセリフ体 {\usefont{OT1}{cmss}{m}{n}XXXX}
\texttt{XXXX} タイプライタ体 (等幅) {\usefont{OT1}{cmtt}{m}{n}XXXX}

表1 の書体指定コマンドで出力されるフォントを,丸ごと他のフォントファミリに置き換えてしまうのが,これから紹介するフォントパッケージの機能となります.

標準的に利用できる欧文フォントパッケージ

W32TeX ポータブル化に含まれていて,すぐに利用することができるフォント (パッケージ) を紹介します. フォント名を CTAN の The LaTeX Font Catalogue のフォント見本にリンクしておきます.

Computer Modern フォント (CM フォント)
TeX を開発した Donald E. Knuth 先生が,TeX と一緒に開発したフォント生成システム METAFONT を使って自らデザインしたローマン体の Computer Modern Roman,サンセリフ体の Computer Modern Sans Serif,タイプライタ体の Computer Modern Typewriter などからなるフォントパッケージです.
LaTeX や pLaTeX 標準のドキュメントクラス (article や jarticle など),pLaTeX2e 新ドキュメントクラス (jsarticle など) のデフォルトで使用されるフォントで,AMS パッケージの高度な数式や記号も含め,統一感のある出力が得られます. \tiny\scriptsize により出力される小さな文字と,\large\huge により出力される大きな文字とで,文字の幅や線の太さを微調整する視覚的補正が加えられていることも特長の一つです.
もともとは出力装置 (ディスプレイやプリンタ) の解像度に合わせたビットマップフォント (PK フォントなど) を必要に応じて生成していましたが,W32TeX には PostScript Type1 形式のアウトラインフォントが含まれています.dvipdfmx で PDF 出力する際には,Type1 形式のアウトラインフォントが埋め込まれるので,大判プリンタなどで拡大印刷しても美しい出力が保たれます. dviout for Windows では BaKoMa TrueType フォントを利用することで,拡大印刷に耐える出力が可能です.
OT1 エンコーディング※1 で格納されているため,ä や é などの文字が,アクセント記号とアルファベットの 2 つのグリフの合成 (重ねうち) で出力されます. このため,ハイフン処理やカーニングがうまく働かないほか,PDF からテキストをコピー&ペーストしたり,読み上げソフトで処理したりする場合に正しい情報が取り出せないという制約があります.
Latin Modern フォント (LM フォント)
CM フォントとほぼ同じグリフを持つ T1 エンコーディング※1 のフォントで,ローマン体の Latin Modern Roman,サンセリフ体の Latin Modern Sans Serif,タイプライタ体の Latin Modern Typewriter などが含まれ,PostScript Type1 形式と OpenType 形式で配布されています. ä や é などが 1 文字のグリフとして格納され,ハイフネーションやカーニングの問題は発生しないうえ,€ のように TeX の開発時には存在しなかったグリフが追加されています. さらに CM フォントには含まれていないタイプライタ体の太字などの充実がはかられています.
dvipdfmx で PDF 出力する際にはアウトラインフォント (PostScript Type1 形式) が埋め込まれるので,大判プリンタなどで拡大印刷しても美しい出力が保たれます. 最終的な出力を PDF にするならば,今後は LM フォントを使うことを推奨します※3
LM フォントを使うには,プリアンブルで次のように指定します.
\usepackage{lmodern}
PSNFSS フォントパッケージ
PostScript Level1 対応プリンタでは,セリフ体の Times,サンセリフ体の Helvetica,タイプライタ体の Courier New の 3 ファミリそれぞれのローマン体,イタリック体,ボールド体,ボールドイタリック体 (3×4=12 書体) に,記号用の Symbol および Zapf Dingbats を加えた基本 14 書体 (Base 14 fonts) を内蔵することになっています. 基本 14 書体は Adobe が無償で配布している Acrobat Reader にも内蔵されているため,フォントを埋め込まないようにすることで,サイズの小さい PDF を生成することが可能です※3
さらに PostScript Level2 対応プリンタでは,基本 14 書体に加え,セリフ体として Palatino,Bookman,New Century Schoolbook,サンセリフ体として Helvetica Narrow,Avant Garde の合計 5 ファミリそれぞれのローマン体,イタリック体,ボールド体,ボールドイタリック体 (5×4=20 書体) と,筆記体の Zapf Chancery を加えた基本 35 書体 (Base 35 fonts) を内蔵することになっています.
これらの PostScript 基本書体に相当する互換フォントを TeX 文書で利用するためのパッケージ群が PSNFSS です※4
TeX 文書のプリアンブルで次のように指定すると,本文のセリフ体が Times 系,サンセリフ体が Helvetica 系,タイプライタ体が Courier New 系となり,数式数が Times 系と Symbol 系となります (一部の文字や記号には Computer Modern フォントが使われます).
\usepackage[T1]{fontenc}
\usepackage{mathptmx}  % 本文(セリフ体),数式の変数を Times 系に
\usepackage[scaled]{helvet}  % サンセリフ体を大きさ95%に調整した Helvetica 系に
\usepackage{courier}%  タイプライタ体を Courier New 系に
上の 2 行目の mathptmx を mathpazo にするとセリフ体と数式の一部が Palatino 系となります. mathptmx は一部の記号 (\jmath\coprod\amalg など) が出力できないなど,mathpazo に比べて完成度が低いそうです.
\tiny\scriptsize,…,\large\huge などでフォントサイズを変更した場合は,単純に文字が拡大・縮小されます (視覚的補正は行われません).
TX Fonts (txfontsb) / PX Fonts パッケージ
TX Fonts パッケージは,本文のセリフ体が Times 系,サンセリフ体が Helvetica 系,タイプライタ体は独自デザインの TXTT となり,数式が Times 系と独自デザインの記号により Computer Modern フォントに頼らず組版できるように開発されました※4. W32TeX ではさらにスモールキャップス体 (\textsc{ }) やスモールキャップスの斜体 (\textscsl{ }) を専用デザインにするなどの拡張を加えた txfontsb パッケージが利用できます (W32TeX のアップデート参照).
dvipdfmx で PDF 出力する際に Times 系と Helvetica 系のフォントを埋め込まずに,サイズの小さな PDF にすることが可能です※3. txfontsb パッケージを利用するには,TeX 文書のプリアンブルで次のように指定します (txfontsb を txfonts とすればオリジナルの TX Fonts パッケージが読み込まれます).
\usepackage{txfontsb}
PX Fonts パッケージでは,上の txfontsb を pxfonts に書き換えることでセリフ体と数式の一部が Palatino 系となります.
TX Fonts も PX Fonts も \tiny\scriptsize,…,\large\huge などでフォントサイズを変更した場合は,単純に文字が拡大・縮小されます (視覚的補正は行われません).
fourier-GUTenberg (Adobe Utopia)
Adobe Utopia 書体のローマン体 (Utpoia Regular),イタリック体 (Utopia Italic),ボールド体 (Utopia Bold),ボールドイタリック体 (Utopia Bold Italic) を本文と数式に利用できるパッケージで,オーナメントと呼ばれる絵文字が充実しています. 高度な数式のための amsmath パッケージと互換性があります (amsmath を読み込む必要はありません). 数式記号のための amssymb パッケージを読み込む場合は,amssymb パッケージを先に読み込みます (読み込まなくても一部の記号が利用できます).
サンセリフ体とタイプライタ体は変更されないので,単純に fourier パッケージだけ読み込むと T1 エンコーディングの Computer Modern フォント (EC フォント) のサンセリフ体とタイプライタ体が使用されます. これらは dvipdfmx で PDF 出力をする際にビットマップフォントとして埋め込まれるので,大判プリンタで拡大印刷するような用途には向きません. そこで,TeX 文書のプリアンブルで次のように指定して,Latin Modern フォントを使うことを推奨します.
\usepackage{amssymb}%  必要なら先に読み込む
\usepackage{fourier}
\renewcommand{\sfdefault}{lmss}%  サンセリフ体を Latin Modern Sans serif に
\renewcommand{\ttdefault}{lmtt}%  タイプライタ体を Latin Modern Typewriter に
PSNFSS フォントパッケージ に含まれる Helvetica 系をサンセリフ体に,Courier New 系をタイプライタ体にするには,プリアンブルを次のようにするとよいそうです (couriers パッケージを使うにはインストール作業が必要です)※4
\usepackage{amssymb}%  必要なら先に読み込む
\usepackage{fourier}
\usepackage[scaled=0.875]{helvet}%  サンセリフ体を大きさ 87.5% に調整した Helvetica 系に
\usepackage[scaled]{couriers}%      タイプライタ体を大きさ 95% に調整した Courier New 系に

簡単に追加できる最新の欧文フォントパッケージ

W32TeX ポータブル化には含んでいませんでしたが,W32TeX 配布サイトからファイルをダウンロードして展開するだけで,すぐに利用することができるフォント (パッケージ) を紹介します.

TeX Gyre フォント
PSNFSS フォントパッケージで説明した PostScript 基本 35 書体の改良版を,PostScript Type1 形式および OpenType 形式で開発しようという TeX Gyre Project の成果物です.
インストールするには W32TeX 配布サイトから tex-gyre.tar.xz (約 15.2MB) をダウンロードして,texinstwin コマンドまたは tar コマンドで展開します (参考:tar コマンドによる展開方法). 必要なディスクサイズは約 39MB です. ls-R データベースを利用している場合は,mktexlsr コマンドを実行して更新作業を忘れずに行いましょう.
TeX Gyre フォントを利用するには,TeX 文書のプリアンブルで \usepackage コマンドにより 表2 のパッケージを指定します. オプションとして scale=0.95 のようにすることで,大きさを調整することができます. 筆記体の tgchorus を除く 7 つの書体ではローマン体,イタリック体,ボールド体,ボールドイタリック体,スモールキャップス体,スモールキャップスのイタリック体が用意されています. サンセリフ体の tgheros ではさらに幅の狭い (コンデンス) ローマン体,イタリック体,ボールド体,ボールドイタリック体も用意されています. tgchorus はグリフとしては筆記体ですが,tgchorus パッケージを読み込むことでセリフ体として設定されます.
表2:TeX Gyre フォントパッケージと PostScript フォント名の対応
書体PostScript フォント名 TeX Gyre フォントパッケージ
セリフ体 Times tgtermes
Palatino tgpagella
Bookman tgbonum
New Century Schoolbook tgschola
サンセリフ体 Helvetica tgheros
Avant Garade tgadventor
タイプライタ体 Courier New tgcursor
セリフ体 (筆記体) Zapf Chancery tgchorus
太字のシェイプを bx ではなく b と設定してしまい,和文の太字が (代替フォントで置き換えられ) 出力されなくなりますので,プリアンブルは次のようにするとよいでしょう.
\usepackage{tgterms}  % 本文(セリフ体)を Times 系に
\usepackage[scale=0.95]{tgheros}  % サンセリフ体を大きさ95%に調整した Helvetica 系に
\usepackage{tgcursor}%  タイプライタ体を Courier New 系に
\renewcommand{\bfdefault}{bx}%
New TX / New PX フォントパッケージ
西暦 2000 年ころに開発が止まってしまった TX Fonts / PX Fonts パッケージの後継として開発が進められている本文&数式用のフォントパッケージです. Times 系 / Palatino 系ばかりでなく,Linux LibertineEB GaramondBaskervald XCharter などのフォントに合わせた数式を組めるのが特長です※5
利用するには TeX Gyre フォント をインストールする必要があります. さらに W32TeX 配布サイトから newtxpx-boondoxfonts.tar.xz (約 8.9MB) をダウンロードして,texinstwin コマンドまたは tar コマンドで展開します (参考:tar コマンドによる展開方法). newtxpx-boondoxfonts.tar.xz の展開に必要なディスクサイズは約 22MB です. ls-R データベースを利用している場合は,mktexlsr コマンドを実行して更新作業を忘れずに行いましょう.
New TX フォントを利用するには,TeX 文書のプリアンブルで次のように指定します.
\usepackage{newtxtext,newtxmath}
New PX フォントを利用するには,TeX 文書のプリアンブルで次のように指定します.
\usepackage{newpxtext,newpxmath}

CTAN に登録されているフォントパッケージ追加: Libertine

CTAN (Comprehensive TeX Archive Network) には TeX に関する膨大なリソースが集積されています. ここでは CTAN に登録されているフォントパッケージの中から,Libertine パッケージをダウンロードして W32TeX ポータブル環境で利用できるようにする手順を紹介します. Libertine のインストールに必要なディスクサイズは約 34MB です. W32TeX は U:\usr\w32tex にインストールされているものとします.

  1. Web ブラウザで CTAN: fonts/libertine を開きます (図1).
    図1・CTAN: fonts/libertine
    図1・CTAN: fonts/libertine
  2. 画面右下の TDS archive (図1 の赤枠) のリンク libertine.tds.zip (約 20MB) をローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードダウンロードします※6. 間違って右上の Download とあるリンク (libertine.zip) をダウンロードしないように注意してください.
  3. コマンドプロンプトを開き,USB ドライブの usr\w32tex\share\texmf-local をカレントディレクトリにします.
    U: Enter
    cd \usr\w32tex\share\texmf-local Enter
  4. unzip を起動してダウンロードしたファイルを展開します.
    unzip c:\temp\libertine.tds.zip Enter
  5. ls-R データベースを利用している場合は,mktexlsr コマンドを実行して更新作業を行います.
  6. updmap を起動して map ファイルへの登録を行います.
    updmap --add libertine.map Enter

TeX 文書のプリアンブルで次のように指定すると,本文のセリフ体が Libertine,サンセリフ体が Biolinum 系,タイプライタ体が Libertine Mono (字形は Libertinus Mono 相当) となり,数式が Libertine となります.

\usepackage{libertine}  % 本文(セリフ体)を Libertine,サンセリフ体を Biolinum,タイプライタ体を Libertine Mono に
\usepackage[libertine]{newtxmath}

Libertine フォントについて詳しくは,texdoc libertine で表示される英文ドキュメントなどが参考になるでしょう (texdoc コマンドについては texdoc ポータブル化 を参照).

注意: W32TeX のアップデートを行うと,updmap の map ファイルへの登録情報がクリアされてしまうことがあります. dvipdfmx の実行時に mktexpk によるフォント生成がはじまり,エラーが発生して missfont.log というファイルが生成されるようになってしまったら,もう一度 updmap の map ファイルへの登録を行ってみてください.

CTAN に登録されているフォントパッケージ追加: courier-scaled

ここでは CTAN (Comprehensive TeX Archive Network) に登録されているフォントパッケージの中から,courier-scaled パッケージをダウンロードして W32TeX ポータブル環境で利用できるようにする手順を紹介します. courier-scaled は PSNFSS フォントパッケージ に含まれるタイプライタ体である Courier New 系の大きさを調整することのできるパッケージで,インストールに必要なディスクサイズは約 200KB と小さいのですが,TDS archive が提供されていないために手順はやや複雑になります※6. ファイル操作に慣れていない方は,慎重に作業を進める必要があります. W32TeX は U:\usr\w32tex にインストールされているものとします.

  1. Web ブラウザで CTAN; courier-scaled を開きます.
  2. Download とあるリンク (courier-scaled.zip, 153KB) をローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードダウンロードします.
  3. courier-scaled.zip を展開 (解凍) します. unzip コマンドを使ってもよいですし,エクスプローラでファイルを右クリックしてすべて展開を選んでもかまいません. ここでは C:\temp\courier-scaled に展開したことにします.
  4. 展開されたファイルを次のようにコピーまたは移動します.
    • Couriers.pdfCouriers.texREADMEU:\usr\w32tex\share\texmf-local\doc\latex\courer-scaled
    • その他のファイル (拡張子が .sty.fd) を U:\usr\w32tex\share\texmf-local\tex\latex\courer-scaled
  5. ls-R データベースを利用している場合は,mktexlsr コマンドを実行して更新作業を行います.

couriers パッケージについて詳しくは texdoc couriers で表示される英文ドキュメントが参考になるでしょう (texdoc コマンドについては texdoc ポータブル化 を参照).