如何应对版本不兼容(即 siunitx 中的二进制单元)

如何应对版本不兼容(即 siunitx 中的二进制单元)

我必须在两台装有不同 TeX Live 版本的机器上编译我的论文(Ubuntu 12.04 上的 TeX Live 2009 和现在的 Ubuntu 14.04 上的 TeX Live 2013)。不幸的是,siunitx 维护者决定放弃alsoload=binary软件包选项(TeX Live 2009),转而使用选项binary-units=true(TeX Live 2013)。这意味着,如果不手动删除其中一个选项,我就无法在两台机器上编译它。

我怎样才能以面向未来的方式加载此类包?

答案1

由于各种原因,我无法为该选项alsoload添加简单的“切换到 v2 方法”代码。因此,您需要进行版本检查。v2 的更改发生在 2010-05-23,因此

\documentclass{article}
\usepackage[alsoload=binary]{siunitx}
\makeatletter
\@ifpackagelater{siunitx}{2010/05/23}
  {\sisetup{binary-units = true}}
  {}
\makeatother
\begin{document}

\SI{10}{\byte}

\end{document}

就可以了。(LaTeX2e 的\@ifpackagelater意思是“这个日期或更晚”,这有点奇怪。有关检查版本的更多信息,请参阅我使用的是哪个版本的软件包?

相关内容