这是我的代码:
\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}}}}
,或者简单地将每个节点的文本括在里面$...$
。)