使用 \newcommand 有条件地格式化数字

使用 \newcommand 有条件地格式化数字

我想创建一个命令,如果数字为负数则用红色打印,如果数字为正数则​​用绿色打印。

我努力了:

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{ifthen}
 
\newcommand\mynum[1]{\ifthenelse {#1 > 0} {\textcolor{PineGreen}{$#1$}} {\textcolor{red}{$#1$}}}
 
\begin{document}
\mynum{1.2} \mynum{-3.4}
\end{document}

但它不起作用,因为ifthenelse似乎无法使用#1

关于如何创建我需要的命令有什么想法吗?

答案1

您不需要ifthen进行这样的测试。

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
 
\newcommand\mynum[1]{\ifdim#1pt>0pt\relax
  \textcolor{PineGreen}{$#1$}%
\else
  \textcolor{red}{$#1$}%
\fi
}
 
\begin{document}
\mynum{1.2} \mynum{-3.4}
\end{document}

在此处输入图片描述

如果您想处理非常大的数字,请考虑使用xfp

相关内容