我想使用字體大小為 13pt 的 KOMA 腳本(請參閱此處非常相關的問題: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 會抱怨計算機現代字體中缺少字體形狀(我理解cmr
代表計算機現代羅馬字體?)。
我可以透過在文檔類之前使用來擺脫字體形狀警告\RequirePackage{fix-cm}
,但這對我來說似乎很奇怪(我想使用 lmodern,而不是電腦現代)。
我想忽略警告是可以的(PDF不包括cm),但我仍然想了解發生了什麼。我嘗試將字體大小的更改推遲到lmodern
加載後,但這沒有幫助。
[ 德語相關問題,由 Markus Kohm 回答,建議使用lmodern
:http://www.komascript.de/node/1137]
答案1
該警告是由於 Computer Modern 字體僅以「離散」尺寸提供。問題在於,顯然,fontsize
當 Computer Modern 仍然是預設字體時,Koma 類別過早處理該選項。
您可以透過在開始之前加載來刪除虛假警告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}