如何在 tikz 树中拆分节点内容/右对齐?

如何在 tikz 树中拆分节点内容/右对齐?

这是我的代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{trees}


\tikzstyle{bag} = [text width=8em, text centered]

\begin{document}
\begin{tikzpicture}[-,>=stealth',level/.style={sibling distance = 2.5cm/#1,
  level distance = 1cm}] 
\node [bag] {$||$}
    child{node[bag] {$\&\&$}
      child{node[bag] {$enabled$}}
      child{node[bag] {$\&\&$}
          child{node[bag] {$tcas\_eq$}}
          child{node[bag] {$intent\_not\_known$}}
       }
    }
    child{node[bag] {$!$}
      child{node[bag] {$tcas\_eq$}}
    }
; 
\end{tikzpicture}
\end{document}

这是输出:

在此处输入图片描述

如何使最后两个节点的内容分开?

我想要这样的东西:

在此处输入图片描述

答案1

这可能不是最好的解决方案,但这里有一个答案,使用锚点将节点相对于其左/右边界而不是中心定位。我还使用修改后的样式bag来确保更紧密的间距:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{trees}


\tikzstyle{bag} = [text width=8em,
text centered]

\tikzstyle{bag_mod} = [text width=2em,
text centered]


\begin{document}
\begin{tikzpicture}[-,>=stealth',level/.style={sibling distance = 2.5cm/#1,
  level distance = 1cm}] 
\node [bag] {$||$}
    child{node[bag] {$\&\&$}
      child{node[bag] {$enabled$}}
      child{node[bag] {$\&\&$}
          child{node[bag_mod,left] {$tcas\_eq$}}
          child{node[bag_mod,right] {$intent\_not\_known$}}
       }
    }
    child{node[bag] {$!$}
      child{node[bag] {$tcas\_eq$}}
    }
; 
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

我想说这对我的包裹来说是一项完美的工作森林

\documentclass{article}
\usepackage{forest}

\begin{document}
\begin{forest}
  for tree=math content
  [||
    [\&\&
      [enabled]
      [\&\&
        [tcas\_eq]
        [intent\_not\_known]
      ]
    ]
    [!
      [tcas\_eq]
    ]
  ]
\end{forest}
\end{document}

(该math content样式仅在最新版本 1.03 中可用。在旧版本中,您可以说for tree={content format={\ensuremath{\forestoption{content}}}},或者简单地将每个节点的文本括在里面$...$。)

相关内容