Comment \begin{verbatim}
fonctionne. brièvement et à peu près.
\begin{verbatim}
est étendue à \verbatim
.
- Puis
\verbatim
définit le code de catégorie de chaque caractère spécial à 12. Maintenant, tous les caractères sont comme des chiffres ou des points.
- Puis
\verbatim
définit la police, le paramètre et appelle \@xverbatim
.
\@xverbatim
attrape la fin de mot à mot en utilisant l'astuce suivante:
\def\@xverbatim#1\end{#1\end}
Puis \end{verbatim}
finitions travail.
Comment \newcommand{\codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
fonctionne.
- Tout d'abord,
\codeblock{Some {}$&%^_}
lit son argument.
#1 --> Some code {}$&%^_
Note:{
, }
, $
, &
, %
, ^
, _
ont des catégories 1,2,3,4,6,7,8 au lieu de 11 ou 12 !!!)
\codeblock
se développe en \begin{quote}\begin{verbatim} Some {}$&%^_\end {verbatim}\end {quote}
. Important: backslash de \end
a la catégorie 0 plutôt que 11. De plus {
et }
ont des catégories 1 et 2 au lieu de 11. Et $
, &
, %
, ^
, _
avoir des catégories 3,4,6,7, 8.
\begin{quote}
s'exécute en \quote
et \quote
s'exécute.
- Puis
\begin{verbatim}
se développe en \varbatim
. \varbatim
modifie toutes les catégories et les polices. Mais (important) la catégorie de barre oblique inverse (en \end
) reste égale à 0.Et les catégories de {
, }
, $
, &
, %
, ^
, _
typée après Some
reste à cause de "lecture de l'argument" exécute avant \verbatim
change toutes les catégories. Mais vous avez besoin que tout char a des catégories 11 ou 12.
- Puis
\verbatim
appelle \@xverbatim
.
\@xverbatim
essaie d'attraper votre argument en utilisant l'astuce suivante:
\def\@xverbatim#1\end{#1\end}
mais il est impossible à cause de \@xverbatim
essaie d'attraper \end
où toutes les lettres (\
, e
, n
, d
) ont la catégorie 12 et 11. Mais en fait, il y a quatre lettres avec un autre code de catégorie: \
avec la catégorie 0 et e
, n
, d
à la catégorie 11.
Il est possible (je ne suis pas sûr) ce truc est plus magistral:

caractères rouges ont la catégorie 12. caractères verts ont la catégorie 11. \def
, \@xverbatim
, \end
sont des macros avec \
(catégorie 0) et des lettres (catégorie 11).
\@xverbatim
tente et essayer de trouver \end
où backslash (\
) a la catégorie 11 mais .... File ended while scanning use of \@xverbatim
Si vous voulez créer de nouvelles macro \codeblock
vous devez faire quelque chose comme du texte ci-dessus.
Vous pouvez trouver une communauté entière sur le [TeX StackExchange] (http://tex.stackexchange.com/), où aucune question liée à TeX n'est trop petite. Il y a beaucoup de [questions là-bas liées au paquet d'annonces] (http://tex.stackexchange.com/questions/tagged/listings) qui pourraient vous être utiles. –