pdflatex:字形...未定义。如何正确解决这个问题?

pdflatex:字形...未定义。如何正确解决这个问题?

我使用这个包newpx使用 pdflatex(在 Ubuntu 20.04 上,texlive 安装),我看到“字形‘section’未定义”错误。这是一个最小的工作示例和输出:

\documentclass{article}

\usepackage{newpx}
\showoutput
\begin{document}
a b \S a b § a b

Palatino
\end{document}

在此处输入图片描述

错误日志:

pdfTeX warning: pdflatex (file /usr/local/texlive/2023/texmf-dist/fonts/type1/public/newpx/zplr.pfb): glyph `section' undefined

我看到这里有很多问题报告了这个问题(示例 1示例 2)。有些答案建议使用\pdfinclusioncopyfonts=1)。有些答案建议在序言中此评论

\pdfinclusioncopyfonts是一种解决方法。[...] 真正的解决方案是修正内部字体名称。

如何纠正内部字体名称,或者如何检查它们是否存在问题?

在我的系统中,我只看到一个安装和使用的TeXGyrePagella字体,所以我不明白“内部字体名称”是什么意思。zplrnewpx

我是否应该向 的维护者提交错误newpx

顺便说一下,这个newpxtext包裹也发生过这种情况,但我不记得一年前发生过这种情况。

答案1

在低级 PostScriptpfbtopfa上运行时会出现错误。zplr.pfb

所以这肯定是最新版本的一个错误zplr.pfb

临时解决方法:

\documentclass{article}
\usepackage{newpx}

\ExplSyntaxOn
\NewCommandCopy\latextextsection\textsection
\RenewDocumentCommand{\textsection}{}
 {
  \str_if_eq:eeTF { \use:c { f@family } } { \familydefault }
   {
    {\fontfamily{qpl}\selectfont\latextextsection}
   }
   {\latextextsection}
 }
\ExplSyntaxOff


\begin{document}

a b \S a b § a b

Palatino

\textsf{a b \S a b § a b}

\end{document}

这将使用 TeX Gyre Pagella 来表示缺失的字形,但前提是字体系列是默认的。

在此处输入图片描述

相关内容