如何将 tikz 列与空列对齐

如何将 tikz 列与空列对齐

我想使用“right of”对齐三列,并使用 \phantom{} 将项目放置在空位置旁边。但是,该元素似乎发生了偏移。在这里使用 \phantom 有什么问题?我想我应该使用类似 \phantom[node] 的东西。有类似的东西吗?( \phantom{\node (X2M) [ right of=X2] {$L_3$};} 给出相同的结果。

好的,我找到了一个近似解决方案,但我修改了问题。从“节点距离”开始,我猜测诸如中心或最左边的位置等会对齐,因此我可以像使用网格一样放置我的对象。我错了吗?

在此处输入图片描述

\documentclass[english,14pt]{memoir}

\usepackage{tikz}   
\usetikzlibrary{arrows,automata}

\begin{document}
 \begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,
                     semithick]
   \tikzstyle{every state}=[scale=0.75]
   \node[state]  (L3)                    {$L_3$};
   \node[state]  (L4) [ below of=L3]     {$L_3$};

   \node[state]  (X1) [ left of=L3]     {$X_1$};
   \node         (XM) [ below of=X1]     {};
   \node[state]  (X2) [ below of=XM]     {$X_2$};

   \node (X2M) [ right of=X2]     {\phantom{$L_3$}};

   \node         (C3) [ right of=L3] {$Cycle\ 3$};
   \node         (C4) [ right of=L4] {$Cycle\ 4$};
   \node         (C5) [ right of=X2M] {$Cycle\ 5$};

  \path 
    (L3) edge [bend right] (X2)
    (L4) edge  (X2);
 \end{tikzpicture}
\end{document}

答案1

请尝试以下操作:

\documentclass[english,14pt]{memoir}
\usepackage{tikz}
\usetikzlibrary{arrows,automata,positioning}

\begin{document}
 \begin{tikzpicture}[->,>=stealth', semithick, shorten >=1pt,
      auto,
      node distance = 1.5cm and 1.5cm,
 every state/.style = {scale=0.75}
                     ]
% middle column
\node[state]  (L3)                      {$L_3$};
\node[state]  (L4)  [below=of L3]       {$L_3$};
% left column
\node[state]  (X1)  [left= of L3]       {$X_1$};
\node[state]  (X2)  [below left=of L4]  {$X_2$};
% labels
\node   (C3) [right=of L3]              {\emph{Cycl} 3};
\node   (C4) [right=of L4]              {\emph{Cycl} 4};
\node   (C5) [right=of L3.east |- X2]   {\emph{Cycl} 5};
%
\path   (L3) edge [bend right] (X2)
        (L4) edge  (X2);
 \end{tikzpicture}
\end{document}

在此处输入图片描述

我添加了 tikzlibrary positioning ,并通过它帮助消除了对幻影节点的需求。通过正确定义,node distance所有节点都可以放置在您想要的位置。同样,在右列中,与定义的坐标对齐,L3.east |- X2并且再次不需要“幻影”节点。

答案2

对不起,打扰你。

\phantom{\node[state] (X2M) [ 右侧=X2] {$L_3$};}

作品。

相关内容