使用 style=authortitle-icomp 将 URL 字段添加到 footcites

使用 style=authortitle-icomp 将 URL 字段添加到 footcites

我想为 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 文档的序言中。

相关内容