Makroargument teilweise erweitern
Ich habe eine Bibliothek mit Tikz-Bildern, z.
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
%...
\end{tikzpicture}
}
die ich zusammen mit ihren Namen (einschließlich Argumenten) drucken möchte. Jedoch,
\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}
produziert
Paket tikz Fehler: Leider hat ein Paket die Bedeutung des Dollarzeichens im Mathematikmodus neu definiert. Dies ist nicht kompatibel mit tikz und seiner Calc-Bibliothek und kann zu nicht behebbaren Fehlern führen.
Ich denke, \ show versucht, sein Argument innerhalb von \ verb zu erweitern. Ich habe mit \ expandafter experimentiert, aber es hat nicht geholfen. Als ich \ verb | ersetzte | Mit \ texttt {} hat \ show den Makronamen überhaupt nicht gedruckt.
Antworten
Erstens ist es zum Beispiel besser, das Primitive nicht neu zu definieren \show. Wählen Sie einfach einen anderen Befehlsnamen. Dann ist \Verbfrom fvextrapackage robuster als \verbbei Verwendung in einem anderen Makro.
\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}