我使用该类编写了很多文档exam
。我的一份典型文档如下所示:
\documentclass{exam}
\setlength{\marginpointssep}{2.5cm}%
\begin{document}
\begin{questions}
\question Answer the following.
\begin{parts}\setlength{\marginpointssep}{.05cm}%
\part[10] First question.
\part[10] Second question.
\end{parts}\setlength{\marginpointssep}{2.5cm}%
\end{questions}
\end{document}
注意,在环境外部,的parts
值为。在环境内部, 的值为。\marginpointssep
2.5cm
parts
\marginpointssep
.05cm
是否可以自动完成此操作,以便它\marginpointssep
位于每个环境2.5cm
之外和每个零件环境之内?parts
.05cm
答案1
要添加
\setlength{\marginpointssep}{.05cm}
到环境中parts
,可以使用etoolbox
包由于变化发生在组内,因此在环境之后将长度重置为 2.5 厘米
parts
是不必要的,因此只有环境内的内容parts
会受到此变化的影响。
\documentclass{exam}
\setlength{\marginpointssep}{1.5cm}%
\usepackage{etoolbox}
\AtBeginEnvironment{parts}{\setlength{\marginpointssep}{.05cm}}
\begin{document}
\begin{questions}
\pointsinmargin
\question Answer the following.
\begin{parts}
\part[10] First question.
\part[10] Second question.
\end{parts}%
\question[15]
\end{questions}
\end{document}
答案2
我不确定 2.5 厘米左右,在正常情况下这会将点推到纸张左边距之外。
使用\partshook
:
\documentclass{exam}
\pointsinmargin
\setlength{\marginpointssep}{1.5cm}
\renewcommand{\partshook}{\setlength{\marginpointssep}{0pt}}
\begin{document}
\begin{questions}
\question[20] Answer the following.
\begin{parts}
\part[10] First question.
\part[10] Second question.
\end{parts}
\question[20] Answer the following.
\begin{parts}
\part[10] First question.
\part[10] Second question.
\end{parts}
\end{questions}
\end{document}