mcexam: Error al ingresar la pregunta desde un archivo

mcexam: Error al ingresar la pregunta desde un archivo

examen mceno parece permitir comandos \input dentro del entorno mcquestions. Este MWE utiliza el paquete mcexam para crear un examen con tres preguntas mc. La línea \input lee el contenido de una pregunta del archivo q1.tex, pero LaTeX indica que la línea superior de ese archivo (es decir, \question...) es una secuencia de control indefinida. Luego combina las listas de respuestas de la primera y segunda pregunta.

Puede comentar la línea \input para confirmar que MWE funciona sin la entrada externa. Y puede copiar el contenido de q1.tex a test.tex para reemplazar la línea de entrada y confirmar que el contenido de q1 es bueno.

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

Aquí está el archivo externo.

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

Y aquí hay una captura de pantalla del documento compilado.

mcexam_error

¿Por qué quiero leer preguntas de archivos externos con una línea de entrada para cada pregunta? Estoy desarrollando un banco de pruebas de 1300 preguntas para un libro de texto. Espero que haya una solución simple porque una solución complicada no funcionará cuando la implementemos para los instructores.

Respuesta1

El paquete los busca \questiony los guarda todos, probablemente para admitir la aleatorización del orden, incluso cuando la aleatorización está deshabilitada.

La forma más sencilla es salir \questional exterior:

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

conq1.tex

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

información relacionada