结合 cite、bibunits 和 hyperref:链接不起作用

结合 cite、bibunits 和 hyperref:链接不起作用

当同时使用citebibuintshyperref包时,没有从引文到参考文献列表的链接。如何才能使链接存在,同时保持默认cite引文排序和我对 的自定义?这是我的 MWE(您需要自己的包含和条目citepunct的“refs.bib”文件):article1article2

\documentclass{report}
\usepackage{cite}
\usepackage{bibunits}
\usepackage{hyperref}

\renewcommand\citepunct{], [}
\renewcommand\citedash{]--[}

\begin{document}

\chapter*{Executive Summary}
\begin{bibunit}[ieeetr]
Second article~\cite{article2}.
\putbib[refs]
\end{bibunit}

\chapter{A Chapter}
First article~\cite{article1}.
Second article~\cite{article2}.
Both articles~\cite{article2,article1}.

\bibliographystyle{ieeetr}
\bibliography{refs}
\end{document}

我在 TeX StackExchange 上找到了类似的问题([1][2][3]) 为使用该软件包的用户提供了解决方案natbib,但这些解决方案仅部分适用于cite。具体来说,当我将两个答案中的代码应用于[1],链接可以正常工作,但我失去了自定义渲染和在同一命令中引用多个参考文献时执行的citepunct自动排序。因此,渲染为“[2, 1]”,而不是我学校要求的“[1], [2]”。我该如何克服这个问题?谢谢。cite\cite{}\cite{article2,article1}

编辑:我的学校使用自定义的 .bst(BibTeX 样式)文件,所以我没有选择切换到 BibLaTeX 和 Biber。

答案1

感谢 @Mico 在最初问题的评论中提出的想法,即用 替换citenatbib这需要对natbib(v. 8.31b) 进行一些深度(但不广泛)的定制。诀窍在于克服natbib缺少修改cite调用citepunct和的属性的钩子citedash。在 中natbib,使用\setcitestyle修改citesep不足以达到与 相同的效果,cite因为citepunct后面natbib总是跟citesep一个空格(\准确地说是 )。因此,我还必须重新定义\NAT@spacechar{\ }{}citedash是唯一的硬编码方面,所以我用 来etoolbox\patchcmd替换--]--[

以下是更新后的 MWE 及其解决方案:

\documentclass{report}
\usepackage{etoolbox}
\usepackage[numbers,square,sort&compress]{natbib}
    \setcitestyle{citesep={], [}}
    \makeatletter
            \renewcommand\NAT@spacechar{}
            \patchcmd{\NAT@citexnum}{--}{]--[}{}{}
    \makeatother
\usepackage{bibunits}
\usepackage{hyperref}

\begin{document}

\chapter*{Executive Summary}
\begin{bibunit}[ieeetr]
Second article~\cite{article2}.
\putbib[refs]
\end{bibunit}

\chapter{A Chapter}
First article~\cite{article1}.
Second article~\cite{article2}.
Both articles~\cite{article2,article1}.
All articles~\cite{article2,article1,article3}.

\bibliographystyle{ieeetr}
\bibliography{refs}
\end{document}

这是对以下问题的回答:“如何保持相同的引用风格,同时克服、和包之间明显的冲突,cite从而bibunits阻止hyperref引用链接到参考文献列表起作用?”

相关内容