例の「付録」で述べられているように、Babel のギリシャ語処理で用いられるフォントエンコーディングは LGR という名前が付けられている。このようにエンコーディングが L から始まる名前を持つことは、それがある特定のパッケージの内部に限定して(local に)用いられることを表し、LGR の場合はそれが「Babel 用」であることを示す。*1すなわち、「LGR」という名前は本来は「内部仕様」であり、LaTeX ユーザがその名前を(fontenc 等で)直接用いることは想定されていない。*2
LGR が Babel に依存することは次のようなことから判る。
- LGR では、曲アクセント付き文字、例えば〈ᾶ〉は
~a
と入力する。ところが、LaTeX の通常の状態だと〈~
〉が特殊文字であるのでこれは機能せず、Babel のギリシャ語環境を用いる必要がある。((つまり、〈~
〉のカテゴリコードを 12 に変える必要があるということ。ただし、Babel の実際の処理では、その変更を行う代わりに、アクティブな〈~
〉がカテゴリコード 12 の〈~
〉に展開されるように再定義を行っている。)) - LGR での一部の文字命令(
\copyright
等)の定義では Babel の命令\textlatin
を含んでいる。(従って、Babel 無しの状態ではエラーを起こす。) - ギリシャ文字は「LICR がない」、すなわち、エンコーディングを表に出さない形で LaTeX の入力を示すことができない。例えば、〈urrà〉は「
urr\`a
」、〈ура〉は「\cyru\cyrr\cyra
」と表せるが、〈εὐαί〉については「LGR に切り替えてe>ua'i
」としか言えない。
この最後の点はそれ自体ではユーザに直接影響があるものではない。*3ただこの事実が「ギリシャ語では utf8 入力エンコーディングが使えない」という不便さの原因になっていることにも注意すべきである。*4勿論、ucs パッケージ(utf8x 入力エンコーディング)を使えばギリシャ語の UTF-8 直接入力は可能ではあるが、このパッケージは非常に複雑であるため、他のパッケージ(例えば csquote 等)と衝突する例が知られている。だから、LaTeX 標準の utf8 で済ませたいという要望は実際に存在する。
lgrx パッケージは上述の問題を解決し、ギリシャ文字の「事実上標準」のエンコーディングとなっている(だが一部の仕様が Babel に依存する)LGR フォントエンコーディングを「普通のエンコーディング」として扱うことを可能にする。このパッケージは次の構成要素からなる。
- “LGRx”フォントエンコーディング: LGR を Babel 無しで利用可能にする。
- LGR エンコーディングの Unicode 版定義ファイル: utf8 入力エンコーディングで LGR の文字を利用可能にする。
- textalpha パッケージ: ギリシャ文字の入力で LGR に自動的に切り替わるようにする。
- alphabeta パッケージ: 数式用ギリシャ文字命令をテキストの(LGR の)ギリシャ文字と兼用にする。
lgrx パッケージの全般的な解説はパッケージの README を参照してほしい。(「texdoc -l lgrx
」を実行して、現れたパス名一覧の中で、ファイル名が README(あるいは HTML 版の README.html)であるものの番号を入力する。)
*1:別の例を挙げると、モンゴル語処理用パッケージ MonTeX で用いられるキリル文字エンコーディングの名前は LMC でこれは「MonTeX 用」である。
*2:キリル文字のエンコーディング(T2A や OT2 等)を用いる時は fontenc で宣言する必要があるのに、LGR はそうでないという理由もここにある。
*3:LICR で入力しても、現在のフォントエンコーディングが「その文字」をサポートしていない(かつ既定表現が定義されていない)ならば、結局出力はできない。
*4:一般に入力エンコーディングの処理(inputenc の処理)は LICR の存在を前提とする。utf8x の処理は特殊である。