
Я хочу использовать 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}
Придется еще немного повозиться с размерами.