我使用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的评估?
答案 0 :(得分:1)
变量col3显示为字符串。您可以通过以下语法将其设置为float:
{% if col3|float < 0.0 %} \textcolor{red}{\VAR{col3}\euro}
{% else %} \VAR{col3}\euro {% endif %}
上面的Jinja代码会将变量col3排版为红色(如果是负数),黑色则大于或等于零