如何解决 Debian siunitx 和单元包之间的不兼容性

如何解决 Debian siunitx 和单元包之间的不兼容性

我有一些使用 siunitx 和 Units 包的旧版 LaTeX 文件。下面是一个最小工作示例:

\documentclass{article}
\usepackage{siunitx}
\usepackage{units}      % Line 3
\begin{document}
$1\unit{F}$
\end{document}

这些文件在大多数平台上都能很好地运行,例如 Fedora 37 和 Overleaf。但是在 Debian 12 上,我收到此错误:

$ pdflatex a.tex
...
! Package siunitx Error: Package 'units' incompatible.

For immediate help type H <return>.
 ...                                              
                                                  
l.4 \begin{document}
                    
? 

如果我注释 LaTeX 文件的第 3 行,它在 Debian 上可以正常工作。但是,经过此更改后,该文件不再适用于其他平台。我收到的错误(在 Fedora 37 上)是:

! Undefined control sequence.
l.5 $1\unit
           {F}$
? 

有没有办法修改我的 LaTeX 文件,使其适用于所有平台?否则,我的 Debian 12 LaTeX 安装有什么问题吗?(请告诉我是否应该在超级用户等处重新发布此问题。)我正在使用以下方法在 Debian 12 上安装 LaTeX:

apt-get install texlive-full

安装包的版本texlive-science为 2022.20230122-4

答案1

siunitx于 2008 年首次发布,目的是让使用它的人远离旧软件包。对于 v2,可以同时加载siunitxunits:我在 v3 中对此进行了调整,以获得更好的命令名称。假设您乐意使用 v3 名称,您可以这样做

\usepackage{siunitx}
\ifdefined\unit\else
  \NewDocumentCommand\unit{m}{\si{#1}}
\fi

允许您使用siunitx来提供\unit您是否拥有 v2 或 v3。

相关内容