警告:在 Windows 上使用 xepersian 包时字体形状未定义(字体)

警告:在 Windows 上使用 xepersian 包时字体形状未定义(字体)

我收到以下警告,并且我发现粗体文本在输出中没有显示为粗体:

Font shape `EU1/BNazanin(0)/m/it' undefined
(Font)              using `EU1/BNazanin(0)/m/n' instead 

我见过这个问题这和我的情况很相似,但我使用的是 Windows 10(不是 Linux),而且我的朋友没有遇到这个问题(我有我朋友论文的 tex 代码,奇怪的是,输出有粗体文本,而使用的字体相同……我无法从中获取输出,但当我打开它时,输出 pdf 会自动显示),我想知道我的文档出了什么问题,或者可能是我的系统上定义的字体出了问题。如果有针对此警告的通用解决方案就太好了。

\documentclass[a4paper,12pt]{report}
\usepackage{amsthm}
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont[Scale=1.2]{B Nazanin}
\setlatintextfont{Calibri}
%\setlatintextfont[ExternalLocation,BoldFont={lmroman10-bold},BoldItalicFont={lmroman10-bolditalic},ItalicFont={lmroman10-italic}]{lmroman10-regular}
\defpersianfont\nastaliq[Scale=2]{IranNastaliq}
\defpersianfont\titr[Scale=1]{B Titr}
\defpersianfont\traffic[Scale=1]{B Traffic}
\deflatinfont\calibri{Calibri}
\renewcommand{\proofname}{\textbf{برهان}}

\begin{document}

\begin{proof}
سلام بر تو 
\end{proof}

سلام بر تو
\end{document}

答案1

该警告并不是在抱怨粗体,而是在抱怨斜体,事实上它应该这样做,因为“B Nazanin”不是斜体。

除了您添加的粗体之外,环境还使用斜体,这就是导致您收到警告的原因proofproofname

以下是我的系统上的输出: B纳扎宁

如您所见,字体proofname为粗体。检查安装字体的文件夹,然后查找“B Nazanin”。每种字体(粗体、斜体等)都包含在单独的文件中,因此,为了获得“B Nazanin”的粗体,您应该有另一个字体文件,例如“B Nazanin Bold.ttf”。因此,您的字体目录中应该有(至少)2 个文件,“B Nazanin.ttf”和“B Nazanin Bold.ttf”。

总体而言,“B Nazanin”甚至不是标准字体,而且很多小东西(例如小数点、千位分隔符和数字零)要么缺失,要么不符合标准。我强烈建议您使用其他字体(例如HM-X系列)。

这是我使用“HM XNiloofar”字体的结果(没有给出警告): HM X尼洛法尔

如果你确实需要使用“B Nazanin”,我建议你使用来自本系列,与“B Nazanin”几乎完全相同,但没有“B Nazanin”相关的问题。以下是使用此字体排版的相同文本(请注意,字母的形状与其他字体相同): HM F纳兹利

相关内容