![如何使用非数值的 siunitx?](https://linux22.com/image/241264/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E9%9D%9E%E6%95%B0%E5%80%BC%E7%9A%84%20siunitx%EF%BC%9F.png)
我理解类似的东西\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}
然后,您就可以控制间距,并可以选择\,
您喜欢的不同的间距。