Простая арифметика на экзамене

Простая арифметика на экзамене

Как выполнить простые вычисления в LaTeX?

Конкретно, я хочу разделить \numpoints(часть пакета exam) на 1,10. То есть, я хочу сделать что-то вроде этого:

Grade: \underline{\hspace{2cm}} out of \numpoints<DIVIDED BY 1.1> (points available \numpoints).

решение1

С использованиемexpl3это действительно просто:

введите описание изображения здесь

\documentclass[addpoints]{exam}
\usepackage{expl3}
\ExplSyntaxOn
  \cs_new_eq:NN \calc \fp_eval:n
\ExplSyntaxOff
\makeatletter
\newcommand{\calcnumpoints}{\@ifundefined{exam@numpoints}{0}{\exam@numpoints}}
\makeatother
\begin{document}

\begin{questions}
  \titledquestion{First Question}[5]
  \titledquestion{Second Question}[5]
  \titledquestion{Third Question}[2]
  \titledquestion{Fourth Question}[2]
\end{questions}

\numpoints

\calc{round(\calcnumpoints/1.1,1)}

\end{document}

\calcвыполняет любые вычисления с плавающей точкой, которые в приведенном выше случае округляются до одного десятичного знака. Поскольку \numpointsвыводит что-то вроде ссылки (??если он не существует и \exam@numpointsв противном случае), я сделал альтернативное определение \calcnumpoints, которое по умолчанию равно 0, если \exam@numpointsеще не определено. Таким образом, вы можете использовать его в расчетах, как и ожидалось.

Связанный контент