Jinja2如果值小于零

时间:2017-10-25 20:36:58

标签: latex jinja2

我使用Python和Jinja2生成LaTeX表。以下代码生成表格的底行:

<snip>
    \hline
    \BLOCK{for col1, col2, col3, col4, col5, col6 in shareCompSum}
    \VAR{col1} & \VAR{col2} & \VAR{col3}\euro & \VAR{col4}\euro & \VAR{col5}\euro & \VAR{col6}\euro \\
    \BLOCK{endfor}
    \hline
<snip>

相应的LaTeX输出如下:

\hline
Profit/Loss &  & -174.040\euro & -9.040\euro & -723.20\euro & -733.28\euro \\
\hline

对于第3到第6列,如果变量col3的值为负,我希望文本颜色变为红色,如果是正数,我希望正常变黑。

我试图按以下方式写一个声明:

{% if col3 < 0 %} \textcolor{red}{\VAR{col3}\euro}
{% else %} \VAR{col3}\euro {% endif %}

似乎Jinja确实评估了if条件,但是作为字符串测试而不是数字。

如何在Jinja中执行float / numbers的评估?

1 个答案:

答案 0 :(得分:1)

变量col3显示为字符串。您可以通过以下语法将其设置为float:

{% if col3|float < 0.0 %} \textcolor{red}{\VAR{col3}\euro}
{% else %} \VAR{col3}\euro {% endif %}

上面的Jinja代码会将变量col3排版为红色(如果是负数),黑色则大于或等于零