Tikz 中的节点定位

Tikz 中的节点定位

我正在尝试使用以下代码在 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 矩阵是节点”一节中进行了描述。

相关内容