biblatex:仅跟踪特定类型/类别的引用

biblatex:仅跟踪特定类型/类别的引用

目前,各种引用跟踪器都是全局的,无法在条目类型或类别级别进行设置。我想要实现的是,或biblatex's之类的东西只跟踪某些条目类型或类别。ibidtrackerloccittracker

请考虑以下示例:

\begin{filecontents}{\jobname.bib}
@movie{Abrams.JJ:2015,
    Address = {USA},
    Author = {Abrams, J.J.},
    Subtitle = {Star Wars: Episode VII – Das Erwachen der Macht},
    Title = {Star Wars: The Force Awakens},
    Year = {2015}}
@incollection{Abramov.N:2006a,
    Address = {Jackson},
    Author = {Abramov, Naum},
    Booktitle = {Andrei Tarkovsky : Interviews},
    Editor = {Gianvito, John},
    Origdate = {1970},
    Pages = {32--37},
    Publisher = {University Press of Mississippi},
    Series = {Conversations with Filmmakers},
    Title = {Dialogue with Andrei Tarkovsky about Science-Fiction on the Screen},
    Year = {2006}}
\end{filecontents}
\documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage[ngerman]{babel}
\usepackage[%
style=fiwi
,yearatbeginning
,backend=biber
]{biblatex}
\usepackage{csquotes}
\addbibresource{\jobname.bib}
\begin{document}
\cite[]{Abramov.N:2006a}
\citefilm{Abrams.JJ:2015}
\cite[]{Abramov.N:2006a}
\end{document}

由于在两个 之间有一个条目,因此\cite{Abramov.N:2006a}我两次都得到了完整的条目。这是正确的行为,但由于中间引用的项目是电影,因此混淆的危险很小。所以我想要的是跟踪器忽略 类型的条目movie,这样我就可以得到以下输出:

阿布拉莫夫 2006 星球大战:原力觉醒 (2015) ebd。

如果它使事情变得更容易,我也可以接受由类别而不是条目类型组成的解决方案。

不知怎的,我以为我已经运行过一次了,但这显然不是真的。

答案1

禁用某些条目类型的跟踪器相对容易,但我不建议您这样做。首先,您可能会让读者感到困惑,即使您相信他们不会去寻找“星球大战,第 15 页”。其次,通过禁用某些条目类型的跟踪器,您将无法获得 ibid. 等,即使它们是按顺序引用的。但如果您真的想要它,您可以选择:

\AtEveryCitekey{\ifentrytype{movie}{\citetrackerfalse}{}}

完整的 MWE:

\begin{filecontents}{\jobname.bib}
@movie{Abrams.JJ:2015,
    Address = {USA},
    Author = {Abrams, J.J.},
    Subtitle = {Star Wars: Episode VII – Das Erwachen der Macht},
    Title = {Star Wars: The Force Awakens},
    Year = {2015}}
@incollection{Abramov.N:2006a,
    Address = {Jackson},
    Author = {Abramov, Naum},
    Booktitle = {Andrei Tarkovsky : Interviews},
    Editor = {Gianvito, John},
    Origdate = {1970},
    Pages = {32--37},
    Publisher = {University Press of Mississippi},
    Series = {Conversations with Filmmakers},
    Title = {Dialogue with Andrei Tarkovsky about Science-Fiction on the Screen},
    Year = {2006}}
\end{filecontents}
\documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage[ngerman]{babel}
\usepackage[%
style=fiwi
,yearatbeginning
,backend=biber
]{biblatex}
\usepackage{csquotes}
\addbibresource{\jobname.bib}
\AtEveryCitekey{\ifentrytype{movie}{\citetrackerfalse}{}}
\begin{document}
\cite[]{Abramov.N:2006a}

\citefilm{Abrams.JJ:2015}

\citefilm{Abrams.JJ:2015}

\cite[]{Abramov.N:2006a}
\end{document}

在此处输入图片描述

相关内容