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}
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 elbidi
comando 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 \beginL
al everyglc
anzuelo. Esto se puede hacer localmente (cambiando \ex[everyglc=\englishfont]
a \ex[everyglc=\englishfont\beginL]
en la pregunta) o globalmente, usando un \lingset
comando 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 bidi
o expex
).