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

관련 정보