一個明確的(=麻煩的)和更乾淨的解決方案

一個明確的(=麻煩的)和更乾淨的解決方案

我正在使用 ExPex 進行希伯來語行間翻譯。我在用多個英語單字翻譯一個希伯來語單字時遇到問題:英語單字是從右到左,而它們應該是從左到右。請參閱範例:

\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 文本)文件了解更多。

一個更容易使用的解決方案

添加\beginLeveryglc鉤子上。這可以在本地完成(在問題中更改\ex[everyglc=\englishfont]為)或全域完成,使用以下命令:\ex[everyglc=\englishfont\beginL]\lingset

\lingset{everyglc=\englishfont\beginL}

該解決方案的缺點是它使用內部巨集bidi;我不確定使用它有多大風險,但對我來說這似乎是一個很好的技巧,而且我認為它不會很快被輕易破解(除非在bidi或中進行根本性的更改expex)。

相關內容