我想使用 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 一起使用。
作为一般的印刷规则,普通文档应该只使用一种衬线字体系列。
\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}
可能需要对尺寸进行更多的调整。