1. 入出力エンコーディング
キーボードのキーを押すと、特定の文字を表す数値コードが生成されます。入力エンコーディングは文字を対応するコードにマッピングします。例えば、ドイツ語キーボードでは、アクセント付き文字(たとえば「a-ウムラウト」)が、使用するオペレーティングシステムによって異なるコードに割り当てられることがあります。
コンピュータのファイルに保存された文書は文字コードだけを含み、入力エンコーディングに関する情報は明示的に含まれていません。したがって、ファイルを別の環境に転送した場合、たとえば米国から英国に移したときに、入力エンコーディングに関して誤った前提を持つプログラムでファイルを表示すると、文書中のドル記号がポンド記号として解釈されてしまうことがあります。
inputenc パッケージは LaTeX Project Team によって開発され、入力エンコーディングの問題に対処するために設計されました。このパッケージを使用すると、文書全体または文書の一部に使用した入力エンコーディングを明示的に指定できます。この仕組みにより、文書をある LaTeX 環境から別の LaTeX 環境へ安全に転送でき、同一の印刷結果が得られるようになります。
inputenc パッケージはファイル中の文字コードを解釈し、内部 LaTeX 表現 にマッピングします。この内部表現は LaTeX で表現可能なすべての文字を一意にカバーしています。その後の処理(たとえば補助ファイルへの書き出し)では、LaTeX はこの内部表現を使用するため、誤解釈が避けられます。
しかしながら、最終的には LaTeX はこれらの内部文字表現をグリフ(特定のフォントにおける文字形)に結び付けなければなりません。そのため別のマッピングが必要です。任意の TeX フォントには最大で 256 個のグリフしか含まれません。これらのグリフは名前ではなく、フォント内での位置を示す 8 ビットの数値でアドレス指定されます。つまり、広大な一意の名前空間をいくつかの小さな空間にマッピングしなければならず、グリフの位置はフォントによって大きく異なることがあります。
したがって、外部ファイルから LaTeX の内部表現へドル記号の意味は正しく保持できても、印刷時にドル記号用に予約された位置に予期しないグリフが存在すると、紙上で形が間違っていることがあります。NFSS(LaTeX の New Font Selection Scheme)の仕事の一つは、すべての LaTeX 内部文字表現が適切に描画されるようにするか、描画が不可能な場合にはユーザーに適切なエラーメッセージを提示することです。
フォントにアクセント文字が個別のグリフとして含まれている場合(ベース文字とアクセントの組み合わせだけでなく)、それらのグリフを使用する方が外観が良くなることが多いです。もう一つの(技術的な)理由は、\accent プリミティブがハイフネーションを抑制するためです。
さまざまなケースに対応するため、\'e のようなコマンド(LaTeX の内部表現で「e-アクュート」文字を表す)は、場合によっては \accent プリミティブを用いた複雑な処理を開始し、場合によっては現在のフォントのある スロット(位置)からグリフを取得すべきであることを段落ビルダーに伝えるだけです。
これらすべては 出力エンコーディング の概念を通じて実現されます。出力エンコーディングは、LaTeX の内部文字表現をフォントで利用可能な適切なグリフ位置や、グリフを構築するための操作にマッピングするものです。
以下の記事では、1994 年に標準 LaTeX の一部となった NFSS のリリース 2 について議論しています。