¿LaTeX redefine [algunas] primitivas de TeX?

¿LaTeX redefine [algunas] primitivas de TeX?

Leí en "¿Cuál es la diferencia entre TeX y LaTeX?" que LaTeX es una colección de macros (una extensión) construida sobre TeX. Supuestamente, las primitivas de TeX deberían comportarse en LaTeX de la misma manera que lo hacen en TeX. Sin embargo, parece que no siempre es así. En "¿Cómo se procesa \char en modo matemático?", se explica por qué \charse comporta de manera diferente en modo texto que en modo matemático. Pero esto es solo en TeX. Sin embargo, en LaTeX \charse comporta de manera idéntica en los modos texto y matemático, como se puede ver en el siguiente ejemplo:

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

En TeX, el resultado es diferente:

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

Parece que algunas primitivas de TeX (al menos una \char:) están redefinidas en LaTeX. Me gustaría saber si las primitivas TeX deben redefinirse en LaTeX. ¿Si es así por qué? ¿Existen otras primitivas de TeX que se redefinen en LaTeX? ¿No se espera que TeX y LaTeX produzcan el mismo resultado en un código tan simple (como en el ejemplo)?

Respuesta1

LaTeX redefine las primitivas \input, \end, \-, \/y \underline, en algunos contextos, \par. No redefine \char, pero utiliza códigos matemáticos diferentes.

En TeX simple vemos

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

pero LaTeX no asigna un código matemático a ^^E(ASCII 5), por lo que el valor es el inicial, es decir, 5.

Cuando TeX procesa \char<number>en modo matemático, utiliza el código matemático del carácter, como si el carácter se ingresara directamente. Entonces, en TeX simple, obtienes el carácter "3Ade la familia 2 ( \lnot); en LaTeX obtienes el carácter "5de la familia 0.

Primitivas redefinidas

  • \inputse redefine para permitir \input{<filename>};
  • \endse redefine para marcar el fin de los ambientes;
  • \-y \/se redefinen por razones técnicas;
  • \underlinese redefine para usarse también en modo texto.

En lo que \para nosotros respecta, las redefiniciones son esenciales para entornos tipo lista.

¿Por qué TeX simple asigna un código matemático a ASCII 5?

Porque Knuth usó conjuntos de caracteres extendidos y su teclado permitía ingresar directamente ¬ y otros caracteres. Por eso le resultó conveniente establecer códigos matemáticos para el conjunto de caracteres extendido.

información relacionada