LaTeX は [いくつかの] TeX プリミティブを再定義しますか?

LaTeX は [いくつかの] TeX プリミティブを再定義しますか?

私は「TeX と LaTeX の違いは何ですか?「LaTeX は TeX の上に構築されたマクロの集合 (拡張機能) です。TeX プリミティブは、LaTeX でも TeX と同じように動作するはずです。しかし、常にそうであるとは限らないようです。"数式モードでは \char はどのように処理されますか?"では、テキスト モードでの動作が数式モードと異なる理由が説明されています\char。ただし、これは TeX にのみ当てはまります。ただし、LaTeX では、\char次の例からわかるように、テキスト モードと数式モードでの動作は同一です。

\documentclass{article}  
  \begin{document}
    In text mode, we obtain \char"5. In math mode, we also obtain $\char"5$.
  \end{document}

TeX では結果は異なります。

In text mode, we obtain \char"5. In math mode, we obtain $\char"5$.
\bye

いくつかの TeX プリミティブ (少なくとも 1 つ: \char) は LaTeX で再定義されているようです。TeX プリミティブを LaTeX で再定義する必要があるかどうかを知りたいです。必要な場合は、その理由を教えてください。LaTeX で再定義されている他の TeX プリミティブはありますか? このような単純なコード (例のように) では、TeX と LaTeX は同じ結果を生成するのが想定されていませんか?

答え1

LaTeX は、プリミティブ\input\end、、を再定義し、コンテキストによっては も再定義します。 は再定義されませんが、異なる数式コードが使用されます。\-\/\underline\par\char

プレーンTeXでは

\mathcode`\^^E="023A % \lnot

しかし、LaTeX は (ASCII 5) に数学コードを割り当てない^^Eので、値は初期値と同じ 5 になります。

TeX が\char<number>数式モードで処理する場合、文字が直接入力されたかのように、文字の数式コードが使用されます。したがって、プレーン TeX では"3Aファミリー 2 ( ) の文字が取得され、LaTeX ではファミリー 0 の\lnot文字が取得されます。"5

再定義されたプリミティブ

  • \inputを許可するように再定義されます\input{<filename>}
  • \end環境の終了を示すために再定義されます。
  • \-\/技術的な理由により再定義されます。
  • \underlineテキスト モードでも使用できるように再定義されます。

関係する限り\par、再定義はリストのような環境にとって不可欠です。

なぜプレーン TeX は数学コードを ASCII 5 に割り当てるのでしょうか?

Knuth は拡張文字セットを使用しており、キーボードで ¬ やその他の文字を直接入力できるため、拡張文字セットに数学コードを設定するのが便利だと考えたのです。

関連情報