Kısmen genişleyen makro argüman

Aug 18 2020

Tikz resimleri içeren bir kütüphanem var, örneğin.

\newcommand*{\mypic}[1]{
\begin{tikzpicture}
 %...
\end{tikzpicture}
 }

isimleriyle birlikte yazdırmak istediğim (argümanlar dahil). Ancak,

\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}

üretir

Paket tikz Hatası: Üzgünüz, bazı paketler matematik modu dolar işaretinin anlamını yeniden tanımladı. Bu, tikz ve onun calc kitaplığı ile uyumsuzdur ve düzeltilemez hatalara neden olabilir.

Sanırım \ show argümanını \ verb içinde genişletmeye çalışıyor. \ Expandafter ile denedim ama yardımcı olmadı. \ Verb | 'i değiştirdiğimde | | \ texttt {} ile, \ show makro adını hiç yazdırmadı.

Yanıtlar

3 muzimuzhiZ Aug 18 2020 at 12:15

İlk olarak, örneğin ilkel ifadeyi yeniden tanımlamamak daha iyidir \show. Sadece başka bir komut adı seçin. Daha sonra, \Verbgelen fvextrapaket daha sağlamdır \verbbir makro içinde kullanıldığında,.

\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}