在德语和其他一些欧洲语言中,逗号而不是句号用作小数分隔符,而点用作千位分隔符: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$
但我认为这太麻烦了。
答案1
答案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