Argomento macro in espansione parziale
Ho una libreria di immagini tikz, ad es.
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
%...
\end{tikzpicture}
}
che vorrei stampare insieme ai loro nomi (argomenti inclusi). Però,
\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}
produce
Errore tikz del pacchetto: Spiacenti, alcuni pacchetti hanno ridefinito il significato del simbolo del dollaro in modalità matematica. Questo è incompatibile con tikz e la sua libreria calc e potrebbe causare errori irreversibili.
Immagino che \ show stia cercando di espandere il suo argomento all'interno di \ verb. Ho sperimentato \ expandafter ma non ha aiutato. Quando ho sostituito \ verb | | con \ texttt {}, \ show non stampava affatto il nome della macro.
Risposte
In primo luogo, è meglio non ridefinire primitivo, per esempio \show
. Basta scegliere un altro nome di comando. Quindi, \Verb
from fvextra
package è più robusto di \verb
, se usato all'interno di un'altra 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}
