Argumento macro de expansión parcial
Tengo una biblioteca de imágenes tikz, por ejemplo.
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
%...
\end{tikzpicture}
}
que me gustaría imprimir junto con sus nombres (incluidos los argumentos). Sin embargo,
\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}
produce
Error de paquete tikz: Lo sentimos, algunos paquetes han redefinido el significado del signo de dólar en modo matemático. Esto es incompatible con tikz y su biblioteca calc y puede causar errores irrecuperables.
Supongo que \ show está tratando de expandir su argumento dentro de \ verb. Experimenté con \ expandafter pero no ayudó. Cuando reemplacé \ verb | | con \ texttt {}, \ show no imprimió el nombre de la macro en absoluto.
Respuestas
En primer lugar, es mejor no redefinir primitivo, por ejemplo \show
. Simplemente elija otro nombre de comando. Entonces, \Verb
from fvextra
package es más robusto que \verb
cuando se usa dentro de otra macro.
\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}
