อาร์กิวเมนต์แมโครขยายบางส่วน
Aug 18 2020
ฉันมีคลังภาพ tikz เช่น
\newcommand*{\mypic}[1]{
\begin{tikzpicture}
%...
\end{tikzpicture}
}
ซึ่งฉันต้องการพิมพ์พร้อมกับชื่อของพวกเขา (รวมถึงอาร์กิวเมนต์) อย่างไรก็ตาม
\renewcommand{\show}[1]{\verb|#1|\quad #1}
\show{\mypic{a}}
ผลิต
ข้อผิดพลาดของแพ็กเกจ tikz: ขออภัยบางแพ็กเกจได้กำหนดความหมายใหม่ของสัญลักษณ์ดอลลาร์ในโหมดคณิตศาสตร์ สิ่งนี้เข้ากันไม่ได้กับ tikz และไลบรารี Calc และอาจทำให้เกิดข้อผิดพลาดที่ไม่สามารถกู้คืนได้
ฉันเดาว่า \ show กำลังพยายามขยายอาร์กิวเมนต์ภายใน \ verb ฉันทดลองกับ \ expandafter แต่มันไม่ได้ช่วยอะไร เมื่อฉันแทนที่ \ verb | | ด้วย \ texttt {} \ show ไม่ได้พิมพ์ชื่อมาโครเลย
คำตอบ
3 muzimuzhiZ Aug 18 2020 at 12:15
ประการแรกดีกว่าที่จะไม่ redefine \show
ดั้งเดิมเช่น เพียงแค่เลือกชื่อคำสั่งอื่น จากนั้น\Verb
จากfvextra
แพ็กเกจจะมีประสิทธิภาพมากกว่า\verb
เมื่อใช้ภายในมาโครอื่น
\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}
