如何使用 biblatex 修改文本中引用的新闻文章的输出(新闻杂志的完整日期和名称)

如何使用 biblatex 修改文本中引用的新闻文章的输出(新闻杂志的完整日期和名称)

我还剩一周时间交论文,但我遇到了一个大问题。我引用了很多在线报纸文章,但在文中却是这样的:

文字(《自由报》 2013 年)

输出应该是这样的:

文本(《自由报》2013 年 3 月 16 日)

对于我的参考书目,我使用来自 CTAN 的带有作者年份样式 luh-ipw 的 biblatex。

我的 MWE 如下所示:

\documentclass{scrreprt}

\usepackage{filecontents}
    \begin{filecontents}{bibliographie.bib}
@newspaper{SZ.2013a,
    Author = {{S{\"u}ddeutsche.de}},
    Date = {2013-10-29},
    Day = {29},
    Month = {10},
    Year = {2013},
    Title = {T{\"u}rkei er{\"o}ffnet Bahntunnel unter dem Bosporus},
    Url = {http://www.sueddeutsche.de/auto/nach-fast-zehn-jahren-bauzeit-tuerkei-eroeffnet-bahntunnel-unter-dem-bosporus-1.1806910},
    Urldate = {2013-10-30}
}
\end{filecontents}

\usepackage[
backend=biber,
style=authoryear-luh-ipw
]
{biblatex}

\bibliography{bibliographie}

\begin{document}

\parencite{SZ.2013a}

\printbibliography

\end{document}

感谢评论中的建议,我添加了新类型@newspaper。

到目前为止一切顺利,在参考书目中一切都按预期工作,但是:在文本中我需要打印完整的日期,但不知道如何相应地修改 biblatex 样式。

答案1

这是我的建议。默认情况下,任何引用命令的日期都按以下定义打印:

\newbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}

这意味着您没有影响样式的选项。因此,year我使用的是\printdatelabel允许通过选项进行一些修改的选项datelabel。并且仅对于条目类型,newspaper使用新定义:

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{filecontents}
\begin{filecontents}{bibliographie.bib}
@newspaper{SZ.2013a,
    Author = {{S{\"u}ddeutsche.de}},
    Date = {2013-10-29},
    Title = {T{\"u}rkei er{\"o}ffnet Bahntunnel unter dem Bosporus},
    Url = {http://www.sueddeutsche.de/auto/nach-fast-zehn-jahren-bauzeit-tuerkei-eroeffnet-bahntunnel-unter-dem-bosporus-1.1806910},
    Urldate = {2013-10-30}
}
\end{filecontents}

\usepackage[style=authoryear-luh-ipw,datelabel=terse]{biblatex}
\DeclareBibliographyAlias{newspaper}{article}
\addbibresource{bibliographie.bib}

\renewbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {%
     \ifentrytype{newspaper}%
         {%
          \printtext[bibhyperref]{vom~\printdatelabel}%
         }%
        {%
         \printtext[bibhyperref]{\printfield{labelyear}\printfield{extrayear}}%
        }%
   }%
}

\begin{document}

\parencite{SZ.2013a}

\printbibliography

\end{document}

enter image description here

相关内容