部分扩展宏参数

部分扩展宏参数

我有一个 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}

在此处输入图片描述

相关内容