我有一份文档,需要两个版本:一个版本为 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
。