siunitx 的单位错误

siunitx 的单位错误

! 未定义的控制序列。

\documentclass[12pt]{article}
\usepackage{siunitx}
\begin{document}
\si{300}{\nanogram\per\millilitre}
\end{document}

为什么?

答案1

\SI{<number>}{<unit macros>}如果您想排版带单位的数字,则必须使用(而不是小写的\si,它只排版单位),并且单位前缀如\milli\nano必须与单位宏\liter和分开\gram

\documentclass[12pt]{article}
\usepackage{siunitx}
\begin{document}
\SI{300}{\nano\gram\per\milli\litre}
\end{document}

答案2

Jake 回答了核心问题:单位和前缀必须单独给出。不过,我认为我应该补充一些意见。潜在组合实在太多,无法全部提供,因此包的核心只定义了单独的前缀和单位。您可以使用以下方式定义其他单位\DeclareSIUnit

\DeclareSIUnit\nanogram{\nano\gram}

有大量缩写单位,目前必须作为选项加载

\documentclass[12pt]{article}
\usepackage{siunitx}
\sisetup{load-configurations = abbreviations}
\begin{document}
\SI{300}{\ng\per\ml}
\end{document}

(我计划修改它,以便在我进行 v2.3 更新时将它们作为标准加载:希望这会在六月的某个时候发生。)

\si 相对 \SI问题,使用\sias you have 意味着将包视为300一个单元,然后对后面的部分采用“独立单元”方法。这不会为您提供正确的输出。

答案3

您需要使用\SI而不是\si

相关内容