为什么使用 T1 时 cmss/m/it 会悄悄被 cmss/m/sl 取代,但使用 OT1 时却会出现警告?

为什么使用 T1 时 cmss/m/it 会悄悄被 cmss/m/sl 取代,但使用 OT1 时却会出现警告?

这是我的 MWE:

% \RequirePackage{fix-cm}
\documentclass{article}
% \usepackage{lmodern}
% \usepackage[T1]{fontenc}
% \usepackage[OT1]{fontenc}
\begin{document}
\sffamily\textit{Hi!}

\sffamily\textit{Hi!}
\end{document}

它输出一个警告

LaTeX Font Warning: Font shape `OT1/cmss/m/it' in size <10> not available
(Font)              Font shape `OT1/cmss/m/sl' tried instead on input line 7.

所以我添加了fix-cm,同样的事情。还有[OT1]{fontenc},有或没有fix-cm,都是一样的。因此,cmss/m/it用替换cmss/m/sl似乎是一件值得警告的事情。

所以现在我改回[T1]{fontenc}我通常使用的(fix-cm暂时没有)。pdf 输出基本相同 - 两种变体看起来仍然完全相同。但警告完全消失了,除了这个信息

LaTeX Font Info:    Try loading font information for T1+cmss on input line 7.

如果我fix-cm重新添加,我至少会得到更有意义的信息:

LaTeX Font Info:    Font shape `T1/cmss/m/it' in size <10> not available
(Font)              Font shape `T1/cmss/m/sl' tried instead on input line 7.

lmodern顺便说一句,有、有 或没有fix-cm、有T1或 的情况非常相似OT1

LaTeX Font Info:    Font shape `T1/lmss/m/it' in size <10> not available
(Font)              Font shape `T1/lmss/m/sl' tried instead on input line 7.

或者

LaTeX Font Info:    Font shape `OT1/lmss/m/it' in size <10> not available
(Font)              Font shape `OT1/lmss/m/sl' tried instead on input line 7.

lmodern那么,是什么原因使得使用 T1(显然还有)替换字体比使用 OT1更容易被接受呢?

答案1

当你切换到 T1 编码时,LaTeX 将加载t1cmss.fd字体定义文件,其中包含以下行

\EC@family{T1}{cmss}{m}{sl}{ecsi}

也就是说,倾斜cmss只是重新映射到ecsi(来自 cm-super 的斜体),并且由于它已被映射,因此您不会收到警告。

相关内容