multibib 和参考书目链接(带有 hyperref、natbib)?

multibib 和参考书目链接(带有 hyperref、natbib)?

我正在使用多号码包但无法获得与之配合使用的链接,超链接。这种组合可能吗?示例文档如下:

如果我在序言中添加,\usepackage{natbib}则链接可以工作,但 multibib 提供的自定义标签将被删除。例如,如果没有 natbib,则引用为 [F3] 和 [B2],没有链接。使用 natbib,引用为 (3) 和 (2) 并进行链接。

多书目文档 (PDF)有一节(3)介绍如何处理修改的包\@citex,但我不确定如何使用那里的信息来解决这个问题。

% multibiblinktest.tex

\documentclass[10pt,letter]{article}

\usepackage[labeled,resetlabels]{multibib}
\newcites{F}{Foo}
\newcites{B}{Bar}

\usepackage{hyperref}
\hypersetup{
  colorlinks = true,
  linkcolor=blue,   % color of internal links
  citecolor=blue,   % color of links to bibliography
  urlcolor=blue,    % color of external links
  pagebackref=true,
  implicit=false,
  bookmarks=true,
  bookmarksopen=true,
  pdfdisplaydoctitle=true
}

% \usepackage{natbib} % links work, citations not formatted by multibib...

\begin{document}

\nociteF{ref1}
\nociteF{ref2}
\nociteB{ref3}

A link to \citeF{ref4} and \citeB{ref5} goes here.

\bibliographystyleF{unsrt}
\bibliographyF{test.bib}

\bibliographystyleB{unsrt}
\bibliographyB{test.bib}

\end{document}

以及参考书目文件:

% test.bib
@Article {ref1, author = Author1, title = Title1, year = 2010}
@Article {ref2, author = Author2, title = Title2, year = 2010}
@Article {ref3, author = Author3, title = Title3, year = 2010}
@Article {ref4, author = Author4, title = Title4, year = 2010}
@Article {ref5, author = Author5, title = Title5, year = 2010}

并编译文档:

pdflatex multibiblinktest
pdflatex multibiblinktest
pdflatex multibiblinktest
bibtex F
bibtex B
pdflatex multibiblinktest
pdflatex multibiblinktest
pdflatex multibiblinktest
open multibiblinktest.pdf

答案1

以防有人仍然像我一样潜伏在这里寻找解决方案。

我设法使用 natbib 和 multibib 命令以及一些间距魔法来获得所需的行为这个答案

  • \citeF{}确保多引文正确。否则会出现问号。
  • \cite[F][]{}在数字前添加字母 F,如natbib 参考表
  • 综合起来,您的引用应该是这样的\citeF[F][]{my_citation_2024}

问题中的最小示例。不要忘记在序言中添加间距技巧。

% multibiblinktest.tex

\documentclass[10pt,letter]{article}

% add natbib before multibib to get square brackets
\usepackage{natbib} 

% used to remove space between letter and number
\makeatletter
\def\NAT@spacechar{}
\makeatother

\usepackage{hyperref}
\hypersetup{
  colorlinks = true,
  linkcolor=blue,   % color of internal links
  citecolor=blue,   % color of links to bibliography
  urlcolor=blue,    % color of external links
  pagebackref=true,
  implicit=false,
  bookmarks=true,
  bookmarksopen=true,
  pdfdisplaydoctitle=true
}


\usepackage[labeled,resetlabels]{multibib}
\newcites{F}{Foo}
\newcites{B}{Bar}


\begin{document}

\nociteF{ref1}
\nociteF{ref2}
\nociteB{ref3}

% The formatting \citeF[F][] is the key 
A link to \cite[F][]{ref4} and \citeB[B][]{ref5} goes here.

\bibliographystyleF{unsrt}
\bibliographyF{test.bib}

\bibliographystyleB{unsrt}
\bibliographyB{test.bib}

\end{document}

在此处输入图片描述

唯一的区别是字母没有颜色且没有连接。

答案2

您正在使用标准 BibTeX 样式natbib。您应该使用unsrtnat样式,而不是unsrt使用natbib包。

答案3

我改变了这一行:

\usepackage[labeled,resetlabels]{multibib}

\usepackage[labeled]{multibib}

而且它似乎在没有 natbib 的情况下也能工作。

确保在 hyperref 之前保留 multibib!

答案4

我使用multibibhyperref。我发现如果我multibib在 之前加载hyperref, 的链接\cite就会消失,但其他页面、脚注、图像等的链接会保留。对我来说hyperref之前加载 是multibib有效的。

相关内容