为什么下面的命令不会改变字体的大小?我从 book.cls 复制了它
\documentclass{book}
\makeatletter
\renewcommand*\@ptsize{2}
\makeatother
\newlength{\hallo}
\settowidth{\hallo}{m}
\begin{document}
Hallo World
\the\hallo
\end{document}
这种方式会不会有问题?例如,如果我将命令放在\@newglobalfontsize{}
前导码中的一些包后面?
\documentclass{book}
\makeatletter
\DeclareRobustCommand*{\@newglobalfontsize}[1]
{
\let\small\relax
\let\footnotesize\relax
\let\scriptsize\relax
\let\tiny\relax
\let\large\relax
\let\Large\relax
\let\LARGE\relax
\let\huge\relax
\let\Huge\relax
\makeatletter
\input{bk#1.clo}
\makeatother
}
\makeatother
\makeatletter
\@newglobalfontsize{10}
\makeatother
\newlength{\hallo}
\settowidth{\hallo}{m}
\begin{document}
Hallo World
\the\hallo
\end{document}
更新
为了避免所有问题,这对我来说是最好的方法:
\documentclass{scrreprt}
\makeatletter
\DeclareRobustCommand*{\@newglobalfontsize}[1]{\changefontsizes[\dimexpr#1*1.2\relax]{#1}}
\@newglobalfontsize{8pt}
\makeatother
\begin{document}
test
\end{document}
答案1
当你修改\@ptsize
文档类时,字体大小已经设置好了,所以更改不会实现。使用
\documentclass[12pt]{book}
是首选方法。更具体地说,设置文档类选项(使用一些默认值),然后进行处理,然后bk1\@ptsize.clo
在文档类内设置适当的字体(例如阅读)(book.cls
等等)。
来自book.cls
(添加了评论):
128: ...
129: \ExecuteOptions{letterpaper,10pt,twoside,onecolumn,final,openright}% Defaults
130: \ProcessOptions% Process options passed by user + defaults
131: \input{bk1\@ptsize.clo}% Read/setup font-specific information
132: ...