
나는 Latex를 통해 Moodle XML 퀴즈를 생성하기 위해 "moodle" 패키지를 사용하고 있습니다. 일반적으로 잘 작동하지만 문제가 있습니다. 패키지에 익숙하지 않은 경우 환경 숫자를 사용하여 다음과 같은 숫자 답변을 만들 수 있습니다.
\begin{numerical}
What is 2+2?
\item[tolerance=0.5] 4
\end{numerical}
이 모든 것이 잘 작동하며 패키지는 PDF와 내 Moodle 사이트에 업로드할 수 있는 XML 파일을 생성합니다. 하지만 과학적 표기법으로 값을 사용하면 문제가 발생합니다.
\begin{numerical}
What is the charge on an electron?
\item[tolerance=1e-20] 1.602e-19
\end{numerical}
이 경우 "e"가 잘못된 측정 단위이고 대신 'pt'를 사용했다고 불평합니다. 검색해본 결과 별로 행운을 얻지 못했습니다. 이 패키지가 널리 사용되거나 활발히 개발되고 있는 패키지는 아닌 것 같습니다. 이것이 패키지 문제일 가능성이 있습니까? 아니면 이와 같은 라텍스 매개변수에 대한 과학적 표기법 숫자를 입력하기 위한 특정 형식이 있습니까? 그게 가능할까요!? 대문자와 소문자 'e'를 모두 시도했습니다.
답변1
패키지 는 PDF에 moodle
표시하기 위해 허용 오차가 0으로 설정되어 있는지 확인하려고 합니다 . $\pm$ (tolerance)
이를 위해 패키지는 내부적으로 TeX의 크기에 의존하기 때문에
이 테스트를 제거하면 문제를 해결할 수 있습니다. 프리앰블에서 moodle
패키지를 로드한 후 다음 코드를 추가합니다.
\makeatletter
\def\moodle@print@numerical@answer@int@int#1\@rdelim{%
\edef\moodle@numericalprint@tolerance{\noexpand\pm\moodle@tolerance}%
\ifx\moodle@fraction\@hundred
\item $#1\moodle@numericalprint@tolerance\quad\checkmark$%
\else
\item $#1\moodle@numericalprint@tolerance$\quad (\moodle@fraction\%)%
\fi
}%
\def\moodle@print@clozenumerical@answer@int@int#1\@rdelim{%
\ifx\moodle@fraction\@hundred
\def\moodle@clozenumericalprint@fraction{$\checkmark$}%
\else
\edef\moodle@clozenumericalprint@fraction{(\moodle@fraction\%)}%
\fi
\edef\moodle@clozenumericalprint@tolerance{\noexpand\pm\moodle@tolerance}%
\xdef\moodle@clozenumericalprint@line{$#1\moodle@clozenumericalprint@tolerance$
& \moodle@clozenumericalprint@fraction}%
\xa\g@addto@macro\xa\cloze@numerical@table@text\xa{\moodle@clozenumericalprint@line
\\}%
}%
\makeatother
컴파일과 Moodle 가져오기가 모두 성공합니다.