字体问题;希伯来语与 KOMA 文档类;错误消息

字体问题;希伯来语与 KOMA 文档类;错误消息

我正在使用 XeLaTeX 用希伯来语编写文本。现在我一直在尝试使用 KOMA 文档类。在应用了一些更改(例如将用于章节、部分……标题的字体更改为也包含希伯来语的字体)后,一切似乎都运行良好,除了一个小麻烦:

我收到以下错误消息:

! Package polyglossia Error:
The current roman font does not contain the Hebrew script!
Please define \hebrewfont with \newfontfamily.
See the polyglossia package documentation for explanation.
Type H <return> for immediate help.
...

这些错误指的是定义新部分的行。有趣的是,即使文本完全是希伯来语,不包含拉丁语或任何其他非希伯来语字符,也会出现此错误消息。

那么,有人知道问题是什么以及如何解决它吗?

以下是一个简短的例子:

% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = xelatex
\documentclass[14pt]{scrbook}
\pagestyle{empty}
\TeXXeTstate=1
\usepackage{polyglossia}

\setdefaultlanguage{hebrew}
\setmainfont[Mapping=tex-text]{Adobe Hebrew}
\newfontfamily\hebrewfont[Scale=0.80,Script=Hebrew]{Adobe Hebrew}

\setkomafont{section}{\hebrewfont}

\begin{document}

\section{מה הבעיה?}

\section{יש פתרון?}

\end{document}

答案1

首先:我有点怀疑你真的想使用\setkomafont。这也会重置尺寸将章节标题中的字体调整为正常大小。最好使用\addtokomafont

其次:问题的根源在于 – 无论您在\setkomafont命令中使用什么\section– ,KOMA 类都会发出\sffamily。因此,暂时切换到此字体,并且由于活动语言是希伯来语,而您当前的\sffamily字体不认识希伯来语脚本,因此您会收到错误。您可以\sffamily通过重新定义 来删除部分标题中的\sectfont

\renewcommand*\sectfont{\normalcolor\bfseries}

但在我看来,更好的解决方案是(因为希伯来语是你的主要语言)将主字体设置为识别脚本的字体:

\documentclass[14pt]{scrbook}
\pagestyle{empty}
\TeXXeTstate=1
\usepackage{polyglossia}

\setdefaultlanguage{hebrew}
\setmainfont[Mapping=tex-text]{Ezra SIL}
\setsansfont[Mapping=tex-text]{Ezra SIL}
\setmonofont[Mapping=tex-text]{Ezra SIL}

\begin{document}
\section{abc}

abc
\end{document}

相关内容