使用 footcite 时如何合并重复的参考书目条目?

使用 footcite 时如何合并重复的参考书目条目?

如果我连续多次引用同一来源,它会生成一个由相同项目组成的参考书目列表:


  1. 作者,标题
  2. 作者,标题
\begin{filecontents}{database.bib}
@Misc{key,
    author      = {author},
    title       = {title},
}
\end{filecontents}

\documentclass{article}
\usepackage[autocite=footnote,style=authortitle]{biblatex}
\bibliography{database.bib}
\begin{document}
\begin{itemize}
\item one point\autocite{key}
\item another one\autocite{key}
\end{itemize}
\end{document}

我如何压缩脚注中的列表使其看起来像这样:


1,2 作者,标题

答案1

我建议的解决方案是不压缩脚注列表,而是每页只打印一次脚注。

这个想法是重新定义一个名为 的引用命令\footcite。然后,为了被 biblatex 的选项接受,我按照这个把autocite它放到一个文件中biblatex.cfg问题并命名它myfootnote

并且\footcite,在调用时,始终\footnotemark使用密钥的标签号创建一个。然后,根据此问题,如果\footcite在这个页面上第一次调用,它还会创建一个\footnotetext

最终的 MWE 如下:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{biblatex.cfg}
    \ProvidesFile{biblatex.cfg}
    \DeclareCiteCommand{\footcite}%
    {\usebibmacro{prenote}}% 
    {%
        %   \renewcommand{\thefootnote}{\arabic{footnote}}% Switch to footnote with numbers
        \footnotemark[\thefield{labelnumber}]% Add the mark corresponding to the number entry% 
        \iffirstonpage{
            \footnotetext[\thefield{labelnumber}]{% Add the footnote text with same number entry.
                %\printfield{labelnumber}
                \printnames{labelname}% The name 
                \setunit{\printdelim{nametitledelim}}% separator
                \printfield[citetitle]{labeltitle}% The title
                \setunit{\addperiod\space}% separator
                \printfield{year}% The year
        }
        }{}% if not first on page
        %   \renewcommand{\thefootnote}{\alph{footnote}}% Switch back to footnote with letters.
    }%
    {\multicitedelim}
    {\usebibmacro{postnote}}
    \DeclareAutoCiteCommand{myfootnote}{\footcite}{\footcite}
    \endinput
\end{filecontents}

\begin{filecontents}{database.bib}
    @Misc{key,
        author      = {author},
        title       = {title},
    }
\end{filecontents}

\usepackage[autocite=myfootnote, style=numeric, pagetracker=true, backend=biber]{biblatex}
\bibliography{database.bib}
\begin{document}
\begin{itemize}
    \item one point\autocite{key}
    \item another one\autocite{key}
\end{itemize}
\newpage
\begin{itemize}
    \item one point\autocite{key}
    \item another one\autocite{key}
\end{itemize}
\end{document}

我不知道如何做的一个可能的改进是使这个 hack 与其他 bibstyles 兼容。事实上,如果有人将样式切换为,alphabetic例如,将出现编译错误:missing number;因为footnotemark将不会收到数字,而是收到由 给出的文本\thefield{labelnumber}

相关内容