我尝试摆脱 tree-dvips,并寻找一种方法来执行以下操作:圈出页面上的任意单词,然后从页面上的其他位置向这个圈出的单词绘制一个箭头。在 tree-dvips 中,只需将单词声明为节点,然后使用连接指令即可。我猜这可以用 pgf 以某种方式完成,但节点似乎需要在坐标系中的位置。
这是 tree-dvips 代码:
\documentclass{scrbook}
\usepackage{tree-dvips}
\begin{document}
\begin{tabular}{lllllll}
\node{bazas}{bāz-a\v{s}} & agar & mi-xāh-i & fardâ & \node{blk1}{} & bo-kon-i\\
open-\textsc{3sg} & if & \textsc{ipf}-want-\textsc{2sg} & tomorrow & {} & \textsc{sbj}-do-\textsc{2sg}\\
\end{tabular}\\[2ex]
`If you want to open it tomorrow \ldots'
{\makedash{1pt} \nodeoval{bazas} \abarnodeconnect[-18pt]{blk1}{bazas}}
\end{document}
答案1
运行它xelatex
\documentclass{scrbook}
\usepackage{fontspec}
\usepackage{pst-node}
\begin{document}
\begin{tabular}{lllllll}
\ovalnode[linestyle=dashed]{bazas}{bāz-a\v{s}} & agar & mi-xāh-i & fardâ
& \rnode{blk1}{~} & bo-kon-i\\
open-\textsc{3sg} & if & \textsc{ipf}-want-\textsc{2sg} & tomorrow & {}
& \textsc{sbj}-do-\textsc{2sg}\\
\end{tabular}\\[2ex]
`If you want to open it tomorrow \ldots'
\ncbar[linestyle=dashed,arrows=->,angle=-90,arm=20pt]{blk1}{bazas}
\end{document}
答案2
加法: 解决方案如下tikz
:
\documentclass{scrbook}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tabular}{lllllll}
\tikz[remember picture,baseline]\node[anchor=base,ellipse,draw](bazas){baz-a\v{s}};
& agar
& mi-xah-i
& fardâ
% & \node{blk1}{}
& \tikz[remember picture,overlay]
\draw[->,dashed] (0,0) -- ++(0pt,-4.75ex) coordinate(tmp1)
-- (bazas |- tmp1) -- (bazas |- tmp1) -- (bazas);
& bo-kon-i
\\
open-\textsc{3sg}
& if
& \textsc{ipf}-want-\textsc{2sg}
& tomorrow & {}
& \textsc{sbj}-do-\textsc{2sg}\\
\end{tabular}\\[2ex]
`If you want to open it tomorrow \ldots'
\end{document}