Pourquoi LaTeX ne supprime t-il supprime-t-il pas les espaces superflus dans les noms d'environnement ?d'environnement ?
Dans le code suivant, si j'insère `une espace` une espace avant ou après le nom de l'environnement center, `center`, ce dernier n'est plus reconnu.
\documentclass[11pt]{article}
\begin{document}
\begin{center }
! LaTeX Error: Environment center undefined.
\LaTeX est-il logique ?
\LaTeX{}est-il rationnel ?
Est-ce que \LaTeX{} est de l'alchimie ?
\end{center }
\end{document}
Or, on sait que les espaces sont supprimés **après** les commandes. Dans le code ci-dessus, en omettant les accolades après la commande `\LaTeX` `\LaTeX`, les espaces suivants sont absorbés. C'est une règle de TeX.
On sait qu'avec TeX :
- `l'espace` l'espace pour TeX est un caractère ayant un `code de catégorie` code de catégorie égal à 10,
- les lettres qui composent les noms des commandes ont un code de catégorie égal à 11,
- l'accolade ouvrante a un code de catégorie égal à 1
- et l'accolade fermante a un code de catégorie égal à 2.
Pour TeX une commande (*appelée séquence de contrôle*) commande, appelée *séquence de contrôle*, est :
- soit un `mot de contrôle` *mot de contrôle* commençant par un caractère ayant un code de catégorie 0 (l'antislash ou contre-oblique) et `composé de lettres`. *composé de lettres*. Il se termine alors avec le premier caractère qui n'est pas une lettre (qui a un code de catégorie différent de 11).
11) ;
- soit un `symbole de contrôle` *symbole de contrôle* commençant de façon identique par l'antislash suivi d'un caractère qui n'est `pas *pas une lettre`
lettre*.
Ainsi, puisque dans un environnement LaTeX les espaces ne sont pas « mangés » par TeX, j'en déduis qu'un environnement peut avoir un nom composé de plusieurs mots comme par exemple :
exemple :
\begin{bidule truc} ... \end{bidule truc}
Le code suivant l'illustre :
l'illustre :
\documentclass[11pt]{article}
\newenvironment{bidule truc}{%
\itshape
}{%
% Rien
}
\begin{document}
\begin{bidule truc}
autant d'espace entre bidule et truc sans avoir une seule erreur !
Mais apr\`es après ou avant le nom : erreur !
\end{bidule truc}
\end{document}
Édit Edit ce même jour à 11 h 00, ajout d'un deuxième exemple montrant que l'on peut définir un environnement dont le nom **commence *commence par une espace** espace* (ou plusieurs) :
par plusieurs) :
\documentclass[11pt]{article}
\newenvironment{ bidule truc}{% 3 espaces avant le premier mot
\itshape
}{%
% Rien
}
\begin{document}
\begin{ bidule truc}% 1 seul espace avant le premier mot sans erreur !
autant d'espace avant bidule sans avoir une seule erreur !
Mais apr\`es le nom : erreur !
\end{bidule truc}% erreur, il manque le premier espace
\end{document}
Et j'en conclus donc que le nom des environnements LaTeX n'obéit pas aux même règles que le nom des commandes TeX.
- quelles sont les règles auxquelles sont soumis les noms d'environnement de LaTeX ?
LaTeX ?
- autrement dit, quels sont les caractères autorisés dans le nom des environnements LaTeX ?
LaTeX ?