mcexam: Fehler beim Eingeben der Frage aus einer Datei

mcexam: Fehler beim Eingeben der Frage aus einer Datei

Abonnierenscheint keine \input-Befehle innerhalb der mcquestions-Umgebung zuzulassen. Dieses MWE verwendet das mcexam-Paket, um eine Prüfung mit drei mc-Fragen zu erstellen. Die \input-Zeile liest den Inhalt einer Frage aus der Datei q1.tex, aber LaTeX gibt an, dass die oberste Zeile dieser Datei (d. h. \question ...) eine undefinierte Steuersequenz ist. Anschließend kombiniert sie die Antwortlisten der ersten und zweiten Frage.

Sie können die \input-Zeile auskommentieren, um zu bestätigen, dass MWE ohne externe Eingabe funktioniert. Und Sie können den Inhalt von q1.tex nach test.tex kopieren, um die Eingabezeile zu ersetzen und zu bestätigen, dass der Inhalt von q1 gut ist.

% 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}

Hier ist die externe Datei.

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

Und hier ist ein Screenshot des kompilierten Dokuments.

mcexam_fehler

Warum möchte ich Fragen aus externen Dateien mit einer Eingabezeile für jede Frage lesen? Ich entwickle eine Testdatenbank mit 1300 Fragen für ein Lehrbuch. Ich hoffe, es gibt eine einfache Lösung, denn eine komplizierte Lösung wird nicht funktionieren, wenn wir dies den Dozenten zur Verfügung stellen.

Antwort1

Das Paket sucht nach \questionihnen allen und speichert sie, wahrscheinlich um die zufällige Reihenfolge zu unterstützen, selbst wenn die zufällige Reihenfolge deaktiviert ist.

Am einfachsten geht das, indem man sich \questionim Freien bewegt:

\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}

mitq1.tex

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

verwandte Informationen