![如何使用 biblatex 剪切、剥离、截断或重命名 bibtex 字段的部分内容](https://linux22.com/image/326101/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20biblatex%20%E5%89%AA%E5%88%87%E3%80%81%E5%89%A5%E7%A6%BB%E3%80%81%E6%88%AA%E6%96%AD%E6%88%96%E9%87%8D%E5%91%BD%E5%90%8D%20bibtex%20%E5%AD%97%E6%AE%B5%E7%9A%84%E9%83%A8%E5%88%86%E5%86%85%E5%AE%B9.png)
我怎样才能截断http://adsabs.harvard.edu/abs/
每个adsurl
看起来像的字段
adsurl = {http://adsabs.harvard.edu/abs/2015EPJST.224.2217S}.
可以通过改变渲染来实现吗
\DeclareFieldFormat{adsurl}{#1}
我希望该字段作为链接出现在参考文献的末尾
作者(年份)、标题、...、ADS:2015EPJST.224.2217S
这个问题出现在如何将 adsurl 字段添加为参考书目的链接。
答案1
似乎我根据 Joseph Wright 的评论找到了第一个解决方案,即先剪切文本,然后再添加,如下所示
\usepackage{filecontents}
\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}
它会产生类似如下的结果:
Kundu, M. R. (1965). Solar radio astronomy. New York: Interscience Publication,
1965. ADSURL: 1965sra..book.....K.
尽管1965sra..book.....K是一个链接。请参阅如何将 adsurl 字段添加为参考书目的链接。
我想知道这是否是最简单的方法。