LATEX3:超过 9 个参数

LATEX3:超过 9 个参数

我正在使用 Latex3 制作表格模板,想要计算某一列的总和。我的问题是我不能传递超过 9 个参数,但这是必要的,因为我不知道表格会有多大。

Spreadtab 包不起作用。

下面是一个例子:

\documentclass[a4paper,12pt]{article}   
\usepackage{xparse}                                                                         
\usepackage{fp}


\def\one{1}
\def\two{2}
\def\three{3}
\def\four{4}
\def\five{5}
\def\six{6}
\def\seven{}
\def\eight{8}
\def\nine{9}
\def\ten{1}

\ExplSyntaxOn
\NewDocumentCommand{\calcsum}{O{0}O{0}O{0}O{0}O{0}O{0}O{0}O{0}O{0}} %Here i need more than 9 arguments
   { \fp_to_decimal:n {#1 + #2 + #3 + #4 + #5 + #6 + #7 + #8 + #9}}             
\ExplSyntaxOff

\begin{document}

Result: \calcsum[\one][\two][\three][\four][\five][\six][\seven][\eight][\nine]

\end{document}

答案1

使用逗号列表分隔的值列表:

\documentclass[a4paper,12pt]{article}
\usepackage{xparse}
\usepackage{fp}

\def\one{1}
\def\two{2}
\def\three{3}
\def\four{4}
\def\five{5}
\def\six{6}
\def\seven{}
\def\eight{8}
\def\nine{9}
\def\ten{1}

\ExplSyntaxOn
\NewDocumentCommand{\calcsum}{m}
 {
  \clist_set:Nx \l_tmpa_clist { #1 }
  \fp_to_decimal:n { \clist_use:Nn \l_tmpa_clist { + } }
 }
\ExplSyntaxOff

\begin{document}

Result: \calcsum{\one,\two,\three,\four,\five,\six,\seven,\eight,\nine,\ten}

\end{document}

我们利用了空项会被忽略的事实\clist_set:Nn

在此处输入图片描述

相关内容