Fancyhdr 和 SBL 希伯来字体

Fancyhdr 和 SBL 希伯来字体

我想fancyhdr在文档中使用SBL 希伯来语字体。但是,我收到有关未定义字体形状的警告消息。请参见下面的示例:

\documentclass{minimal}
\usepackage{fontspec,fancyhdr}
\usepackage[nil,bidi=basic]{babel} 
\babelprovide[import]{hebrew}
\setmainfont{SBL Hebrew}[Script=Hebrew] % With other fonts like Arial the warnings disappear

\pagestyle{fancy}
\fancyhead[C]{\thepage} % When removing C the warnings disappear
\setlength\headheight{12pt}
\setlength\footskip{12pt}

\begin{document}    
שלום    
\end{document}

似乎错误特定于 SBL 希伯来语字体,并且并非所有位置都使用。我猜可能有一些占位符在 SBL 希伯来语中不可用。有没有一种巧妙的方法可以消除这些警告(即不仅仅是静音)?

答案1

页眉的右侧部分默认以倾斜的字体显示章节标题(在文章中)。

由于您的字体没有此形状,您会收到警告。重置此标题,例如使用 \fancyhf{}

答案2

正如 Ulrike Fischer 正确回答的那样,问题在于它fancyhdr告诉 TeX 使用主字体的倾斜系列,而 SBC Hebrew 没有附带倾斜系列。由于您没有使用标题中采用倾斜的部分,所以她的回答很棒。

我仍然想用替代解决方案来补充她的答案。

\documentclass{article}
\tracinglostchars=2 % Warn if a glyph gets dropped!
\usepackage{fancyhdr}
\usepackage[nil,bidi=basic]{babel} 
\usepackage{fontspec} % Better to load this after babel?

\babelprovide[import,main,onchar=ids fonts]{hebrew}

\babelfont{rm}
          [Scale=1.0,
           ItalicFont=*,
           ItalicFeatures={FakeSlant=-0.125}, % Italic in a RTL language should slant left.
           Language=Default % Suppress harmless warning.
          ]{SBL_Hbrw.ttf}

\pagestyle{fancy}
\fancyhead[C]{\thepage} % When removing C the warnings disappear
\setlength\headheight{12pt}
\setlength\footskip{12pt}

\begin{document}    
שלום
\textit{חברים}
\end{document}

SBL 希伯来语示例

这使用 的FakeSlant=功能来fontspec创建倾斜的字体版本,从右向左倾斜。(我认为以色列也没有就如何处理斜体达成共识。)您可能会喜欢或不喜欢结果。您还可以选择匹配的字体作为ItalicFont

相关内容