
在幾年前的一個(大)專案中,我使用 fourier 作為主要字體,並使用 roboto 壓縮為預設無襯線字體(主要用於(子)部分標題)。這很好用。
我今天嘗試重新編譯該項目,發現斜體和傾斜樣式等都被忽略了。這似乎是由於 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 作為傅立葉替代品,unicode-math
並使用 載入 OpenType 版本的 Roboto \setsansfont
。
我建議您盡可能使用現代工具鏈,並在必要時使用舊版 8 位元字體。升級將消除舊軟體包的大量技術債。