字体包 tgheros 影响 lmodern

字体包 tgheros 影响 lmodern

考虑以下 MWE:

\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tgheros}
%\usepackage{helvet}   % see explanation
\begin{document}
 Let's test \textbf{bold face text} and \textit{italics text}, and most 
 importantly 
 \textit{\textbf{italic bold}} and \textbf{\textit{bold italic}}
 
 \textsf{The quick brown fox jumps over the lazy dog.} 
\end{document}

当使用 latex、pdflatex 或 lualatex 处理时,都会出现警告:

LaTeX Font Warning: Font shape `T1/lmr/b/it' in size <10> not available
(Font)              Font shape `T1/lmr/b/sl' tried instead on input line 9.

并且应该为粗体斜体的输出实际上是粗体倾斜的,就像警告所说的那样。

但是,如果使用 helvet 而不是 tgheros,则一切正常,我们会得到预期的粗体斜体。

\textsf 行实际上没有必要,只有加载 tgheros 时才会出现错误。

TeX 版本为 TeX 3.141592653(TeX Live 2021),Fedora 35,单独 texlive 安装。

那么这里面的问题在哪里呢?我猜问题是“这样的错误报告应该发送给谁?”。

答案1

tgheros 重新定义了\bfdefault,这是当前 LaTeX 中最好不要做的事情。您可以恢复默认定义:

\documentclass[10pt,a4paper]{article}

\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{tgheros}
\makeatletter
\renewcommand\bfdefault{b\@empty}
\makeatother

%\usepackage{helvet}   % see explanation
\begin{document}
 Let's test \textbf{bold face text} and \textit{italics text}, and most
 importantly
 \textit{\textbf{italic bold}} and \textbf{\textit{bold italic}}

 \textsf{The quick brown fox jumps over the lazy dog.}
\end{document}

相关内容