我遇到了一个非常大的树的问题。我想做的是将第一个节点(1 NP)向左移动,为其他节点腾出更多空间。支配 er 的第二个节点 V_e1 也可以向左移动。Adj 节点甚至可以进入 Det 节点的区域。这可能吗?
\documentclass{minimal}
\usepackage{graphicx,tikz-qtree}
\newcommand{\relliste}[1]{%
\mbox{%
$%
%
\left\langle \textrm{#1} \right\rangle%
$%
}%
}
\newcommand{\feattab}[1]{[\begin{tabular}[t]{@{}l@{}}#1 ]\end{tabular}}
\newcommand{\eliste}{%
\mbox{%
$\left\langle\right\rangle$}%
}
\begin{document}
\resizebox{\linewidth}{!}{%
\begin{tikzpicture}
\tikzset{level 1/.style={level distance=8\baselineskip}}%
\tikzset{level 2/.style={level distance=8\baselineskip}}%
\tikzset{level 3/.style={level distance=8\baselineskip}}%
\tikzset{level 4+/.style={level distance=6\baselineskip}}%
\tikzset{frontier/.style={distance from root=40\baselineskip}}%
\Tree[.{V$_{e1}$\feattab{
SPR \relliste{ },\\
COMPS \eliste\\
RELS \relliste{ h4:present(e1, h5), h5:eaqual\_rel(e1, x, y), h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.{{1} NP\feattab{
RELS \relliste{ },\\
HCONS \relliste{ } }} han ]
[.{V$_{e1}$\feattab{
SPR \relliste{ {1} },\\
COMPS \eliste\\
RELS \relliste{ h4:present(e1, h5), h5:equal\_rel(e, x, y), h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.{V$_{e1}$\feattab{
SPR \relliste{ {1} },\\
COMPS \relliste{ {2} },\\
RELS \relliste{ h4:present(e1, h5) },\\
HCONS \eliste }} \edge node[auto=left]{Inflectional LR};
[.{V$_e$\feattab{
SPR \relliste{ {1} },\\
COMPS \relliste{ {2} },\\
RELS \eliste,\\
HCONS \eliste }} er ] ]
[.{{2} NP$_{e1}$\feattab{
head|subj \relliste{ {1} NP$_x$ },\\
SPR \eliste,\\
RELS \relliste{ h5:equal\_rel(e1, x, y), h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.{NP$_y$\feattab{
SPR \eliste,\\
RELS \relliste{ h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.{{3} Det\feattab{
RELS \relliste{ h6:some(y, h7, h8) },\\
HCONS \relliste{ h7 $=_q$ h9 } }} en ]
[.{N$_y$\feattab{
SPR \relliste{ {3} }\\
RELS \relliste{ h9:smart(e2, y), h9:man(y) },\\
HCONS \eliste }}
[.{Adj\feattab{
RELS \relliste{ h9:smart(e2, y) },\\
HCONS \eliste }} klog ]
[.{N$_y$\feattab{
RELS \relliste{ h9:man(y) },\\
HCONS \eliste }} mand ] ] ]
]
]
]
\end{tikzpicture}}
\end{document}
答案1
\node
您可以通过使每个节点成为明确的 TikZ并指定节点的最小宽度来移动树中的节点:
\documentclass{minimal}
\usepackage{graphicx,tikz-qtree}
\newcommand{\relliste}[1]{%
\mbox{%
$%
%
\left\langle \textrm{#1} \right\rangle%
$%
}%
}
\newcommand{\feattab}[1]{[\begin{tabular}[t]{@{}l@{}}#1 ]\end{tabular}}
\newcommand{\eliste}{%
\mbox{%
$\left\langle\right\rangle$}%
}
\begin{document}
\resizebox{\linewidth}{!}{%
\begin{tikzpicture}
\tikzset{level 1/.style={level distance=8\baselineskip}}%
\tikzset{level 2/.style={level distance=8\baselineskip}}%
\tikzset{level 3/.style={level distance=8\baselineskip}}%
\tikzset{level 4+/.style={level distance=6\baselineskip}}%
\tikzset{frontier/.style={distance from root=40\baselineskip}}%
\Tree[.{V$_{e1}$\feattab{
SPR \relliste{ },\\
COMPS \eliste\\
RELS \relliste{ h4:present(e1, h5), h5:eaqual\_rel(e1, x, y), h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.\node[minimum width=4in] (NP1) {{1} NP\feattab{
RELS \relliste{ },\\
HCONS \relliste{ } }}; han ]
[.{V$_{e1}$\feattab{
SPR \relliste{ {1} },\\
COMPS \eliste\\
RELS \relliste{ h4:present(e1, h5), h5:equal\_rel(e, x, y), h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.\node[minimum width=4in] (VP) {V$_{e1}$\feattab{
SPR \relliste{ {1} },\\
COMPS \relliste{ {2} },\\
RELS \relliste{ h4:present(e1, h5) },\\
HCONS \eliste }}; \edge node[auto=left]{Inflectional LR};
[.{V$_e$\feattab{
SPR \relliste{ {1} },\\
COMPS \relliste{ {2} },\\
RELS \eliste,\\
HCONS \eliste }} er ] ]
[.{{2} NP$_{e1}$\feattab{
head|subj \relliste{ {1} NP$_x$ },\\
SPR \eliste,\\
RELS \relliste{ h5:equal\_rel(e1, x, y), h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.{NP$_y$\feattab{
SPR \eliste,\\
RELS \relliste{ h6:some(y, h7, h8), h9:smart(e2, y), h9:man(y) },\\
HCONS \relliste{ h7 $=_q$ h9 } }}
[.{{3} Det\feattab{
RELS \relliste{ h6:some(y, h7, h8) },\\
HCONS \relliste{ h7 $=_q$ h9 } }} en ]
[.{N$_y$\feattab{
SPR \relliste{ {3} }\\
RELS \relliste{ h9:smart(e2, y), h9:man(y) },\\
HCONS \eliste }}
[.{Adj\feattab{
RELS \relliste{ h9:smart(e2, y) },\\
HCONS \eliste }} klog ]
[.{N$_y$\feattab{
RELS \relliste{ h9:man(y) },\\
HCONS \eliste }} mand ] ] ]
]
]
]
\end{tikzpicture}}
\end{document}