Почему я получаю предупреждение о Computer Modern, хотя я использую lmodern?

Почему я получаю предупреждение о Computer Modern, хотя я использую lmodern?

Я хотел бы использовать шрифт KOMA с размером шрифта 13pt (см. очень похожий вопрос здесь:Шрифт Koma и настоящий 13pt). Рассмотрим следующий документ:

\documentclass[fontsize=13pt,DIV=12]{scrartcl}

\usepackage{lmodern}
\usepackage[T1]{fontenc}

\begin{document}
test
\end{document}

Я получаю следующие предупреждения:

Class scrartcl Warning: Using fallback calculation to setup font sizes
(scrartcl)              for basic size `13pt' on input line 1564.

LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <13> not available
(Font)              size <12> substituted on input line 1564.

LaTeX Font Warning: Font shape `T1/cmr/m/n' in size <13> not available
(Font)              size <12> substituted on input line 100.

Хотя я полностью понимаю первое предупреждение (меня устраивают рассчитанные размеры шрифтов), я не понимаю, почему LaTeX жалуется на отсутствие форм шрифта в шрифте computer modern (я правильно понимаю, это cmrрасшифровывается как computer modern roman?).

Я могу избавиться от предупреждений о форме шрифта, используя \RequirePackage{fix-cm}перед documentclass, но мне это кажется странным (я хочу использовать lmodern, а не computer modern).

Я думаю, что можно проигнорировать предупреждения (PDF не включает cm), но я все равно хотел бы понять, что происходит. Я пробовал отложить изменение размера шрифта до тех пор, пока не lmodernзагрузится, но это не помогло.

[ Сопутствующий вопрос на немецком языке с ответом Маркуса Кома, предлагающего использовать lmodern:http://www.komascript.de/node/1137]

решение1

Предупреждение связано с тем, что шрифты Computer Modern доступны только в «дискретных» размерах. Проблема в том, что, по-видимому, классы Koma обрабатывают опцию fontsizeслишком рано, когда Computer Modern все еще является шрифтом по умолчанию.

Вы можете удалить ложное предупреждение, загрузив fix-cmперед запуском:

\RequirePackage{fix-cm}
\documentclass[fontsize=13pt,DIV=12]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage{lmodern}

\begin{document}
test
\end{document}

Вы получите только

Class scrartcl Warning: Using fallback calculation to setup font sizes
(scrartcl)              for basic size `13pt' on input line 1564.

это неизбежно, если вы не используете silenceпакет для его удаления:

\RequirePackage{fix-cm}
\RequirePackage{silence}
\WarningFilter{scrartcl}{Using fallback}

\documentclass[fontsize=13pt,DIV=12]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{lmodern}


\begin{document}
test
\end{document}

Другая стратегия была бы

\documentclass[DIV=12]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\normalfont
\KOMAoption{fontsize=13pt}
\recalctypearea

\begin{document}
test
\end{document}

но я не рекомендую этого делать.

решение2

Если вы измените свой пример на

\documentclass[fontsize=13pt,DIV=12]{scrartcl}

\stop
\usepackage{lmodern}
\usepackage[T1]{fontenc}


\begin{document}

test
\end{document}

Вы видите предупреждение о том, cmrчто приходит до того, как lmodernзагружено. Таким образом, класс устанавливает некоторые шрифты, которые позже переопределяются, но все равно генерируют некоторые предупреждения.

Вероятно, это безопасно (хотя я не думаю, что пробовал это раньше:-)

Вы не получаете никаких предупреждений от

\renewcommand\familydefault{lmr}
\renewcommand\encodingdefault{T1}
\selectfont
\DeclareErrorFont{T1}{lmr}{m}{n}{10}
\documentclass[fontsize=13pt,DIV=12]{scrartcl}


\usepackage{lmodern}
\usepackage[T1]{fontenc}


\begin{document}

test
\end{document}

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