我正在使用 XeLaTeX + polyglossia 进行希伯来语排版,效果非常好。但是,最近我需要在希伯来语段落中加入英语单词。这会导致编译错误,因为它会将所有非字母字符(例如逗号、括号等)附加到英语 LTR,而它应该保持 RTL。
举例子比逐字解释要容易得多,因此这里有一个例子:
\documentclass{standalone}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\usepackage{fontspec}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
\newfontfamily\hebrewfonttt[Script=Hebrew]{Miriam Mono CLM}
\newfontfamily\hebrewfontsf[Script=Hebrew]{Simple CLM}
\usepackage{bidi}
\begin{document}
אלף (Aleph), גימל (Gimmel).
\end{document}
这产生了
应该在哪里生产
我做错什么了吗?
更新
我曾尝试使用english
英文文本周围的环境,但这会产生多余的空格,而且非常麻烦......
代码:
\begin{document}
אלף
\begin{english}(Aleph)\end{english},
גימל
\begin{english}(Gimmel)\end{english}.
\end{document}
生成:
答案1
鉴于希伯来语段落内带有重音符号的拉丁字符,我发现解决这个问题的办法就是使用命令\textenglish
。这是完整的代码:
\documentclass{standalone}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
\newfontfamily\hebrewfonttt[Script=Hebrew]{Miriam Mono CLM}
\newfontfamily\hebrewfontsf[Script=Hebrew]{Simple CLM}
\begin{document}
אלף (\textenglish{Aleph}), גימל (\textenglish{Gimmel}).
\end{document}
生成结果: