我希望内联引用的后记能够超链接,即我希望作者姓名、年份和任何后记都能够超链接(但不是预注!)。
我已经用过答案这里获取作者姓名超链接,但不知道如何将后记添加到超链接。
梅威瑟:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=authoryear-comp,backend=bibtex,hyperref]{biblatex}
\usepackage[colorlinks]{hyperref}
\addbibresource{biblatex-examples.bib}
\makeatletter
%Works without the last bracket ;-)
\let\abx@macro@citeOrig\abx@macro@cite
\renewbibmacro{cite}{%
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@citeOrig%
}%
}
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{%
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@textciteOrig%
}%
}%
\makeatother
\begin{document}
A reference to \parencite[e.g.][3-4]{kastenholz}, \parencite[56]{bertram}, and~\textcite[12-14]{sigfridsson}.
\printbibliography
\end{document}
在上面的例子中,“,第 3-4 页”和“,第 56 页”应该分别针对 Kastenholz 和 Bertram 添加超链接(不是括号),而“,第 12-14 页)”应该针对 Sigfridsson 引用添加超链接(包括括号)。
有什么建议么?
PS 我在 RStudio 中编译这个,这要求我使用 backend=bibtex,所以任何解决方案都必须允许这样做。
答案1
这里有一种方法:(多年后回答,因为@aan 用户发现没有回答的问题相关问题来自他/她)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=authoryear-comp,backend=bibtex,hyperref]{biblatex}
\usepackage[colorlinks]{hyperref}
\addbibresource{biblatex-examples.bib}
\makeatletter
%Works without the last bracket ;-)
\let\abx@macro@citeOrig\abx@macro@cite
\renewbibmacro{cite}{%
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@citeOrig%
}%
}
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{%
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@textciteOrig%
}%
}%
\makeatother
\DeclareFieldFormat{postnote}{\printtext[bibhyperref]{#1}}
\DeclareFieldFormat{multipostnote}{\printtext[bibhyperref]{#1}}
\DeclareFieldFormat{prenote}{\printtext[bibhyperref]{#1}}
\DeclareFieldFormat{multiprenote}{\printtext[bibhyperref]{#1}}
\begin{document}
A reference to \parencite[e.g.][3-4]{kastenholz}, \parencite[56]{bertram}, and~\textcite[12-14]{sigfridsson}.
\printbibliography
\end{document}