
這是一個擴展這個問題。在語言學中,單字分析通常是必要的,我認為 TikZ 是一個出色的工具,可以為場景帶來一些生命、色彩,最重要的是清晰度。我不具備完成此任務的技能,因此我繪製了我想做的事情的草圖。
使用其他問題和下面的草圖作為起點,我希望一些聰明的人能想出一個靈活的解決方案。
標準暫定清單
- 大括號針對要環繞的特定字母未實現的
- 大括號(大括號)應該能夠互相重疊未實現的
- 大括號到單字的距離應該是可變的(在其他問題中完成)
- 描述 到支架的距離應該是可變的(已完成,請參閱 2013 年 4 月 2 日更新)
- 描述應該足夠靈活,可以放置在遠離支撐的地方,並用虛線(或某種類型的線)連接到支撐(已完成,請參閱 2013 年 4 月 2 日更新)
- 大括號應該可以放在單字的上方和下方未實現的有點看到打擊樂的答案
- 靈活且易於應用於整個單字段落(例如芬蘭語中的“我們的父親”!)(TikZ 根據單字中的指定字母計算大括號的寬度)未實現的
TikZ 詞分析範例:
更新2013 年 4 月 2 日:標準 #4 和 #5
我今天能夠滿足標準 #4 和 #5!這是一項黑客工作,可能會被簡化(尋找專業人士來做這件事!)。
我從另一個問題中獲取了代碼並添加了
- 變數
- 調整垂直(y 平移=)文字位置
- 水平的(x 平移=)文字位置
- 調整描述寬度(文字寬度=)
- 櫃檯
- 自動節點名稱
- 將描述與大括號相關聯(使用“文字#”和“大括號#”)允許輕鬆地將描述連接到正確的大括號
怎麼運作的
為了在單字上加上大括號,可以使用 \tikzbrace 指令。下面顯示了選項和範例。
\tikzbrace[大括號 yshift]{單字}{描述}[文字寬度=20ex][文字 yshift][文字 xshift]
例如在行動中 * 注意變數內的冗餘文字寬度(不知道如何解決這個問題 - 請參閱「有點混亂」部分)
\tikzbrace[-1ex]{word}{Nom.Sg。字尾-me}[文字寬度=20ex][5ex][xshift=4cm]
有點混亂
注意命令中變數的順序\新文件指令很混亂,我不得不嘗試它們的順序。可能是由於 TikZ 解析參數的順序所致。我也有多餘的文字寬度=選項硬編碼,但仍需要在變數中包含文字 width= 。也許有人知道如何解決這個問題。
為什麼我要使用 TikZ 依賴項?
有兩件事必須起作用:
- 參考整個單字(對於直譯)(以上單字)
和
- 仍然有以特定字母開頭/結尾的單獨節點。 (下面的話)
如果有人知道如何使用字母作為參考來解決標準#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
for middle 或pos=number
option 來完成。節點位移可以透過提供距離above
或below
作為參數來實現。