des commandes définies par l'utilisateur dans un environnement in extenso
Question
est-il possible de créer une nouvelle commande avec un paramètre dans un environnement verbatim et une indentation?
\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
Cela ne fonctionne pas. Y at-il une autre façon?
La solution
On dirait que vous voulez avoir le code dans votre document, dans ce cas, vous êtes probablement mieux servis par les listes de paquet que par mot pour mot. Listes vous offre aussi de belles fonctionnalités telles que la numérotation des lignes et la coloration syntaxique pour de nombreuses langues communes. Voir http://www.ctan.org/tex-archive/macros / latex / contrib / listings / si elle est pas déjà installé avec votre distribution laTeX.
Autres conseils
Comment fonctionne \begin{verbatim}
. brièvement et à peu près.
-
\begin{verbatim}
est étendu à\verbatim
. - Ensuite
\verbatim
ensembles code de catégorie de chaque caractères spéciaux à 12. Maintenant, tous les caractères sont comme des chiffres ou puncts. - Ensuite ensembles
\verbatim
police, parindent et appelle\@xverbatim
. -
\@xverbatim
attrape la fin de mot à mot en utilisant l'astuce suivante:\def\@xverbatim#1\end{#1\end}
-
Ensuite, le travail de finition
\end{verbatim}
.
Comment fonctionne \newcommand{\codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
.
- Tout d'abord
\codeblock{Some {}$&%^_}
lit son argument. -
#1 --> Some code {}$&%^_
Remarque:
{
,}
,$
,&
,%
,^
,_
ont des catégories 1,2,3,4,6,7,8 au lieu de 11 ou 12 !! ) -
\codeblock
se développe pour\begin{quote}\begin{verbatim} Some {}$&%^_\end {verbatim}\end {quote}
. Important: backslash de catégorie 0\end
a plutôt que 11. De plus{
et}
ont des catégories 1 et 2 au lieu de 11. Et$
,&
,%
,^
,_
ont des catégories 3,4,6,7,8. -
\begin{quote}
se développe pour\quote
et\quote
exécute. - Puis se dilate
\begin{verbatim}
à\varbatim
.\varbatim
change toutes les catégories et la police. Mais ( important ) la catégorie des anti-slash (en\end
) reste égal à 0. Et les catégories de{
,}
,$
,&
,%
,^
,_
tapé après reste deSome
à cause de la lecture « exécute argument » avant\verbatim
change toutes les catégories. Mais vous avez besoin que tout ombles a 11 catégories o 12. - Ensuite, les appels
\verbatim
\@xverbatim
. -
\@xverbatim
essaie d'attraper votre argument en utilisant l'astuce suivante:\def\@xverbatim#1\end{#1\end}
mais il est impossible en raison 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 d'autres codes de catégorie:\
à la catégorie 0 ete
,n
,d
à la catégorie 11.Il est possible (je ne suis pas sûr) ce truc est plus magistral:
caractères rouges ont catégorie 12. caractères verts ont la catégorie 11.
\def
,\@xverbatim
,\end
sont des macros avec\
(catégorie 0) et les 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 un nouveau \codeblock
macro vous devez faire quelque chose comme du texte ci-dessus.