德语(以及其他一些欧洲语言):在数字中使用逗号作为小数点标记

德语(以及其他一些欧洲语言):在数字中使用逗号作为小数点标记

在德语和其他一些欧洲语言中,逗号而不是句号用作小数分隔符,而点用作千位分隔符:12.345,67。逗号在使用时会产生一些不必要的空格,例如$12.345,67$。是否有轻量级包或宏来支持此功能?(我不是在寻找像插入千位分隔符这样的自动格式化。)

\documentclass{minimal}
\usepackage[utf8]{inputenc}

\begin{document}
Der Preis beträgt $12.345,67$ Euro.    
\end{document}

价格为 $12,345,67$ 欧元。

一个简单的解决方法就是打字,$12.345,{}67$但我认为这太麻烦了。

答案1

使用icomma包裹。

也可以通过siunitx包及其output-decimal-marker设置,尽管您必须将数字传递给\num宏。

答案2

人们可以发现各种各样的情况。

(1)文档中只有几个小数:使用$123{,}45$

(2)有几个数字和几个公式涉及逗号:使用 Herbert 的技巧并定义

\DeclareMathSymbol{\comma}{\mathpunct}{letters}{"3B}

\comma在公式中必须使用标点符号时使用

(3) 多个数字和多个公式:使用逗号分隔符;在需要的情况下,必须记住添加空格,例如the interval~$[0, 1]$。实际上,逗号分隔符的工作方式与情况 (2) 中概述的相同,但使用,作为一个“数学活动”字符,其行为取决于下一个标记。

(4) 多个数字:使用 siunitx 和\num,确保数字得到统一处理。例如,$123\,456{,}78$只需更改文档中的一行(即 的参数),\sisetup即可将格式从 123.456,78 更改为“更正确”的格式。

答案3

\documentclass{minimal}
\usepackage[utf8]{inputenc}
\DeclareMathSymbol{,}{\mathord}{letters}{"3B}

\begin{document}
Der Preis beträgt $12.345,67$ Euro.    
\end{document}

\mathpunct如果你愿意,你也可以将点重新定义为

答案4

只是为了完整性:

还有ziffer包裹。

请注意,其标准设置实际上具有\phantom{.}千位分隔符,可能是为了模拟广泛(ISO,BIPM,IUPAC,AMA)的建议,即使用(细)空格作为明确的数字组分隔符。

如果为此目的需要一个.(或实际的),则需要重新定义。\thinspace\ZifferLeer

相关内容