(There are a number of packages for making exams, and a variety of questions addressing related issues on this forum. However, I haven't found one solution to meet all my needs for making an exam. These functions I look for are commonly available from commercial packages for making exams; however, such programs often lack the convenience of typesetting mathematical content and the ease and precision of controlling the format as LaTeX has.)
I would like to make an exam consisting of primarily multiple-choice questions and occasionally questions with blanks to fill or short answers. Specifically, I would like to
- Have the option to generate an exam in a number of scrambled versions, where either the answer choices (A, B, C, D) or the questions themselves (or both) are randomized independently in each version. I would also like to generate a separate answer key for each scramble version (for my use when grading).
- Have the option to keep the position of some answer choices fixed during the scrambling. For example, an answer choice that says "All of the above" is only appropriate to be placed as choice D among four choices.
Above are the more essential requests. Below are some optional ones that can also be helpful:
- In the answer key pages, have the option to either print the answer key only (i.e., just the letters A, B, C, D) or print a short explanation for the answer along with the correct answer.
- Scramble questions only within each type of question (multiple-choice, fill-in-the-blank, short answer, etc.)
- Be able to label each question, and have the option of including the question label when printing (probably not useful for making exams, but helpful for my own document keeping).
- When generating scrambled versions, generate a separate sheet listing the question labels and their corresponding number in each of the scrambled versions.
- Be able to keep the position of some questions fixed while the rest are scrambled.