我有一张表格,其中有一列包含一些数字,有正数,也有负数。
我想分别对正数和负数进行求和,但不想在sum
宏中明确提及单元格地址。
我不知道有什么方法可以自动完成此操作?我的表类似于以下 MWE。
\documentclass{article}
\usepackage{spreadtab}
\begin{document}
\begin{spreadtab}{{tabular}{r|c}}
1 & randint(-10, 10) \\
\STcopy{v}{a1+1} & randint(-10, 10) \\
& randint(-10, 10) \\
& randint(-10, 10) \\
& randint(-10, 10) \\
& randint(-10, 10) \\
& randint(-10, 10) \\
& randint(-10, 10) \\
\hline
@Total Sum & :={sum(b1:[0,-1])}\\
@Pos. Nums Sum & \\
@Neg. Nums Sum & \\
\end{spreadtab}
\end{document}
答案1
您可以使用隐藏的帮助列:
\documentclass{article}
\usepackage{spreadtab}
\usepackage{booktabs}
\begin{document}
\begin{spreadtab}{{tabular}{rc}}
1 & \STcopy{v}{randint(-10, 10)}
& \STcopy{v}{ifgt(!b1,0,!b1,0)}\SThidecol
& \STcopy{v}{iflt(!b1,0,!b1,0)}\SThidecol \\
\STcopy{v}{a1+1} &&& \\
&&&\\
&&&\\
&&&\\
&&&\\
&&&\\
&&&\\
\midrule
@Total Sum & :={sum(b1:[0,-1])} &&\\
@Pos. Nums Sum & :={sum(c1:[1,-2])} &&\\
@Neg. Nums Sum & :={sum(d1:[2,-3])} &&\\
\end{spreadtab}
\end{document}