如何自动计算 LaTeX 表中的总和?

如何自动计算 LaTeX 表中的总和?

有时我希望 LaTeX 自动帮我计算总和(或其他简单算术),例如在表格中。我想确保在更新表格时不会意外忘记更新某些总和。我也不想在另一个程序(例如电子表格)中维护表格,或者使用一些外部脚本来生成 LaTeX 输出。这是否可能,而无需编写大量宏并完全使表格语法变得臃肿?

例如:

\begin{tabular}{l l l l | l}
       & Foo       & Bar       & Baz       & \\
Small  &  5        &  3        &  11       & \rowsum{} \\
Medium &  9        &  2        &  23       & \rowsum{} \\
Large  & 13        & 15        &  44       & \rowsum{} \\
\hline
       & \colsum{} & \colsum{} & \colsum{} & \\
\end{tabular}

这里,\rowsum\colsum会以某种方式计算出它们各自的行和列的总和,我不需要担心手动计算它们。

答案1

LaTeX 是一种排版系统,尝试将其用于排版之外的其他用途可能会让您在某些时候感到沮丧。除非您的表格非常简单,否则我认为使用电子表格然后将其导出到 LaTeX 绝对是最好的方法。

现在,话虽如此,对于一个简单的表格,你可以使用托尔斯滕建议,像这样的包电子表格并写下类似的东西:

\begin{spreadtab}{{tabular}{llll|l}}
          & @ Foo      & @ Bar      & @ Baz      & \\
@ Small   & 5          & 3          & 11         & sum(b2:d2) \\
@ Medium  & 9          & 2          & 23         & sum(b3:d3) \\
@ Large   & 13         & 15         & 44         & sum(b4:d4) \\ \hline
          & sum(b2:b4) & sum(c2:c4) & sum(d2:d4) &
\end{spreadtab}

texdoc spreadtab在命令行上运行以获取其文档并阅读完整的详细信息。

答案2

试试你的运气计算表电子表格或者表格计算

答案3

如果你想要符号计算(而不是 Thorsten 提供的非常酷的电子表格选项),那么智者数学有办法将其与 LaTeX 混合。

以下是 SageTex 教程中的一个示例:

\documentclass{article}
\usepackage{sagetex}

\begin{document}

Using Sage\TeX, one can use Sage to compute things and put them into
your \LaTeX{} document. For example, there are
$\sage{number_of_partitions(1269)}$ integer partitions of $1269$.
You don't need to compute the number yourself, or even cut and paste
it from somewhere.

Here's some Sage code:

\begin{sageblock}
    f(x) = exp(x) * sin(2*x)
\end{sageblock}

The second derivative of $f$ is

\[
  \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \sage{f(x)} =
  \sage{diff(f, x, 2)(x)}.
\]

Here's a plot of $f$ from $-1$ to $1$:

\sageplot{plot(f, -1, 1)}

\end{document}

答案4

Sweave 和 R 是另一个不错的选择。您可以在 Rnw 文件中创建一个代码块,导入表格,计算您想要的任何内容,然后将结果写入 tex 表格。

弗里德里希·莱施的笔记我自己的介绍

相关内容