
Estou aprendendo turco e queria trabalhar na tradução de alguns textos turcos para o inglês com a ajuda do TeX. Acho que seria mais adequado para o trabalho. Gostaria de saber se existe um pacote para ajudar no que desejo ou se havia algo próximo.
Idealmente, eu gostaria de um pacote que pudesse renderizar o seguinte como resultado final:
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
Segundo exemplo:
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
Terceiro exemplo:
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
Os "-" e "`--'" são chaves horizontais.
Responder1
Esta resposta usa pilhas aninhadas para alcançar o resultado. Além da \Longstack
macro do stackengine
pacote, que uso para definir as pilhas de palavras mais altas, apresento uma macro adicional.
Essa macro é \notate{embraced letters}{lines to drop}{notation}
. Nesta sintaxe, "notação" é uma linha única, embora \parbox[t]
possa superar isso. As "linhas a serem descartadas" devem ser contadas/calculadas pelo usuário, de modo a encaixar todas as notações. Atualmente, uso um início \unskip
e um final \ignorespaces
para evitar ter que lembrar de rastrear todas as linhas com %
marcas, mas se essas últimas se mostrarem problemáticas, elas poderão ser removidas da definição da macro.
Peculiaridades interessantes que precisavam de resolução. Não pude usar \upbracefill
para reforço, porque tem uma largura mínima maior que uma única letra, e o OP claramente tinha casos em que uma única letra precisava de reforço. Então usei meu scalerel
pacote para esticar \{
até a altura adequada e girá-lo lateralmente, convertendo essa altura em largura.
Além disso, não tenho nenhum tikz
truque na manga para fazer uma curva de cotovelo na seta de notação, então usei apenas um kerned \hookrightarrow
para conseguir algo que funcione visualmente (espero).
EDITAR. A legibilidade poderia ser melhorada definindo a notação em um tamanho menor. Por exemplo, aqui em \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}