TikZ에서 중괄호를 사용하여 동일한 단어의 여러 부분에 밑줄을 긋는 방법은 무엇입니까?

TikZ에서 중괄호를 사용하여 동일한 단어의 여러 부분에 밑줄을 긋는 방법은 무엇입니까?

업데이트: 관련 질문을 열었습니다.여기.

저는 언어학 분야에서 일하고 있으며 때로는 단어의 접두사, 접미사, 접미사를 분석해야 할 때가 있습니다. 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}%
}

관련 정보