一起使用 hyperref 和 bibentry 套件時出現問題

一起使用 hyperref 和 bibentry 套件時出現問題

hyperref當我一起使用和bibentry打包時出現錯誤。錯誤是:

./Test.bbl:1: LaTeX Error: Command \BR@bibitem already defined.
               Or name \end... illegal, see p.192 of the manual.

指向l.1 \begin{thebibliography}{2},當然,這是Text.bbl文件的第一行。

Test是我的 MWE 檔案的名稱:

\documentclass{article}

\usepackage[pagebackref=true,linktocpage]{hyperref}
\usepackage[square]{natbib}
\usepackage{bibentry}
\nobibliography*

\begin{document}

\section{Introduction}

Look ma, inline bibtex entries:

\begin{itemize}
\item \begin{NoHyper}\bibentry{McCune:2015}\end{NoHyper}
\item \begin{NoHyper}\bibentry{Deshpande:2018aa}\end{NoHyper}
\end{itemize}

\section{And now for something completely different}
Lorem ipsum yada yada,
also see \citep{McCune:2015}, 
yada yada, and \citep{Deshpande:2018aa} too.

\bibliographystyle{abbrvnat}
\bibliography{testref}

\end{document}

testref.bib文件如下:

@STRING{COMPSUR     = {ACM Comput. Surv.}}

@book{Deshpande:2018aa,
    Author = {Deshpande, Amol and Gupta, Amarnath},
    Date-Added = {2017-04-12 14:27:29 +0000},
    Date-Modified = {2017-04-12 14:28:23 +0000},
    Note = {Forthcoming},
    Publisher = {ACM Books},
    Title = {Principles of Graph Data Management and Analytics},
    Year = {2018}}

@article{McCune:2015,
    Author = {McCune, Robert Ryan and Weninger, Tim and Madey, Greg},
    Journal = COMPSUR,
    Number = {2},
    Numpages = {39},
    Pages = {25:1--25:39},
    Title = {Thinking Like a Vertex: A Survey of Vertex-Centric Frameworks for Large-Scale Distributed Graph Processing},
    Url = {http://doi.acm.org/10.1145/2818185},
    Volume = {48},
    Year = {2015}}

我可能做錯了什麼有什麼建議嗎?如果我刪除 hyperref 包,一切都會正常。我確實在這裡閱讀了文章,但建議的解決方案沒有幫助——其中之一是將我在 MWE 中的\bibentry內容包裝起來NoHyper(事實上,MWE 取自其中之一)。

答案1

hyperref在其他套件之後加載,參見哪些套件應該在 hyperref 之後而不是之前加載?為例外。

\begin{filecontents}{testref.bib}
@STRING{COMPSUR     = {ACM Comput. Surv.}}

@book{Deshpande:2018aa,
    Author = {Deshpande, Amol and Gupta, Amarnath},
    Date-Added = {2017-04-12 14:27:29 +0000},
    Date-Modified = {2017-04-12 14:28:23 +0000},
    Note = {Forthcoming},
    Publisher = {ACM Books},
    Title = {Principles of Graph Data Management and Analytics},
    Year = {2018}}

@article{McCune:2015,
    Author = {McCune, Robert Ryan and Weninger, Tim and Madey, Greg},
    Journal = COMPSUR,
    Number = {2},
    Numpages = {39},
    Pages = {25:1--25:39},
    Title = {Thinking Like a Vertex: A Survey of Vertex-Centric Frameworks for Large-Scale Distributed Graph Processing},
    Url = {http://doi.acm.org/10.1145/2818185},
    Volume = {48},
    Year = {2015}}

\end{filecontents}


\documentclass{article}

\usepackage[square]{natbib}
\usepackage{bibentry}
\nobibliography*
\usepackage[pagebackref=true,linktocpage]{hyperref}

\begin{document}

\section{Introduction}

Look ma, inline bibtex entries:
%
\begin{itemize}
\item \begin{NoHyper}\bibentry{McCune:2015}\end{NoHyper}
\item \begin{NoHyper}\bibentry{Deshpande:2018aa}\end{NoHyper}
\end{itemize}

\section{And now for something completely different}
Lorem ipsum yada yada,
also see \citep{McCune:2015}, 
yada yada, and \citep{Deshpande:2018aa} too.

\bibliographystyle{abbrvnat}
\bibliography{testref}

\end{document}

在此輸入影像描述

答案2

在其他套件之後加載 hyperref 可能還不夠。這超引用手冊建議以下解決方法(使用您自己的 bib 檔案變更「資料庫」):

  \makeatletter
  \let\saved@bibitem\@bibitem
  \makeatother

  \usepackage{bibentry}
  \usepackage{hyperref}

  \begin{document}

  \begingroup
    \makeatletter
    \let\@bibitem\saved@bibitem
    \nobibliography{database}
  \endgroup

相關內容