使用考试类别,我可以使用
\documentclass{exam}
\begin{document}
\begin{questions}
\question[20]
\begin{parts}
\part[8]
\begin{subparts}
\subpart[3]
\end{subparts}
\end{parts}
\end{questions}
\end{document}
这些点出现在边缘处,很好。
现在,我需要在页边空白处添加更多未附加到 \question、\part 或 \subpart 的点,并且这些点没有自己的问题/部分/子部分编号。因此,我唯一想要实现的是在文本中不做任何其他更改的情况下在页边空白处添加额外的点。
我怎样才能将这些点添加到边缘?
答案1
\setpoint{<q, p or s>}{<text>}
将在页边空白处放置一段简短的文字来模拟问题点。
更新 在后续问题之后。
使用\setpoint{q}{<text>}
inside\question
来匹配问题的缩进;同上
\setpoint{p}{<text>}
内部parts
和
\setpoint{s}{<text>}
里面subparts
。
\documentclass{exam}
\usepackage{ifthen}
\newlength{\mypoints}
\newlength{\marginindent}
\newcommand{\pointsstyle}{\scriptsize}% use small font size
\pointsinmargin % points in the margin
\pointformat{\pointsstyle \thepoints}
\newcommand{\setpoints}[2]{% added <<<<<<<<<<<<<< \setpoint{q p s}{<text>}
\ifthenelse{\equal{#1}{q}}{\setlength{\marginindent}{6ex}}{}
\ifthenelse{\equal{#1}{p}}{\setlength{\marginindent}{11ex}}{}
\ifthenelse{\equal{#1}{s}}{\setlength{\marginindent}{15ex}}{}
\parindent0pt\par%
\settowidth{\mypoints}{\pointsstyle #2}
\hspace*{\dimexpr-\mypoints-\the\marginindent} %changed <<<<<<<<
{\pointsstyle #2}%
}
\begin{document}
\begin{questions}
\question[20]
xxx
\setpoints{q}{100 points} % <<<<<<<<<<<<<<<<<<<<<<<<<<<
\begin{parts}
\part[8]
www
\setpoints{p}{34 points} %
\begin{subparts}
\subpart[3]
qqq
\setpoints{s}{42 bonus pts.} %
\end{subparts}
\end{parts}
\end{questions}
\end{document}