有条件地更改从 pythontex 传递的数字的字体颜色

有条件地更改从 pythontex 传递的数字的字体颜色

如果数字小于零,我想将其标记为红色。在我的最终报告中,这些数字将由 Python 脚本生成。要使用 pythontex 包,我首先运行xelatex doc.tex,然后运行pythontex doc.tex,然后xelatex doc.tex最后一次运行 Python 脚本并将其内容导入到我的文档中。

不幸的是,在此过程中,第一个 xelatex 命令会引发错误,因为\py{2-4}尚未生成,所以\colorme我创建的命令被传递?为参数而不是数字。

有什么办法可以解决这个问题吗?我只想根据数字是否大于零来更改数字的颜色?

\documentclass{article}

\usepackage{xcolor}
\usepackage{pythontex}

\newcommand{\colorme}[1]{\ifnum #1 > 0
        #1
    \else
        \textcolor{red}{#1}
    \fi
}


\begin{document}

    \colorme{5} %success
    \colorme{-1} %success
    \colorme{\py{2-4}} %fails

\end{document}

答案1

通过添加默认号码修复了此问题:

\newcommand{\colorme}[1]{\ifnum 0 < 0#1
        #1 \%
    \else
        \textcolor{red}{#1 \%} 
    \fi
}

相关内容