编译器抱怨 apacite

编译器抱怨 apacite

我在我的文档中使用了以下包:

\documentclass[a4paper,12pt,twoside,BCOR=10mm]{scrbook}
% Packages
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[icelandic, english]{babel}
\usepackage{t1enc}
\usepackage{graphicx}
\usepackage[intoc]{nomencl}
\usepackage{enumerate,color}
\usepackage{url}
\usepackage[pdfborder={0 0 0}]{hyperref}
\usepackage{appendix}
\usepackage{eso-pic}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[nottoc]{tocbibind}
\usepackage[sort&compress,authoryear]{natbib}
\usepackage[sf,normalsize]{subfigure}
\usepackage[format=plain,labelformat=simple,labelsep=colon]{caption}
\usepackage{placeins}
\usepackage{tabularx}
% Configurations
\graphicspath{{figs/}}

当我添加

\usepackage{apacite}

我收到一堆错误,首先是:

! Undefined control sequence.
l.1203 \st@rtbibchapter

请注意,apacite 应该正确包含在我的系统中,因为我在另一个文档上使用它而没有出现问题。

你知道问题出在哪里吗?

答案1

来自apacite包装文档

当您想要使用natbib进行引用和apacite参考列表时,您仍然需要加载 LaTeX 包apacite.sty(使用\usepackage),因为 BibTeX 输出中包含命令。通过使用apacite选项加载可获得最佳互操作性natbibapa。然后无需natbib明确加载,因为apacite已经执行了此操作。

所以你应该更换

\usepackage[sort&compress,authoryear]{natbib}
\usepackage{apacite}

\usepackage[natbibapa]{apacite}

来自t1encCTAN 上的软件包页面

用于激活 T1 字体编码的过时软件包。替代fontenc带有(可选)参数的包T1可以更令人满意地完成此任务。

所以你应该更换

\usepackage{t1enc}

\usepackage[T1]{fontenc}

关于综合序言的其他注释:

  1. utf8在源文件中使用的编码并不多,因此无法就这一点提供明确的答案,但您可能需要考虑utf8xutf8与(inputenc)相比讨论utf8x/ucs和的相对优点inputenc
  2. subfigure已弃用; 使用subfig或者subcaption反而。
  3. koma-script(您的类scrbook是其中的一部分)实现了caption包中的几乎所有功能,因此您应该考虑使用内置类选项,而不是使用caption
  4. hyperref应该最后加载,只有一些例外

完整代码如下:

\documentclass[a4paper,12pt,twoside,BCOR=10mm]{scrbook}
% Packages
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[icelandic, english]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[intoc]{nomencl}
\usepackage{enumerate,color}
\usepackage{url}
\usepackage{appendix}
\usepackage{eso-pic}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[nottoc]{tocbibind}
%\usepackage[sort&compress,authoryear]{natbib}
\usepackage[natbibapa]{apacite} % use `natbibapa' option instead of `natbib` package
%\usepackage[sf,normalsize]{subfigure} % deprecated; use other means
%\usepackage[format=plain,labelformat=simple,labelsep=colon]{caption} % use class commands instead
\usepackage{placeins}
\usepackage{tabularx}

\usepackage[pdfborder={0 0 0}]{hyperref} % moved to end of packages

\begin{document}
Test
\end{document}

相关内容