在文档类命令之外声明文档范围的字体大小

在文档类命令之外声明文档范围的字体大小

我有一份文档,需要两个版本:一个版本为 10pt 大小,另一个版本为 2 页,每页 12pt。因此,我目前有:

\documentclass[10pt,a4paper,oneside,openany,article]{memoir} 
\newif\ifprintver
%\printvertrue

\ifprintver
\usepackage{pgfpages}  
\pgfpagesuselayout{2 on 1}[a4paper,border shrink=1mm,landscape]
\fi

但我必须手动更改字体大小。我可以在里面放什么\if来更改文档宽度的字体大小?

答案1

您可以printver先定义布尔值\documentclass,然后\documentclass\ifprintver条件中使用:

\newif\ifprintver
%\printvertrue

\ifprintver
\documentclass[12pt,a4paper,oneside,openany,article]{memoir} 
\else
\documentclass[10pt,a4paper,oneside,openany,article]{memoir} 
\fi

% ... other code

\ifprintver
\usepackage{pgfpages}  
\pgfpagesuselayout{2 on 1}[a4paper,border shrink=1mm,landscape]
\fi

\usepackage{lipsum}

\begin{document}

\lipsum[1-100]

\end{document}

答案2

KOMA-Script 类具有一个宏\changefontsizes,它允许您在文档中途更改主字体大小。此宏也是 scrextend 包的一部分,它可以(或至少看起来如此)与 memoir 类兼容。

\documentclass[10pt,a4paper,oneside,openany,article]{memoir} 

\makeatletter
\let\@textsubscript\relax
\let\setfootnoterule\relax
\let\multiplefootnotemarker\relax
\makeatother

\usepackage{scrextend}

\newif\ifprintver
\printvertrue

\ifprintver
\usepackage{pgfpages}  
\pgfpagesuselayout{2 on 1}[a4paper,border shrink=1mm,landscape]
\changefontsizes{12}
\fi

\usepackage{blindtext}

\begin{document}

\blindtext

\end{document}

答案3

使用变量来设置字体大小,例如

\documentclass[\FontSize, a4paper]{article}

然后pdflatex运行

pdflatex '\def\FontSize{12pt}\input{<your_file>.tex}'

现在你可以简单地改变字体大小

答案4

我不确定这是否是个好主意,只是设置字体大小。还有更细微的差别,比如设置方程式编号大小等。LaTeX 在处理选项时所做的是,它会导入一个带有大小和其他相关定义的文件,扩展名为.clo。你可以试试这个:

\input{size12.clo}

对于每个类,LaTeX 使用略有不同的约定,例如在书籍类中,它使用 bk10.clo

相关内容