对于 SAO/NASA 天体物理数据系统 (ADS) 中的每篇论文,都提供了一个 BibTeX 条目,其中包含类似以下字段
adsurl = {http://adsabs.harvard.edu/abs/2015EPJST.224.2217S},
我想将其作为链接添加到我的 LaTeX 文档的参考书目中。
似乎在 BibTeX 中没有简单的方法可以做到这一点,但应该可以做到biblatex
。怎么做?
答案1
这是仅适用于 A&A 期刊的解决方法。我修改了aa.bst
文件并使用adsurl
条目和doi
条目创建可点击的超链接。您可以aa_url.bst
在此处下载新版本:https://github.com/yangcht/AA-bibstyle-with-hyperlink
只需替换aa.bst
为aa_url.bst
请注意,请使用 ADS 网站生成的 bib 条目。
答案2
在 biblatex 中,可以定义新的 bibtex 字段。可以使用\DeclareDatamodelFields
和创建新字段\DeclareDatamodelEntrytypes
(这些命令应出现在 biblatex 配置文件中,一种简单的方法是filecontents
在处理文档时使用来创建此类配置文件)
\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=field,datatype=verbatim]{adsurl}
\DeclareDatamodelEntryfields[proceedings,inproceedings]{adsurl}
\end{filecontents}
第二步是指定如何渲染。例如,
\DeclareFieldFormat{adsurl}{#1}
然后添加
\printfield[bibhyperref]{adsurl}
在 drivers/bibmacro 中,为应该打印字段的条目添加。下面只需adsurl
在参考书目中的参考书目条目末尾添加。
\newbibmacro{finentry}{\printfield[bibhyperref]{adsurl}\finentry}
答案3
似乎我根据如何使用 biblatex 剪切、剥离、截断或重命名 bibtex 字段的部分内容。现在看起来如下:
\usepackage[natbib=true,style=authoryear,maxbibnames=5,minbibnames=5]{biblatex}
\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=field,datatype=verbatim]{adsurl}
\DeclareDatamodelEntryfields{adsurl}
\end{filecontents}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=adsurl, match={http://adsabs.harvard.edu/abs/},
replace={}]
}
}
}
\DeclareFieldFormat{adsurl}{ADSURL: \href{http://adsabs.harvard.edu/abs/#1}{#1}}
\renewbibmacro{finentry}{\printfield{adsurl}\finentry}
\let\cite\textcite %for compatibility of \cite/\citep with bibtex
它会产生类似如下的结果:
Kundu, M. R. (1965). Solar radio astronomy. New York: Interscience Publication,
1965. ADSURL: 1965sra..book.....K.
在哪里1965sra..book.....K是一个链接。