tikz-qtree 将叶子对齐到第一行的底部(多行叶子)

tikz-qtree 将叶子对齐到第一行的底部(多行叶子)

我正在尝试使用tikz-qtree包创建树,其中一些叶子包含附加信息。但是,我希望叶子在第一行的底部对齐。MWE 将显示我遇到的问题:

(1)如果我设置anchor=base,叶子会在最底部垂直对齐,而我不希望在垂直对齐时考虑附加信息。

\documentclass{standalone}

\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}
    \begin{tikzpicture}
        \tikzset{%
            every tree node/.style={align=center,anchor=base}, %align leaves at bottom
        }%
        
        \Tree
        [.Root
            Tall
            {no\\add' info}
        ]
    \end{tikzpicture}
\end{document}

在此处输入图片描述

(2) 如果我更改anchor=north,叶子会对齐到最顶部。这更接近我想要的效果。但是,这样做的问题是“较高”的单词/字母(例如 l、t、f)的上限较高(?),因此单词会略微错位,如下所示:

\documentclass{standalone}

\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}
    \begin{tikzpicture}
        \tikzset{%
            every tree node/.style={align=center,anchor=north}, %align leaves at bottom
        }%
        
        \Tree
        [.Root
            Tall
            {no\\add' info}
        ]
    \end{tikzpicture}icture}
\end{document}

在此处输入图片描述

在第二个例子中,“T”和“n”的顶部垂直对齐。有没有办法让“Tall”和“no”在这两个单词的底部垂直对齐,而忽略附加信息?

答案1

在此处输入图片描述

一个简单的解决方案是\vphantom{f}向分支中添加“否”:

\documentclass[border=3.141592]{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}
    \begin{tikzpicture}
\tikzset{%
every tree node/.style={align=center, anchor=north}, %align leaves at bottom
        }%

        \Tree
        [.Root
            Tall
            {no\vphantom{f}\\add' info} % <---
        ]
    \end{tikzpicture}
\end{document}

编辑(1):

使用这个 forest包你将不会遇到对齐nides的问题:

\documentclass[border=3.141592]{standalone}
\usepackage{forest}

\begin{document}
    \begin{forest}
for tree = {
    inner sep=1pt,
    align=center,
    parent anchor=south,
    child anchor=north
            }
[Root
    [Tall]
    [no \\add' info]
]
    \end{forest}
\end{document}

编译结果和之前一样:

在此处输入图片描述

编辑(2):

使用森林,您可以通过以下方式在序言中定义其样式\forestset

\documentclass[border=3.141592]{standalone}
\usepackage{forest}
\forestset{  % <---
  my tree/.style={%
for tree={inner sep = 1pt, % if you liked
          align=center,
          parent anchor=south,
          child anchor=north
                  }
        }}

\begin{document}
    \begin{forest} my tree  % <---
[Root
    [Tall]
    [no \\add' info]
]
    \end{forest}
\end{document}

相关内容