レッスン 14

フォントの選択と Unicode エンジンの利用

このレッスンでは LaTeX がどのように Unicode 入力を扱うのかということを解説し,その影響やフォント選択のしくみについて見ていきます.新しい LaTeX エンジンでは Unicode や OpenType がサポートされています.

TeX と LaTeX が広く使われるようになった頃は,いくらかギリシャ文字やロシア文字も扱うことができたとはい,基本的にそのままでは欧州言語しか扱うことができませんでした.

アクセントとアクセント付き文字

当初はアクセント符号やアクセント文字はコマンドを使用して入力する必要がありました(例:‘ç’ は \c{c}, ‘é’ は \'e).こうした入力は簡単なので一部の人々は今でもこうした手段を使用し続けていますが,それ以外の人たちは彼らのキーボードにあるキーを利用して直接こうした文字を入力したいと望みました.

Unicode が登場するまでは,LaTeX はさまざまな種類のファイル・エンコーディングをサポートすることによって,多用な言語がネイティブに利用できるようにしていました.例えば latin1 エンコーディングを利用すれば,フランス語ユーザも単に ‘déjà vu’ と書くだけで,LaTeX が内部的にアクセント付き文字を TeX のコマンドに変換してくれるため,期待する出力を得ることができます.

こうしたアプローチは現代の LaTeX でも pdflatex エンジンの場合には現役です.特に指定をしない場合,デフォルトではすべてのファイルは Unicode(UTF-8 エンコーディング)として扱われます.このエンジンは 8-bit フォントしか扱うことができないですが,ほとんどの欧州言語の場合は問題ありません.

フォントの選択

pdflatex でフォント選択をする場合は,昔ながらの LaTeX のフォント選択機構を使用することになりますが,現在では標準的なディストリビューションに多くの「お膳立てされた」フォントが含まれています.例えば,TeX Gyre fonts は高品質なフォントの集合です.これには多くの人に馴染み深い Times, Helvetica, Palatino などを基にしたフォントが含まれています.こうしたフォントを使用するのは簡単で,適切なパッケージを読み込むだけです.例えば TeX Gyre に含まれる Times 系のフォント Termes を利用するには次のようにします.

\usepackage{tgtermes}

pdflatex ではほとんどの欧文フォントはパッケージを介して利用することになります.利用可能なフォントを確認するには LaTeX フォントカタログCTAN の ‘Font’ トピックページを参照するといいでしょう.もちろんインターネットでフォントを検索して,pdflatex 互換なバージョンを探してみるという手もあります.商用フォントを利用したいという場合も,適切なクローンがないか探してみてください.そうしたものもオリジナルのフォントとよく似ているので,ほとんどの状況では十分でしょう.

Unicode の時代

pdflatex ではファイルエンコーディングもフォントも 8-bit に制限されてしまうので,モダンな OpenType フォントをネイティブに活用したり,異なる文字体系を用いる複数の言語を簡単に切り替えたすることはできません.Unicode 入力とモダンなフォントをネイティブに扱うことができる pdfTeX の代替エンジンが2つあります.XeTeX と LuaTeX です.LaTeX の場合は,これらのエンジンは多くの場合,お使いのエディタで xelatex および lualatex を選択することで利用することができます.

これらのエンジンでは,フォント選択は fontspec パッケージによって行います.シンプルな例を挙げると次のようになります.

\usepackage{fontspec}
\setmainfont{texgyretermes-regular.otf}

この指定によって,さきほど pdflatex の例で行ったのと同様に,TeX Gyre Termes フォントが選択されることになります.重要なことは,この方法が任意の OpenType フォントについて利用可能だということです.pdflatex で利用可能なフォントの一部は,xelatexlualatex でも同じパッケージを用いて利用できるようになっています.あるいはお使いのコンピュータにインストールされている好きなフォントを上記の例で示したように fontspec で指定することもできます.先ほど紹介した LaTeX フォントカタログには OpenType 形式の容易もあるフォントも紹介しているので,やはりこのカタログを参照してフォントを探すことができます.CTAN ページについても同様です.

フォントを選択したら,あとは単純に Unicode で文書ソースを記述することができます.ここではラテン文字,ギリシャ文字に加えて,いくつか CJK 表意文字を含む文書のコード例を示します.

 % !TEX program=xelatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{texgyretermes-regular.otf}
\newfontfamily\cjkfont{FandolSong-Regular.otf}
\begin{document}

ABC → αβγ → {\cjkfont 你好}

\end{document}

言語を変更する場合,一般にはハイフネーションなどの設定も合わせて変更する必要があります.babel パッケージや polyglossia パッケージを使用すると,多くの言語では簡単にこうした変更を実現することができます.