我尝试使用该siunitx
包在我的文档中输入热导率的单位 w/mK,但得到了错误的输出。
我输入的\SI[per-mode = symbol]{113}{\watt\per\metre\kelvin}
内容应该输出“113 W/mK”,但它给出的是“113 WK/m”
我不知道它为什么会这样翻转但这让我烦死了!
答案1
修饰符\per
适用于一单位,除非你设置sticky-per
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[per-mode = symbol]{113}{\watt\per\metre\per\kelvin}
\SI[per-mode = symbol, sticky-per]{113}{\watt\per\metre\kelvin}
\end{document}
请注意,在此表述中需要使用括号以确保正确显示划分的性质。
要理解为什么标准设置要求\per
每个单元都有一个,重要的是要记住,对于“符号”输入,siunitx
解析整个单元,然后相应地构造输出。因此,与之前的SIunits
包,\per
不只是放入一个/
。
举个例子J mol^{-1} K{-1}
,用英语读起来是
焦耳每摩尔每开尔文
这就是符号 的灵感来源\joule\per\mole\per\kelvin
,其中每个单位间间隙代表单位的乘积。当用斜线书写时,我们需要在演示器 ( J/(mol K)
) 中使用括号,因为另一种选择在数学上是不正确的 ( J/mol K = J K/mol
)。
由于用户需要多种输入形式,该软件包允许stick-per
使用“每个分离分子和分母”的方法,从而允许\si[sticky-per]{\joule\per\mole\kelvin}
工作。但是,这仍然被解析为与相同的内部格式\si[sticky-per = false]{\joule\per\mole\per\kelvin}
,因此仍然会添加任何需要的括号以保持数学含义。该行为也可以使用设置进行更改bracket-unit-denominator
,因此在您想要“类似”行为的文档中,SIunits
适当的设置可能是
\sisetup{bracket-unit-denominator, per-mode = symbol, sticky-per}
(我会在整个文档基础上应用这一点。)
请注意,当您per-mode = symbol
在输入中使用倒数单位时,siunitx
重新排序,以便/
根据解析的单位正确定位。如果您强制使用分数形式,这可能会更清楚
\SI[per-mode = fraction]{113}{\watt\per\metre\per\kelvin} =
$113\,\frac{\mathrm{W}\,\mathrm{K}}{\mathrm{m}}$
最后,siunitx
允许使用文字输入(不是每个人都需要或喜欢解析单位)
\SI{113}{W/m.K}
答案2
“分母”中的单位(米和开尔文)必须先分组,然后才能被接受为一个捆绑的“单位”,否则“除法”就会出错。最好使用 来\per\metre\per\kelvin
更清楚地表明(mK)是(mK),而不是毫开尔文
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[per-mode = symbol]{113}{\watt\per\metre\kelvin} is not the same as \SI[per-mode = symbol]{113}{\watt\per{\metre\kelvin}}
\SI[per-mode =symbol]{113}{\watt\per\metre\per\kelvin} is the best variant since it does not look like Milli-Kelvin
\end{document}