TikZ-qtree 中边标签与边的距离

TikZ-qtree 中边标签与边的距离

我正在使用 制作一棵树TikZ-qtree,我需要在边缘上放置标签。现在它看起来像这样:

\begin{tikzpicture}
\Tree
    [.$\alpha$
        \edge node[left, pos=.2]{\scriptsize $p$};
        [.\phantom{$\beta$} ]
        \edge node[left, pos=.6]{\scriptsize $a$};
        [.$\alpha$ ]
        \edge node[right, pos=.2]{\scriptsize $b$};
        [.$\beta$ ]
]
\end{tikzpicture}

现在,“a”距离中心边缘相当远,“b”距离最右边缘相当近:

在此处输入图片描述

理想情况下,“a”应该更靠近中间边缘,“b”应该离右边缘稍远一些。有人知道如何实现这一点吗?

答案1

更好地控制这些nodes 的位置的一种方法是将它们定义为node之外的 s \Tree,然后\usetikzlibrary{positioning}。此库可让您轻松地将nodes 相对于彼此放置。因此,我将树的最顶部定义为node,并定义了其他部分相对于它的位置:

\documentclass{standalone}

\usepackage{tikz-qtree}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
    \Tree
        [.\node (alpha) {$\alpha$};
            [.\phantom{$\beta$} ]
            [.$\alpha$ ]
            [.$\beta$ ]
        ]

    \node [below left=.1cm of alpha, xshift=.05cm] {\scriptsize $p$};
    \node [below=.2cm of alpha,xshift=-.1cm] {\scriptsize $a$};
    \node [below right=.1cm of alpha, xshift=-.05cm] {\scriptsize $b$};
\end{tikzpicture}

\end{document}

在此处输入图片描述

希望上面的代码能让您初步了解如何使用库控制节点的放置positioning。您可能还想查看TikZ & PGF手动的(第 185 页),特别是当您希望进一步调整这些节点的位置时。

相关内容