有没有办法可以防止 URL 出现在 biblatex 引用中?

有没有办法可以防止 URL 出现在 biblatex 引用中?

我想自定义详细的 biblatex 引文以排除 URL(和 DOI),但将其保留在参考书目中。有没有简单的方法可以实现这一点?

在此过程中,我想摆脱详细样式使用的“In:”(在参考书目和引文中),并将 URL 和 DOI 放在参考书目中的单独行上。

答案1

我按顺序回答你所有的问题

  1. 中的字段biblatex可以通过命令\clearfield/删除\clearlist(你可以查阅biblatex文档要确定某个字段是 afield还是 a list,请参阅§2.2.2数据字段,第 15-24 页)。要仅影响引用命令,可以使用命令\AtEveryCitekey

    \AtEveryCitekey{%
      \clearfield{url}%
      \clearfield{urlyear}
      \clearfield{doi}%
     }
    

    相反,您也可以使用AtEveryBibitem它来参考书目。

  2. 可以通过重新定义宏来删除单词“in”,in:如下所示:

     \renewbibmacro*{in:}{} 
    
  3. 可以通过扩展相关字段格式来实现额外的换行。

     \DeclareFieldFormat{url}{\newline\mkbibacro{URL}\addcolon\space\url{#1}}
     \DeclareFieldFormat{doi}{\newline%
       \mkbibacro{DOI}\addcolon\space
       \ifhyperref
         {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}}
         {\nolinkurl{#1}}}
    

每个定义都可以在文件中找到biblatex.def

完整代码如下:

\documentclass[]{article}
\usepackage{filecontents}
\begin{filecontents}{References.bib}
@article{Sarukkai:2005,
author = {Sarukkai, S},
title = {Revisiting the 'unreasonable effectiveness' of mathematics},
journal = {Current science},
year = {2005},
url = {http://www.ias.ac.in/currsci/feb102005/415.pdf},
}
\end{filecontents}
\usepackage[style=verbose]{biblatex}
\addbibresource{References.bib}
\AtEveryCitekey{%
  \clearfield{url}%
  \clearfield{urlyear}
  \clearfield{doi}%
}
\DeclareFieldFormat{url}{\newline\mkbibacro{URL}\addcolon\space\url{#1}}
\DeclareFieldFormat{doi}{\newline%
  \mkbibacro{DOI}\addcolon\space
  \ifhyperref
    {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}}
    {\nolinkurl{#1}}}

\renewbibmacro*{in:}{} 

\begin{document}
This, \fullcite{Sarukkai:2005} includes the URL for the citation, which I don't want; thought I do want it in the bibliography.


\printbibliography
\end{document}

在此处输入图片描述

相关内容