我正在使用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-exponents
list-units
product-units
range-units
open-bracket
close-bracket
siunitx
(无论如何,\[
和\]
都是用于开始和结束显示数学块的 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}