如何在单个节点上绘制两条线的树?使用 tikz 包!

如何在单个节点上绘制两条线的树?使用 tikz 包!

我想用来\usepackage{tikz-qtree}画一棵树。代码是:

\begin{tikzpicture}[baseline=2pt]
 \Tree [.TP 
        [.DP {\O}
          [.D' [.D {\O}  ] 
            [.NP [.N' [.N Andy ]]]]] 
        [.T' 
          [.T $[past]$\\$[EPP]$\\$[3sg]$ ] 
        [.VP 
           [.V' 
            [.V leave\\ ]]]]]       
\end{tikzpicture}
\end{exe}

结果如下。但我不希望[past][EPP][3sg]是同一行。我尝试\\在它们之间添加,但它只会将这一部分更改为多分支树。有什么错误吗?非常感谢您的帮助!!!

在此处输入图片描述

答案1

编辑:

tikz-qtree使用带有 ˙linguistics` 选项的包可以实现与 相同的结果forest。它是为所讨论的情况而设计的。使用它,MWE 可以写成如下形式:

\documentclass[margin=3.14159mm]{standalone}
\usepackage[linguistics]{forest}
                
\begin{document}
    \begin{forest}
[TP
    [DP 
        [\O]
        [D'
            [D 
                [\O]
            ]
            [NP
                [N'
                    [N
                        [Andy ]
                    ]
                ]
            ]
        ]
    ]
    [T'
        [T 
            [{$[past]$}\\{$[EPP]$}\\{$[3sg]$} ]
        ]
        [VP
           [V'
                [V
                    [leave]
                ]
           ]
        ]
    ]
]
    \end{forest}
\end{document}

使用“pure” forest包可以获得相同的结果。在这种情况下,我们需要定义规范for tree如下:

\documentclass[margin=3.14159mm]{standalone}
\usepackage{forest}
                
\begin{document}
    \begin{forest}
for tree = {
% nodes
    align=center,
    inner ysep=0pt,
% tree
    parent anchor=south,
    child anchor=north,
            }
[TP
% body of tree, the same as before
]
    \end{forest}
\end{document}

在此处输入图片描述

笔记:@ Alan Munn,非常感谢您的评论!

答案2

您可以使用该选项align=center来激活换行符。

\begin{tikzpicture}[baseline=2pt]
\tikzset{every tree node/.style={anchor=north,align=center}}
 \Tree [.TP 
        [.DP {\O}
          [.D' [.D {\O}  ] 
            [.NP [.N' [.N Andy ]]]]] 
        [.T' 
          [.T $[past]$\\$[EPP]$\\$[3sg]$ ] 
        [.VP 
           [.V' 
            [.V leave\\ ]]]]]       
\end{tikzpicture}

在此处输入图片描述

(感谢 Alan Munn 提出此\tikzset方法。)

相关内容