《芝加哥格式手册》建议,在其作者-日期样式中,当在同一段落中重复引用同一作品时,只需在括号中引用页码。 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
biblatex
citereset
有自动发出\citereset
分段命令的选项。我猜这就是biblatex-chicago
手册在引用的段落中提到的。支持以下值
none
– 该功能已关闭part
–在每个命令时biblatex
执行\citereset
\part
chapter
/chapter+
(仅当文档类支持\chapter
s 时)–在每个命令上biblatex
执行\citereset
\chapter
section
/section+
–每个命令biblatex
执行\citereset
\section
subsection
/subsection+
–每个命令biblatex
执行\citereset
\subsection
该+
版本于 3.12 版推出biblatex
(https://github.com/plk/biblatex/issues/773,https://github.com/plk/biblatex/pull/809)并重置所有更高级别的跟踪器。(文档尚未完全更新以正确反映这一点,此问题已修复biblatex
3.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}