
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 \Longstack
Makro des stackengine
Pakets, 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 \unskip
und nachfolgendes Zeichen , \ignorespaces
um 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 \upbracefill
fü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 scalerel
Paket 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 tikz
Tricks auf Lager, um eine Krümmung im Notationspfeil zu erzeugen, also habe ich einfach einen Unterschnitt verwendet, \hookrightarrow
um 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}