在 biblatex-chicago 中段落中断(或章节/环境边界)后自动重置引文跟踪器

在 biblatex-chicago 中段落中断(或章节/环境边界)后自动重置引文跟踪器

《芝加哥格式手册》建议,在其作者-日期样式中,当在同一段落中重复引用同一作品时,只需在括号中引用页码。 biblatex-chicago在一定程度上遵循了这一点。如手册中所述(第 122 页),它会在分页符处重置跟踪器,并建议使用biblatex's\citereset命令手动实现所需的行为。有没有办法自动执行此操作,以便跟踪器在每个分节符后和环境边界(例如块引用)处重置,或者甚至在每个段落符后重置,因为这更符合 CMoS 的要求?

顺便说一句,手册确实指出该软件包“提供部分、章节、节和小节边界的自动重置”(第 122 页)但是我在以下 MWE 中没有得到这种行为:

% !TEX TS-program = xelatexmk
\documentclass{report}

\usepackage{filecontents}
\begin{filecontents}{bib.bib}
@article{citethis,
    Author = {Author, Anton},
    Journal = {Journal},
    Title = {The Article},
    Year = 2019}}
\end{filecontents}

\usepackage[authordate, backend=biber]{biblatex-chicago}
\addbibresource{bib.bib}

\begin{document}
This is some text with a citation \autocite[54]{citethis} and some more text and another citation of the same reference \autocite[56]{citethis}. 

\section{A section title}
After a section break the same reference is cited again % \citereset 
\autocite[57]{citethis}.

\begin{quote}
And this is a block quote, yet again from the same author.  A very popular author indeed. % \citereset 
\autocite[58]{citethis}
\end{quote}

More text to add.  And after the block quote the same reference is cited again %\citereset 
\autocite[59]{citethis}. And again \autocite[60]{citethis}.

And after a paragraph break again \autocite[61]{citethis}.

\end{document}

因此,从本质上讲,带有后注 57、58 和 59 的引用应该完整打印(在环境边界之后和分节符之后)。

理想情况下,带有后注 61 的引文也应完整打印,以完全符合 CMoS,但是,这似乎可能更复杂,所以我对前者的解决方案已经很满意了。(这当然会避免为前面的情况提供单独的解决方案,因为环境和章节边界也总是包括段落分隔符。)

答案1

biblatexcitereset有自动发出\citereset分段命令的选项。我猜这就是biblatex-chicago手册在引用的段落中提到的。支持以下值

  • none– 该功能已关闭
  • part–在每个命令时biblatex执行\citereset\part
  • chapter/chapter+(仅当文档类支持\chapters 时)–在每个命令上biblatex执行\citereset\chapter
  • section/section+ –每个命令biblatex执行\citereset\section
  • subsection/subsection+ –每个命令biblatex执行\citereset\subsection

+版本于 3.12 版推出biblatexhttps://github.com/plk/biblatex/issues/773https://github.com/plk/biblatex/pull/809)并重置所有更高级别的跟踪器。(文档尚未完全更新以正确反映这一点,此问题已修复biblatex3.13 中修复https://github.com/plk/biblatex/commit/1d35a968c61a6459b00cda73d5db7ff4a3bb29b6

所以

citereset=subsection+,

可能值得一试。每段重置一次会很好,但至今还没有找到合适的 LaTeX 钩子,参见https://github.com/plk/biblatex/issues/715。欢迎提出建议。

biblatex不会自动修补所有环境以发出问题\citereset,而且我认为这不是一个好主意,因此您必须手动执行此操作,例如使用etoolbox's\AtBeginEnvironment\AtEndEnvironment

\documentclass{report}
\usepackage[authordate, backend=biber, citereset=subsection+]{biblatex-chicago}

\AtBeginEnvironment{quote}{\citereset}
\AtEndEnvironment{quote}{\citereset}

\addbibresource{biblatex-examples.bib}

\begin{document}
This is some text with a citation \autocite[54]{sigfridsson}
and some more text and another citation of the same reference
\autocite[56]{sigfridsson}.

\section{A section title}
After a section break the same reference is cited again
\autocite[57]{sigfridsson}.

\begin{quote}
And this is a block quote, yet again from the same author.
A very popular author indeed.
\autocite[58]{sigfridsson}
\end{quote}

More text to add.  And after the block quote the same reference is cited again
\autocite[59]{sigfridsson}. And again \autocite[60]{sigfridsson}.

And after a paragraph break again \autocite[61]{sigfridsson}.
\end{document}

这是一些带有引文的文本(Sigfridsson and Ryde 1998, 54),还有一些文本和对同一参考文献的另一个引文(56)。//0.1 章节标题//在分节之后,再次引用相同的参考文献(Sigfridsson and Ryde 1998, 57)。//这是一个块引用,同样来自同一作者。确实是一位非常受欢迎的作者。(Sigfridsson and Ryde 1998, 58)//要添加更多文本。在块引用之后,再次引用相同的参考文献(Sigfridsson and Ryde 1998, 59)。然后再次(60)。在段落分隔之后再次(61)。

相关内容