使用 siunitx 以空格为单位的文本

使用 siunitx 以空格为单位的文本

我曾经(一两个月前)能够用一些带有空格的任意文本来制作我的单位,这很有帮助,因为我在数据中使用了很多不同的单位和标签,而且我不需要为每一个单位定义特殊情况。

例如,

\SI{1}{liter soln}

将产生“1 升溶液”

但是我最近更新了所有软件包,显然这个方法不再有效。我现在删除了单位中的所有空格,因此是“1 litersoln”。

有人可以证实吗siunitx最近更改为强制始终使用正确声明的单位\SI{}{}?如果是这样,是否有一些简单的解决方法?要清楚,我不想为每种情况定义唯一的限定符和单位,因为我的文件中会有几十个,每个都使用一次。

答案1

单位输入siunitx通常不应包含空格,因为空格不是单位本身的一部分。如果您确实需要空格,请明确输入

\documentclass{article}
\usepackage{siunitx}

\begin{document}
\si{litre\ soln}
\end{document}

(输入应尽可能不是取决于数学/文本模式或应强制适当的模式。)

也就是说,litre不是单位符号,并且siunitx不用于处理名称单位。因此,更典型的输入可能是

\documentclass{article}
\usepackage{siunitx}
\sisetup{qualifier-mode = space}
\begin{document}
\si{\litre\of{soln}}
\end{document}

没有必要为每种类型定义单独的限定符。(当然,您实际上不应该在单位中使用限定符,正如 BIPM 所明确指出的那样!)这样一来,您可以根据需要定义\litre“升”。

答案2

您可以使用该mode=text选项来获取要尊重的空间。

\documentclass{article}
\usepackage{siunitx}
\begin{document}
Default: \SI{1}{liter soln}

\sisetup{mode=text}
\verb|mode=text|:  \SI{1}{liter soln}
\end{document}

在此处输入图片描述

相关内容