同一页面上同一文献的多个 \footcite:如何合并脚注?

同一页面上同一文献的多个 \footcite:如何合并脚注?

默认情况下,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}

相关内容