mcexam: Erro ao inserir pergunta de um arquivo

mcexam: Erro ao inserir pergunta de um arquivo

mcexamenão parece permitir comandos \input no ambiente mcquestions. Este MWE usa o pacote mcexam para criar um exame com três questões mc. A linha \input lê o conteúdo de uma pergunta do arquivo q1.tex, mas o LaTeX indica que a linha superior desse arquivo (ou seja, \question ...) é uma sequência de controle indefinida. Em seguida, combina as listas de respostas da primeira e da segunda perguntas.

Você pode comentar a linha \input para confirmar se o MWE funciona sem a entrada externa. E você pode copiar o conteúdo de q1.tex para test.tex para substituir a linha de entrada e confirmar se o conteúdo de q1 é bom.

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

Aqui está o arquivo externo.

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

E aqui está uma captura de tela do documento compilado.

mcexam_error

Por que quero ler perguntas de arquivos externos com uma linha de entrada para cada pergunta? Estou desenvolvendo um banco de testes de 1.300 perguntas para um livro didático. Espero que haja uma solução simples, porque uma solução complicada não funcionará quando a implementarmos para os instrutores.

Responder1

O pacote procura \questione salva todos eles, provavelmente para suportar a randomização do pedido, mesmo quando a randomização está desabilitada.

A maneira mais fácil é sair \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}

comq1.tex

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

informação relacionada