我有这个代码(基于 Andrew 的回答如何在定义的 TikZ 命令中使用旋转?)。
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{xparse}
\NewDocumentCommand\Triangle{ O{} r()}{% Syntax: [draw options] (lefthand endpoint
\draw[#1] (#2) node{$\bullet$} -- ++(1,1.5) node{$\bullet$};
\draw[#1] (#2) -- ++(2,0) node{$\bullet$};
\draw[#1] ($(#2)+(1,1.5)$) -- ++(1,-1.5);
}
\begin{document}
\begin{center}
\begin{tikzpicture}
\Triangle[rotate=30](0,0);
\Triangle[rotate=-10](2.5,0);
\Triangle(5,0);
\end{tikzpicture}
\end{center}
\end{document}
现在我想添加另外三个参数作为名称来替换顶点处的项目符号。我尝试按照多个博客以及 xparse 文档中的说明进行操作,但无法使其工作。我相信一旦你知道了正确的方法就很简单。有人可以给我演示一下吗?
答案1
扩展我的评论:您可以执行以下操作:
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{xparse}
\NewDocumentCommand\Triangle{ O{} mmm r()}{
% Syntax: [draw options]{node1}{node2}{node3}(lefthand endpoint)
\draw[#1] (#5) node{$#2$} -- ++(1,1.5) node{$#3$};
\draw[#1] (#5) -- ++(2,0) node{$#4$};
\draw[#1] ($(#5)+(1,1.5)$) -- ++(1,-1.5);
}
\begin{document}
\begin{center}
\begin{tikzpicture}
\Triangle[rotate=30]{A}{B}{C}(0,0);
\Triangle[rotate=-10]{D}{E}{F}(2.5,0);
\Triangle{G}{H}{I}(5,0);
\end{tikzpicture}
\end{center}
\end{document}
生产:
的参数\Triangle
指定为O{} mmm r()
。按顺序,这些意味着:
O{}
表示这#1
是一个可选参数,以 给出[#1]
,默认值为“无”。这用于为\draw
via提供一个可选参数\draw[#1]
mmm
表示#2
和#3
是#4
强制参数(也可以指定为m m m
等)r()
表示这#5
是必需/强制的参数,必须以以下形式给出(#5)