默认情况下,biblatex
每次使用时都会打印一个新的脚注,\footcite{...}
无论内容如何。
如果同一页上多次引用同一篇文献,我想自动合并相同的\footcite
脚注(每次出现时使用相同的脚注编号,并且只打印一次脚注)。我该如何实现?
平均能量损失
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\addbibresource{Literature.bib}
\begin{document}
Some text.\footcite{ExampleBook} Some more text.\footcite{ExampleBook}
\end{document}
文献内容.bib
@book{ExampleBook,
title = {Some Title},
author = {Some Author},
year = {1492},
}
答案1
棘手的是,当 位于\footcite
一个跨两页的段落中时。两半都认为自己在第一页。ifoddpage
可以使用该包来处理这种情况,但需要运行两次。
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\addbibresource{Literature.bib}
\usepackage{xparse}% for multiple optional parameters
\usepackage{ifoddpage}% get correct page number
\makeatletter
\let\oldfootcite=\footcite
\RenewDocumentCommand{\footcite}{O{}O{}m}{\checkoddpage
\@ifundefined{citepage@#3}{}%
{\ifnum\csname citepage@#3\endcsname<\oddpage@page\relax
\global\expandafter\let\csname repeatcite@#3\endcsname=\relax
\fi}%
\@ifundefined{repeatcite@#3}%
{\oldfootcite[#1][#2]{#3}%
\expandafter\xdef\csname repeatcite@#3\endcsname{\thefootnote}%
\expandafter\xdef\csname citepage@#3\endcsname{\arabic{page}}}%
{\footnotemark[\csname repeatcite@#3\endcsname]}}
\makeatother
\begin{document}
Some text.\footcite{ExampleBook} Some more text.\footcite{ExampleBook}
\newpage
Some more text.\footcite{ExampleBook}
\end{document}