如果前一节以其他语言结尾且节标题以其他语言开头,则无法正确重新选择主要语言

如果前一节以其他语言结尾且节标题以其他语言开头,则无法正确重新选择主要语言

我在处理包含两种语言(希伯来语和英语)的文档时遇到了 XeLaTeX 问题。我为希伯来语使用了不同的字体(这里是 DejaVu Sans,但任何字体都可以)。

问题是,当 (1) 某一节以希伯来语文本结尾,且 (2) 下一节标题以希伯来语文本开头时,文档的其余部分以及目录将以希伯来语字体显示。出于某种原因,系统不会切换回主字体(见下面的示例)。

我只在一台机器上遇到了这个问题(两台机器中)。有问题的机器运行的是 Debian Bookworm,安装了 TeX Live 2022,来自这里.xelatex --version给出:

XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Compiled with fontconfig version 2.13.0; using 2.14.1

在我的另一台机器上没有问题。这台机器运行 Debian Bullseye,并从同一源安装了 TeX Live 2022。唯一的区别xelatex --version是:

Compiled with fontconfig version 2.13.0; using 2.13.1

因此,有问题的系统使用了较新的字体配置(我不知道如何在较新的系统上使用较旧的版本来测试是否能解决问题)。两个系统上的所有软件包(和apttlmgr都是最新的。

有什么想法可以解决这个问题?

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\hebrewfont{DejaVu Sans}
\newcommand{\heb}[1]{\bgroup\normalfont\hebrewfont\RL{#1}\egroup}

\begin{document}

\tableofcontents

\section{First section}
\begin{hebrew}
    This section ends with Hebrew text.
\end{hebrew}
\section{\heb{אב} Section title starts with Hebrew}

\end{document}

在此处输入图片描述

这里除了“文本。以 This 部分结尾的希伯来语”和“אב”之外的所有内容都应使用默认字体,而不是 DejaVu Sans。

答案1

作为由 Ulrike Fischer 推荐, 使用

\newcommand{\heb}[1]{\bgroup\selectlanguage{hebrew}\RL{#1}\egroup}

解决了这个问题。

在此处输入图片描述

相关内容