무들패키지에 크고 작은 부동 소수점 값 제공

무들패키지에 크고 작은 부동 소수점 값 제공

나는 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 가져오기가 모두 성공합니다.

관련 정보