使用选项 csmdate=both 时,biblatex-chicago 作者日期格式中没有同一年份、同一作者的引文消歧义

使用选项 csmdate=both 时,biblatex-chicago 作者日期格式中没有同一年份、同一作者的引文消歧义

我一直对 biblatex-chicago 的作者日期样式感到困惑,该样式与选项“csmdate=both”一起使用。我使用此选项为某些来源提供“origyear”,但不是为所有来源提供。当我有 2 个来源具有相同的作者和日期但没有 origdates 时,似乎会出现问题。下面解释了这个问题。

我添加了 2 个参考文献,它们的日期和作者相同,但标题等不同。当我引用它们时,biblatex-chicago 不会区分它们。我期望的是“Test 1935a”和“Test 1935b”,但我得到的是两个“Test 1935”,但参考文献列表中有两个单独的条目。

任何帮助是极大的赞赏。

最小工作示例:

\documentclass[utf8,12pt,letterpaper]{article}

\usepackage{setspace}
\usepackage[fallback]{xeCJK}

\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}

\newcommand{\mainfont}[0]{CMU Serif Roman}
\newcommand{\mainfontitalics}[0]{CMU Serif Italic}
\newcommand{\mainfontCJK}[0]{HAN NOM A}
\setmainfont[Ligatures={Common,TeX},Numbers={OldStyle},Contextuals=NoAlternate]{\mainfont}
\setCJKmainfont[Scale=0.9]{\mainfontCJK}
\setCJKfallbackfamilyfont{\CJKrmdefault}[Scale=0.9]{NanumMyeongjo}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt

\usepackage[authordate,strict,cmsdate=both,isbn=false,backend=biber,bibencoding=utf8,hyperref=true,annotation]{biblatex-chicago}



\title{}
\author{}
\date{}
\begin{document}
\maketitle

\cite{Test1}

\cite{Test2}

\printbibliography

\end{document}

引用以下参考文献:

@article{Test1,
    author = {Test, T.},
    title = {Random Title of Article One},
    journal = {Journal},
    volume = {20},
    number = {3},
    year = {1935},
    pages = {1--46}
}

@article{Test2,
    author = {Test, T.},
    title = {Random Title of Article Two},
    journal = {Journal},
    volume = {20},
    number = {4},
    year = {1935},
    pages = {50--70}
}

用“日期”替换“年份”字段没有任何区别。

在此处输入图片描述

答案1

不知道为什么,但引用样式\clearfield{extrayear}在打印年份标签之前会调用,即使origyear没有。cmsdate=both您可以通过在序言中添加以下内容来避免这种情况。

\makeatletter
% citations
\renewbibmacro*{cite:bothyear+oldstyle}{%
  \iftoggle{cms@switchdates}
  {\printtext[bibhyperref]{%
      \bibopenparen%
      \usebibmacro{cite:labelyear+extrayear}%
      \bibcloseparen%
      \addspace\usebibmacro{origyear+endyear}}}%
  {\iffieldundef{origyear}
    {\usebibmacro{cite:labelyear+extrayear}}% omit \clearfield{extrayear}
    {\printtext[bibhyperref]{%
        \bibopenparen%
        \usebibmacro{origyear+endyear}%
        \bibcloseparen%
        \clearfield{extrayear}\addspace%
        \usebibmacro{cite:labelyear+extrayear}}}}}
% bibliography
\renewbibmacro*{bothyear+oldstyle}{%
  \iftoggle{cms@switchdates}
  {\printtext{%
      \bibopenparen%
      \usebibmacro{labelyear+extrayear}%
      \bibcloseparen%
      \setunit{\addspace}\usebibmacro{origyear+endyear}}%
      \clearfield{year}%
      \clearfield{origyear}}%
  {\iffieldundef{origyear}
    {\usebibmacro{labelyear+extrayear}}% omit \clearfield{extrayear}
    {\printtext{%
        \bibopenparen%
        \usebibmacro{origyear+endyear}%
        \bibcloseparen%
        \clearfield{extrayear}\setunit*{\addspace}%
        \usebibmacro{labelyear+extrayear}}%
      \clearfield{origyear}%
      \clearfield{year}}}}
\makeatother

您应该biblatex-chicago直接联系作者来解决此问题。

相关内容