在 biblatex-chicago 中引用原始版本和现代版本时消除歧义

在 biblatex-chicago 中引用原始版本和现代版本时消除歧义

在我的参考书目中,我引用了原著和现代版本。旧版的 和新版的date相同origdate。参考书目中显示为:

休谟,戴维。(1748a)2007。《人类理解力研究》。彼得·F·米利肯主编。牛津:牛津大学出版社。---
。1748b。《人类理解力研究》。伦敦:A.米勒。

但这并不是我想要的 --- 我想去掉消除歧义的后缀。我更喜欢以下内容:

休谟,戴维。1748 年。《人类理解论》。伦敦:A. Millar。---
。(1748)2007 年。《人类理解论》。Peter F. Millican 主编。牛津:牛津大学出版社。

在这种情况下,有什么方法可以删除后缀吗?(作为奖励,有什么方法可以让原始作品首先排序,如上所示?)

以下是 MWE:

\documentclass{article}

\usepackage[backend=biber,authordate,cmsdate=both]{biblatex-chicago}

\begin{filecontents*}{bibliography.bib}
  @Book{hume48:_philos_essay_concer_human_under,
    author =       {David Hume},
    title =        {An Enquiry Concerning Human Understanding},
    date =      1748,
    publisher = {A. Millar},
    location =  {London}}

  @Book{hume07:_enquir_concer_human_under,
    author =       {David Hume},
    title =        {An Enquiry Concerning Human Understanding},
    date =      2007,
    origdate =     1748,
    editor =    {Peter F. Millican},
    publisher = {Oxford University Press},
    location =  {Oxford}}
}
\end{filecontents*}

\addbibresource{bibliography.bib}


\begin{document}

\nocite{*}
\printbibliography

\end{document}

答案1

目前,无论我们应用什么设置,Biber 都只会考虑一年(并且只有一年)来进行年份外歧义消除。哪个字段可以通过 来控制\DeclareLabeldate。但这意味着对于年份外歧义消除,Biber 从不考虑额外的年份字段。

假设你有同一位作者的三部作品

  1. 第一件作品date = {2000}
  2. 第二部作品date = {1960}
  3. 第三部作品有origdate = {1960}date = {2000}

不管你做什么,在这种情况下,你最终都会得到一个额外的年份消歧义。如果origdate是首选date\DeclareLabeldate你会得到

2000、1960a、(1960b)2000

这三部作品。

如果date你喜欢

2000a, 1960, (1960) 2000b

这意味着,在目前的功能下,我们必须采取一些技巧才能获得

2000、1960、(1960)2000

从技术上来说这并不含糊,但接近含糊,因此我建议您接受biblatex-chicago默认产生的结果。


由于 Biber 分配了额外年份,我们必须找到一种方法来告诉 Biber 在这种情况下不要分配额外年份。David Purton 清除额外年份字段的解决方案在这种情况下有效,但正如他指出的那样,如果休谟在 1748 年有另一部作品,则可能会遇到麻烦。

另一种可行的方法是,只要没有第二部作品date = 2007, origdate = 1748,(因此从逻辑上讲,该事件应该比 1748 年出现第二部作品的事件更有可能发生),就是让 Biber 出于额外年份的目的而忽略有问题的作品options = {skiplab}

@book{hume07:_enquir_concer_human_under,
  author    = {David Hume},
  title     = {An Enquiry Concerning Human Understanding},
  date      = 2007,
  origdate  = 1748,
  editor    = {Peter F. Millican},
  publisher = {Oxford University Press},
  location  = {Oxford},
  options   = {skiplab},
}

在 MWE 中,您的条目甚至会按预期排序,尽管并非在所有设置中都能保证这一点,因此您可能不得不求助于sortyearDavid 在他的回答中所解释的方法。

答案2

这是在 bib 条目中指定时清除字段的答案extrayear。但它不会更改字段extrayear

因此,这不是一个完美的答案,因为如果你有其他休谟的著作也发表于 1748 年。由于该extrayear领域是由创建的biber,所以我不知道如何处理这个问题。

考虑到这一点,这可能是一个相当罕见的现象,所以尝试一下吧。

您可以使用该字段控制顺序sortyear

extrayear使用一个新的输入选项(useextrayear=false)删除了该字段,该选项会在每次引用和参考书目条目时进行检查。

\documentclass{article}

\usepackage[backend=biber,authordate,cmsdate=both]{biblatex-chicago}

\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
  @Book{hume48:_philos_essay_concer_human_under,
    author =       {David Hume},
    title =        {An Enquiry Concerning Human Understanding},
    date =      1748,
    publisher = {A. Millar},
    location =  {London},
    sortyear = {1748a},
    options = {useextrayear=false}
    }

  @Book{hume07:_enquir_concer_human_under,
    author =       {David Hume},
    title =        {An Enquiry Concerning Human Understanding},
    date =      2007,
    origdate =     1748,
    editor =    {Peter F. Millican},
    publisher = {Oxford University Press},
    location =  {Oxford},
    sortyear = {1748b},
    options = {useextrayear=false}
    }
}
\end{filecontents}

\addbibresource{bibliography.bib}

\pagestyle{empty}

\makeatletter
\newtoggle{blx@useextrayear}
\toggletrue{blx@useextrayear}
\DeclareEntryOption[boolean]{useextrayear}[true]{%
  \settoggle{blx@useextrayear}{#1}}
\AtEveryCitekey{\iftoggle{blx@useextrayear}{}{\clearfield{extrayear}}}
\AtEveryBibitem{\iftoggle{blx@useextrayear}{}{\clearfield{extrayear}}}
\makeatother

\begin{document}

\autocite{hume07:_enquir_concer_human_under}

\autocite{hume48:_philos_essay_concer_human_under}

\printbibliography

\end{document}

在此处输入图片描述

相关内容