所以我希望在新章节之后有完整的引文,然后只有同上。我正在使用biblatex
这种authoryear-ibid
风格。
\newbibmacro*{cite}{%
\global\boolfalse{cbx:loccit}%
\iffieldundef{shorthand}
{\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
{\usebibmacro{cite:ibid}}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}}
{\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}}%
\usebibmacro{cite:labelyear+extrayear}}}
{\usebibmacro{cite:shorthand}}}
因此,我在中找到上述内容,authoryear-ibid.cbx
据我所知,我需要将更改为\iffirstonpage
类似的内容\ifnewchapter
。但是我不知道如何创建\ifnewchapter
宏或如何覆盖\iffirstonpage
。
左边的图片显示了我得到的结果,右边的图片显示了我想要的结果:
这是 MWE:
\documentclass{scrreprt}
\usepackage[style=authoryear-ibid]{biblatex}
\bibliography{example}
\begin{document}
\chapter{Example 1}
Text (\cite{Johnson99})
More Text (\cite{Johnson99})
\chapter{Example 2}
Text (\cite{Johnson99})
\end{document}
答案1
您需要选项citereset=chapter
。严格来说,该选项不仅会在每个新章节重置“ibidem”跟踪,而且对于样式,authoryear-ibid
只有“ibidem”跟踪会受到影响,对于其他样式,这种更广泛的重置甚至可能是可取的。
\documentclass{scrreprt}
\usepackage[style=authoryear-ibid, citereset=chapter]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\chapter{Example 1}
Text \parencite{sigfridsson}
More Text \parencite{sigfridsson}
\chapter{Example 2}
Text \parencite{sigfridsson}
\end{document}