如何使用 bibtex sorting=anyt 对公司作者和个人作者进行排序?

如何使用 bibtex sorting=anyt 对公司作者和个人作者进行排序?

以下 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

这是biblatexBibTeX 排序代码中的一个错误。该问题已在biblatexv3.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 中的代码不同的来源。

相关内容