使用 siunitx 进行混合十进制输入

使用 siunitx 进行混合十进制输入

siunitx 是否接受混合十进制输入,例如 0,004319689898685966 和 0.004319689898685966?看起来像是,但它打算这样工作吗?

我使用 Python 进行带有“。”小数符号的计算,并手动输入带有“,”小数符号的计算。

图像: 在此处输入图片描述

梅威瑟:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\sisetup{range-phrase=-,
            detect-all,
            decimalsymbol=comma,
            round-mode=places,
            round-precision=4,
            range-units=single,
            per-mode=fraction,}

\begin{document}

\begin{itemize}
\item \SI{0,004319689898685966}{\meter \squared}
\item \SI{0.004319689898685966}{\meter \squared}
\end{itemize}
\end{document}

答案1

由于的输入数据\SI可能来自各种来源,因此可以使用各种样式;特别是输入中的小数点或小数逗号被转换为使用设置的标记output-decimal-marker

该密钥decimalcomma仍然可用,但它会发出警告

Package siunitx Warning: Version 1 option 'decimalsymbol' detected.

有多种选项可以符合不同的输入样式,但最终输出总是根据关于小数标记、组分隔等所选的选项进行规范化。

可以使用 进行全局设置(但尊重 TeX 组)\sisetup或使用可选参数进行本地设置\SI

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\sisetup{
  range-phrase=-,
  detect-all,
  output-decimal-marker={,},
  round-mode=places,
  round-precision=4,
  range-units=single,
  per-mode=fraction,
}

\begin{document}

\begin{itemize}
\item \SI{0,004319689898685966}{\meter \squared}
\item \SI{0.004319689898685966}{\meter \squared}
\item \SI[output-decimal-marker=.]{0.004319689898685966}{\meter \squared}
\sisetup{output-decimal-marker=\ensuremath{{\cdot}}}
\item \SI{0.004319689898685966}{\meter \squared}
\end{itemize}
\end{document}

在此处输入图片描述

答案2

siunitx包区分

  • input-decimal-markers,默认情况下,.,即逗号和句号(又称“句号”)均被解释为小数点,并且

  • output-decimal-marker,默认为.(句点)。

一个可编译的例子:

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\num{0.333} and \num{0,333}

\sisetup{output-decimal-marker={,}} % change the default

\num{0.333} and \num{0,333}
\end{document}

相关内容