Pacote LaTeX para ajudar na tradução de diagramas de um idioma para outro

Pacote LaTeX para ajudar na tradução de diagramas de um idioma para outro

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 \Longstackmacro do stackenginepacote, 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 \unskipe um final \ignorespacespara 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 \upbracefillpara 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 scalerelpacote para esticar \{até a altura adequada e girá-lo lateralmente, convertendo essa altura em largura.

Além disso, não tenho nenhum tikztruque na manga para fazer uma curva de cotovelo na seta de notação, então usei apenas um kerned \hookrightarrowpara 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}

insira a descrição da imagem aqui

informação relacionada