在字幕中使用 siunitx?

在字幕中使用 siunitx?

我正在使用 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我真的不鼓励这样做!

相关内容