根据来源或日期自动将参考文献分配到参考书目类别

根据来源或日期自动将参考文献分配到参考书目类别

我正在使用biblatex-chicago选项author-date。我喜欢biblatexbiblatex-chicago欣赏为此付出的努力。不过,我有一个小问题。我通常使用

\DeclareBibliographyCategory{A}

在序言中,然后

\autocite{B}

\AddToCategory{A}{B}

引用 B 之后。

现在我想知道是否可以有一个参考书目类别:

\DeclareBibliographyCategory{Before1900}

并在以下情况下自动将引用添加到该类别Before1900

  1. 它有一个 origdate 值,并且该值低于 1900;
  2. 它没有 origdate 值,但日期值低于 1900。

我对这样的选项很感兴趣,因为它可以让我根据资料来源的写作/出版日期自动创建分割书目。

答案1

biblatex允许我们过滤要插入参考书目中的条目。

首先,你必须定义要使用的条件\definebibcheck

\defbibcheck{pre}{
  \iffieldint{origyear}
    {\ifnumless{\thefield{origyear}}{1900}
      {}
      {\skipentry}
    }
    {\iffieldint{year}
      {\ifnumless{\thefield{year}}{1900}
        {}
        {\skipentry}
      }
      {\skipentry}
    }
}

\defbibcheck{post}{
  \iffieldint{origyear}
    {\ifnumless{1899}{\thefield{origyear}}
      {}
      {\skipentry}
    }
    {\iffieldint{year}
      {\ifnumless{1899}{\thefield{year}}
        {}
        {\skipentry}
      }
      {
       \skipentry %comment out this line if unknown date check used as well.
      } 
    }
}

之后你可以check\printbibliography命令中使用 s

\printbibliography[check=pre,title={Before 1900}]

\printbibliography[chek=post,title={Post 1900}]

编辑

要创建第三类条目,即日期不明确的条目,检查方法如下:

\defbibcheck{dateunknown}{
  \ifboolexpr{
    test {\iffieldundef{year}}
    and
    test {\iffieldundef{origyear}}
  }
    {}
    {\skipentry}
}

相关内容