biblatex-chicago 及另外 2 个 origdate 问题

biblatex-chicago 及另外 2 个 origdate 问题
  1. 我的书目中有同一位作者的两部作品,最初出版于 1523 年,但其中一部的日期是 1523 年,另一部的作品的原始日期也是 1523 年。两部作品都显示为亚里士多德 1523(即不是 1523a 和 1523b)。

  2. 另一对作品可以说具有相互关联的年表。第一部作品出版于 1736-7 年(原版),但我引用的是 1739 年(年份)的第二版;第二部作品出版于 1738-9 年(年份;无原版)。在参考书目中,列出的第一部作品是沃尔夫 1738-1739 年的作品,第二部是沃尔夫 1736-1737 年的作品。我需要反向引用。

这些是错误吗,还是我做错了什么?这是 MWE。

\documentclass[12pt]{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
  \renewbibmacro*{origyear+endyear}{%
    \printfield{origyear}%
    \iffieldundef{origendyear}%
    {}%
    {\iffieldequalstr{origendyear}{}%
      {\mbox{\bibdatedash}}%
      {\bibdatedash\nopunct\printtext{\unspace}\printfield{origendyear}}}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
  @Book{aristotle1523a,
    author       = {Aristotle},
    title          = {Parva naturalia},
    publisher    = {Vitali},
    year           = 1523,
    location     = {Venice},
    translator   = {{Leonico Tomeo}, Niccol\`{o}}}
  @Book{aristotle1523b,
    author       = {Aristotle},
    editor       = {Agostino Nifo},
    title          = {Parva naturalia Augustini Niphi Medices
                    Philosophi Suessani},
    publisher    = {Scoto},
    year           = 1550,
    origdate     = 1523,
    options      = {cmsdate=on},
    location     = {Venice}}
@Book{wolff1736,
  author       = {Christian Wolff},
  title        = {Theologia naturalis methodo scientifica pertractata},
  publisher    = {Renger},
  year         = 1739,
  address      = {Frankfurt am Main},
  edition      = 2,
  options      = {cmsdate=on},
  origdate     = {1736/1737}}
@Book{wolff1738,
  author       = {Christian Wolff},
  title        = {Philosophia practica universalis methodo scientifica
                  pertractata},
  publisher    = {Renger},
  year         = {1738--1739},
  address      = {Frankfurt am Main},
  volumes      = 2}
\end{filecontents}
\addbibresource{\jobname.bib}

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

答案1

您可以biblatex尊重,origdate这将同时labeldate启用 的extrayear消歧义功能origyear。然后,您必须修改一些宏才能正确显示。请注意,在其他情况下,这可能是一个相当不可预测的修复,特别是因为biblatex-chicago具有非常广泛的条件装置来促进日期打印。

通过在排序方案中sortyear赋予比/origyear更高的优先级,可以方便地实现数字 2 。dateyear

由于这两种修改都很长,请查看下面的 MWE。

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

%----------- 1 -------------------------------------------%
\DeclareLabeldate{%
  \field{origdate}
  \field{date}
  \field{eventdate}
  \field{urldate}
  \literal{nodate}
}

\makeatletter
\renewbibmacro*{cite:origyear+labelyear}{%
  \iftoggle{cms@switchdates}%
  {\usebibmacro{cite:labelyear+extrayear}}
  {\iffieldundef{origyear}%
    {\clearfield{extrayear}\usebibmacro{cite:labelyear+extrayear}}%
    {\usebibmacro{cite:labelyear+extrayear}}}}%<------ this is new

\renewbibmacro*{origyear+labelyear}{%
  \iftoggle{cms@switchdates}%
  {\usebibmacro{labelyear+extrayear}%
    \clearfield{year}}%
  {\usebibmacro{labelyear+extrayear}}}%<----- this is new

\newbibmacro*{standard+labelyear+extrayear}{%
  \iffieldundef{labelyear}%
    {\ifboolexpr{
        test {\iffieldequalstr{entrytype}{misc}}
        or
        test {\iffieldequalstr{entrytype}{inreference}}
        or
        test {\iffieldequalstr{entrytype}{reference}}
        or
        not togl {cms@nodates}}%
      {}%
      {\bibstring{nodate}}}%
    {\iffieldundef{year}%
      {\iffieldundef{eventyear}
        {\iffieldundef{origyear}%
          {\printfield{labelyear}%
            \iffieldundef{extrayear}%
            {}%
            {\setunit*{}%
              \printfield{extrayear}}%
            \iffieldundef{urlendyear}%
            {\clearfield{urlyear}}%
            {\iffieldequalstr{urlendyear}{}%
              {\mbox{\bibdatedash}%
                \clearfield{urlyear}}%
              {\iffieldundef{urlmonth}%
                {\clearfield{urlyear}}%
                {\iffieldsequal{urlyear}{urlendyear}%
                  {\clearfield{urlyear}\clearfield{urlendyear}}%
                  {}}}}}%
          {\printfield{labelyear}%
            \iffieldundef{extrayear}%
            {}%
            {\setunit*{}%
              \printfield{extrayear}}%
            \iffieldundef{origendyear}%
            {\clearfield{origyear}}%
            {\iffieldequalstr{origendyear}{}%
              {\mbox{\bibdatedash}%
                \clearfield{origyear}}%
              {\iffieldundef{origmonth}%
                {\clearfield{origyear}}%
                {\iffieldsequal{origyear}{origendyear}%
                  {\clearfield{origyear}\clearfield{origendyear}}%
                  {}}}}}}%
        {\printfield{labelyear}%
          \iffieldundef{extrayear}%
          {}%
          {\setunit*{}%
            \printfield{extrayear}}%
          \iffieldundef{eventendyear}%
          {\clearfield{eventyear}}%
          {\iffieldequalstr{eventendyear}{}%
            {\mbox{\bibdatedash}%
              \clearfield{eventyear}}%
            {\iffieldundef{eventmonth}%
              {\clearfield{eventyear}}%
              {\iffieldsequal{eventyear}{evendendyear}%
                {\clearfield{eventyear}\clearfield{eventendyear}}%
                {}}}}}}%
      {\printfield{labelyear}%
        \iffieldundef{extrayear}%
        {}%
        {\setunit*{}%
          \printfield{extrayear}}%
        \iffieldundef{endyear}% DATE FIX
        {\iffieldundef{origyear}%<----- this conditional is new
          {\clearfield{year}}%
          {}}%
        {\iffieldequalstr{endyear}{}%
          {\mbox{\bibdatedash}%
            \clearfield{year}}%
          {\iffieldundef{month}%
            {\clearfield{year}}%
            {\iffieldsequal{year}{endyear}%
              {\clearfield{year}\clearfield{endyear}}%
              {}}}}}}}
\makeatother
%----------- 1 END -------------------------------------%

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

%----------- 2 ----------------------------------------%
\DeclareSortingScheme{cms}{
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \name{sortname}
    \name{author}
    \name{namea}
    \name{editor}
    \name{nameb}
    \name{translator}
    \name{namec}
    \field{sorttitle}
    \field{journaltitle}
    \list{organization}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{origyear}
    \field{year}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field[padside=left,padwidth=4,padchar=0]{volume}
    \literal{0000}
  }
}
%----------- 2 END -------------------------------------%

\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}
}
@Book{aristotle1523a,
    author       = {Aristotle},
    title          = {Parva naturalia},
    publisher    = {Vitali},
    year           = 1523,
    location     = {Venice},
    translator   = {{Leonico Tomeo}, Niccol\`{o}}}
  @Book{aristotle1523b,
    author       = {Aristotle},
    editor       = {Agostino Nifo},
    title          = {Parva naturalia Augustini Niphi Medices
                    Philosophi Suessani},
    publisher    = {Scoto},
    year           = 1550,
    origdate     = 1523,
    options      = {cmsdate=on},
    location     = {Venice}}
@Book{wolff1736,
  author       = {Christian Wolff},
  title        = {Theologia naturalis methodo scientifica pertractata},
  publisher    = {Renger},
  year         = 1739,
  address      = {Frankfurt am Main},
  edition      = 2,
  options      = {cmsdate=on},
  origdate     = {1736/1737}}
@Book{wolff1738,
  author       = {Christian Wolff},
  title        = {Philosophia practica universalis methodo scientifica
                  pertractata},
  publisher    = {Renger},
  year         = {1738--1739},
  address      = {Frankfurt am Main},
  volumes      = 2}

@article{testart,
  author        = {Arnold Uthor and William Riter},
  title         = {A Very Interesting Article},
  journal       = {Journal of Articles},
  volume        = {7},
  pages         = {1-5},
  date          = {2010},
}
@book{testbook,
  author        = {Arnold Uthor},
  title         = {A Book},
  date          = {2013},
  publisher     = {Peter Ublisher \& Co.},
  location      = {Place City},
}
@book{testbookt,
  author        = {Arnold Uthor},
  title         = {A Second Book},
  date          = {2013},
  publisher     = {Peter Ublisher \& Co.},
  location      = {Place City},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Let's cite \cite{crusius1754}, \cite{testbook} and \cite{testbookt}, and \cite{wolff1738}.
As well as \cite{aristotle1523a} and \cite{aristotle1523b}.
\nocite{*}
\printbibliography
\end{document}

产量

在此处输入图片描述

相关内容