在我的语言中,数字中通常用逗号代替点(例如 12,34 而不是 12.34)。但是,如果我写“,” ,它会自动在逗号后插入空格。为了解决这个问题,我必须改写“{,}”。是否有可能以某种方式让 latex 在数学模式下写“,” 而不是“。”?感谢您的所有建议。
答案1
是否有可能以某种方式说服 Latex 在数学模式下写“,”而不是“。”?
是的,可以说服 LaTeX打印逗号两边没有空格,而你写带有通常的点。例如,2.718
将以正确的间距打印 2,718。如果您想要通常的逗号(后面有一个空格),则需要写一个逗号而不是点,例如,(x,y) \in \mathbb{R}^2
将打印类似 (1, 2) ∈ ℝ² 的内容。
你只需要@wipet 说的那行
\mathcode`\.=`\,
我原来的答案是这个,它更大
\mathcode`\.="8000
\begingroup
\catcode`\.=\active
\gdef.{\mathord{,}}
\endgroup
这定义.
为“数学活动”,因此在数学模式中,LaTeX 将查看其活动定义并使用它。因此,我将其定义.
为\mathord{,}
您想要的,没有空格。当然,正如我之前所说,您需要写点,它将以正确间距的逗号形式打印在 .pdf 中。
答案2
您有两个完善的选择:
加载希尼奇带有选项的包
output-decimal-marker={,}
,然后写入。如果指定了包的列类型,则将视为小数点标记的\num{123,456}
选项将延续到表中排版的数字。,
S
\documentclass{article} \usepackage[output-decimal-marker={,}]{siunitx} \begin{document} \num{123,456} \end{document}
说明
\num
以文本形式工作和数学模式。该包中可以排版数字(和单位,如\SI{9,81}{\newton\per\second\squared}
)的其他命令在两种模式下都可以使用。您没有提到您的语言,但如果是德语,您也可以使用
siunitx
选项加载该包locale=DE
。这样做会自动调用规则将小数点标记排版为逗号。截至 2014 年 9 月,该包提供五种语言/地区本地化:DE、FR、UK、US 和 ZA(南非)。如果您愿意提供信息来创建新的本地化(例如 CZ),我相信该siunitx
包的维护者会很高兴收到您的来信。回到表格中排版数字的主题,你也可以使用列封装并定义您自己的列类型,例如
d
,如下:\newcolumntype{d}[1]{,,{#1}}
然后,在
tabular
或array
环境中,使用列规范,例如,d{2.5}
告知 LaTeX,该列中的数字在小数点标记前最多可以有 2 位数字,在小数点标记后最多可以有 5 位数字,这已设置为逗号。
答案3
好吧,如果你只想隐藏空格,你可以写$12{,}34$
。如果我觉得这siunitx
有点过头了,我通常会这么做(我是一名数学家,我很少使用单位,但我会使用浮点数)。