这是这个问题。在语言学中,词汇分析通常是必要的,我认为 TikZ 是一款出色的工具,可以为场景带来一些生命力、色彩,最重要的是清晰度。我不具备完成这一任务的技能,因此我绘制了一张我想做的事情的草图。
使用其他问题和以下草图作为起点,我希望一些聪明的人能够想出一个灵活的解决方案。
暂定标准清单
- 括号针对要环绕的特定字母未实现
- 括号(花括号)应该能够互相重叠未实现
- 括号与单词之间的距离应可变(已在其他问题中完成)
- 描述到支撑的距离应该是可变的(已完成,请参阅 2013 年 4 月 2 日更新)
- 描述应该足够灵活,可以放置在远离括号的地方,并用虚线(或某种类型的线)连接到括号(已完成,请参阅 2013 年 4 月 2 日更新)
- 括号应该可以放在单词的上方和下方未实现有点像 percusse 的回答
- 灵活且易于应用于整段单词(例如芬兰语中的“我们的父亲”)!(TikZ 根据单词中指定的字母计算括号的宽度)未实现
TikZ 词分析示例:
更新2013 年 4 月 2 日:标准 #4 和 #5
我今天能够满足标准 4 和标准 5!这是一份粗制滥造的工作,可能会简化(寻找专业人士来做这件事!)。
我从另一个问题中取出代码并添加
- 变量
- 调整垂直(yshift=)文本位置
- 水平的(移位=)文本位置
- 调整描述宽度(文字宽度=)
- 柜台
- 自动节点名称
- 将描述与括号联系起来(使用“text#”和“brace#”)允许轻松地将描述连接到正确的括号
怎么运行的
为了给单词添加括号,可以使用 \tikzbrace 命令。下面显示了选项和示例。
\tikzbrace[括号 yshift]{word}{description}[文本宽度=20ex][文本 yshift][文本 xshift]
例如在操作中 * 注意变量内的冗余文本宽度(不确定如何修复此问题 - 请参阅“有点困惑”部分)
\tikzbrace[-1ex]{word}{名词后缀-me}[text width=20ex][5ex][xshift=4cm]
有点困惑
请注意命令中的变量顺序\新文档命令令人困惑,我不得不尝试一下它们的顺序。可能是由于 TikZ 解析参数的顺序。我还有一个冗余的文字宽度=选项已硬编码,但仍需要在变量中包含文本 width=。也许有人知道如何修复此问题。
为什么要使用 TikZ-Dependency?
必须做两件事:
- 引用整个单词(用于直译)(以上单词)
和
- 仍然有以特定字母开始/结束的单独节点。(以下单词)
如果有人知道如何使用字母作为参考来解决标准#2(该项目灵活性的一部分),那么这个问题就可以解决
去做
- 满足缺失的标准(请参阅上面的清单,我会不断更新直至解决)
- 允许在描述中回车(即使设置了文本宽度也不起作用)已实现 (解决方案:需要 align= 参数到描述节点,例如 align=left)
\documentclass[]{beamer}
\usepackage{fontspec}
\usepackage{tikz-dependency}
\newcounter{mycounter}
\setcounter{mycounter}{1}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,calc}
\usepackage{xparse}
% TikZ Command for Brace
\NewDocumentCommand{\tikzbrace}{O{-2.5ex} m m O{} O{1ex} O{} O{0ex}}{%
\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 [#6,xshift=#7,midway,below=#5,font=\scriptsize] (text\arabic{mycounter}) {#3};
\path (right brace coord) -- (left brace coord) node[midway,yshift=#1] (brace\arabic{mycounter}) {\stepcounter{mycounter}};
\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[-1ex]{taiva}{-\emph{issa}=pl (sg -\emph{ssa}) Inessiv, ähnlich Lokativ, e.g. talossa "in dem Haus"}[text width=20ex][10ex][xshift=0cm]\tikzbrace[-1ex]{issa}{-issa=pl von -ssa Inessiv (ähnlich wie Lokativ). Trägt die Bedeutung „in“
z.B talossa=in the house
}[text width=20ex][5ex][xshift=4cm],\\
\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}
% Lines - Description to Brace
\begin{tikzpicture}[remember picture, overlay]
\draw[red, dotted] (text4.north) to [out=90,in=270](brace4.south);
\draw[red, dotted] (text3.north) to [out=90,in=270](brace3.south);
\end{tikzpicture}
\end{frame}
\end{document}
答案1
您可以使用相同的想法但具有不同的可能性,例如raise
装饰,或者使用锚点转移坐标等。
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.pathmorphing,calc}
\begin{document}
\begin{tikzpicture}
\node[outer sep=0,inner sep=1pt] (w) {\Large Reenactment};
%The angle anchors
\draw[decoration={brace,raise=1mm},decorate,] (w.166) -- (w.13)
node[midway,above=2mm,align=center,anchor=south] {Some linguistic\\ text here};
% The explicit coord calc
\draw[decoration={brace,raise=1mm,mirror},decorate] (w.south west) -- ($(w.south)-(8mm,0)$)
coordinate [midway,below=2mm] (c1);
\draw[densely dashed] ([yshift=-2mm]c1) --++(0,-1cm) node[below] {Prefix-re};
\draw[decoration={brace,raise=20mm,mirror},decorate] (w.south west) -- (w.south);
\draw[decoration={brace,mirror},decorate]
([yshift=-3cm]w.south west) -- ([yshift=-3cm]w.south east);
\end{tikzpicture}
\end{document}
midway
节点放置可通过中间的或选项进行。节点位移可通过提供距离或作为参数来pos=number
实现。above
below