Una solución explícita (=engorrosa) y más limpia

Una solución explícita (=engorrosa) y más limpia

Estoy usando ExPex para una traducción interlineal en hebreo. Tengo problemas al traducir una palabra hebrea con varias palabras en inglés: las palabras en inglés están escritas de derecha a izquierda, mientras que deberían escribirse de izquierda a derecha. Vea el ejemplo:

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\englishfont[Mapping=tex-text]{Latin Modern Roman}
\newfontfamily\hebrewfont[Scale=MatchLowercase]{Ezra SIL}
\usepackage{expex}

\begin{document}

\begin{hebrew}
\ex[everyglc=\englishfont] \begingl
\gla 7225 1254 430 853 8064 853 776//
\glb בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃ //
\glc {In the beginning} created God - {the heavens} and {the earth.}//
\endgl\xe
\end{hebrew}

\end{document}

ingrese la descripción de la imagen aquí

Esto debería decir:

the earth. and the heavens - God created In the beginning

¿Cómo hago para que eso suceda de una manera ordenada?

Respuesta1

Una solución explícita (=engorrosa) y más limpia

Una solución rápida sería utilizar elbidicomando del paquete \LR{}:

\glc \LR{In the beginning} created God - \LR{the heavens} and \LR{the earth.}//

Consulte §1.8 (Composición tipográfica de textos cortos LTR y RTL) en ladocumentaciónpara mayor información.

Una solución algo más fácil de usar.

Añadir \beginLal everyglcanzuelo. Esto se puede hacer localmente (cambiando \ex[everyglc=\englishfont]a \ex[everyglc=\englishfont\beginL]en la pregunta) o globalmente, usando un \lingsetcomando como este:

\lingset{everyglc=\englishfont\beginL}

La desventaja de esta solución es que utiliza una macro interna de bidi; No estoy seguro de qué tan riesgoso es usar esto, pero me parece un buen truco y no creo que se rompa fácilmente pronto (a menos que se realicen cambios radicales en bidio expex).

información relacionada