我想创建一个新命令来使用 tikz 绘制某个图表。代码如下:
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newcommand{\D}[4]{
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=1.5em,column
sep=1.5em,minimum width=2em]
{
&\\
#2& \\
&\\};
\path[thick]
(m-1-2) edge (m-2-1)
edge (m-2-3)
(m-3-2) edge (m-2-1)
edge (m-2-3);
\end{tikzpicture}
}
\begin{document}
\D{a}{b}{c}{d}
\end{document}
但我收到了这条消息:
! Undefined control sequence.
<argument> \pgf@matrix@last@nextcell@options
l.23 \D{a}{b}{c}{d}
我该如何解决?
答案1
正如符号 1 在评论中提到的,这是因为&
,但您可以在选项ampersand replacement=\&
中使用matrix
,并使用\&
而不是&
。
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newcommand{\D}[4]{
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=1.5em,column
sep=1.5em,minimum width=2em,ampersand replacement=\&]
{
\\&\\
#2\& \\\
\\&\\};
\path[thick]
(m-1-2) edge (m-2-1)
edge (m-2-3)
(m-3-2) edge (m-2-1)
edge (m-2-3);
\end{tikzpicture}
}
\begin{document}
\D{a}{b}{c}{d}
\end{document}