Argumen makro yang berkembang sebagian
Saya memiliki perpustakaan gambar tikz, misalnya.
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
%...
\end{tikzpicture}
}
yang ingin saya cetak bersama dengan nama mereka (termasuk argumen). Namun,
\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}
menghasilkan
Package tikz Error: Maaf, beberapa paket telah mendefinisikan ulang arti dari tanda dolar mode matematika. Ini tidak kompatibel dengan tikz dan pustaka calc-nya dan dapat menyebabkan kesalahan yang tidak dapat dipulihkan.
Saya kira \ show mencoba untuk memperluas argumennya di dalam \ verb. Saya bereksperimen dengan \ expandafter tetapi tidak membantu. Saat saya mengganti \ verb | | dengan \ texttt {}, \ show tidak mencetak nama makro sama sekali.
Jawaban
Pertama, lebih baik tidak mendefinisikan ulang primitif, misalnya \show
. Pilih saja nama perintah lain. Kemudian, \Verb
from fvextra
package lebih kuat daripada \verb
, saat digunakan di dalam makro lain.
\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}
