引用无作者的报纸文章时使用期刊名称作为标签

引用无作者的报纸文章时使用期刊名称作为标签

我正在使用 biblatex 编写论文,需要调整参考书目和引用样式。我正在使用波恩艺术史书目样式,但同样的问题也适用于标准样式,例如authoryear。我已经制作了 arthistory-bonn 样式的自定义副本并添加了一些小的修改,因此添加进一步的修改不会成为问题。

我需要引用报纸文章,其中一些有作者,一些没有。我使用的是article条目类型。它目前看起来像这样:

\documentclass[ngerman]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,italian,main=ngerman]{babel}
\usepackage{csquotes}

\usepackage{filecontents}
\begin{filecontents}{Diss.bib}
@article{News1,
    journal   = {{Springfield Shopper}},
    title    = {The revolutionary monorail},
    year     = {2020},
    date     = {2020-12-23},
    url      =  {http://example.com},
    urldate  = {2021-12-12}
}

@article{News2,
    journal   = {{Springfield Shopper}},
    title    = {About tire fires},
    year     = {2020},
    date     = {2020-12-23},
    url      =  {http://example.com},
    urldate  = {2021-12-12},
    author  = {Kent Brookman}
}
\end{filecontents}

\usepackage[style=arthistory-bonn,autocite=footnote,backend=biber,sortlocale=auto,language=auto,backref=false,sorting=nty]{biblatex}

\addbibresource{Diss.bib}

\begin{document}

It's science if you quote things\autocite{News1,News2}.


\printbibliography[heading=subbibintoc]

\end{document}

结果如下:

在此处输入图片描述

在第一个条目中,我需要将日期更改为标签内的年份,即“Brookman 2020”而不是“Brookman(2020 年 12 月 23 日)”。

在第二个条目中,我需要标签包含期刊名称,即“Springfield Shopper 2020”,即期刊名称应取代作者。目前,biblatex 将文章标题放在引号中。

脚注也应进行相同的更改,即应为“Springfield Shopper 2020”和“Brookman 2020”。

不幸的是,我找不到在哪里修改标签。我该如何实现呢?

我绝对需要参考书目中的“in:”,所以我必须指定字段journal。如果我将journaleditor字段都设置为报纸名称,标签看起来没问题,但报纸名称在参考书目中出现了两次(作为期刊和编辑),这相当多余。

答案1

biblatex如果//字段为空,则标准authoryearauthortitle样式使用替换字段。labelauthoreditortranslator

由于某种原因,使用arthistory-bonn日期会被删除label,因此如果您想恢复该日期,则需要进行一些小的更改。

对于仅使用年份而不是完整日期的情况,我们可以使用\printlabeldateextrabibmacro date+extradate

\documentclass[ngerman]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,italian,main=ngerman]{babel}
\usepackage{csquotes}

\usepackage[
  backend=biber, 
  style=arthistory-bonn,
  labeldate=year,
  autocite=footnote,
  language=auto,
  backref=false,
]{biblatex}

\renewbibmacro*{cite:normal}{%
 \global\boolfalse{cbx:loccit}%
 \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
   {\usebibmacro{cite:ibid}}%
   {\iffieldundef{shorthand}%
     {\usebibmacro{cite:various}}%
     {\usebibmacro{cite:shorthand}}}}

\renewbibmacro*{cite:various}{%
  \ifentrytype{catalog}%
    {\usebibmacro{cite:catalog}}%
    {\ifentrytype{exhibcatalog}%
      {\usebibmacro{cite:exhibcatalog}}%
      {\ifentrytype{reference}%
        {\usebibmacro{cite:reference}}%
        {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
           {\usebibmacro{cite:label}%
            \setunit{\printdelim{nonameyeardelim}}}%
           {\printnames{labelname}%
            \setunit{\printdelim{nameyeardelim}}}%
         \printtext[bibhyperref]{\printlabeldateextra}}}}}


\begin{filecontents}{\jobname.bib}
@article{News1,
    journal  = {Springfield Shopper},
    label    = {Springfield Shopper},
    title    = {The revolutionary monorail},
    year     = {2020},
    date     = {2020-12-23},
    url      = {http://example.com},
    urldate  = {2021-12-12}
}
@article{News2,
    journal  = {Springfield Shopper},
    title    = {About tire fires},
    year     = {2020},
    date     = {2020-12-23},
    url      = {http://example.com},
    urldate  = {2021-12-12},
    author   = {Kent Brookman},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
It's science if you quote things\autocite{News1,News2}.

\printbibliography[heading=subbibintoc]
\end{document}

斯普林菲尔德购物者 2020

相关内容