Utiliser \ verbatim dans le cadre d'un argument pour une macro?
-
03-07-2019 - |
Question
La plupart des choses que je voulais faire à LaTeX étaient soit directes, soit faciles à trouver sur le Web, mais celui-ci m’a perturbé.
J'ai une macro 'solution': pour appliquer un formatage commun à chaque solution:
\newcommand\solution[1]{{\\ \\* \bf Solution.}#1\qed \newpage}
Ce qui a bien fonctionné jusqu’à présent, mais je voulais maintenant inclure un dessin que j’ai fait rapidement avec "ASCII Art", donc j’aimerais utiliser \ verbatim. Mais cela ne fonctionne pas, il génère les erreurs suivantes:
Runaway argument? ... ! File ended while scanning use of \@xverbatim.
D'après ce que j'ai lu dans la section "Not So Short introduction to LaTeX", \ verbatim ne peut pas être utilisée de cette façon. Je suppose qu’il existe un meilleur moyen de faire ce que j’essaie de faire.
La solution
Vous pouvez essayer de remplacer \ newcommand
par \ newenvironment
, puis d'utiliser quelque chose comme
\begin{solution}
\begin{verbatim}
[ascii art here]
\end{verbatim}
\end{solution}
Autres conseils
Ceci est une FAQ .
Utilisez le package cprotect
par exemple. (avec tcolorbox mais cela fonctionne avec la plupart des nouvelles commandes créées)
\usepackage{tcolorbox}
\usepackage{cprotect}
\newcommand{\tcb}[1] {
\begin{tcolorbox} [arc=0mm,colback=bginf,coltitle=black!70!black,colframe=black!30!white,width=\linewidth,fontupper=\bfseries\small,halign title=flush center,halign upper=center]
#1
\end{tcolorbox}
}
\cprotect\tcb{\scriptsize
\begin{verbatim}
...
\end{verbatim}
}