mcexam: ファイルから質問を入力するときにエラーが発生しました

mcexam: ファイルから質問を入力するときにエラーが発生しました

マクエグザムmcquestions 環境内で \input コマンドを許可していないようです。この MWE は、mcexam パッケージを使用して、3 つの mc 質問を含む試験を作成します。\input 行は、ファイル q1.tex から質問の内容を読み取りますが、LaTeX は、そのファイルの先頭行 (つまり、\question ...) が未定義の制御シーケンスであることを示します。次に、最初の質問と 2 番目の質問の回答リストを結合します。

\input 行をコメント アウトして、MWE が外部入力なしで動作することを確認できます。また、q1.tex の内容を test.tex にコピーして入力行を置き換え、q1 の内容が適切であることを確認できます。

% test.tex
\documentclass{article}
\usepackage[output=exam,numberofversions=1,version=1,seed=1,randomizeanswers=false,randomizequestions=false]{mcexam}
                   
\begin{document}

\begin{mcquestions}

\question The sky is
\begin{mcanswerslist}
  \answer green.
  \answer yellow.
  \answer[correct] blue.
\end{mcanswerslist}

\input{q1.tex}

\question $1+1$ equals
\begin{mcanswerslist}
  \answer 1.
  \answer[correct] 2.
  \answer 3.
\end{mcanswerslist}

\end{mcquestions}

\end{document}

外部ファイルはこちらです。

% q1.tex
\question Who was in the Beatles?
\begin{mcanswerslist}
  \answer[correct] John Lennon
  \answer Elton John
  \answer Buddy Holly
\end{mcanswerslist}

以下はコンパイルされたドキュメントのスクリーンショットです。

試験エラー

質問ごとに 1 つの入力行を使用して外部ファイルから質問を読み取りたいのはなぜですか? 教科書用に 1300 問のテスト バンクを開発しています。これをインストラクターに展開するときに複雑なソリューションは機能しないため、簡単なソリューションがあることを願っています。

答え1

パッケージは、\questionランダム化が無効になっている場合でも、順序のランダム化をサポートするために、それらをすべてスキャンして保存します。

最も簡単な方法は\question屋外に移動することです。

\documentclass{article}
\usepackage[output=exam,numberofversions=1,version=1,seed=1,randomizeanswers=false,randomizequestions=false]{mcexam}
                   
\begin{document}

\begin{mcquestions}

\question The sky is
\begin{mcanswerslist}
  \answer green.
  \answer yellow.
  \answer[correct] blue.
\end{mcanswerslist}

\question \input{q1.tex}

\question $1+1$ equals
\begin{mcanswerslist}
  \answer 1.
  \answer[correct] 2.
  \answer 3.
\end{mcanswerslist}

\end{mcquestions}

\end{document}

q1.tex

Who was in the Beatles?
\begin{mcanswerslist}
  \answer[correct] John Lennon
  \answer Elton John
  \answer Buddy Holly
\end{mcanswerslist}

関連情報