\documentclass[tikz]{standalone}
\usepackage{pgf,tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure}[t]
\begin{tikzpicture}[node distance=0.2em]
\node (T0) at (0,0) {$T_{0}$};
\node (T1) [below= of T0] {$T_{1}$};
\foreach \x in {2,3,...,8} {
\pgfmathsetmacro\result{\x-1}
\node (T\x) [below=of T\result] {$T_{\x}$};
}
\end{tikzpicture}
\end{figure}
\end{document}
嗨!在上面的代码中,我创建了 9 个节点。前两个不在循环中的节点完全对齐。其余的节点则不是。有人能提出一个解决方案,让所有节点都对齐吗?(除了明显的复制和粘贴解决方案)。
我认为问题在于定位库,因为如果我使用,\node (T\x.0) [below of = T\result] {$T_{\x}$};
那么它会正确显示,但我必须手动调整所有节点的距离。该图包含更多节点,为了简单起见,我没有将其包括在内。下面您可以看到代码的结果。
答案1
我不确定我是否正确理解了你的问题,但可以通过以下方式将节点排列在垂直线上,并与节点中心对齐:
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[node distance=0.2em]
\node (T0) at (0,0) {$T_{0}$};
\foreach[count=\xi from 0] \x in {1,2,...,8}
\node[below=of T\xi] (T\x) {$T_{\x}$};
\end{tikzpicture}
\end{document}
答案2
您可以使用\pgfmathtruncatemacro
而不是\pgfmathsetmacro
。问题是\pgfmathsetmacro
将宏设置为浮点数;\pgfmathtruncatemacro
将其截断为整数。
顺便说一下,如果您加载,tikz
则不需要明确加载pgf
,而且,对于独立类,该[tikz]
选项意味着您不必加载 TikZ。
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[node distance=0.2em]
\node (T0) at (0,0) {$T_{0}$};
\node (T1) [below= of T0] {$T_{1}$};
\foreach \x in {2,3,...,8} {
\pgfmathtruncatemacro\result{\x-1}
\node (T\x) [below=of T\result] {$T_{\x}$};
}
\end{tikzpicture}
\end{document}