我正在使用 pdflatex(texlive 2011) 编译文档。不幸的是,它无法编译。
! Undefined control sequence.
\metre ->\ERROR
l.69 ...feld \num{6}{\metre} mal \num{6}{\metre}}
siunitx 适用于普通文本中的单元,但在字幕中使用它会失败。这是错误还是配置错误。在 texlive 2009 下,它可以完美编译。
这是我的图形命令
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{figure}
\caption{\num{6}{\metre}}
\end{figure}
\end{document}
答案1
只要你不滥用,一切都会正常运作\num
:-)
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\listoffigures
\begin{figure}
Some filler
\caption{A caption \SI{6}{\metre}}
\end{figure}
\end{document}
原因:\num
宏命令接受一个参数:一个数字。因此,您在 之后实际上有一个独立的单元\num
,因此 无法正确处理它们siunitx
。
为了解释为什么这在 TL2009 中有效,它有版本 1。siunitx
旧代码创建了“独立”单元作为标准,这在版本 2 中进行了更改。“独立”单元存在各种问题,包括命名空间问题:这一变化是经过深思熟虑的。当然,这意味着类似
\documentclass{article}
\usepackage{siunitx}
\sisetup{free-standing-units}
\begin{document}
\begin{figure}
\caption{\num{6}{\metre}}
\end{figure}
\end{document}
可以工作,但是由于这不是正确的用法,所以\num
我真的不鼓励这样做!