O LaTeX redefine [algumas] primitivas do TeX?

O LaTeX redefine [algumas] primitivas do TeX?

Eu li em "Qual é a diferença entre TeX e LaTeX?"que o LaTeX é uma coleção de macros (uma extensão) construída sobre o TeX. Supostamente, as primitivas do TeX deveriam então se comportar no LaTeX da mesma maneira que no TeX. No entanto, parece que nem sempre é o caso. Em "Como \char é processado no modo matemático?", é explicado por que \charo modo texto se comporta de maneira diferente do modo matemático. Mas isso é apenas no TeX. No LaTeX, entretanto, \charele se comporta de forma idêntica nos modos texto e matemático, como pode ser visto no exemplo a seguir:

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

No TeX, o resultado é diferente:

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

Parece que algumas primitivas do TeX (pelo menos uma \char:) foram redefinidas no LaTeX. Gostaria de saber se as primitivas do TeX devem ser redefinidas no LaTeX. Se sim, por quê? Existem outras primitivas do TeX que são redefinidas no LaTeX? Não se espera que o TeX e o LaTeX produzam o mesmo resultado em um trecho de código tão simples (como no exemplo)?

Responder1

LaTeX redefine os primitivos \input, \end, \-, \/e \underline, em alguns contextos, \par. Ele não redefine \char, mas usa códigos matemáticos diferentes.

No TeX simples, vemos

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

mas o LaTeX não atribui um código matemático para ^^E(ASCII 5), então o valor é o inicial, ou seja, 5.

Quando o TeX processa \char<number>no modo matemático, ele usa o código matemático do caractere, como se o caractere tivesse sido inserido diretamente. Então, no TeX simples você obtém o personagem "3Ada família 2 ( \lnot); no LaTeX você obtém caracteres "5da família 0.

Primitivas redefinidas

  • \inputé redefinido para permitir \input{<filename>};
  • \endé redefinido para marcar o fim dos ambientes;
  • \-e \/são redefinidos por razões técnicas;
  • \underlineé redefinido para ser usado também em modo texto.

No que \pardiz respeito, as redefinições são essenciais para ambientes do tipo lista.

Por que o TeX simples atribui um código matemático ao ASCII 5?

Porque Knuth usava conjuntos de caracteres estendidos e seu teclado permitia inserir diretamente ¬ e outros caracteres. Então ele achou conveniente definir códigos matemáticos para o conjunto estendido de caracteres.

informação relacionada