有没有办法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
等,不受此更改的影响。