软件包 biblatex 错误:修补 \addtocontents 失败

软件包 biblatex 错误:修补 \addtocontents 失败

这有点紧急。我的文件出现错误(它在 Overleaf 上符合要求,但在 pdflatex 上不符合),我不知道如何修复它。我查看了文档和许多其他堆栈溢出问题,但我无法解决这个问题。

有什么建议么?

完整错误:


! Package biblatex Error: Patching \addtocontents failed.

See the biblatex package documentation for explanation.
Type  H <return>  for immediate help.

我实际上并没有在任何地方使用 addtocontents,并且在 \begin(document) 处出现此错误。

\documentclass{IOS-Book-Article}
\usepackage[utf8]{inputenc}

\makeatletter
\let\c@author\relax
\makeatother

\usepackage{graphicx}
\graphicspath{ {./images/} }

\usepackage{mathptmx}
\usepackage{stmaryrd}
\usepackage{array}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{ragged2e}
\usepackage{bbold}

\usepackage{multirow}

\usepackage[compact]{titlesec}
\usepackage[dvipsnames]{xcolor}

\usepackage[backend=biber, style=vancouver, doi=false, isbn=false, url=false]{biblatex}

\addbibresource{references2.bib}
\AtBeginBibliography{\footnotesize}

...


\printbibliography
\end{document}

答案1

由于奇怪的原因,该班级确实

\long\def\addtocontents#1#2{}

这是非常没用的,因为它甚至没有定义\tableofcontents类似的命令,所以做某事不是问题\addtocontents

您可以通过用其核心含义替换来避免错误\addtocontents,然后稍后执行该类想要的操作(即使无用)。

我会避免打电话,titlesec因为提交可能会因不合规而被拒绝。

\let\latexaddtocontents\addtocontents
\documentclass{IOS-Book-Article}
\let\addtocontents\latexaddtocontents

\usepackage[utf8]{inputenc}

\makeatletter
\let\c@author\relax
\AtBeginDocument{\let\addtocontents\@gobbletwo\setcounter{author}{0}}
\makeatother

\usepackage{graphicx}
\graphicspath{ {./images/} }

%\usepackage{mathptmx}
\usepackage{stmaryrd}
\usepackage{array}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{ragged2e}
\usepackage{bbold}

\usepackage{multirow}

%\usepackage[compact]{titlesec}
\usepackage[dvipsnames]{xcolor}

\usepackage[backend=biber, style=vancouver, doi=false, isbn=false, url=false]{biblatex}

\addbibresource{references2.bib}
\AtBeginBibliography{\footnotesize}

\begin{document}

abc

\end{document}

我还添加了,\setcounter{author}{0}因为该类为的目的定义了计数器\maketitle,但是随后需要它,biblatex并且在主体中,值应该按biblatex预期从零开始。

相关内容