使用spreadtab 和 ifthen 包时出现的问题

使用spreadtab 和 ifthen 包时出现的问题

使用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!ifltspreadtabiflt(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}

输出

相关内容