在 siunix 的 \num 中突出显示特定数字

在 siunix 的 \num 中突出显示特定数字

我想突出显示数字中的特定数字。由于数字很大,我想\num{}使用包裹siunitx

当然,我可以像下面的 MWE 一样手动完成此操作,但希望有一种简单的方法可以使用注释掉的语法来完成此操作:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{xcolor}
\usepackage{siunitx}

\newcommand*{\Color}[2][red]{\textcolor{#1}{#2}}%

\begin{document}

\num{99 976}

88\,9\Color{76} %\num{88 9\Color{76}}

77\,\Color{976} %\num{77 \Color{976}}

\end{document}

答案1

以下示例定义了\phnum,它支持\X作为附加数字。 宏定义为幻像数字,为数字留出位置。 然后可以通过用不同颜色覆盖数字来组成彩色数字。 不同颜色的数字被 掩盖\X,例如:

\documentclass{article}
\usepackage{xcolor}
\usepackage{siunitx}

\newcommand*{\phnum}[2][]{%
  \begingroup
    \protected\def\X{\phantom{0}}%
    \num[
      input-digits=0123456789\X,%
      #1%
    ]{#2}%
  \endgroup
}

\begin{document}

\num{99 976}

\leavevmode
\rlap{\phnum{889\X\X}}\textcolor{red}{\phnum{\X\X\X76}}

\leavevmode
\rlap{\phnum{77\X\X\X}}\textcolor{red}{\phnum{\X\X976}}

\leavevmode
\rlap{\color    {red}\phnum{1\X\X\X\X\X\X}}%
\rlap{\color  {green}\phnum{\X2\X\X\X\X\X}}%
\rlap{\color   {blue}\phnum{\X\X3\X\X\X\X}}%
\rlap{\color   {cyan}\phnum{\X\X\X4\X\X\X}}%
\rlap{\color{magenta}\phnum{\X\X\X\X5\X\X}}%
\rlap{\color {yellow}\phnum{\X\X\X\X\X6\X}}%
                     \phnum{\X\X\X\X\X\X7}    

\end{document}

结果

当然,这种语法相当繁琐。但至少,该示例提供了一种将数字的各个部分组合在一起并\num同时使用的思路。

相关内容