如何通过 siunitx 包正确设置带有方括号的数字间隔?

如何通过 siunitx 包正确设置带有方括号的数字间隔?

我正在使用pdfLaTex带有编译器的 overleaf,我想获得这样的数字范围:[first_value,end_value]。我通过设置siunitx包属性尝试了以下代码,但输出不是所需的输出,因为未显示方括号:

\documentclass[11pt,oneside]{book}
\usepackage{siunitx}

\sisetup{
  inter-unit-product={\,},
  number-unit-product={\,},
  output-decimal-marker = {.},
  exponent-product={\cdot},
  group-separator={},
  group-four-digits=false,
  range-phrase = \ {,}\ ,  
  range-units = brackets,  
  open-bracket = \[,        
  close-bracket =\],        
  round-mode=places,  
}

\begin{document}

$\numrange[round-precision=8]{3.00058228}{3.00089684}$


\end{document}

你能帮助我吗?

答案1

据我所知,它siunitx没有指定一组自定义括号来包裹它的功能。

、和的各种bracket选项似乎只有在您分解指数或常用单位时才有选项。我在手册中根本找不到选项和。range-exponentslist-unitsproduct-unitsrange-unitsopen-bracketclose-bracketsiunitx

(无论如何,\[\]都是用于开始和结束显示数学块的 LaTeX 宏,相当于equation的环境amsmath。)

我只需定义自己的范围宏,它会自动[包装]\…range

当然,如果您需要在文档中使用其他范围,您可以在这些自定义宏中进行range-phrase设置。range-units

代码

\documentclass[11pt,oneside]{book}
\usepackage{siunitx}

\sisetup{
  inter-unit-product={\,},
  number-unit-product={\,},
  output-decimal-marker = {.},
  exponent-product={\cdot},
  group-separator={},
  group-four-digits=false,
  range-phrase = \ensuremath{,{}}, % ensuring proper spacing around ,
  range-units = repeat,
  round-mode=places,
}
\newcommand*{\Range}[3][]{[\numrange[#1]{#2}{#3}]}
\newcommand*{\RangeUnits}[4][]{[\qtyrange[#1]{#2}{#3}{#4}]}
\begin{document}
\begin{tabular}{lll}
Mode & \ttfamily\string\numrange & \ttfamily\string\qtyrange \\
Math: & $\Range[round-precision=8]{3.00058228}{3.00089684}$
      & $\RangeUnits[round-precision=8]{3.00058228}{3.00089684}{\metre}$ \\
Text: & \Range{123}{456}         & \RangeUnits{123}{456}{\metre}
\end{tabular}
\end{document}

输出

在此处输入图片描述

相关内容