使用可变数量的参数从模板创建表

使用可变数量的参数从模板创建表

我想在 LaTeX 中创建下表:

\begin{table}[h]\centering
        \begin{tabular}{|c|c|c|}\hline
        Problem & Score & Max \\ \hline
        5B       &       &     \\ \hline
        5I       &       &     \\ \hline
        5J       &       &     \\ \hline
        5K       &       &     \\ \hline
        5L       &       &     \\ \hline
        Total   &       &     \\ \hline
        \end{tabular}
\end{table}

在这个例子中,我有分配的问题 5B、5I 等,但我想创建一个命令,以可变数量的问题作为参数,即

\tableofproblems{5B,5I,5J,5K,5L}

或者

\tableofproblems{5B}{5I}{5J}{5K}{5L}

最好是第一个。这可能吗?我希望能够调用此命令来创建包含 2 个问题、7 个问题等的表格。

答案1

\documentclass{article}
\usepackage{array}

\ExplSyntaxOn
\NewDocumentCommand \tableofproblems { m }
  {
    \begin{tabular}{|c|c|c|}\hline
    Problem & Score & Max \\ \hline
    \clist_map_inline:nn { #1 } 
      { ##1 & & \\ \hline }
    Total &  & \\ \hline
    \end{tabular}
  }
\ExplSyntaxOff

\begin{document}

\tableofproblems{5B,5I,5J,5K,SL}

\end{document}

上述代码的输出

相关内容