Latex Tikz:节点组的水平居中
我需要将图表的每一行与中心对齐。我正试图用xshift来实现这一点。代码如下:Latex Tikz:节点组的水平居中,latex,tikz,centering,pgf,Latex,Tikz,Centering,Pgf,我需要将图表的每一行与中心对齐。我正试图用xshift来实现这一点。代码如下: \begin{tikzpicture}[node distance=1.5cm, auto, text centered] \tikzstyle{every node}=[draw,ball]; \begin{scope}[xshift=1.5cm] \node (A) {A}; \node [right of=A] (B) {B}; \node
\begin{tikzpicture}[node distance=1.5cm, auto, text centered]
\tikzstyle{every node}=[draw,ball];
\begin{scope}[xshift=1.5cm]
\node (A) {A};
\node [right of=A] (B) {B};
\node [right of=B] (C) {C};
\node [right of=C] (D) {D};
\end{scope}
\begin{scope}[yshift=-1.5cm]
\node (AB) {AB};
\node [right of=AB] (AC) {AC};
\node [right of=AC] (AD) {AD};
\node [right of=AD] (BC) {BC};
\node [right of=BC] (BD) {BD};
\node [right of=BD] (CD) {CD};
\end{scope}
\begin{scope}[yshift=-3cm,node distance=2cm,xshift=1cm]
\node (ABC) {ABC};
\node [right of=ABC] (ABD) {ABD};
\node [right of=ABD] (ACD) {ACD};
\node [right of=ACD] (BCD) {BCD};
\end{scope}
\begin{scope}[xshift=4cm, yshift=-4.5cm, node distance=2cm]
\node (ABCD) {ABCD};
\end{scope}
\end{tikzpicture}
还有别的办法吗?不要每次都更改xshift值。您可以使每一行都有自己的矩阵,从而可以有效地将一组节点分组为一组 你的榜样 注意:确保
\usetikzlibrary{matrix}
导致
(我自己制作了
ball
style。)作为一种解决办法,你能让每个scope
都有自己的图片吗?然后你可以将整个图片堆栈居中。我想在不同行上的节点之间绘制链接(在正确对齐之后)。所以,我应该在每个tikzpicture中使用“叠加”/“记住图片”,这有点复杂。我想可能有一些命令可以将默认节点对齐方式从左改为中…我一直在努力解决相同的(-ish)问题,到目前为止还没有解决方案+1问一个有趣的问题。你的申请是什么?如果你在画一棵树(看起来),你可以使用更具描述性的相对位置信息,让Tikz很好地处理位置。顺便说一下,这种图叫做Hasse图。哦。我刚刚意识到你发布了一条关于矩阵的评论。我希望这是有用的。我想做一个大矩阵,而不是每个范围一个矩阵,谢谢!
\begin{tikzpicture}[auto]
\begin{scope}[]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (A) {A}; &
\node (B) {B}; &
\node (C) {C}; &
\node (D) {D}; \\
};
\end{scope}
\begin{scope}[yshift=-1.5cm]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (AB) {AB}; &
\node (AC) {AC}; &
\node (AD) {AD}; &
\node (BC) {BC}; &
\node (BD) {BD}; &
\node (CD) {CD}; \\
};
\end{scope}
\begin{scope}[yshift=-3cm]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (ABC) {ABC}; &
\node (ABD) {ABD}; &
\node (ACD) {ACD}; &
\node (BCD) {BCD}; \\
};
\end{scope}
\begin{scope}[yshift=-4.5cm]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (ABCD) {ABCD}; \\
};
\end{scope}
\end{tikzpicture}