Uma solução explícita (= complicada) e mais limpa

Uma solução explícita (= complicada) e mais limpa

Estou usando o ExPex para uma tradução interlinear em hebraico. Estou tendo problemas ao traduzir uma palavra hebraica com várias palavras em inglês: as palavras em inglês são da direita para a esquerda, mas deveriam ser da esquerda para a direita. Veja o exemplo:

\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}

insira a descrição da imagem aqui

Isto deveria ser:

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

Como faço para que isso aconteça de maneira organizada?

Responder1

Uma solução explícita (= complicada) e mais limpa

Uma solução rápida seria usar obidicomando do pacote \LR{}:

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

Consulte §1.8 (Composição de textos curtos LTR e RTL) nodocumentaçãopara mais informações.

Uma solução um pouco mais fácil de usar

Adicione \beginLao everyglcgancho. Isso pode ser feito localmente (alterando \ex[everyglc=\englishfont]para \ex[everyglc=\englishfont\beginL]na pergunta) ou globalmente, usando o \lingsetcomando como este:

\lingset{everyglc=\englishfont\beginL}

A desvantagem desta solução é que ela usa uma macro interna de bidi; Não tenho certeza de quão arriscado é usar isso, mas parece um bom hack para mim e não acho que irá quebrar facilmente em breve (a menos que mudanças radicais sejam feitas em bidiou expex).

informação relacionada