![是否可以对表中的条目执行算术运算?](https://linux22.com/image/474090/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%AF%B9%E8%A1%A8%E4%B8%AD%E7%9A%84%E6%9D%A1%E7%9B%AE%E6%89%A7%E8%A1%8C%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97%EF%BC%9F.png)
我希望 LaTeX 自动对表格中某一列的条目求和。我知道这些条目始终是整数,但我想不出“获取”它们的值的方法。我的第一个想法是这样的:
\documentclass{article}
\usepackage{array}
\begin{document}
\newcount\markcount
\markcount=0
\newcount\tmpcount
\begin{tabular}{c>{\tmpcount}c<{\advance\markcount by\tmpcount\the\tmpcount}}
a & 1 \\
b & 2 \\
\end{tabular}
\the\markcount
\end{document}
我的想法是,TeX 在每一行中遇到的第一个数字之后的下一个数字\tmpcount
是相应单元格中的条目。当然,由于事情发生的顺序错误,这会失败。是否可以实现这样的功能?我可以通过在每个包含要求和的整数的单元格中放置一个命令来实现,但这样做没什么意思。
答案1
spreadtab
如果您只想将单个列中的所有值相加,则无需复杂的答案。下面使用collcell
包、a\newcolumntype
和一个小的辅助宏来实现这一点:
\documentclass{article}
\usepackage{collcell}
\newcount\markcount
\markcount=0
\newcount\tmpcount
\newcolumntype\summingInt[2]
{>{\collectcell{\summingIntCell{#1}}}#2<{\endcollectcell}}
\newcommand\summingIntCell[2]
{%
\tmpcount=\numexpr#2\relax
\global\advance#1by\tmpcount
\the\tmpcount
}
\begin{document}
\begin{tabular}{c\summingInt\markcount{c}}
a & 1 \\
b & 2 \\
c & 1+2 \\
\end{tabular}
\the\markcount
\end{document}