我正在使用 xelatex 和 polyglossia 排版一份英语/希伯来语混合文档,其中大部分文本都是英文。文档正文没有问题。目录是个问题。我遇到一个问题,目录中有些条目从左到右,有些条目从右到左。
所有章节标题都包含英文文本,这些文本在目录和文档中都应从左到右排列。但是,有些条目在目录中包含从右到左的条目。
问题似乎是由使用“希伯来语”环境造成的。如果我使用它,那么在目录中创建条目的下一个分段命令会产生这样的效果:章节标题本身是好的(文本从左到右),但目录是右到右。
MWE 和生成的目录如下所示。主体中的实际节标题是正确的。
经过试验,我发现如果在真实环境之后有一个空的“希伯来语”环境,那么效果就会消失(如下面的 MWE 所示)。但这并不是一直有效,所以这不是一个解决办法。
任何帮助都将受到感激。
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[numerals=hebrew]{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{Hadasim CLM}
\begin{document}
\tableofcontents
\newpage
\section{Chapter 1}
blah blah
\section{Chapter 2}
blah blah
\begin{hebrew}
שֶׁהֶחֱיָנוּ וְקִיְּמָנוּ וְהִגִּיעָנוּ לַזְּמָן הַזֶּה.
\end{hebrew}
\begin{hebrew}
% deliberately empty
\end{hebrew}
\section{Other chapter}
\begin{hebrew}
שֶׁהֶחֱיָנוּ וְקִיְּמָנוּ וְהִגִּיעָנוּ לַזְּמָן הַזֶּה.
\end{hebrew}
\section{And the last chapter}
Blah Blah Blah
\end{document}
答案1
似乎是 的一个错误polyglossia
。以下是一个可能的解决方案:
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[numerals=hebrew]{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{Hadasim CLM}
\makeatletter
\ExplSyntaxOn
\renewenvironment{otherlanguage}[2][]
{%
% Get real current options (incl. defaults)
\clist_clear_new:N \l_xpg_current_options
\prop_map_inline:cn {xpg@current@options@#2}
{
\clist_put_right:Nn \l_xpg_current_options {##1=##2}
}
% Store current options and language on stack
\polyglossia@stack@language:nn{\clist_use:Nn \l_xpg_current_options {,}}{#2}%
\selectlanguage[#1]{#2}%
}
{%
% restore previous language in aux file and remove closed one from stack
\beginL\polyglossia@unstack@language:n{xpg@set@language@only@aux}\aftergroup\endL
}
\ExplSyntaxOff
\makeatother
\begin{document}
\tableofcontents
\newpage
\section{Chapter 1}
blah blah
\section{Chapter 2}
blah blah
\begin{hebrew}
שֶׁהֶחֱיָנוּ וְקִיְּמָנוּ וְהִגִּיעָנוּ לַזְּמָן הַזֶּה.
\end{hebrew}
\begin{hebrew}
% deliberately empty
\end{hebrew}
\section{Other chapter}
\begin{hebrew}
שֶׁהֶחֱיָנוּ וְקִיְּמָנוּ וְהִגִּיעָנוּ לַזְּמָן הַזֶּה.
\end{hebrew}
\section{And the last chapter}
Blah Blah Blah
\end{document}