Использование \verbatim как части аргумента для макроса?
-
03-07-2019 - |
Вопрос
Большинство вещей, которые я хотел сделать в LaTeX, были либо простыми, либо их легко было найти в Интернете, но эта поставила меня в тупик.
У меня есть макрос "решение":чтобы применить некоторое общее форматирование к каждому решению:
\newcommand\solution[1]{{\\ \\* \bf Solution.}#1\qed \newpage}
До сих пор это работало хорошо, но теперь я хотел включить рисунок, который я быстро сделал, используя "ASCII Art", поэтому я хотел бы использовать \verbatim .Но это не работает, это приводит к следующим ошибкам:
Runaway argument? ... ! File ended while scanning use of \@xverbatim.
Из того, что я прочитал в "Не очень кратком введении в LaTeX", \verbatim нельзя использовать таким образом.Я предполагаю, что есть лучший способ сделать то, что я пытаюсь сделать?
Решение
Вы можете попробовать изменить \ newcommand
на \ newenvironment
, а затем использовать что-то вроде
\begin{solution}
\begin{verbatim}
[ascii art here]
\end{verbatim}
\end{solution}
Другие советы
Это FAQ .
Используйте пакет cprotect
например ,(с tcolorbox, но он работает с большей частью созданной newcommand)
\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}
}