LaTeX-Paket zur Unterstützung der Diagrammübersetzung einer Sprache in eine andere

LaTeX-Paket zur Unterstützung der Diagrammübersetzung einer Sprache in eine andere

Ich lerne Türkisch und wollte mithilfe von TeX einige türkische Texte ins Englische übersetzen. Ich denke, das wäre für diese Aufgabe besser geeignet. Ich frage mich, ob es ein Paket gibt, das mir bei dem hilft, was ich möchte, oder ob es etwas Ähnliches gibt.

Idealerweise hätte ich gerne ein Paket, das als Endergebnis Folgendes liefern könnte:

  home     to go 
  Eve    gidiyorum 
    -      -`----' 
    |      |  | 
    |      |  `- present progressive tense (first person - singular) 
    |      `- git->gid (t->d) sound change ending 
    `- dative case ending for gitmek 

  I want to go home 

Zweites Beispiel:

   home     to go 
  Eveniz  gidiyoruz 
    -`-'    -`----' 
    | |     |  | 
    | |     |  `- present progressive tense (first person - plural) 
    | |     `- git->gid (t->d) sound change ending 
    | `- possessive suffix (second person - plural) 
    `- dative case ending for gitmek 

We are going to your home 

Drittes Beispiel:

German  class  to buy; to get;    to continue 
               to take, receive 
Almanca dersi       almaya       devam ediyorum 
            -         `--'              -`----' 
            |          |                |  | 
            |          |                |  `- present progressive 
            |          |                |     tense (first person - 
            |          |                |     singular) 
            |          |                `- devam et->devam ed (t->d) 
            |          |                   sound change ending 
            |          `- verbal noun -mA, dative for devam etmek 
            `- accusative case ending for almak 

   I want to continue taking German class

Das "-" und "`--'" sind horizontale geschweifte Klammern.

Antwort1

Diese Antwort verwendet verschachtelte Stapel, um das Ergebnis zu erzielen. Zusätzlich zum \LongstackMakro des stackenginePakets, das ich zum Festlegen der obersten Wortstapel verwende, führe ich ein weiteres Makro ein.

Dieses Makro ist \notate{embraced letters}{lines to drop}{notation}. In dieser Syntax ist „Notation“ eine einzelne Zeile, obwohl \parbox[t]dies durch ein ersetzt werden kann. Die „zu löschenden Zeilen“ müssen vom Benutzer gezählt/berechnet werden, damit alle Notationen passen. Ich verwende derzeit ein führendes \unskipund nachfolgendes Zeichen , \ignorespacesum nicht daran denken zu müssen, alle Zeilen mit %Markierungen zu versehen, aber wenn sich diese später als problematisch erweisen, können sie aus der Makrodefinition entfernt werden.

Interessante Eigenheiten, die gelöst werden mussten. Ich konnte es nicht \upbracefillfür Unterverstrebungen verwenden, da es eine Mindestbreite hat, die größer als ein einzelner Buchstabe ist, und der OP hatte eindeutig Fälle, in denen ein einzelner Buchstabe Unterverstrebungen benötigte. Also habe ich mein scalerelPaket verwendet, um hh a auf die richtige Höhe zu strecken \{und es seitwärts zu drehen, wodurch diese Höhe in eine Breite umgewandelt wurde.

Außerdem habe ich keine tikzTricks auf Lager, um eine Krümmung im Notationspfeil zu erzeugen, also habe ich einfach einen Unterschnitt verwendet, \hookrightarrowum etwas zu erreichen, das optisch funktioniert (hoffe ich).

BEARBEITEN. Die Lesbarkeit könnte möglicherweise verbessert werden, indem die Notation kleiner gesetzt wird. Zum Beispiel hier in \footnotesize.

\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{scalerel}
\usepackage{graphicx}
\parskip \baselineskip
\def\myupbracefill#1{\rotatebox{90}{\stretchto{\{}{#1}}}
\def\rlwd{.5pt}
\newcommand\notate[3]{%
  \unskip\def\useanchorwidth{T}%
  \setbox0=\hbox{#1}%
  \def\stackalignment{c}\stackunder[-6pt]{%
    \def\stackalignment{c}\stackunder[-1.5pt]{%
      \stackunder[-2pt]{\strut #1}{\myupbracefill{\wd0}}}{%
    \rule{\rlwd}{#2\baselineskip}}}{%
  \strut\kern7pt$\hookrightarrow$\rlap{ \footnotesize#3}}\ignorespaces%
}
\begin{document}
\hrulefill

  \Longstack{home\\Ev
   \notate{e}{4}{dative case ending for gitmek}
  }
~~\Longstack{to go\\gi
   \notate{d}{3}{git$\rightarrow$gid (t$\rightarrow$d) sound change ending}
   \notate{iyorum}{2}{present progressive tense (first person - singular)}
  }

I want to go home \par\hrulefill

  \Longstack{German\\ \\Almanca}
~~\Longstack{class\\ \\ders
   \notate{i}{8}{accusative case ending for almak}}
~~\Longstack{to buy; to get;\\to take; receive\\al
   \notate{maya}{7}{verbal noun -mA, dative for devam etmek}}
~~\Longstack{to continue\\ \\devam e
   \notate{d}{5}{%
     \parbox[t]{2in}{devam et$\rightarrow$devam ed (t$\rightarrow$d)\\
                     sound change ending}
   }
   \notate{iyorum}{2}{%
     \parbox[t]{2in}{present progressive\\
                     tense (first person -\\
                     singular)}
   }
  }

I want to continue taking German class \par\hrulefill
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen