
数年前の私の(大きな)プロジェクトの 1 つでは、メイン フォントとして 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 のスケーリングも追加しました。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 バージョンを読み込むことです。 または を使用して Erewhon Math を Fourier の代替として読み込むことができfourier-otf
、unicode-math
を使用して Roboto の OpenType バージョンを読み込むことができます\setsansfont
。
可能な場合は最新のツールチェーンを使用し、必要な場合は従来の 8 ビット フォントを使用することをお勧めします。アップグレードすると、古いパッケージに対する多くの技術的負債が解消されます。