我试图在 tikz-qtree 树中仅围绕部分文本绘制一个框,但我能做的最接近的是:
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture} \tikzset{every tree node/.style={align=center, anchor=north}}
\Tree
[.parent
[.child \node[draw]{boxed}; unboxed ]
]
\end{tikzpicture}
\end{document}
不幸的是,这会生成“boxed”和“unboxed”作为“child”的子节点,而我更希望它们成为“child”中文本的一部分。我一直在节点上做无线标签,如下所示 -
[.{child \\ label} ]
所以我希望能够做这样的事情 -
[.{child \\ \node[draw]{boxed};unboxed} ]
在“child”下的一行中给出“[boxed]unboxed”。问题是将节点放在 [.{} ] 元素内会导致未定义的控制序列错误。有没有办法解决这个问题,或者我是否必须将整个东西放在一个装箱节点内?
答案1
也许我误解了这个问题,这就是你想要的东西吗?
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture} \tikzset{every tree node/.style={align=center, anchor=north}}
\Tree
[.parent
[.\node (a) {child \\ \fbox{boxed} unboxed}; ]
]
\end{tikzpicture}
\end{document}