TeX Live 无法使用自定义类。提示未定义控制序列 \if@cref@hyperrefloaded

TeX Live 无法使用自定义类。提示未定义控制序列 \if@cref@hyperrefloaded

自从切换到 Linux 并因此从 MiKTeX 切换到 TeX Live 后,我无法使用我大学同学制作的自定义类来编译所有文档。

我正在使用的课程是碘值,也可在 CTAN 上找到。该课程本身基于scrreprt

我准备了一个最小的例子,它在 Overleaf 中运行良好,但在我的本地编译器中却不行:

\documentclass[load-dhbw-templates]{iodhbwm}
\usepackage[T1]{fontenc}

\dhbwsetup{%
    author              = John Doe
}

\begin{document}
    \tableofcontents    % Print ToC
    \chapter{Test Chapter}\label{chap:test-chap}
\end{document}

这里是错误日志

我已经搜索过可能的解决方案,但大多数都是基于对软件包的错误使用。我 100% 确信,我的最小示例适用于 MiKTeX 和 Overleaf。

如果需要的话,我使用 Manjaro Linux 和 KDE Plasma,使用 TeXStudio 3.0.4 和 TeX Live 2020。这是我的已安装的软件包

答案1

更新

iodhbwm 2021-02-15 v1.2.2解决了这个问题。

原始答案

该类iodhbwm使用已弃用的选项\AfterPackage。更准确地说,它确实

\AfterPackage!{hyperref}{<code to load cleveref>}

的当前版本scrlfile不再接受!,这导致cleveref在 之前加载hyperref。事实上,您收到的第一条错误消息之一是

! Package cleveref Error: cleveref must be loaded after hyperref!

解决方法,直到类更新:将withdeprecated选项传递给scrlfile

\documentclass[load-dhbw-templates,withdeprecated]{iodhbwm}
\usepackage[T1]{fontenc}

\dhbwsetup{%
    author              = John Doe
}

\begin{document}
    \tableofcontents    % Print ToC
    \chapter{Test Chapter}\label{chap:test-chap}
\end{document}

修复该类很简单:删除!之后的\AfterPackage

相关内容