有问题的字体交互

有问题的字体交互

在我几年前的一个(大型)项目中,我使用 fourier 作为主字体,使用 roboto condensed 作为默认无衬线字体(主要用于(子)部分标题)。这很有效。

今天我尝试重新编译该项目,发现除其他外,斜体和倾斜样式被忽略了。这似乎是由于 roboto condensed 和 fourier 之间的相互作用造成的。

这是一个显示我的问题的最小工作示例:

\documentclass{memoir}

\usepackage{fourier}
\usepackage[condensed]{roboto}

\begin{document}
    Test \textit{Test} \textsl{Test} \textbf{Test} \(Test\) \textsf{Test}
\end{document}

输出如下:

在此处输入图片描述

如果我\usepackage[condensed]{roboto}用替换\usepackage{roboto},则输出变为:

在此处输入图片描述

如您所见,后者工作正常,但前者却不行。我做错了什么?

答案1

这非常类似于使用 roboto condensed 时,其他字体的斜体出现问题但需要一些技巧才能消除恼人的虚假警告。我还为 Roboto 添加了缩放功能,否则它比 Fourier(实际上是 Utopia)更高。

\documentclass{memoir}
\usepackage[T1]{fontenc} % fourier does it, so it's best here

% avoid a spurious warning about cmr
\DeclareFontShape{T1}{cmr}{c}{n}{<->ssub*cmr/m/n}{} % avoid a spurious warning

% load roboto (but scaled because fourier is less tall)
\usepackage[scaled=0.9,condensed]{roboto}

% avoid a spurious warning about futs
\input{t1futs.fd}
\DeclareFontShape{T1}{futs}{c}{n}{<->ssub*futs/m/n}{} % avoid a spurious warning

% load fourier
\usepackage{fourier}

% fix the wrong setting by roboto
\renewcommand{\seriesdefault}{m}

\begin{document}

Test \textit{Test} \textsl{Test} \textbf{Test} \(Test\) \textsf{Test}

\end{document}

在此处输入图片描述

答案2

尽管您在评论中提到您正在使用 PDFTeX,但另一种解决方案是在 LuaLaTeX (或 XeLaTeX) 中加载字体的 OTF 版本。您可以通过fourier-otf或加载 Erewhon Math 作为 Fourier 替换,unicode-math并使用 加载 Roboto 的 OpenType 版本\setsansfont

我建议尽可能使用现代工具链,必要时使用旧版 8 位字体。升级将消除旧软件包带来的大量技术债务。

相关内容