マクロツイーター

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

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

textalpha パッケージ

このパッケージが行うことは、「\textalpha 等のギリシャ文字の文字命令の既定を LGR に設定する」ことである。つまり、現在エンコーディングが LGR 以外である場合((正確に言うと \textalpha をサポートしないエンコーディングである場合。現時点ではそういうものは LGR しかないが、例えば ibycus のエンコーディング等について「LGRx の文字命令」を用いて定義を作ることは可能である。))に \textalpha が入力されたら、自動的に(一時的に) LGR に切り替えて出力する。((現在エンコーディング\textalpha の定義をもつなら(エンコーディングを切り替えずに)その定義を使う。))

これだけだと余り有益でないように見えるかも知れないが「utf8 入力エンコーディングを通して UTF-8 で直接〈α〉を入力した場合に内部で一旦 \textalpha に変換される」という事実を考え合わせるとこのパッケージの利点が判るだろう。すなわち、このパッケージと utf8 入力を併用すると、現在エンコーディングを切り替えなくてもギリシャ文字が出力できるようになる。

% The file is encoded in UTF-8.
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{textalpha}
\begin{document}
% A famous passage from the Bible....
English words like ‘technology’ stem from a Greek root
beginning with the letters τεχ….
\end{document}

ただし制限があって、LGR への切り替えが実際に働いた場合(つまり現在が LGR でない場合)はカーニングが無効になる。*1現在が LGR である場合は大丈夫である(これは textalpha を使わない場合と同じ)。

また、textalpha パッケージを読み込むと LGRx エンコーディングが有効になる。*2だから、どこか気持ちの悪い “LGRx”の指定を textalpha の読込で代替するという使用法も考えられる。

\usepackage[LGRx,OT1]{fontenc}
  ↓
\usepackage{textalpha}

lgrx パッケージの説明文書で utf8 での入力を扱ったものは greek-unicode.pdf であるが、ここでは LGRx の指定の代わりに textalpha を読み込む方法が紹介されている。

alphabeta パッケージ

このパッケージを読み込むと、LaTeX 標準の数式ギリシャ文字の命令(\alpha\beta 等)がテキストでも使用可能になる。数式モードでの動作は今まで通りで、非数式モードの場合は \textalpha に展開される。

\documentclass[a4paper]{article}
\usepackage{alphabeta}
\begin{document}
The number is denoted by $\pi$, probably because it is the first
letter of the Greek word for `circumference',
\pi\epsilon\rho\iota\phi\'\epsilon\rho\epsilon\iota\alpha.
\end{document}

*1:あと、文字命令での入力に関して、アクセント命令は恐らく上手くいかない。UTF-8 入力の場合は元々アクセント命令が不可だからこの話は関係がない。

*2:つまり「LGR」エンコーディングへの切替が可能になる。現在/既定エンコーディングの設定は変化しない。