数字分组——撇号或空格作为小数点

数字分组——撇号或空格作为小数点

今天,我不得不处理超过 10 位数字的大数字块。使用我当前的设置,显示的数字是整数,没有任何分组或小数点,这使其难以读取,尤其是当它们包含大量零时。

我的序言:

\documentclass[paper=a4, fontsize=12pt,]{scrartcl} 
% Für Spracheingaben und korrekte Trennung
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel}

% Matherelevante Pakete
\usepackage[decimalsymbol=comma]{siunitx}
\usepackage{icomma}
\usepackage{amsmath}

% Sonstige Parameter
\setlength{\parindent}{0pt}
\numberwithin{equation}{subsection}

如您所见,我使用逗号作为常规小数符号,因此用逗号作为小数点没有太大意义。

无论如何,我如何让数字自动分组?到目前为止,我一直在使用以下手动方式来实现较大数字之间的间距,但这不太舒服:

\sqrt[2]{1,6 \cdot 10^{13}} = \sqrt[2]{16\,000\,000\,000\,000} &= 4\,000\,000\

预期输出

所以我的问题是:如何实现自动数字分组,其中小数点是撇号或非制动空格?

答案1

siunitx您已加载的包提供了用于\num格式化数字的命令。

这个命令非常方便,因为它允许独立于输入的格式来获取输出。

\documentclass[paper=a4, fontsize=12pt,]{scrartcl}
% Für Spracheingaben und korrekte Trennung
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

% Matherelevante Pakete
\usepackage[output-decimal-marker={,},exponent-product=\cdot]{siunitx}
\usepackage{icomma}
\usepackage{amsmath}

% Sonstige Parameter
\numberwithin{equation}{subsection}

\begin{document}

$\sqrt{\num{1.6e13}} = \sqrt{\num{16 000 000 000 000}} = \num{4 000 000}$

$\sqrt{\num{1,6e13}} = \sqrt{\num{16000000000000}} = \num{4000000}$

\end{document}

两个输入将产生相同的输出,即

在此处输入图片描述

请注意,这decimalsymbol=comma是一个“版本 1”选项,因此它强制siunitx仅使用版本 1 中功能较弱的功能。我在示例中传递的选项是“现代”选项。

如果你因为 TeX 发行版过时而无法使用旧版本,请更新它或使用

\usepackage[decimalsymbol=comma,expproduct=\cdot]{siunitx}

任何状况之下,绝不使用除细空格之外的任何字符来分隔数字组。

相关内容