我的要求如下:
我通过使用以下标签实现了这一点:
\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{linguex}%
\usepackage{tikz}%
\usetikzlibrary{decorations.text,calc,arrows.meta}%
\usepackage{tikz-qtree}%
\usepackage{adjustbox}
%\usepackage{showframe}
\begin{document}
\ex.
\a. John destroyed the sandcastle.
\b.
\begin{adjustbox}{max width=0.91\textwidth}
\Tree [.InitP [.{\sc initiator} { John} ] [ [.Init ] [.ProcP
[.{\sc undergoer} { the sandcastle} ] [ [.Proc ] [.ResP [.{\sc
resultee} { $<$the sandcastle$>$ } ] [ [.Res ] [.XP \edge[roof];
{\sc ground$/$final state} ] ] ] ] ] ] ]
\end{adjustbox}
\end{document}
输出如下:
我如何实现左手标记部分,请指教..
答案1
这很容易做到,只需为短语的相关头创建命名节点,然后使用positioning
库在左侧添加一个节点即可。我使用箭头连接节点;如果您只想要一条没有箭头的线,请->
从\draw
命令中删除。如果您有很多这样的树,您可能会发现使用forest
包而不是包更容易做到这一点tikz-qtree
,因为它允许您通过添加键立即创建一个命名节点name=...
。
我已将两种解决方案添加到一个文档中。我还将times
包替换为newtxtext
和newtxmath
;该times
包已弃用。我还将所有内容更改为,\sc
因为\scshape
双字母字体更改命令也已弃用(请参阅双字母字体样式命令 (\bf,\it,...) 会在 LaTeX 中复活吗?我已经为条形级别创建了一个宏,如果您加载包,\1
它已经在环境中定义好了,但对于语法来说更通用。\Tree
tikz-qtree-compat
我还对您的树做了一些其他外观上的改变(由于您绘制的树不包含 Tense,因此我将其从标签上删除。)
\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage{newtxmath,newtxtext} % don't use {times} it's deprecated
\usepackage{linguex}%
\usepackage{tikz}%
\usetikzlibrary{positioning}%
\usepackage{tikz-qtree,tikz-qtree-compat}%
\usepackage[linguistics]{forest}
\newcommand*\1{\ensuremath{'}}
\usepackage{adjustbox}
\begin{document}
\ex.
\a. John destroyed the sandcastle.
\b.
\begin{adjustbox}{max width=0.91\textwidth}
\begin{tikzpicture}[baseline]
\Tree [.InitP [.{{\scshape initiator}\\John} ] [.Init\1 [.\node(Init){Init}; ] [.ProcP
[.{{\scshape undergoer}\\the sandcastle} ] [.Proc\1 [.\node(Proc){Proc}; ] [.ResP [.{{\scshape
resultee}\\$<$the sandcastle$>$ } ] [.Res\1 [.\node(Res){Res}; ] [.XP \edge[roof];
{\scshape ground$/$final state} ] ] ] ] ] ] ]
\node [below left=3cm of Init,font=\itshape] (D) {destroy};
\draw[->] (D.east) -- (Init);
\draw[->] (D.east) -- (Proc);
\draw[->] (D.east) -- (Res);
\end{tikzpicture}
\end{adjustbox}
\b.
\begin{forest}
[InitP [{{\scshape initiator}\\John} ] [Init\1 [Init,name=Init ] [ProcP
[{{\scshape undergoer}\\the sandcastle} ] [Proc\1 [Proc,name=Proc ] [ResP [{{\scshape
resultee}\\$<$the sandcastle$>$ } ] [Res\1 [Res,name=Res ] [XP[{\scshape ground$/$final state},roof ] ] ] ] ] ]]]
\node [below left=3.5cm of Init,font=\itshape] (D) {destroy};
\draw[->] (D.east) -- (Init);
\draw[->] (D.east) -- (Proc);
\draw[->] (D.east) -- (Res);
\end{forest}
\end{document}