我一直对 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
直接联系作者来解决此问题。