使用 amsmath、mathabx、mathpazo 进行“大小替换”

使用 amsmath、mathabx、mathpazo 进行“大小替换”

以下示例给出了如下所示的警告:

\documentclass{book}
\usepackage{amsmath}
\usepackage[matha]{mathabx}
\usepackage{mathpazo}
\begin{document}
$\text{$a$}$
\end{document}

LaTeX Font Warning: Size substitutions with differences
(Font)              up to 0.43996pt have occurred.

使用:

This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex)

以下每一种操作都可以使警告消失:

  • 省略mathabxmathpazo
  • 将文档字体大小更改为 11pt 或 12pt
  • 写作$a$或者$\text{a}$

问题:这个警告应该被认真对待吗?它是否指向一些可能会损害文档外观的东西?如果是这样,有什么解决办法吗?

我没有在 PDF 输出中看到任何问题,但想确定一下。

答案1

如果你添加

\usepackage{tracefnt}

您可以从字体系统获取更多信息,特别是它会告诉您哪种字体被替换:

LaTeX Font Warning: Font shape `U/matha/m/n' in size <7.6> not available
(Font)              size <8> substituted on input line 8.

因此,您可以决定不关心上标使用的是 8pt 字体而不是 7.6pt 字体(.4pt 实际上不是很大:-) 但如果您确实关心那么...

从包装上看,替换的原因是

\DeclareFontShape{U}{matha}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * matha
      <10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
      }{}

这说明该字体仅提供离散尺寸,因此 LaTeX 会用最接近的尺寸替换。

如果(如这里)字体现在以可扩展的形式提供,则这些替换的需要实际上并不适用,因此,就像fix-cm(或更旧的type1cm)软件包将标准声明替换为允许字体缩放的声明一样,您可以在此处执行相同的操作

\DeclareFontShape{U}{matha}{m}{n}{
      <-6> matha5
      <6-7> matha6
      <7-8> matha7
      <8-9> matha8
      <9-10> matha9
      <10-12> matha10 
      <12-> matha12
      }{}

表示对于 7pt <= s < 8pt 之间的任何尺寸请求使用 matha7 的缩放版本。

因此,此操作没有任何警告

\documentclass{book}
\usepackage{amsmath}
%\usepackage{tracefnt}
\usepackage[matha]{mathabx}
\DeclareFontShape{U}{matha}{m}{n}{
      <-6> matha5
      <6-7> matha6
      <7-8> matha7
      <8-9> matha8
      <9-10> matha9
      <10-12> matha10 
      <12-> matha12
      }{}
\usepackage{mathpazo}
\begin{document}
$\text{$a$}$
\end{document}

相关内容