tree-dvips 语言学文档的替代方法,使用 pdftex

tree-dvips 语言学文档的替代方法,使用 pdftex

我正在尝试找到一种将 avm.sty 中的两个对象链接在一起的方法。我想要的结果正是此处指定的结果:http://www.essex.ac.uk/linguistics/external/clmt/latex4ling/avms/#4

我使用的是 pdftex,所以 tree-dvips 不起作用。如何在 pdftex 中实现相同的效果?我假设可以使用 tikz 来实现,但我无论如何也想不出如何实现。

示例代码如下:

\begin{avm}
\[{} PRED `avoid <SUBJ, OBJ>'; TNS $\neq$ PAST \\
     TOPIC \[ PRED `kind<COMP>' \\
                    DEF +; LOC FAR; NUM SG \\
                    COMP \[ PRED `of <OBJ>' \\
                            OBJ \[ PRED `cake'\] \] \] \\
     SUBJ \[ PRED `pro'; NUM SG; PERS 1; CASE NOM\] \\
     OBJ \[ $\qquad$ \] \\
     ADJ \[ PRED `usually'\] \]
\end{avm}

tree-dvips 的实现如下:

\begin{avm}
\[{} PRED `avoid <SUBJ, OBJ>'; TNS $\neq$ PAST \\
     \node{topic}{TOPIC \[ PRED `kind<COMP>' \\
                    DEF +; LOC FAR; NUM SG \\
                    COMP \[ PRED `of <OBJ>' \\
                            OBJ \[ PRED `cake'\] \] \]} \\
     SUBJ \[ PRED `pro'; NUM SG; PERS 1; CASE NOM\] \\
     \node{object}{OBJ \[ $\qquad$ \]} \\
     ADJ \[ PRED `usually'\] \]
\end{avm}
\nodecurve[r]{topic}[r]{object}{2in}

我能想到的最好的使用 tikz 的方法是:

\begin{avm}
\[{} PRED `avoid <SUBJ, OBJ>'; TNS $\neq$ PAST \\
     \tikz \node (topic) {TOPIC \[ PRED `kind<COMP>' \\
                    DEF +; LOC FAR; NUM SG \\
                    COMP \[ PRED `of <OBJ>' \\
                            OBJ \[ PRED `cake'\] \] \]}; \\
     SUBJ \[ PRED `pro'; NUM SG; PERS 1; CASE NOM\] \\
     \tikz \node (object) {OBJ \[ $\qquad$ \]}; \\
     ADJ \[ PRED `usually'\] \] \tikz \node (viapoint) {};
\end{avm}

\tikz[overlay] \draw[-] (topic) to[out=0,in=90  ] (viapoint)
                        (viapoint) to[out=270,in=0] (object);

然而,这会导致两条不连续的线,其中一条穿过其他文本。

任何有关改进的帮助都将不胜感激。

答案1

这是使用该库的解决方案tikzmark。(单独记录:texdoc tikzmark将显示其文档。)

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{avm}
\usepackage{tikz}
\usetikzlibrary{tikzmark,positioning}
\begin{document}
\begin{avm}
\[{} PRED `avoid <SUBJ, OBJ>'; TNS $\neq$ PAST \\
      TOPIC \[ PRED `kind<COMP>' \\
                    DEF +; LOC FAR; NUM SG \\
                    COMP \[ PRED `of <OBJ>' \\
                            OBJ \[ PRED `cake'\] \] \]\tikzmark{topic} \\
     SUBJ \[ PRED `pro'; NUM SG; PERS 1; CASE NOM\] \\
      OBJ \[ $\qquad$ \]\tikzmark{object} \\
     ADJ \[ PRED `usually'\] \]
\end{avm}

\tikz[remember picture,overlay] 
    \draw[-] (pic cs:topic) to[out=0,in=0,looseness=2]  (pic cs:object);

\end{document}

代码输出

相关内容