我在用着multibib
。我手动设置了参考书目的顺序。我希望编号项目的顺序被反转。例如,我的文档有:
\nociteX{Foo}
\nociteX{Bar}
然后文件显示:
[1] Foo
[2] Bar
我希望文件能够显示:
[2] Foo
[1] Bar
有人能解释一下我的文件中需要更改什么吗,或者我缺少一个可以实现这一点的.bst
标志吗?multibib
答案1
该biblatex
软件包提供的功能与 相当。可以使用 的各种选项细分multibib
单个文件中的引用。示例包括、和。有关详细信息,请参阅手册。 的前缀使用选项指定。bib
\printbibliography
type
keyword
category
biblatex
labelnumber
prefixnumbers
假设每个子书目都有一个唯一的前缀,可以通过改变labelnumber
字段格式来获得降序的标签号,以便它打印由前缀特定条目总数减去实际值labelnumber
再加一给出的值。
\documentclass{article}
\usepackage[style=numeric-comp,sorting=ydnt,defernumbers]{biblatex}
\AtDataInput{%
\csnumgdef{entrycount:\strfield{prefixnumber}}{%
\csuse{entrycount:\strfield{prefixnumber}}+1}}
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\newrobustcmd*{\mkbibdesc}[1]{%
\number\numexpr\csuse{entrycount:\strfield{prefixnumber}}+1-#1\relax}
\addbibresource{biblatex-examples.bib}
\begin{document}
Filler text \cite{aksin,bertram,angenendt}.
Filler text \cite{chiu,padhye,moraux}.
\printbibheading
\printbibliography[prefixnumbers={A},type=article,title={Articles},heading=subbibliography]
\printbibliography[prefixnumbers={R},type=report,title={Reports},heading=subbibliography]
\printbibliography[prefixnumbers={P},type=inproceedings,title={Presentations},
heading=subbibliography]
\end{document}
此解决方案适用于任一后端,但biber
日志中的“重新运行 LaTeX”消息可能不稳定。无论如何,请注意警告;重新编译后第一次消息消失时应该会给出正确的文档。
答案2
我有一个可能的答案(可能是因为我的安装在我测试所有功能之前就崩溃了)。正如所提到的,它依赖于biblatex
作为biber
后端。
在序言中,您提到您想要使用 biber 作为后端(用于调整排序),您想要使用您设计的新排序方案,并且您将使用参考书目中的前缀。
\usepackage[defernumbers=true,sorting=reverse,backend=biber]{biblatex}
\addbibresource{Yourbibresource}
\DeclareSortingScheme{reverse}{
\sort[direction=descending]{\citeorder}
}
在文档的末尾,您可以借助关键字打印不同的参考书目来区分它们。
\printbibliography[keyword=original,prefixnumbers=F,title=Original sources]
\printbibliography[keyword=known,prefixnumbers=B,title=Other sources]
我成功实现了 [F1]、[F2] 以及 [B1] 和 [B2] 行为,但由于崩溃而无法测试 biber 调整。不过,根据之前的实验,我确信这是可行的方法。
我知道这个答案并不完整,因为它没有经过全面测试,但我想将它推出,以便人们可以玩它,直到我设法修复我的设置(在工作中,我遇到了巨大的网络问题,因此可能需要很长时间才能修复)。