如果我连续多次引用同一来源,它会生成一个由相同项目组成的参考书目列表:
- 作者,标题
- 作者,标题
\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}
。