![Tikz 中的节点定位](https://linux22.com/image/292690/Tikz%20%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9%E5%AE%9A%E4%BD%8D.png)
我正在尝试使用以下代码在 Tikz 中构建一个有边框的 4 x 2 数字数组。
\documentclass{article}
\usepackage{tikz}
\newcommand{\octada}[8]{
\begin{tikzpicture}
\draw (0,1.05) -- (1.6,1.05) -- (1.6,-1.05) -- (0,-1.05) -- (0,1.05);
\draw (0.4,0.75) node {$#1$};
\draw (1.2,0.75) node {$#5$};
\draw (0.4,0.25) node {$#2$};
\draw (1.2,0.25) node {$#6$};
\draw (0.4,-0.25) node {$#3$};
\draw (1.2,-0.25) node {$#7$};
\draw (0.4,-0.75) node {$#4$};
\draw (1.2,-0.75) node {$#8$};
\end{tikzpicture}
}
\begin{document}
\octada{1}{1}{2}{2}{-1}{-1}{2}{2}
\end{document}
这将生成一个 4 x 2 数组,其中的条目在其列内居中对齐。
是否可以修改我的代码,以便每列中的数字都彼此右对齐(即减号不会影响数字的对齐)?
答案1
我猜anchor=east
这就是你想要的:
\documentclass{article}
\usepackage{tikz}
\newcommand{\octada}[8]{
\begin{tikzpicture}
\draw (0,1.05) -- (1.6,1.05) -- (1.6,-1.05) -- (0,-1.05) -- (0,1.05);
\draw (0.4,0.75) node {$#1$};
\draw[anchor=east] (1.2,0.75) node {$#5$};
\draw (0.4,0.25) node {$#2$};
\draw[anchor=east] (1.2,0.25) node {$#6$};
\draw (0.4,-0.25) node {$#3$};
\draw[anchor=east] (1.2,-0.25) node {$#7$};
\draw (0.4,-0.75) node {$#4$};
\draw[anchor=east] (1.2,-0.75) node {$#8$};
\end{tikzpicture}
}
\begin{document}
\octada{1}{1}{2}{2}{-1}{-1}{2}{2}
\end{document}
您可能希望对节点中文本的对齐方式和宽度进行更精细的控制,为此,pgf 手册的“17.4.3 文本参数:多行文本的对齐方式和宽度”一节中描述了相应的键。
另外,您可以考虑使用\matrix
而不是手动定位。它在 pgf 手册的“20.2 矩阵是节点”一节中进行了描述。