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