siunitx :强制括号

siunitx :强制括号

有没有办法siunitx系统地强制使用括号?

我尝试过bracket-numbers但仅限于:

某些数字输入组合可能会产生歧义。

我想避免使用新的宏,即使有可选参数。

\documentclass{beamer}
\usepackage{polyglossia}
\setdefaultlanguage{french}

\newcommand{\Num}[2][]{$(\num[#1]{#2})$}

\RequirePackage[%
    locale=FR,%
    detect-all,%
    table-number-alignment = center-decimal-marker,
    inter-unit-product = \ensuremath{{}\cdot{}},
    group-minimum-digits=4,
    explicit-sign = +,
    bracket-numbers = false
    ]{siunitx}

\begin{document}

\num{5,3} % -> (+5,3)

\num{-5,3} % -> (-5,3)

\Num{5,3} % -> (+5,3) ok

\Num{-5,3} % -> (-5,3) ok

\end{document}

答案1

在此处输入图片描述

对egreg的想法稍作修改:

\documentclass{beamer}
\usepackage{polyglossia}
\setdefaultlanguage{french}

\RequirePackage[%
    locale=FR,%
    detect-all,%
    table-number-alignment = center-decimal-marker,
    inter-unit-product = \ensuremath{{}\cdot{}},
    group-minimum-digits=4,
    explicit-sign = +,
    bracket-numbers = false
    ]{siunitx}

\begin{document}

\newcommand{\pair}[1]{(\num{#1})}

\num{5,3} % -> (+5,3)

\num{-5,3} % -> (-5,3)

\pair{5,3}

\pair{-5,3} + \pair{-5,2}

\pair{1} + \pair{-3} = \pair{-2}

\end{document}

答案2

您可以重新定义\num-command 以包含括号:

\let\oldnum\num
\renewcommand{\num}[1]{(\oldnum{#1})}

这只会影响\num显示方式\numrange等,不受此更改的影响。

相关内容