mcexam:從檔案輸入問題時出錯

mcexam:從檔案輸入問題時出錯

麥克考試mcquestions 環境中似乎不允許 \input 指令。此 MWE 使用 mcexam 套件建立包含三個 mc 問題的考試。 \input 行從檔案 q1.tex 中讀取問題的內容,但 LaTeX 顯示該檔案的頂行(即 \question ...)是未定義的控制序列。然後它會合併第一個問題和第二個問題的答案清單。

您可以註解掉 \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}

這是已編譯文檔的螢幕截圖。

mcexam_錯誤

為什麼我要從外部文件讀取問題,每個問題都有一個輸入行?我正在為一本教科書開發一個包含 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}

相關內容