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