我想将 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 一起工作。