Paquete LaTeX para ayudar a diagramar la traducción de un idioma a otro

Paquete LaTeX para ayudar a diagramar la traducción de un idioma a otro

Estoy aprendiendo turco y quería trabajar en la traducción de algunos textos turcos al inglés con la ayuda de TeX. Creo que sería más adecuado para el trabajo. Me pregunto si existe un paquete que me ayude con lo que quiero o si hay algo parecido.

Idealmente, me gustaría un paquete que pudiera generar lo siguiente 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 ejemplo:

   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 

Tercer ejemplo:

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

"-" y "`--'" son llaves horizontales.

Respuesta1

Esta respuesta utiliza pilas anidadas para lograr el resultado. Además de la \Longstackmacro del stackenginepaquete, que uso para configurar las pilas de palabras superiores, introduzco una macro adicional.

Esa macro es \notate{embraced letters}{lines to drop}{notation}. En esta sintaxis, la "notación" es una sola línea, aunque a \parbox[t]puede superar eso. El usuario debe contar/calcular las "líneas a eliminar" para que todas las notaciones encajen. Actualmente uso un principio \unskipy un final \ignorespacespara evitar tener que recordar el final de todas las líneas con %marcas, pero si luego resultan problemáticas, se pueden eliminar de la definición de macro.

Peculiaridades interesantes que necesitaban resolución. No pude usarlo \upbracefillpara refuerzo, porque tiene un ancho mínimo que es mayor que una sola letra, y el OP claramente tenía casos en los que una sola letra necesitaba refuerzo. Entonces usé mi scalerelpaquete para estirar hh a \{a la altura adecuada y rotarlo hacia los lados, convirtiendo esa altura en ancho.

Además, no tengo ningún tikztruco bajo la manga para hacer un giro del codo en la flecha de notación, así que solo usé un kerned \hookrightarrowpara lograr algo que funcione visualmente (espero).

EDITAR. Posiblemente se podría mejorar la legibilidad configurando la notación en un tamaño más pequeño. Por ejemplo, aquí en \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}

ingrese la descripción de la imagen aquí

información relacionada