‘newpx’ 无法使用字体形状

‘newpx’ 无法使用字体形状

newpx有一个包含并使用的文档boldsmall caps以及large文本(使用 MikTeX 2.9)。

\documentclass{article}
\usepackage[largesc]{newpxtext}
\begin{document}
Normal

\textbf{Bold textbf}

{\bfseries Bold bfseries}

\large{large}

\large{\textbf{large Bold}}

\large{\textbf{\textsc{large Bold Small Caps}}}
\end{document}

MikTeX 抛出了这些LaTeX 字体信息在日志文件中。

LaTeX Font Info:    Font shape `T1/zpltlf/bx/n' in size <10> not available
(Font)              Font shape `T1/zpltlf/b/n' tried instead on input line 6.
LaTeX Font Info:    Font shape `T1/zpltlf/b/n' will be
(Font)              scaled to size 10.0pt on input line 6.
LaTeX Font Info:    Font shape `T1/zpltlf/m/n' will be
(Font)              scaled to size 12.0pt on input line 10.
LaTeX Font Info:    Font shape `T1/zpltlf/bx/n' in size <12> not available
(Font)              Font shape `T1/zpltlf/b/n' tried instead on input line 12.
LaTeX Font Info:    Font shape `T1/zpltlf/b/n' will be
(Font)              scaled to size 12.0pt on input line 12.
LaTeX Font Info:    Font shape `T1/zpltlf/bx/sc' in size <12> not available
(Font)              Font shape `T1/zpltlf/b/sc' tried instead on input line 14.
LaTeX Font Info:    Font shape `T1/zpltlf/b/sc' will be
(Font)              scaled to size 12.0pt on input line 14.

两个问题:

bx1)当我使用textbf( ) 时,为什么会调用 bold extended ( ) b?使用 时bfseriesbx不会调用,也不会LeTeX 字体信息被触发!

2)我可以通过删除所有的LaTeX 字体信息,尤其是在拥有大量论文文档时?

答案1

的内核值为\bfdefaultbx但 NewPX 字体使用b,事实上,在t1zpltlf.fd文件中你会发现如下行

\DeclareFontShape{T1}{zpltlf}{bx}{n}{<->ssub * zpltlf/b/n}{}

当您这样做时\bfseries(在处理时隐式完成\textbf),LaTeX 会将字体系列设置为bx,因此会出现“静默替换”(由声明ssub),但它仍会在日志文件中记录为“字体信息”。

如果用 声明了替换sub,则不仅在日志文件中出现“字体信息”消息,而且在控制台上还会出现“字体警告”。

如果全部粗体系列中使用的字体有一个b系列符号,而不是bx,你可以这样做

\renewcommand{\bfdefault}{b}

在序言中。但我不建议这样做:它只会减少“字体信息”消息的数量,而不会带来真正的好处。

使用以下代码

\documentclass{article}
\usepackage[largesc]{newpxtext}

\renewcommand{\bfdefault}{b}

\begin{document}
Normal

\textbf{Bold textbf}

{\bfseries Bold bfseries}

{\large large\par}

{\large\textbf{large Bold}\par}

{\large\textbf{\textsc{large Bold Small Caps}}\par}
\end{document}

日志文件将有

LaTeX Font Info:    Font shape `T1/zpltlf/b/n' will be
(Font)              scaled to size 10.0pt on input line 9.
LaTeX Font Info:    Font shape `T1/zpltlf/m/n' will be
(Font)              scaled to size 12.0pt on input line 13.
LaTeX Font Info:    Font shape `T1/zpltlf/b/n' will be
(Font)              scaled to size 12.0pt on input line 15.
LaTeX Font Info:    Font shape `T1/zpltlf/b/sc' will be
(Font)              scaled to size 12.0pt on input line 17.

第一次加载字体时,仅记录一次信息。

顺便说一句,请注意\large,与所有字体大小声明一样,它不是带有参数的命令。

答案2

您也会收到该消息\bfseries。但在文档中您只会收到一次,因为从那时起 latex 就知道应该用这种字体设置组合来替换:

\documentclass{article}
\usepackage[largesc]{newpxtext}
\begin{document}
Normal

{\bfseries Bold bfseries}

blblb

{\bfseries Bold bfseries}

\end{document}

给出了第 6 行的消息,但没有给出第 10 行的消息:

 ... scaled to size 10.0pt on input line 6.

在您的示例中,它\textbf首先出现,因此触发了消息。

人们可以压制这些信息,但我怀疑你能取得多大的胜利。

答案3

1) 这两个命令并不完全相同。您可以这样想*:\bfseries表示“从现在开始切换到默认粗体字体,无论它是什么。”这可能会或可能不会扩展,具体取决于您使用的字体系列。如果您的字体系列不包含粗体形状,LaTeX 会抱怨并使用替代字体。(\bfseries只关心您是否处于数学模式。)

该命令\textbf使用 LaTeX 的新字体选择方案,即,它会尝试巧妙地“增加粗体”到调用它的位置所使用的字体系列和字体形状。默认情况下,它会尝试添加扩展粗体,因为这是您在使用默认系列 Computer Modern(或 Latin Modern)时所期望的。

文档类article也只加载一些特定的字体大小,如果您尝试使用一些特殊的字体大小,它就会发出警告。

2) 是的。嗯,这要视情况而定。首先,尝试使用\package{lmodern}并查看它是否更适合您的需求。它允许使用更多字体大小,并且不会对此抱怨。如果您使用的是 pdf(la)tex,请查看此处:禁止 Fontaxes 警告

* 不要把钱押在这上面。

相关内容