电子表格和数据工具

电子表格和数据工具

我想将 spreadtab 包与 datatool 结合使用,在表格中进行计算。数据来自外部文件;以下是示例 (scores.csv):

FirstName,Surname,Score
John,"Smith, Jr",68
Jane,Brown,75
Andy,Brown,42
Z\"oe,Adams,52

这是 tex 文件:

\documentclass[a4paper, 11pt]{scrartcl}

\usepackage{datatool}
\usepackage[utf8]{inputenc}
\usepackage{spreadtab,numprint,fp}

\DTLloaddb[keys={Firstname,Lastname,Score}]{scores}{scores.csv}

\begin{document}
    \begin{spreadtab}{{tabular}{llr}}
        \hline
            @First Name & @Surname & @Score (\%) \\\hline%
            \DTLforeach{scores}{%
                \firstname=Firstname,\surname=Lastname,\score=Score}{%
                \firstname & \surname & \score \\}
        @Average & & sum(c1) \\
        \hline
    \end{spreadtab}
\end{document}

不幸的是,计算不起作用。当我尝试更改sum(c1)为时sum(c1:c5),编译会导致错误。当我使用STdebug它时,显示结果表只有两行:第一行包含代码DTLforeach,第二行用于计算平均分数。我猜是spreadtab 试图过早评估,因此会遇到尚未运行的代码。不过我不确定,我是 LaTeX 的新手。

我知道 datatool 也可以进行计算,但是 spreadtab 更灵活,并且提供了我用例中所需要的内容(即引用其他列和行的值等)。

任何帮助是极大的赞赏。

答案1

我通过使用脚本解决了这个问题,该脚本从外部文件读取数据并从数据中构建 .tex 文件。我无法让 datatool 和 spreadtab 一起工作。

相关内容