如何在序言中决定考试的格式

如何在序言中决定考试的格式

我使用该类exam用 Latex 制作考试。考试可以是小型考试(期中考试等)的 A3 格式,也可以是 A4 格式。我可以使用包来决定这一点geometry。我使用一些包和自己的命令,其中一部分命令必须放在geometry包之前,另一部分必须放在包之后。

我使用包中的“toggle”命令etoolbox来决定是否采用 A4 格式。当然,此命令必须放在包之前geometry

我给出了一个 MWE,你可以尝试这两个命令的效果\toggletrue{A4Exam}\togglefalse{A4Exam}

\documentclass[12pt]{exam}

%%\usepackage{PreCommands}    %%% Packages and Commands before geometry


\usepackage{etoolbox}
\newtoggle{A4Exam}
\toggletrue{A4Exam}
\togglefalse{A4Exam}

\setlength{\columnseprule}{3pt}

%%% The geometry
\iftoggle{A4Exam}
{\usepackage[total={180mm,255mm},includefoot,includehead,centering,twoside,top=10pt]{geometry}}
{\usepackage[a3paper,landscape,twocolumn,margin=2cm]{geometry}}

%%\usepackage{PostCommands}   %%% Packages and Commands after geometry

\begin{document}
First page
\newpage
second page
\end{document}

我的问题是:我怎样才能把所有这些都放在一个包中,并在那里决定我是处于一种情况还是另一种情况?那么,命令\toggletrue{A4Exam}或如何\togglefalse{A4Exam}在几何命令之前生效,即使它是在包之后写的(使用一些命令,如\AtBeginDocument,我尝试过但没有任何结果)?

更准确地说,我想要获得像这样的文件:

\documentclass[12pt]{exam}

\usepackage{MyExamCommands} 

\toggletrue{A4Exam}
%\togglefalse{A4Exam}       %%  These commands must be effective in the beginning of the package MyExamCommands

\begin{document}
First page
\newpage
second page
\end{document}

其中“MyExamCommands”包包含以下命令:

%%\usepackage{PreCommands}    %%% Packages and Commands before geometry

\usepackage{etoolbox}
\newtoggle{A4Exam}

\setlength{\columnseprule}{3pt}

%%% The geometry
\iftoggle{A4Exam}
{\usepackage[total={180mm,255mm},includefoot,includehead,centering,twoside,top=10pt]{geometry}}
{\usepackage[a3paper,landscape,twocolumn,margin=2cm]{geometry}}

%%\usepackage{PostCommands}   %%% Packages and Commands after geometry

并且命令\toggletrue{A4Exam}...对几何命令有影响!

答案1

我不确定我是否理解了你的问题。但是你想再次将此定义用于其他文档吗?我制作了类似的东西,保存在 MyExamCommands.sty 文档中,然后加载:

\input{../../0latextemplates/MyExamCommands.sty}

(如果你将文件放在同一目录中,则你将获得:

\input{MyExamCommands.sty}

相关内容