! 未定义的控制序列。
\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
问题,使用\si
as you have 意味着将包视为300
一个单元,然后对后面的部分采用“独立单元”方法。这不会为您提供正确的输出。
答案3
您需要使用\SI
而不是\si
。