
Как выполнить простые вычисления в 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
еще не определено. Таким образом, вы можете использовать его в расчетах, как и ожидалось.