我正在使用biblatex
该href
选项作为我的参考书目。
我想使用文件url
的字段bib
添加指向文章在线版本的超链接。但是,我不希望将整个 URL 链接打印在参考书目中,但如果可能的话,单击引用期刊的卷/页(或期刊名称也可以)时会出现链接 - 很多科学期刊都是这样。
我正在使用nature
引用样式并尝试.bbx
根据我的需要进行修改 - 但我对.bbx
结构和 LaTeX 宏的了解非常少。
答案1
自然风格的设置方式是,用链接(或卷)替换页面是最容易的,但获取页面和卷很困难,因为它们是在不同时间印刷的。您必须对风格进行重大改革。解决方案的核心是
\newbibmacro*{myurl}{\printfield[myurl]{url}}
\DeclareFieldFormat{myurl}{\href{#1}{\printfield{pages}}}
\newbibmacro*{note+pages}{%
\printfield{note}%
\setunit{\bibpagespunct}%
\usebibmacro{myurl}%
\newunit}
将其组合起来形成完整的 MWE 可得出:
\documentclass{article}
\usepackage{filecontents}
\usepackage[style=nature, url=true]{biblatex}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@article{aksin,
author = {Aks{\i}n, {\"O}zge and T{\"u}rkmen, Hayati and Artok, Levent
and {\k{C}}etinkaya, Bekir and Ni, Chaoying
and B{\"u}y{\"u}kg{\"u}ng{\"o}r, Orhan and {\"O}zkal, Erhan},
indextitle = {Effect of immobilization on catalytic characteristics},
title = {Effect of immobilization on catalytic characteristics of saturated
Pd-N-heterocyclic carbenes in Mizoroki-Heck reactions},
journaltitle = jomch,
volume = {691},
number = {13},
date = {2006},
pages = {3027--3036},
url = {http://www.google.com}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\newbibmacro*{myurl}{\printfield[myurl]{url}}
\DeclareFieldFormat{myurl}{\href{#1}{\printfield{pages}}}
\newbibmacro*{note+pages}{%
\printfield{note}%
\setunit{\bibpagespunct}%
\usebibmacro{myurl}%
\newunit}
\begin{document}
\cite{aksin}
\printbibliography
\end{document}