明示的(=面倒)かつクリーンな解決策

明示的(=面倒)かつクリーンな解決策

私はヘブライ語の逐語訳に ExPex を使用しています。1 つのヘブライ語の単語を複数の英語の単語に翻訳するときに問題が発生します。英語の単語は右から左に翻訳されますが、左から右に翻訳する必要があります。例を参照してください。

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

ここに画像の説明を入力してください

これは次のように読むべきです:

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

どうすればそれをうまく実現できるでしょうか?

答え1

明示的(=面倒)かつクリーンな解決策

簡単な解決策としては、bidiパッケージの\LR{}コマンド:

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

§1.8(短いLTRとRTLテキストの組版)を参照ドキュメンテーション詳細については。

やや使いやすいソリューション

\beginLフックに追加します。これは、ローカル(質問内でに変更)または次のようなコマンドを使用してグローバルにeveryglc実行できます。\ex[everyglc=\englishfont]\ex[everyglc=\englishfont\beginL]\lingset

\lingset{everyglc=\englishfont\beginL}

このソリューションの欠点は、 の内部マクロを使用することです。これを使用することがどの程度リスクがあるかはわかりませんが、これは良いハックのように思えますし、すぐに壊れるとは思いません (またはbidiに大幅な変更が加えられない限りは)。bidiexpex

関連情報