我想为 footcited @online{} 项目添加字段 URL。biblatex 手册对我没有帮助。我使用 biber 和 biblatex 以及以下选项:
\usepackage[
backend=biber,
style=authortitle-icomp,
sortlocale=de DE,
natbib=true,
url=true,
doi=false,
eprint=true
]{biblatex}
我知道如果我选择例如,URL 就会被打印出来
style=verbose-ibid
但我肯定想坚持
style=authortitle-icomp
如果这意味着为每个源打印 URL 字段,我会接受该解决方案,因为我引用的网络源中只有 URL。
这是一个最小的工作示例
\documentclass[a4paper,12pt,twoside]{report}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{some_article,
author = {Nachname1, Vorname1},
title = {Titel1},
journaltitle = {Zeitschrift},
date = {2006},
volume = {6},
pages = {19--75}
}
@online{some_website,
author = {Nachname2, Vorname2},
title = {Titel2},
year = 2014,
url = {example.com/index.html},
urldate = {2012-26-11}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=authortitle-icomp,
%style=verbose-ibid,
sortlocale=de DE,
natbib=true,
url=true,
doi=false,
eprint=true
]{biblatex}
\bibliography{\jobname}
\begin{document}
some text here \footcite{some_article}, some text there \footcite{some_website}
\printbibliography
\end{document}
使用style=verbose-ibid
打印 URL,但也会放入很多我不想要的信息。请注意,我还想坚持使用文档类报告(例如,在这种情况下使用文档类文章打印 URL)。
然而,从此链接(抱歉,是德语)我尝试建立一个解决方案:
\renewbibmacro*{cite}{
\iffieldundef{shorthand}{
\ifnameundef{labelname}{}{
\printnames{labelname}
\setunit{\nametitledelim}
}
\usebibmacro{cite:title}
\iffieldundef{url}{}{
\setunit{\nameyeardelim}
\printfield{url}
}
}
{\usebibmacro{cite:shorthand}}
}
它会打印 URL 但会弄乱重复引用的自动缩写“ib”(德语为“Ebd.”),即所有引用都会被明确打印出来。
答案1
在更详细地研究了样式文件之后authortitle-icomp.cbx
,我通过重新定义 bibmacro 找到了解决方案cite:title
。
\renewbibmacro*{cite:title}{%
\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}
\iffieldundef{url}{}{\nametitledelim\printfield{url}}}}
重新定义的 bibmacro 检查(对于任何源)字段是否url
已定义,如果已定义,则会附加一个逗号,后跟字段的值url
。我将代码放在我的 latex 文档的序言中。