mcexam: Ошибка ввода вопроса из файла

mcexam: Ошибка ввода вопроса из файла

mcexamне разрешает команды \input в среде mcquestions. Этот 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_error

Почему я хочу читать вопросы из внешних файлов с одной строкой ввода для каждого вопроса? Я разрабатываю банк тестов на 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}

Связанный контент