
Estoy usando el paquete "moodle" para crear cuestionarios XML de Moodle a través de Latex. En general funciona bastante bien pero tengo problemas. Si no está familiarizado con el paquete, puedo usar el entorno numérico para crear una respuesta numérica como esta:
\begin{numerical}
What is 2+2?
\item[tolerance=0.5] 4
\end{numerical}
Todo esto funciona muy bien, el paquete genera un archivo PDF y también un archivo XML que se puede cargar en mi sitio Moodle. Pero tengo un problema si estoy usando valores con notación científica, por ejemplo
\begin{numerical}
What is the charge on an electron?
\item[tolerance=1e-20] 1.602e-19
\end{numerical}
En este caso se queja de que la "e" es una unidad de medida ilegal y utilizó "pt" en su lugar. No he podido tener mucha suerte en la búsqueda, no creo que este sea un paquete muy utilizado o que esté en desarrollo activo. ¿Es probable que esto sea un problema de paquete o existe un formato particular para ingresar números de notación científica para parámetros de látex como este? ¿Es eso posible? He probado con 'e' mayúscula y minúscula.
Respuesta1
El moodle
paquete intenta determinar si la tolerancia está establecida en 0 para mostrar a $\pm$ (tolerance)
en el PDF. Para esto, el paquete porque internamente se basa en las dimensiones de TeX.
Puede resolver el problema eliminando esta prueba. En el preámbulo, después de cargar el moodle
paquete, agregue el siguiente código:
\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
Tanto la compilación como la importación de Moodle serán exitosas.