从文档中间开始按出现顺序对参考文献进行排序

从文档中间开始按出现顺序对参考文献进行排序

我希望有一份由两部分组成的文档,具有共同的书目,但排序基于第二部分的出现顺序。在我看来,自然的做法是使用defernumbers=true第一部分并\printbibliography打印第二部分的内容(我将第二部分放在第一refsegment部分上,refsection因为我想要一个共同的书目)。

然而我得到的输出是

[1][2][1][3][4][2]

我希望

[1][4][1][2][3][4]

参考文献的顺序主要由第二部分出现的顺序决定。

\documentclass{article}

\usepackage[
    backend=biber,
    citestyle=numeric,
    defernumbers=true,
    refsegment=section,
    sorting=none
]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
\section{One}
\cite{bertram}\cite{doody}

\section{Two}
\cite{bertram}\cite{glashow}\cite{gillies}\cite{doody}

\printbibliography[segment=2]

\end{document}

是否可以按文档中途给定点之后的首次出现进行排序?

动机是准备一份带有一些封面说明的单一文档,其中第一部分可以引用与主文档相同的参考书目,但也可以删除,并且主文档看起来完整(即,第二部分+参考书目无论是否与第一部分编译看起来相同,参考书目中的引用顺序由它们在第二部分中被引用的顺序决定)。

答案1

只需从辅助文件中复制 biblatex 添加的内容以停止标题中的引用计数,如果将它们复制到表格列表中,则会导致

在此处输入图片描述

\documentclass{article}

\usepackage[
    backend=biber,
    citestyle=numeric,
    defernumbers=true,
    refsegment=section,
    sorting=none
]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
\section{One}
\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\boolfalse{citetracker}
\cite{bertram}\cite{doody}

\section{Two}
\booltrue {citerequest}\booltrue {citetracker}\booltrue {pagetracker}\booltrue {backtracker}\booltrue{citetracker}
\cite{bertram}\cite{glashow}\cite{gillies}\cite{doody}

\printbibliography[segment=2]

\end{document}

(可能有更官方的界面但是......)

相关内容