树中的垂直对齐

树中的垂直对齐

我使用base=bottombase=top将子节点中的文本垂直对齐。但是,我没有得到所需的输出。我希望在边缘前面显示“你可以”,而不是“如果你”。

以下是我使用的代码:

\documentclass{article}
\usepackage[edges]{forest}

\begin{document}
    \begin{forest}
        for tree={forked edge, anchor=center}
        [,phantom,s sep=1cm
            [example, for tree={grow'=east}
                [You can\\if you\\try hard, align=left, base=bottom]
                [child2]
                [child3]
                [child4]
                [child5]
            ]
        ]
    \end{forest}
\end{document}

在此处输入图片描述

答案1

base您需要设置相对于相关节点的锚点的子锚点(线连接的地方) ,您可以通过重新定义默认值来实现edge pathforked edge

edge path'={
    (!u.parent anchor) -- ++(\forestoption{fork sep},0) |- ([yshift=.5ex].base west)
}

完整代码:

\documentclass{article}
\usepackage[edges]{forest}

\begin{document}
    \begin{forest}
        for tree={forked edge, anchor=west, edge path'={
            (!u.parent anchor) -- ++(\forestoption{fork sep},0) |- ([yshift=.5ex].base west)
        }}
        [,phantom,s sep=1cm
            [example, for tree={grow'=east}
                [You can\\if you\\try hard, align=left]
                [You need\\to adjust, align=left]
                [child3]
                [child4]
            ]
        ]
    \end{forest}
\end{document}

在此处输入图片描述

相关内容