我有一个如下所示的 TikZ 代码。如您在 \foreach 中的第二行所见,我希望箭头逐个放置在下方。但是它不起作用。我尝试调试了一段时间,但还没有修复它。
\begin{tikzpicture}[scale = 0.6]
\foreach \n in {1,2,3,4,5}{
\node[shape=circle,draw,inner sep=0.7](number \n) at (\n,0) {$a_\n$};
\draw[|->,yshift=-\n cm](number 1.west) -- (number \n.east);
}
\node[inner sep=1] at (6,0) {$\cdots$};
\end{tikzpicture}
我应该写一些类似的东西yshift=(-\n) cm
来告诉引擎优先级吗?
答案1
这是一种方法。你可以做yshift
任何你想做的事,但(number \n)
不能移动。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale = 0.6]
\foreach \n in {1,2,3,4,5}{
\node[shape=circle,draw,inner sep=0.7](number \n) at (\n,0) {$a_\n$};
\coordinate (level \n) at (0,-\n);
\draw[|->] (number 1.west |- level \n) -- (number \n.east |- level \n);
}
\node[inner sep=1] at (6,0) {$\cdots$};
\end{tikzpicture}
\end{document}
事实证明您可以在坐标内部应用 yshift。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale = 0.6]
\foreach \n in {1,2,3,4,5}{
\node[shape=circle,draw,inner sep=0.7](number \n) at (\n,0) {$a_\n$};
\draw[|->] ([yshift=-\n cm] number 1.west) -- ([yshift=-\n cm] number \n.east);
}
\node[inner sep=1] at (6,0) {$\cdots$};
\end{tikzpicture}
\end{document}