![在 natbib 中显示](https://linux22.com/image/457172/%E5%9C%A8%20natbib%20%E4%B8%AD%E6%98%BE%E7%A4%BA%20.png)
我在网上看到的问题只是biblatex
为了这个答案,不幸的是我正在使用natbib
并且不想切换。
这些是我用于参考文献和参考书目的软件包:
% PACKAGES FOR REFERENCES & BIBLIOGRAPHY
\usepackage[backref=page, colorlinks=true,
linkcolor=bluepoli, anchorcolor=bluepoli,
citecolor=bluepoli, filecolor=bluepoli,
menucolor=black, runcolor=black,
urlcolor=bluepoli, linktocpage=true,
pagebackref = true]{hyperref}
\usepackage{bookmark}
\usepackage{cleveref}
\usepackage[square, numbers, sort&compress]{natbib}
\bibliographystyle{abbrvnat}
现在我的输出如下
但我想要的是类似这样的东西:
我尝试在线搜索,但我再说一遍,所有答案似乎只对 bib latex 有效,而不对 natbib 有效。
答案1
对于该hyperref
选项,pagebackref
您可以通过重新定义命令来格式化反向引用\backrefalt
,如手动的backref 包(使用 hyperref 选项时加载)。
#1
的参数\backrefalt
是反向引用的数量。\ifcase
下面的 MWE 中的语句检查这个数字是 0、1 还是 2+,并相应地格式化反向引用。
请注意,您不需要两者backref=page
,并且pagebackref=true
作为超链接选项,其中任何一个就足够了。
梅威瑟:
\documentclass{article}
\usepackage[colorlinks=true,
linktocpage=true,
pagebackref=true]{hyperref}
\usepackage{bookmark}
\usepackage{cleveref}
\usepackage[square, numbers, sort&compress]{natbib}
\renewcommand*{\backrefalt}[4]{%
\ifcase #1 %
No citations.%
\or
(cit. on p. #2).%
\else
(cit. on pp. #2).%
\fi
}
\begin{document}
A citation: \cite{article-minimal}.
\bibliographystyle{abbrvnat}
\bibliography{xampl}
\end{document}
结果: