虽然我的参考书目设置正确,但我的 \cite{} 命令似乎无法按预期工作。我该如何修复它?你能告诉我我是否忘记了任何地方吗?这是我的 MWE:
\documentclass[a4paper,12pt,twoside]{book}
\usepackage{mathptmx}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{setspace}
\usepackage[left=4.5cm,right=4.5cm,top=5cm,bottom=5cm]{geometry}
\onehalfspacing
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tocloft}
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % for chapters
\usepackage[numberedbib,nosectionbib]{apacite}
\usepackage[makeindex]{imakeidx}
\makeindex[name=npr, title=Index des noms cités]
\makeindex[name=mat, title=Index des matières]
\begin{filecontents}{mybib.bib}
@book{Tufte2002,
author = {Tufte, Blabla},
year = {2002},
title = {A title},
}
\end{filecontents}
\usepackage{hyperref}
\begin{document}
\title{A title}
\maketitle
\renewcommand{\contentsname}{Table}
\tableofcontents
\chapter{A title}
\cite{Tufte2002}
\bibnewpage
{%start grouping
\doublespacing % <====================================================
\raggedright
\nocite{}
\bibliographystyle{apacite}
\bibliography{mybib}
}%end grouping
\phantomsection
\cleardoublepage
\printindex[npr]
\addcontentsline{toc}{chapter}{Index des noms cités}
\printindex[mat]
\addcontentsline{toc}{chapter}{Index des matières}
\end{document}
答案1
进一步减少 MWE 会产生以下示例代码,编译两次后会出现以下错误消息:
\documentclass{book}
\usepackage[numberedbib,nosectionbib]{apacite}
\usepackage{hyperref}
\begin{filecontents}{mybib.bib}
@book{Tufte2002,
author = {Tufte, Blabla},
year = {2002},
title = {A title},
}
\end{filecontents}
\begin{document}
\cite{Tufte2002}
\bibliographystyle{apacite}
\bibliography{mybib}
\end{document}
Undefined control sequence.
\hyper@@link ->\let \Hy@reserved@a
\relax \@ifnextchar [{\hyper@link@ }{\hyp...
l.17 \cite{Tufte2002}
apacite
这可以通过反转和的加载顺序来解决hyperref
,加载apacite
后 hyperref
。
手册中也提到了这一点apacite
:
该
hyperref
软件包将(交叉)引用转换为超文本链接。这可以与诸如LATEX2HTML
编写.html
带有可点击链接的文件、网页或同一文档中的文件等程序结合使用,也可以用于创建hyperref
软件包也会将这些转换为超文本链接,并且需要重新定义引用命令和参考列表命令才能做到这一点。这些重新定义导致了apacite
和之间严重的不兼容问题hyperref
之间的严重不兼容问题。这些不兼容问题已经得到解决,并且apacite 与 兼容hyperref
,前提是apacite
已加载后hyperref
。