マクロツイーター

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

Babel な話:LGR を普通のエンコーディングにする話(lgrx パッケージ) (2)

あるいは:「Babel を使わずに(テキストの)ギリシャ文字を出力する話」。

“LGRx”フォントエンコーディング

Babel 無しで LGR エンコーディングのフォントを利用するための特別なフォントエンコーディングである。(もちろん Babel との併用も可能。)フォントエンコーディング定義なので fontenc パッケージを通して読み込むが、既存の LGR エンコーディングとの衝突を避けるために、読込の時だけ「LGRx」という名前を用いる。((つまり、\usepackage[LGR]{fontenc} で読み込まれるのは既存の(Babel の)LGR エンコーディング定義であり、これを変える訳にはいかないので別の名前を用いている。ちなみに、エンコーディング XXX の定義は xxxenc.def というファイルに書かれていて、fontenc の読込時にこの「フォントエンコーディング定義ファイル」が読み込まれる。既存の LGR のものは lgrenc.def で、lgrx パッケージの「LGRx」は lgrxenc.def というファイル名である。)) ((注意として、「LGRx」は最後のオプションとすることができないので、LGR を既定エンコーディングにしたい場合は、「LGRx」を含めた上で最後を「LGR」にする必要がある。つまり、「\usepackage[T2A,T1,LGRx,LGR]{fontenc}」のようにする。))

\usepackage[LGRx,T2A,T1]{fontenc}

これで、以降の文書中で「LGR」フォントエンコーディング(「LGRx」ではない)が利用可能になる。

\documentclass[a4paper]{article}
\usepackage[LGRx,OT1]{fontenc} % LGRx を指定する
\begin{document}
\fontencoding{LGR}\selectfont % LGR に切り替える(LGRx ではない)
a b g d e
\end{document}

アクセント付き文字の入力は、LGR での ASCII 翻字の文字列の前に〈\〉を付した形で行う。例えば、〈ὦ〉(→ ~>w)であれば「\~>w」とする。((「\~\>w」も可であるが、「\~{>w}」や「\~{\>w}」は不可。))なお、〈\〉無しの ASCII 翻字の入力も〈~〉を除いては可能であるが、アクセント命令を用いた入力の方が、前の文字とのカーニングが正常に行われるという点で望ましい。(下付きイオタはカーニングの影響がないので従来通り「母音 + |」で入力する。)

\documentclass[a4paper]{article}
\usepackage[LGRx,OT1]{fontenc}
\newcommand*{\greekscript}{\fontencoding{LGR}\selectfont}
\begin{document}
\begin{quote}\greekscript
m\~ater \~>w qrusostef\'anwn \>a\'ejlwn, \>Olump\'ia,\\
d\'espoin'' \>alaje\'ias;
\end{quote}
\end{document}

利用可能なアクセント命令を一覧表にまとめておく。

\'aά(鋭アクセント)
\`aὰ(重アクセント)
\~aᾶ(曲アクセント)
\>aἀ(無気記号)
\<aἁ(有気記号)
\"uϋ(分離記号)
\=aᾱ(長音記号)
\u{a}ᾰ(短音記号)

複合アクセントは次のものが使える: \>' \>` \~> \<' \<` \~< \'" \`" \~" さらに、これらは普通の LaTeX のアクセント命令なので、合成済グリフがない組み合わせについても、TeX のアクセント合成を用いて例えば「\=a」〈ᾱ〉「\"s」〈σ̈〉といった文字を出力することができる。次の例は、方言的発音を書き表すためにアクセント付きの子音文字を用いたものである。*1

\documentclass[a4paper]{article}
\usepackage[LGRx,OT1]{fontenc}
\newcommand*{\greekscript}{\fontencoding{LGR}\selectfont}
\begin{document}
\begin{quote}\greekscript
\u{S}\u{s}\'ulla po\`u \>\'emajen t\u{z}a\`i tr\`w pet\u{s}i\`a \>\'ent\u{z}e prok\'obkei, \ldots
\end{quote}
\end{document}

ただし、既に挙げたパターン以外の複合アクセント(2 つ以上の記号からなるもの)は使えないことに注意。例えば、次のような「アクセント記号と長音/短音記号の組み合わせ」は lgrx パッケージでは対応できない。

ちなみに、teubner パッケージでは上の例を出力できる。ソース文書は以下の通り。

\documentclass[a4paper]{article}
\usepackage[greek,english]{babel}
\usepackage{teubner}
\begin{document}
\begin{otherlanguage*}{greek}
\s{a}nerr\Am{i}fjw k\Ab{u}boc.
\end{otherlanguage*}
\end{document}

より詳細な解説については、LGRx エンコーディングの説明書 lgrx.pdf を参照されたい。*2

*1:例文は次の文献からの引用: Yannis Haralambous: “From Unicode to Typography, a Case Study: the Greek Script”, Proceedings of the 14th International Unicode Conference, Boston, MA, 1999.

*2:さらに、lgrxenc.def.html(ソースを掲載した文書)も目を通しておいたほうがよいだろう。