Сохраните шрифт 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.

Согласно общему правилу типографики, в обычном документе следует использовать только одно семейство шрифтов с засечками.

\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}

Придется еще немного повозиться с размерами.

Связанный контент