我想使用字体大小为 13pt 的 KOMA 脚本(请参阅此处的相关问题:Koma Script 和真实的 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 会抱怨计算机现代字体中缺少字体形状(我理解cmr
代表计算机现代罗马字体?)。
\RequirePackage{fix-cm}
我可以在 documentclass 之前使用来摆脱字体形状警告,但这对我来说似乎很奇怪(我想使用 lmodern,而不是 computer modern)。
我猜忽略警告是安全的(PDF 不包含 cm),但我仍然想了解发生了什么。我尝试将字体大小的更改推迟到lmodern
加载之后,但没有帮助。
[ 相关德语问题,由 Markus Kohm 回答,建议使用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}