更新:我打开了一个相关问题这里。
我从事语言学领域的工作,有时需要分析单词中的前缀、词缀和后缀。如果能够使用 TikZ 为单词的各个部分添加注释就太好了。到目前为止,我几乎可以做到我想做的事情。问题是我无法将一个单词的多个部分放入单独的节点,而中间又不会出现尴尬的空格(使其看起来像多个单词) 例如 taivaissa 应该是一个单词(我想在 taiva(词根)下划线,并在下面加上解释,在后缀 -issa 下划线,并在下面加上解释。
标准:
解决方案应允许控制从花括号(大括号)底部(或顶部,取决于方向)到描述的距离,以避免在同一个单词中使用长描述时可能出现的重叠。(理想情况下,大括号到单词的距离也将是可变的,如下例所示。)
该解决方案不需要包含 dependency-tikz 包,我在这里使用它只是因为它是一种清晰、逐字翻译单个单词的简单方法。不过,这将是一个加分项!
代码:
\documentclass[]{beamer}
\usepackage{fontspec}
\usepackage{tikz-dependency}
% Klammern in Formeln
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,calc}
\usepackage{xparse}
\NewDocumentCommand{\tikzbrace}{O{-2.5ex} m m O{} O{}}{%
\tikz[remember picture]\coordinate (left brace coord);%
#2%
\tikz[remember picture]\coordinate (right brace coord);%
\begin{tikzpicture}[remember picture,overlay,
transform canvas={yshift=#1}]
\draw [decoration={amplitude=1ex,brace},decorate,#4] %
(right brace coord) -- (left brace coord)
node [midway,below=1ex,font=\scriptsize,#5] {#3};
\end{tikzpicture}
}
\begin{document}
\begin{frame}{Satz 1}
\begin{dependency}[edge style={red,densely dotted}]
\begin{deptext}
\tikzbrace[-1ex]{Isae}{Vater} \& meidän, \& joka \& \tikzbrace[-1ex]{olet}{2Psg} \& \tikzbrace[-5ex]{taiva}{-\emph{issa}=pl (sg -\emph{ssa}) Inessiv, ähnlich Lokativ, e.g. talossa "in dem Haus"}issa,\\
\end{deptext}
\deproot[edge unit distance=1ex]{1}{Vater}
\deproot[edge unit distance=1ex]{2}{unserer}
\deproot[edge unit distance=1ex]{3}{wer}
\end{dependency}
\end{frame}
\end{document}
答案1
在 的定义中\tikzbrace
,就在 之后,有一个“泄漏空格” \end{tikzpicture}
。因此,解决方案是在它后面放一个百分号,如下所示:
\NewDocumentCommand{\tikzbrace}{O{-2.5ex} m m O{} O{}}{%
\tikz[remember picture]\coordinate (left brace coord);%
#2%
\tikz[remember picture]\coordinate (right brace coord);%
\begin{tikzpicture}[remember picture,overlay,
transform canvas={yshift=#1}]
\draw [decoration={amplitude=1ex,brace},decorate,#4] %
(right brace coord) -- (left brace coord)
node [midway,below=1ex,font=\scriptsize,#5] {#3};
\end{tikzpicture}%
}