我正在biblatex
创建一个包含两部分的书目,一部分是文献,一部分是互联网资源。现在我想按 NTY 对每个书目进行排序。之后,书目中的条目应从上到下编号。这应该发生在两个书目中,我希望第二个书目的第一个编号紧随第一个书目最后一个编号之后。
我认为 MWE 没有意义,因为我甚至不知道这个问题的开始。
答案1
如果你只想将@online
所有其他类型拆分成两个书目,那么很简单
\printbibliography[nottype=online]
\printbibliography[type=online]
第一个命令打印除类型外的所有条目@online
,而后一个命令仅打印@online
条目。
然后我们使用defernumbers=true
,此选项确保“数字标签(即labelnumber
在任何书目中第一次打印条目时分配数字标签(即字段 [...])”(第 52 页,§3.1.1加载时选项/defernumbers
的biblatex
文档)
nty
排序通过以下方式获得
\usepackage[style=numeric,sorting=nty,defernumbers=true]{biblatex}
完整代码
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[style=numeric,sorting=nty,defernumbers=true]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{baez/online,cicero,wassenberg,wilde}
\printbibliography[nottype=online]
\printbibliography[type=online]
\end{document}
答案2
这是一个独立于所用后端的解决方案biblatex
。由于 OP 询问使用bibtex
,我的示例指定了这一点,但没有任何内容依赖于它。backend=biber
至少可以同样有效。
这个答案基于 moewe 的解决方案。我运行了该代码并读取了输出。在那里biblatex
建议了该defernumbers
选项。查看文档后,我了解到defernumbers
,与 不同\DeclarePresort
并不特定于biber
。一个额外的(但非常小的)好处是它消除了biblatex
编译时的警告。
通常,biblatex
在文档开头为参考条目分配编号。但是,如果defernumbers
设置为true
,则直到它们在参考书目中第一次使用时才会分配编号。
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[sorting=nty,defernumbers=true,backend=bibtex]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{baez/online,cicero,wassenberg,wilde}
\printbibliography[nottype=online]
\printbibliography[type=online]
\end{document}
请注意,文档警告您需要运行两次latex
才能正确编号,这要超过使分页等正确所需的运行次数。此外,如果您更改了的值defernumbers
,则可能需要删除该文件。(虽然我发现从默认设置.aux
改为时不需要这样做。)false
true