我正在寻找一种方法来可视化句子对之间的单词对齐,如下所示: (取自https://aclanthology.org/W11-4615.pdf)
我已经遇到过这个类似的问题 但是对 tikz 解决方案不满意,因为它首先将节点放在矩阵中,当字符长度差异很大时,这看起来很糟糕:
我尝试使用 PStricks 代码片段,但由于某种原因没有绘制任何线条(使用 xelatex 编译)。
在我联系该论文的作者并索要源代码之前,我想在这里问一下是否有人知道一个简单的解决方案。谢谢!
答案1
这是对你的问题的一个非常轻描淡写的回答,但这就是精神所在。tikzmark
图书馆在做这种事情方面有很大的帮助。如果你已经了解 Ti钾Z,之后您可以根据需要进行调整。您可以看到并非所有内容都完美对齐,但这是总体思路。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\tikzset{every tikzmarknode/.style={inner sep = 1pt,execute at end node={\vphantom{bg}}}}
\begin{document}
\begin{center}
\tikzmarknode{HE}{He} \tikzmarknode{GAVE}{gave} \tikzmarknode{ME}{me} \tikzmarknode{THE}{the} \tikzmarknode{BOOK}{book}
\vspace*{1cm}
\tikzmarknode{HAN}{Han} \tikzmarknode{GAV}{gav} \tikzmarknode{BOKEN}{boken} \tikzmarknode{TILL}{till} \tikzmarknode{MIG}{mig}
\end{center}
\begin{tikzpicture}[remember picture, overlay]
\draw (HE) -- (HAN)
(GAVE) -- (GAV)
(ME.south) -- (TILL)
(ME.south) -- (MIG)
(THE) -- (BOKEN.north)
(BOOK) -- (BOKEN.north);
\end{tikzpicture}
\end{document}