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?

Était-ce utile?

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.

  1. \begin{verbatim} est étendu à \verbatim.
  2. 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.
  3. Ensuite ensembles \verbatim police, parindent et appelle \@xverbatim.
  4. \@xverbatim attrape la fin de mot à mot en utilisant l'astuce suivante:

    \def\@xverbatim#1\end{#1\end}
    
  5. Ensuite, le travail de finition \end{verbatim}.

Comment fonctionne \newcommand{\codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}.

  1. Tout d'abord \codeblock{Some {}$&%^_} lit son argument.
  2. #1 --> Some code {}$&%^_

    Remarque: {, }, $, &, %, ^, _ ont des catégories 1,2,3,4,6,7,8 au lieu de 11 ou 12 !! )

  3. \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.
  4. \begin{quote} se développe pour \quote et \quote exécute.
  5. 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 de Some à 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.
  6. Ensuite, les appels \verbatim \@xverbatim.
  7. \@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 et e, n, d à la catégorie 11.

    Il est possible (je ne suis pas sûr) ce truc est plus magistral:

    text alt

    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).

  8. \@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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top