我正在使用考試班parts
并且与环境结合时会出现问题solutionorbox
。part
和相应的solutionorbox
应该在同一页面上。 以下是演示该问题的示例:
\documentclass{exam}
\usepackage{blindtext}
\begin{document}
\begin{questions}
\titledquestion{Farben}
\begin{parts}
\part[4] Question 1 \blindtext
\begin{solutionorbox}[16cm]
\blindtext
\end{solutionorbox}
\part[4] Question 2 \blindtext
\begin{solutionorbox}[10cm]
\blindtext
\end{solutionorbox}
\end{parts}
\end{questions}
\end{document}
我曾尝试\part
使用etoolbox
包修改命令,但它不适用于:
\preto{\part}{\par\nobreak\vfil\penalty 9999\vfilneg\vtop\bgroup}
part
这是考试目录:
\def\part{%
\@bonusfalse
\process@part
}%
如果需要,我该如何添加,\newpage
以使问题和解决方案的空间位于同一页面上,而无需添加\newpage
?
答案1
这可能不是一个好的解决方案,但这是一个开始。
首先,您必须在环境\preto
中移动补丁parts
,因为\part
在那里定义了。然后,因为\part
现在有一个\bgroup
,您必须用一个来结束您的项目\egroup
。
\documentclass{exam}
\usepackage{blindtext}
\usepackage{etoolbox}
\begin{document}
\begin{questions}
\titledquestion{Farben}
\begin{parts}
\preto{\part}{\par\nobreak\vfil\penalty 9999\vfilneg\vtop\bgroup}
\part[4] Question 1 \blindtext
\begin{solutionorbox}[16cm]
\blindtext
\end{solutionorbox}
\egroup
\part[4] Question 2 \blindtext
\begin{solutionorbox}[10cm]
\blindtext
\end{solutionorbox}
\egroup
\end{parts}
\end{questions}
\end{document}
答案2
您可以尝试\filbreak
在每个\part
命令前放置一个。这会尝试将所有分页符放在一个\filbreak
命令处,但如果到下一个命令为止的所有文本都有剩余空间,则不会分页\filbreak
。