\autocite 中首先是完整标题,然后是简称:biblatex-chicago authordate,其中 entrysubtype={classical}

\autocite 中首先是完整标题,然后是简称:biblatex-chicago authordate,其中 entrysubtype={classical}

我使用 biblatex-chicago(authordate 格式)和 bib 文件中的 entrysubtype={classical} 引用了一些古典作家的作品。现在调用 \autocite 会隐藏年份并添加相关作品的标题。

对于使用传统 entrysubtype 的资料,我希望在第一个引用中使用完整标题,然后使用“shorttitle”中给出的标题。目前,在我看来,一旦 bib-record 中包含了短标题,调用 \autocite 时就会忽略完整标题。任何后续使用 \autocite 都会完全删除标题,只打印页码/章节号。

是否有机会让 \autocite 在第一次引用中使用完整标题,但在后续引用中除了页码/章节号外还打印简称?

这是我的 MWE:

\documentclass[12pt, a4paper]{article}
\usepackage[authordate,strict,backend=bibtex8,citetracker=true,babel=other,%
bibencoding=inputenc,sorting=nyt]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{bibsample.bib}
@BOOK{Plato2003,
  title = {The Republic},
  publisher = {Penguin},
  year = {2003},
  author = {Plato},
  address = {London},
  nameb = {Lee, Desmond},
  entrysubtype = {classical},
  shorttitle = {Rep.},
}
\end{filecontents}
\addbibresource{bibsample.bib}
\begin{document}
\autocite[123d]{Plato2003}
\autocite[344a]{Plato2003}
\printbibliography

\end{document}

目前发生的情况是:

现在的第一个例子\autocite[123a]{Plato2003}是(柏拉图代表123a),然后\autocite[345a]{{Plato2003}删除作者和标题,得到 (345a)。

我想要得到的:

第一个\autocite产生(柏拉图共和國123a)(=使用完整标题),而后续\autocite将使用不带作者的简称和章节编号:(代表123b)

如果 bib-record 没有 shorttitle 也没有 entrysubtype={classical},那么我希望 \autocite 按照默认方式运行:首先是 (作者年份,页码),然后是 (页码)。

任何帮助是极大的赞赏..!

答案1

为了获得第一个引用的所需输出,您可以将字段的内容复制title到中labeltitle

在第二个引用中,您需要抑制 ibidem 引用标签和(在非 ibdiem 标签中)名称labelname列表。biblatex-chicago前者通过发出 来执行\blx@ibidreset。后者可以通过清除 来完成labelname

以下钩子将所有这些组合在一起。请注意,它会在每个引用命令时执行,而不仅仅是\autocite

\makeatletter
\AtEveryCitekey{%
  \ifboolexpr{ test {\iffieldequalstr{entrysubtype}{classical}}
               and not test {\iffieldundef{shorttitle}} }
    {\ifciteseen
       {\blx@ibidreset\clearname{labelname}}
       {\savefield{title}{\cbxtitle}\restorefield{labeltitle}{\cbxtitle}}}
    {}}
\makeatother

只需将其添加到您的序言中。它应该适用于最新biblatex-chicago版本,该版本需要 biber 来实现作者日期样式。

相关内容