Makroargument teilweise erweitern

Aug 18 2020

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

3 muzimuzhiZ Aug 18 2020 at 12:15

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}