使用spreadtab
包进行某些计算时,如果某些条件为真,我必须编写一个表达式(文字和数字表达式的混合)。使用包ifthen
,对于简单条件,一切都运行良好,但是,如果条件涉及宏spreadtab
,它会识别它、计算它、将其设为真,因此写入 True 条件,但只有文字表达式,而不会进行所需的计算。在这种情况下,我如何获得所需的条件?
我给出了一个 MWE,带有一个简单的条件。第一行计算就是我想要获得的。当条件简单时,它很好。当我使用基于函数的\equal{1}{1}
条件时(我必须使用!),是一个测试,如果 num1 小于 num2,则给出 num3,在其他地方给出 num4,所以我们有并且条件为真,并将其识别为真并写入 True 条件,给出 a2 和 b2 的数值,但不评估给定的总和(命令)并将其写为文字数量。Spreadtab 对行 a、b、c、... 和列 1、2、3... 进行编号,所以这里 a2=2 和 b2=3!iflt
spreadtab
iflt(num1,num2,num3,num4)
iflt(1,2,1,2)=1
\equal{:={iflt(1,2,1,2)}}{1}
\ifthenelse
:={a2+b2}
\documentclass{book}
\usepackage{spreadtab}
\usepackage{ifthen}
\usepackage[table]{xcolor}
\begin{document}
\begin{spreadtab}{{tabular}{|c|c|c|c|}}
\hline
\rowcolor{lightgray}
@a &@ b &@ a+b &@ Test \\
\hline
2 &3 &:={a2+b2} &
\ifthenelse{\equal{1}{1}}{The sum is <<a2>>+<<b2>>=:={a2+b2}}{F}\\
\hline
2 &3 &:={a2+b2} &
\ifthenelse{\equal{:={iflt(1,2,1,2)}}{1}}{The sum is <<a2>>+<<b2>>=:={a2+b2}}{F}\\
\hline
\end{spreadtab}
\end{document}