自动识别siunitx中的单位前缀

自动识别siunitx中的单位前缀

我经常通过 pythontex 将一些基本计算直接嵌入到我的 latex 源中。我遵循惯例,即以 SI 单位给出脚本中的所有数字(例如,秒而不是纳秒,千克而不是克等)。从我的 latex 文档中,我可以将脚本中定义或计算的变量传递给 siunitx,并通过名为的命令将其打印出来\pySI

\DeclareDocumentCommand{\pySI}{ O{} m m O{}}
{%
\py[#1]{'\\SI[#4]{' + str(#2).replace('(','').replace(')','') + r'}{#3}'}%
}

现在假设我的 python 脚本中有一个变量l(以米为单位的长度),其值为l = 2.5e-3。但是在主文档中,我希望以毫米为单位打印数字,然后我将其命名为\pySI{l*1e3}{\mm}。这有点不方便。因此,我正在寻找一种方法,让 siunitx 识别单位前缀,\milli例如\pySI{l}{\mm}\pySI{l}{\mili\meter}排版2.5 mm。这应该适用于所有前缀,例如\pySI{l}{\m}应打印0.0025 m(或根据 si 设置以科学计数法表示)或\pySI{l}{\cm}应打印0.25 cm。它也应该适用于 siunitx 中定义的所有单位。

相关内容