我有一个 tikz 图片库,例如。
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
%...
\end{tikzpicture}
}
我想将它们连同它们的名字(包括参数)一起打印出来。然而,
\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}
生产
软件包 tikz 错误:抱歉,某些软件包重新定义了数学模式美元符号的含义。这与 tikz 及其 calc 库不兼容,可能会导致不可恢复的错误。
我猜 \show 正在尝试在 \verb 内扩展其参数。我尝试使用 \expandafter,但没有帮助。当我用 \texttt{} 替换 \verb| | 时,\show 根本没有打印宏名称。
答案1
首先,最好不要重新定义原始,例如\show
。只需选择另一个命令名称。然后,在另一个宏中使用时,\Verb
来自fvextra
包比更强大。\verb
\documentclass{article}
\usepackage{fvextra}
\usepackage{tikz}
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
\node[draw, circle] {text};
\end{tikzpicture}
}
\newcommand{\showTikzPic}[1]{\Verb|#1|\quad #1}
\begin{document}
\showTikzPic{\mypic{}}
\end{document}