如何使用非数值的 siunitx?

如何使用非数值的 siunitx?

我理解类似的东西\SI{5}{\meter\per\second}定义了数字 (5) 和单位 (m/s) 之间的某个空间。如果我想要一个变量而不是数值,我应该使用什么:R m/s?\SI{R}{\meter\per\second}失败了,因为它在第一个参数中期望一个数字,R \si{\meter\per\second}或者$R$ \si{\meter\per\second}显示不同的空间。

哪一个才是正确的用法?

\documentclass{standalone}
\usepackage{siunitx}
\sisetup{per-mode=symbol}
\begin{document}
\begin{tabular}{r}
\SI{5}{\meter\per\second}\\
$R$ \si{\meter\per\second}\\
R \si{\meter\per\second}\\
\end{tabular}
\end{document}

在此处输入图片描述

答案1

正如其他人所评论的那样,这在一定程度上是一个风格问题。就非数字输入而言,您有几个选择。您可以将R“符号”添加到那些siunitx知道的人那里,但这并不总是在数学模式下打印。所以我更喜欢关闭数字解析器的方法:

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[parse-numbers = false]{R}{\metre\per\second}
\end{document}

正如 egreg 指出的那样,要获得斜体输出,您需要设置math-rm选项

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[number-math-rm = \mathnormal, parse-numbers = false]{R}{\metre\per\second}
\end{document}

关闭解析器会强制数学模式,但保留字体控制和一致的间距(因此如果您改变设置,number-unit-separator它将被更新)。

答案2

我想你提出的是两个问题:第一,“R”和其单位(m/s)之间的间距应该如何设置;第二,“R”应该排版为直立还是斜体。

关于前者:我相信宏的siunitx作用是在数量和单位之间\SI插入一个宽度;可以使用命令手动生成此间距。关于后一个问题:我相信将变量排版为斜体是(近乎)普遍的做法。因此,我建议您使用以下命令:thinspace\,

$R$\,\si{meter\per\second}

答案3

\NewDocumentCommand{\varSI}{O{}}{\SI[math-rm=\mathnormal,parse-numbers=false,#1]}

\varSI{R}{\meter\per\second}
\varSI[math-rm=\mathbf]{R}{\meter\per\second}

答案4

例如,您可以将该\si部分引入数学模式部分:

\documentclass{standalone}
\usepackage{siunitx}
\sisetup{per-mode=symbol}
\begin{document}
\begin{tabular}{r}
\SI{5}{\meter\per\second}\\
$R\,\si{\meter\per\second}$\\
\end{tabular}
\end{document}

然后,您就可以控制间距,并可以选择\,您喜欢的不同的间距。

相关内容