可能重复:
如何自动计算 LaTeX 表中的总和?
LaTeX 可以做简单的数学运算吗?
我有一张包含两列的表,并且想要自动添加第三列,其中包含前两列之间的差异:
+------+------+-------+
| M1 | M2 | M2-M1 |
+------+------+-------+
| 80.1 | 95.2 | +15.1 |
+ ... | ... | ... |
我可以编写一个 Perl 脚本来生成第三列,但如果 LaTeX 可以直接做到这一点就更好了……
答案1
Herbert 和 Alexander 已经提到过spreadtab
。这是一种无需使用它的简单方法。
\documentclass{article}
\usepackage{booktabs}
\usepackage{fp}
\begin{document}
\def\printnum#1{%
\expandafter\printnumaux#1\relax
}
\def\printnumaux#1.#2#3\relax{%
$\ifnum#1>0+\fi#1.#2$%
}
\def\row#1#2{#1&\FPsub\r{#2}{#1}\printnum\r\\}
\begin{tabular}{rrr}
\toprule
M1&M2&M2$-$M1\\
\midrule
\row{80.1}{95.2}
\row{37.2}{73.1}
\bottomrule
\end{tabular}
\end{document}
该\row
宏接受两个参数并生成所需的三列。减法由fp
包完成,数字格式化由宏完成\printnum
。
答案2
我不知道如何轻松地“自动”添加第三列。也许你可以自己起草第三列,然后让 LaTeX 添加内容。
这可以通过spreadtab 来完成,但使用LuaTeX 效果会更好。
答案3
你可以用包轻松完成spreadtab