biblatex-chicago 和 origdate

biblatex-chicago 和 origdate

我有同一位作者的两篇文章,第二篇文章包含一个 origdate 字段,其中包含年份范围。如果我只打印第二篇文章,日期是正常的:1754--1755。但如果我打印两个条目,日期就会出现一个多余的句号:1754--1755。这是 MWE。

\documentclass[12pt]{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{crusius1749,
  author       = {Christian August Crusius},
  title        = {Anleitung {\"u}ber nat{\"u}rliche Begebenheiten ordentlich
                  und vorsichtig nachzudencken},
  publisher    = {Gleditsch},
  year         = 1749,
  address      = {Leipzig}
}

@Book{crusius1754,
  author       = {Christian August Crusius},
  title        = {Gr{\"u}ndliche Belehrung vom Aberglauben zur Aufkl{\"a}rung
                  des Unterschiedes zwischen Religion und Aberglauben},
  publisher    = {Langenheim},
  year         = 1767,
  address      = {Leipzig},
  translator   = {Christian Friedrich Pezold},
  options      = {cmsdate=on},
  origdate     = {1754/1755}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{crusius1749}
\cite{crusius1754}
\printbibliography
\end{document}

注释掉第一个 \cite 以查看第二个条目的正确形式。

这是一个错误,还是我做错了什么?

答案1

这种行为确实似乎是一个错误。以下快速修复方法可能会对您有所帮助。

将以下代码添加到你的序言中。

\renewbibmacro*{origyear+endyear}{%
  \printfield{origyear}%
  \iffieldundef{origendyear}%
  {}%
  {\iffieldequalstr{origendyear}{}%
    {\mbox{\bibdatedash}}%
    {\bibdatedash\nopunct\printtext{\unspace}\printfield{origendyear}}}}

{origyear+endyear}这部分代码是来自 的原始宏的修改版本chicago-authordate.bbx。最后一行被修改为使下一个标点符号命令不打印任何内容(\nopunct),然后隐式调用该标点符号命令,\printtext{\unspace}此处实际上仅“打印”一个删除所有前面空格的命令(\unspace)。因此句号以及\bibdatedash和之间的空格都origendyear消失了。

您的 MWE 成为

\documentclass[12pt]{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage{filecontents}

\renewbibmacro*{origyear+endyear}{%
  \printfield{origyear}%
  \iffieldundef{origendyear}%
  {}%
  {\iffieldequalstr{origendyear}{}%
    {\mbox{\bibdatedash}}%
    {\bibdatedash\nopunct\printtext{\unspace}\printfield{origendyear}}}}


\begin{filecontents}{\jobname.bib}
@Book{crusius1749,
  author       = {Christian August Crusius},
  title        = {Anleitung {\"u}ber nat{\"u}rliche Begebenheiten ordentlich
                  und vorsichtig nachzudencken},
  publisher    = {Gleditsch},
  year         = 1749,
  address      = {Leipzig}
}

@Book{crusius1754,
  author       = {Christian August Crusius},
  title        = {Gr{\"u}ndliche Belehrung vom Aberglauben zur Aufkl{\"a}rung
                  des Unterschiedes zwischen Religion und Aberglauben},
  publisher    = {Langenheim},
  year         = 1767,
  address      = {Leipzig},
  translator   = {Christian Friedrich Pezold},
  options      = {cmsdate=on},
  origdate     = {1754/1755}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

并产生 在此处输入图片描述

相关内容