我使用同一个 tex 文件创建了几个内容基本相同的不同布局。我有几个开关和\ifthenelse
构造来控制布局。通常,我只需设置一个或两个布尔变量即可激活特定布局。
有些布局需要字体大小 10pt,有些需要 11pt。是否可以在之后更改大小\documentclass{article}
?例如,在如下结构中:
\ifthenelse{\boolean{layoutA}}
{\setlength{\typefacesize}{10pt}}
{\setlength{\typefacesize}{11pt}}
显然,没有\typefacesize
。我想避免总是更改字体大小\documentclass
。
答案1
这是有可能的,但我不知道具体会有什么后果。使用时请自负风险:
\documentclass[10pt]{article}
\makeatletter
\newcommand\resetfontsize[1]{%
\let\small\@undefined
\let\footnotesize\@undefined
\let\scriptsize\@undefined
\let\tiny\@undefined
\let\large\@undefined
\let\Large\@undefined
\let\LARGE\@undefined
\let\huge\@undefined
\let\Huge\@undefined
\makeatletter
\input{size#1.clo}
\makeatother
}
\makeatother
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\section{abc}
\lipsum[2]
\resetfontsize{12}
\lipsum[1]
\section{abc}
\lipsum[2]
\end{document}
答案2
这KOMA-Script
类允许在文档中途更改字体大小。命令语法是,\KOMAoption{fontsize}{(new "normalsize" fontsize)}
或者,如果您需要非标准 baselineskip,则为 \changefontsizes[(new "normalsize" baselineskip)]{(new "normalsize" fontsize)}
。新 baselineskip 的默认值为 1.2 * fontsize。有关详细信息,请参阅这个答案作者:Johannes_B。
\documentclass[10pt]{scrartcl}
\usepackage{blindtext}
\begin{document}
\section{foo}
\blindtext
\KOMAoption{fontsize}{12pt}
\section{bar}
\blindtext
\changefontsizes[18pt]{12pt}
\section{gnu}
\blindtext
\end{document}