I'm using the exam
class to prepare a test.
Unfortunately, the package allows page breaks inside the solution list of a question. Considering this toy example:
\question Example of question. Choose a solution:
\begin{checkboxes}
\choice A
\choice B
\choice C
\CorrectChoice D
\end{checkboxes}
It could be that a pagebreak
happens between \choice B
and \choice C
.
How could I prevent that?
Update
The solution proposed by Mico works unless we want to print the solutions to the test AND the last answer of a question is a \CorrectChoice
.
Here's a MWE that reproduces the problem:
\documentclass[answers]{exam}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{etoolbox}
\AtBeginEnvironment{checkboxes}{\par\medskip%
\begin{minipage}{\textwidth}}
\AtEndEnvironment{checkboxes}{%
\end{minipage}}
\CorrectChoiceEmphasis{}
\begin{document}
\begin{questions}
\question Random text for question 1
\begin{checkboxes}
\choice answer 1
\choice answer 2
\choice answer 3
\choice answer 4
\choice answer 5
\CorrectChoice answer 6
\end{checkboxes}
\question Random text for question 2
\choice answer 1
\choice answer 2
\choice answer 3
\choice answer 4
\choice answer 5
\CorrectChoice answer 6
\end{checkboxes}
\question Random text for question 3
\choice answer 1
\choice answer 2
\choice answer 3
\choice answer 4
\choice answer 5
\CorrectChoice answer 6
\end{checkboxes}
\question Random text for question 4
\choice answer 1
\choice answer 2
\choice answer 3
\choice answer 4
\choice answer 5
\CorrectChoice answer 6
\end{checkboxes}
\question Random text for question 5
\choice answer 1
\choice answer 2
\choice answer 3
\choice answer 4
\choice answer 5
\CorrectChoice answer 6
\end{checkboxes}
\end{questions}
\end{document}
I've solved it by following the 2nd suggestion given here, that is, surround what you don't want to be broken by \parbox
. (For the records, using \samepage
didn't work.)
\documentclass
so that those trying to help don't have to recreate it.