Verwenden Sie eine beliebige Anzahl von Unterstreichungen + Beschreibungen mit TikZ für Wortteile

Verwenden Sie eine beliebige Anzahl von Unterstreichungen + Beschreibungen mit TikZ für Wortteile

Dies ist eine Erweiterung vondiese Frage. In der Linguistik sind Wortanalysen oft notwendig und ich denke, dass TikZ ein hervorragendes Werkzeug ist, um etwas Leben, Farbe und vor allem Klarheit in die Szene zu bringen. Ich verfüge nicht über die Fähigkeiten, dies zu tun, deshalb habe ich eine Skizze dessen erstellt, was ich gerne tun würde.

Verwendung derandere FrageUnddie folgende Skizzeals Ausgangspunkt hoffe ich, dass irgendein kluger Kopf eine flexible Lösung findet.

Eine vorläufige Liste von Kriterien

  1. Klammern zielen darauf ab, bestimmte Buchstaben zu umschließenUNERREICHT
  2. Klammern (geschweifte Klammern) sollten sich überlappen könnenUNERREICHT
  3. Der Abstand der Klammern zum Wort sollte variabel sein(in anderer Frage erledigt)
  4. Beschreibung: Der Abstand zur Klammer sollte variabel sein(erledigt, siehe Update 2. April 2013)
  5. Die Beschreibung muss flexibel genug sein, um sie irgendwo weit von der Klammer entfernt zu platzieren und mit einer gepunkteten Linie (oder einer anderen Art von Linie) mit der Klammer zu verbinden.(erledigt, siehe Update 2. April 2013)
  6. Klammern sollten über und unter einem Wort stehen könnenUNERREICHTsiehe percusses Antwort
  7. Flexibel und einfach auf einen ganzen Absatz mit Wörtern anzuwenden (wie zum Beispiel das Vaterunser auf Finnisch!) (TikZ berechnet die Breite der Klammern aus angegebenen Buchstaben im Wort)UNERREICHT

Beispiel für eine TikZ-Wortanalyse:

TikZ-Wortanalyse


AKTUALISIEREN2. April 2013: Kriterien Nr. 4 und Nr. 5

Ich konnte heute die Kriterien 4 und 5 erfüllen! Es ist eine Pfuscharbeit und könnte möglicherweise optimiert werden (ich suche einen Profi, der das macht!).

Ich habe den Code aus der anderen Frage genommen und hinzugefügt

  • Variablen
    • vertikal anpassen(y-Verschiebung=)Position des Textes
    • horizontal(xUmschalt=)Position des Textes
    • Breite der Beschreibung anpassen(Textbreite=)
  • Schalter
    • Automatische Knotennamen
    • Beschreibungen mit Klammern verknüpfen(mit „Text#“ und „Klammer#“)ermöglicht eine einfache Möglichkeit, Beschreibungen mit den richtigen Klammern zu verbinden

Wie es funktioniert

Um einem Wort eine Klammer hinzuzufügen, verwenden Sie den Befehl \tikzbrace. Im Folgenden werden die Optionen und ein Beispiel gezeigt.

\tikzbrace[Klammer yshift]{Wort}{Beschreibung}[Textbreite=20ex][Text yshift][Text xshift]

zB in Aktion * Beachten Sie die redundante Textbreite innerhalb der Variable (nicht sicher, wie man das behebt – siehe Abschnitt „Ein bisschen Verwirrung“)

\tikzbrace[-1ex]{Wort}{Nom.Sg. Suffix -me}[Textbreite=20ex][5ex][xshift=4cm]

Ein bisschen Verwirrung

Beachten Sie, dass die Reihenfolge der Variablen im Befehl\NeuerDokumentbefehlsind verwirrend und ich musste ein bisschen mit der Reihenfolge experimentieren. Wahrscheinlich aufgrund der Reihenfolge, in der TikZ die Parameter analysiert. Ich habe auch eine redundanteTextbreite=Option fest codiert, dennoch ist es notwendig, den Text width= in die Variable einzuschließen. Vielleicht weiß jemand, wie man das behebt.

Warum verwende ich TikZ-Dependency?

Zwei Dinge müssen funktionieren:

  • Verweisen Sie auf ganze Wörter (für die wörtliche Übersetzung) (oben stehende Wörter)

UND

  • Es gibt immer noch separate Knoten, die mit bestimmten Buchstaben beginnen/enden. (unter den Wörtern)

Dies könnte gelöst werden, wenn jemand wüsste, wie man Kriterium Nr. 2 mit Briefen als Referenzen löst (Teil der Flexibilität dieses Projekts).

Machen

  • Erfüllen Sie fehlende Kriterien (siehe Checkliste oben, die ich aktualisieren werde, bis sie gelöst sind)
  • Wagenrücklauf innerhalb von Beschreibungen zulassen (funktioniert nicht, auch wenn die Textbreite festgelegt ist)Erreicht (LÖSUNG: Für den Beschreibungsknoten ist der Parameter align= erforderlich, z. B. align=left)

Aktualisiertes Beispiel für Kriterien 4 und 5

\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}

Antwort1

Sie können die gleiche Idee mit unterschiedlichen Möglichkeiten, beispielsweise raiseder Dekoration, verwenden oder die Koordinaten verschieben, Anker usw. verwenden.

\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}

midwayDie Platzierung der Knoten kann über die Option für die Mitte oder erfolgen pos=number. Die Knotenverschiebung kann durch Angabe des Abstands zu aboveoder belowals Argumente erreicht werden.

Bildbeschreibung hier eingeben

verwandte Informationen