使用 biblatex chicago 样式打印年份和确切日期

使用 biblatex chicago 样式打印年份和确切日期

有没有办法可以指定某些biblatex-chicago样式(biblatex-chicago或者[style=chicago-authoryear]{biblatex}以便它们可以利用该mergedate功能?authoryear-icomp这样做(使用下面的代码),但我真的想使用芝加哥风格。

我正在尝试打印我的出版物、会议谈话和媒体采访的清单,并且对于我的目的来说,有一个在名称后打印年份并在末尾打印具体日期的参考书目(或出版物清单)确实看起来更好。

谢谢。

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{references.bib}
@unpublished{doc1,
title       = {my title},
author  = {My author},
journal     = {Journal of Me},
date = {2018-04-01}
}
\end{filecontents}

\usepackage[style=authoryear-icomp, mergedate=basic]{biblatex}
\addbibresource{references.bib}
\begin{document}


\cite{doc1}

\printbibliography
\end{document}

答案1

biblatex-chicago是一种非常复杂的风格,因为它试图尽可能紧密地实现《芝加哥格式手册》的(同样)复杂的规则。

单是日期处理的代码就有大约 400 行。下面只是将 的代码移植到的样式中。mergedate=basic我没有尝试保留 和 的特殊处理或其任何与日期相关的选项。authoryear.cbxbiblatex-chicagoauthordatedateorigdatebiblatex-chicago

\documentclass{article}

\usepackage[authordate]{biblatex-chicago}
\ExecuteBibliographyOptions{labeldate=year}

\renewbibmacro*{cmsbibsortdate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{\printlabeldateextra}}}

\newbibmacro*{bbx:ifmergeddate}{%
  \ifboolexpr{
    test {\iflabeldateisdate}
    and
    not test {\ifdateshavedifferentprecision{label}{}}
  }%
}

\renewbibmacro*{date}{%
  \usebibmacro{bbx:ifmergeddate}
    {}
    {\printdate}}%

\begin{filecontents}{\jobname.bib}
@unpublished{doc1,
  title   = {my title},
  author  = {My author},
  journal = {Journal of Me},
  date    = {2018-04-01}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{doc1}

\printbibliography
\end{document}

作者,My。(2018 年)。“我的头衔。”2018 年 4 月 1 日。

相关内容