我必须在两台装有不同 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
意思是“这个日期或更晚”,这有点奇怪。有关检查版本的更多信息,请参阅我使用的是哪个版本的软件包?)