
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}
拡大表示によりフォントの衝突がよくわかる
より長く、おそらくより堅牢な解決策としては、.fd
Gentium のファイルを変更することが挙げられます。
XeLaTeX または LuaLaTeX を使用する場合は、これをより簡単に取得できます。
\usepackage{fontspec}
\setmainfont{Gentium}[
BoldFont={Latin Modern Roman 10 Bold}
]
\setsansfont{TeX Gyre Adventor}
\setmonofont{TeX Gyre Cursor}
サイズをもう少し調整する必要があるでしょう。