我尝试切换到 XeLaTeX,但该软件包tree-dvips
会出现问题。它似乎需要 PostScript,pdftricks
这会导致很多其他问题(\begin{center}
为所有内容设置环境,这会增加很多空间等等)。
latex
我可以在++下运行以下代码dvips
,ps2pdf
但是当我调用 XeLaTeX 时我会收到警告,并且不会绘制节点之间的连接。
** WARNING ** Unknown token "@beginspec"
** WARNING ** Interpreting PS code failed!!! Output might be broken!!!
** WARNING ** Interpreting special command ps: (ps:) failed.
** WARNING ** >> at page="1" position="(261.137, 712.838)" (in PDF)
** WARNING ** >> xxx "ps:@beginspec/nodemargin 2.0 pt def 0.3 pt setlinewidth [] 0..."
** WARNING ** >> Reading special command stopped around >>/nodemargin 2.0 pt def 0.3 pt setlinewidth [] 0 setdash/arro...<<
** WARNING ** Unknown token "@beginspec"
** WARNING ** Interpreting PS code failed!!! Output might be broken!!!
** WARNING ** Interpreting special command ps: (ps:) failed.
** WARNING ** >> at page="1" position="(117.303, 680.041)" (in PDF)
** WARNING ** >> xxx "ps:@beginspec/nodemargin 2.0 pt def 0.3 pt setlinewidth [] 0..."
** WARNING ** >> Reading special command stopped around >>/nodemargin 2.0 pt def 0.3 pt setlinewidth [] 0 setdash/arro...<<
** WARNING ** Unknown token "@beginspec"
欢迎提出任何关于如何修复此问题或以无痛方式摆脱它的建议tree-dvips
(我已经完成了大量树木...)。
这是我的代码:
\documentclass{scrbook}
\usepackage{graphicx}
\usepackage{tree-dvips}
\begin{document}
This is some text and the figure should be the size of the text not larger and not smaller.
\begin{figure}[h]
\resizebox{\linewidth}{!}{
\begin{tabular}{@{}ccccc@{}}
\multicolumn{5}{c}{\node{sign}{sign}}\\[5ex]
\multicolumn{2}{c}{\node{root}{root}} & & \node{word}{word} & \node{phrase}{phrase}\\[3ex]
\node{noun}{noun-root} & \multicolumn{2}{c}{\node{verb}{verb-root}} & & \node{hp}{headed-phrase} \\[3ex]
& \node{iv}{intransitive-verb} & \multicolumn{2}{c}{\node{tv}{transitive-verb}} & \node{hap}{head-complement-phrase}\\[3ex]
& \node{siv}{strict-intr-verb} & \node{stv}{strict-transitive-verb} & \node{dv}{ditransitive-verb} \\[3ex]
& \node{schlaf}{schlaf-} & \node{lieb}{lieb-} & \node{geb}{geb-}\\
& (`to sleep') & (`to love') & (`to give')\\
\end{tabular}%
\nodeconnect{sign}{root}\nodeconnect{sign}{word}\nodeconnect{sign}{phrase}%
\nodeconnect{root}{noun}\nodeconnect{root}{verb}\nodeconnect{phrase}{hp}%
\nodeconnect{hp}{hap}%
\nodeconnect{verb}{iv}\nodeconnect{verb}{tv}\nodeconnect{tv}{stv}\nodeconnect{tv}{dv}%
\nodeconnect{iv}{siv}%
{\makedash{4pt}%
\nodeconnect{siv}{schlaf}\nodeconnect{stv}{lieb}\nodeconnect{dv}{geb}%
}%
}
\end{figure}
This is some text and the figure should be the size of the text not larger and not smaller.
\end{document}
答案1
这是使用 的树的一个版本。您可以圈出节点,用箭头连接它们等。如果您在网站上tikz-qtree
搜索问题,您会发现很多示例;文档中也有很多。为了展示您可以做什么,我在几个节点周围放了框,并用箭头将它们连接起来。tikz-qtree
tikz-qtree
\documentclass{scrbook}
\usepackage{fontspec}
\usepackage{tikz-qtree}
\begin{document}
This is some text and the figure should be the size of the text not larger and not smaller.
\begin{tikzpicture}[every node/.style={align=center}]
\Tree [.sign
[.root
[.noun-root ]
[.verb-root
[.intransitive-verb
[.strict-intr-verb
\edge[dashed]; [.{schlaf-\\(`to sleep')} ] ] ]
[.transitive-verb
\edge[dashed]; [.\node[draw,red] (Lieb) {lieb-\\(`to love')}; ] ]
[.ditransitive-verb
\edge[dashed]; [.{geb\\(`to give')} ] ]]] ]
[.\node[draw,red] (Wd) {word}; ]
[.phrase
[.headed-phrase
[.head-complement-phrase ]]]]
\draw[thick] (Lieb.south) edge [bend right=40,->] (Wd);
\end{tikzpicture}
\end{document}
答案2
我发现了一个非常简单的方法:使用 pst-nodes 并将全部替换为,\node
并将\rnode
全部替换\nodeconnect
为\ncline
。\anodeconnect
必须替换为\ncline{->}
。这让我在几分钟内就得到了一份可处理的文档。
尽管如此,昨天我还是爱上了 triz-qtree 包。这些树看起来比我用 tree-dvips 画的树要统一得多,而且画树也容易得多。代码现在甚至可以放在一个屏幕上。所以这个包的提示绝对改变了我的生活!再次感谢!
但有些事情无法自动完成,很高兴知道 pst-node 解决方案仍然存在。