将 tree-dvips 与 XeLaTeX 结合使用

将 tree-dvips 与 XeLaTeX 结合使用

我尝试切换到 XeLaTeX,但该软件包tree-dvips会出现问题。它似乎需要 PostScript,pdftricks这会导致很多其他问题(\begin{center}为所有内容设置环境,这会增加很多空间等等)。

latex我可以在++下运行以下代码dvipsps2pdf但是当我调用 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-qtreetikz-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 解决方案仍然存在。

相关内容