Ich verwende ExPex für eine Interlinearübersetzung ins Hebräische. Ich habe Probleme, wenn ich ein hebräisches Wort mit mehreren englischen Wörtern übersetze: Die englischen Wörter sind von rechts nach links geschrieben, obwohl sie von links nach rechts geschrieben sein sollten. Siehe das Beispiel:
\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}
Dies sollte lauten:
the earth. and the heavens - God created In the beginning
Wie kann ich das auf eine saubere Art und Weise verwirklichen?
Antwort1
Eine explizite (=umständliche) und sauberere Lösung
Eine schnelle Lösung wäre die Verwendung vonbidi
Befehl des Pakets \LR{}
:
\glc \LR{In the beginning} created God - \LR{the heavens} and \LR{the earth.}//
Siehe §1.8 (Satz kurzer LTR- und RTL-Texte) imDokumentationFür weitere Informationen.
Eine etwas einfacher zu bedienende Lösung
\beginL
Zum Hook hinzufügen . Dies kann lokal (durch Ändern von in der Frage) oder global everyglc
erfolgen , indem Sie den Befehl wie folgt verwenden:\ex[everyglc=\englishfont]
\ex[everyglc=\englishfont\beginL]
\lingset
\lingset{everyglc=\englishfont\beginL}
Der Nachteil dieser Lösung besteht darin, dass sie ein internes Makro von verwendet bidi
. Ich bin nicht sicher, wie riskant die Verwendung ist, aber es scheint mir ein guter Hack zu sein und ich glaube nicht, dass es so schnell nicht mehr funktionieren wird (es sei denn, es werden radikale Änderungen an bidi
oder vorgenommen expex
).