以下 MWE
\documentclass{article}
\usepackage[utf8]{inputenc}
\RequirePackage{filecontents}
\begin{filecontents}{debug.bib}
@online{physx,
author = {{Nvidia Corporation}},
key = {Nvidia Corporation},
title = {PhysX},
year = {2017},
url = {https://developer.nvidia.com/physx-sdk},
language = {eng},
version = {3.3},
organization = {Nvidia Corporation},
date = {2017},
month = {04},
urldate = {2017-04-30},
}
@phdthesis{Wald04,
author = {Wald,Ingo},
title = {Realtime ray tracing and interactive global illumination},
school = {Universität des Saarlandes},
year = {2004},
address = {Postfach 151141, 66041 Saarbrücken},
language = {eng},
URL = {http://scidok.sulb.uni-saarland.de/volltexte/2004/319},
}
\end{filecontents}
\usepackage[%
backend=bibtex % biber or bibtex
,style=alphabetic % Alphabeticalsch
,citestyle=alphabetic
,sorting=anyt % no sorting
,sortcase=false
,sortcites=true % some other example options
,isbn=true
,url=true
,doi=true % prints doi
,natbib=true % if you need natbib functions
]{biblatex}
\addbibresource{debug.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
将参考书目排序为
- 瓦尔德
- 英伟达
但是我怎样才能按字母顺序对它们进行排序
- 英伟达
- 瓦尔德
当我将此 MWE 的后端更改为 biber 而不是 bibtex 时,它会正确排序,但我需要删除地址字段,因为它无法处理地址字段。可能是因为“ü”或因为“,”(无效参数)
由于我必须使用的模板在使用 biber 时会抛出数百个错误,我真的很想让它与 bibtex 一起工作。我猜是因为 {corporate name} 作者都排在个人作者之后。
答案1
这是
biblatex
BibTeX 排序代码中的一个错误。该问题已在biblatex
v3.12 中得到解决。如果您遇到此问题,请考虑更新。使用 Biber 后端时不会发生此问题,因此处理此问题的首选方法是使用首选后端 Biber。(BibTeX 现在被视为“遗留后端”,仅支持一组减少的
biblatex
功能。)
如果您检查该.bbl
文件,您会发现该physx
条目有\field{sortinit}{{N}}
,因此它没有排序在N
,而是排序在{N}
。
我已在 bugtracker 上报告了此问题https://github.com/plk/biblatex/issues/601。由于 BibTeX 仅作为传统后端受支持,并且只有 Biber 允许您使用全套功能,因此它可能不在列表顶部。
有趣的是,无论是sortname
还是都presort
不能提供解决方法。
您应该改用 Biber。Biber 是唯一完全受支持的后端,它不存在此问题。在我的计算机上,Biber 与您的 MWE 配合得很好,因此您遇到的问题似乎一定来自与 MWE 中的代码不同的来源。