Computer Modernを太字フォントのままにする

Computer Modernを太字フォントのままにする

Gentium をメインフォントとして使用したいのですが、これはコマンド \usepackage{Gentium} で実行できます。ただし、"Computer Modern" を太字フォントにしたいです。どうすればいいでしょうか?

答え1

Gentiumパッケージはありませんがgentium、パッケージ名に大文字を使用すると、大文字と小文字を区別しないファイル システム (Windows) では機能しますが、\usepackage{Gentium}GNU/Linux または Mac OS X システムでは機能しないため、ファイルの移植性が制限されます。

最も単純な解決策は、 と にパッチを適用し\bfseries\mdseries現在のフォント ファミリをチェックし、それがデフォルト ( gentium) である場合は を CM に切り替え\bfseries、逆にフォント ファミリが CM である場合は に切り替えることですgentium

例に示すように、他のフォント ファミリは影響を受けません。

ただし、この例では Computer Moder Roman Bold が Gentium と視覚的に互換性がないことも示されているため、これを行わないことを強くお勧めします。Adventor と Cursor は、ここでは例としてのみ使用されており、Gentium と一緒に使用することを主張するものではありません。

一般的なタイポグラフィのルールとして、通常のドキュメントでは 1 つのセリフ フォント ファミリのみを使用する必要があります。

\documentclass{article}
\usepackage{gentium}
\usepackage{tgadventor}
\usepackage{tgcursor}
\usepackage{xpatch,pdftexcmds}

\xpatchcmd{\bfseries}
  {\selectfont}
  {\checkfamily{\familydefault}{cmr}\selectfont}
  {}{}
\xpatchcmd{\mdseries}
  {\selectfont}
  {\checkfamily{cmr}{\familydefault}\selectfont}
  {}{}

\makeatletter
\newcommand{\checkfamily}[2]{%
  \ifnum\pdf@strcmp{\f@family}{#1}=\z@
    \fontfamily{#2}%
  \fi
}
\makeatother

\begin{document}
Some text in Gentium and \textbf{some in CM {\mdseries (this is Gentium)} and back to CM}

\sffamily
Some text in Adventor and \textbf{some in bf {\mdseries (this is md)} and back to bf}

\ttfamily
Some text in Cursor and \textbf{some in bf {\mdseries (this is md)} and back to bf}

\end{document}

ここに画像の説明を入力してください

拡大表示によりフォントの衝突がよくわかる

ここに画像の説明を入力してください

より長く、おそらくより堅牢な解決策としては、.fdGentium のファイルを変更することが挙げられます。

XeLaTeX または LuaLaTeX を使用する場合は、これをより簡単に取得できます。

\usepackage{fontspec}

\setmainfont{Gentium}[
  BoldFont={Latin Modern Roman 10 Bold}
]
\setsansfont{TeX Gyre Adventor}
\setmonofont{TeX Gyre Cursor}

サイズをもう少し調整する必要があるでしょう。

関連情報