我仍在努力理解可扩展性及其对命令/功能的影响。
我使用了\newcommand
而不是\NewDocumentCommand
因为后者不可扩展 而且我没有使用受保护的函数 但该函数的结果仍然无法通过 进行评估\num
。 我做错了什么?
\documentclass{article}
\usepackage{siunitx}
\ExplSyntaxOn
\fp_gzero_new:N \g__invoice_sum_fp
\NewDocumentCommand{\resetinvoicesum}{}
{
\fp_gzero_new:N \g__invoice_sum_fp
}
\resetinvoicesum
\NewDocumentCommand{\addtoinvoicesum}{m}
{
\fp_gadd:Nn \g__invoice_sum_fp { #1 }
}
\newcommand{\showinvoicesum}[1][default]
{
\fp_eval:n { \g__invoice_sum_fp }
}
\ExplSyntaxOff
\begin{document}
\addtoinvoicesum{12}
\showinvoicesum{}
\num{\showinvoicesum}
\end{document}