我的 \cite 命令不起作用:如何修复?

我的 \cite 命令不起作用:如何修复?

虽然我的参考书目设置正确,但我的 \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带有可点击链接的文件、网页或同一文档中的文件等程序结合使用,也可以用于创建.pdf带有可点击交叉引用的文档。显然,引用也是参考。因此,该hyperref软件包也会将这些转换为超文本链接,并且需要重新定义引用命令和参考列表命令才能做到这一点。这些重新定义导致了apacite和之间严重的不兼容问题hyperref之间的严重不兼容问题。这些不兼容问题已经得到解决,并且apacite 与 兼容hyperref,前提是apacite已加载 hyperref

相关内容