\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[help lines](0,0)grid(3,3);
\def\line_segment#1;
{
\draw(#1[0],#1[1])--(2,2);
}
\line_segment{1,1};
\end{tikzpicture}
\end{document}
我想在 (1,1) 和 (2,2) 之间画一条线段。我已经编写了上述代码来实现它。编译成功完成,但是从图中可以看出实际的第一个坐标不正确。
下一步我该做什么?
答案1
您尝试的方法几乎有效。您只需添加一些括号,并注意,宏名称不能包含下划线。
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[help lines](0,0)grid(3,3);
\def\lineSegment#1;{
\draw({{#1}[0]},{{#1}[1]})--(2,2);
}
\lineSegment{1,1};
\end{tikzpicture}
\end{document}
当然,
\def\lineSegment#1;{
\draw(#1)--(2,2);
}
也可以使用,并且您也可以使用 pgf 键:
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[line segment/.code={\draw({{#1}[0]},{{#1}[1]})--(2,2);}]
\draw[help lines](0,0)grid(3,3);
\tikzset{line segment={1,1}}
\end{tikzpicture}
\begin{tikzpicture}[line segment/.code={\draw(#1)--(2,2);}]
\draw[help lines](0,0)grid(3,3);
\tikzset{line segment={1,1}}
\end{tikzpicture}
\end{document}