带有变音符号的参考书目中的参考文献顺序错误

带有变音符号的参考书目中的参考文献顺序错误

我发现参考书目中的参考文献顺序不正确。我使用 UTF-8(xelatex),文件中所有名称都直接以 UTF-8 输入literatura.bib。作品语言为英语,但参考的作者来自不同的语言。

\documentclass{article}
\usepackage{natbib}
\bibliographystyle{plainnat}
\begin{document}
\cite{Hughes1985,Horandl2006a,Stepanek2011,Soltis2016,Zhang2017}
\bibliography{literatura}
\end{document}

呈现为:

参考书目顺序错误

Hörandl 应该在 Hughes 之前,Štěpánek 应该在 Soltis 和 Zhang 之间。这个顺序不正确。如何解决?

以下是内容literatura.bib

@article{Hughes1985,
author={Hughes, Jane and Richards, A John},
doi={10.1038/hdy.1985.32},
isbn={0018-067X},
issn={0018-067X},
journal={Heredity},
month={apr},
number={2},
pages={245--249},
title={{Isozyme inheritance in diploid \textit{Taraxacum} hybrids}},
url={https://www.nature.com/articles/hdy198532},
volume={54},
year={1985}
}
@article{Horandl2006a,
author={Hörandl, Elvira},
doi={10.1111/j.1469-8137.2006.01769.x},
issn={0028-646X},
journal={New Phytologist},
month={may},
number={2},
pages={525--538},
title={{The complex causality of geographical parthenogenesis}},
url={https://nph.onlinelibrary.wiley.com/doi/full/10.1111/j.1469-8137.2006.01769.x},
volume={171},
year={2006}
}
@article{Stepanek2011,
author={Štěpánek, Jan and Kirschner, Jan and Jarolímová, Vlasta and Kirschnerová, Ludmila},
issn={00327786},
journal={Preslia},
number={4},
pages={537--564},
title={{\textit{Taraxacum nigricans}, \textit{T.~alpestre} and allies in the \textit{Taraxacum} sect. \textit{Alpestria}: Taxonomy, geography and conservation status}},
url={http://www.preslia.cz/2011.html\#stepanek},
volume={83},
year={2011}
}
@article{Soltis2016,
author={Soltis, Douglas E and Visger, Clayton J and Marchant, D Blaine and Soltis, Pamela S},
doi={10.3732/ajb.1500501},
isbn={0002-9122},
issn={0002-9122},
journal={American Journal of Botany},
month={jul},
number={7},
pages={1146--1166},
pmid={27234228},
title={{Polyploidy: Pitfalls and paths to a paradigm}},
url={https://onlinelibrary.wiley.com/doi/abs/10.3732/ajb.1500501},
volume={103},
year={2016}
}
@article{Zhang2017,
archivePrefix={arXiv},
arxivId={1207.3907},
author={Zhang, Yingxiao and Iaffaldano, Brian J and Zhuang, Xiaofeng and Cardina, John and Cornish, Katrina},
doi={10.1186/s12870-016-0967-1},
eprint={1207.3907},
isbn={1287001609671},
issn={1471-2229},
journal={BMC Plant Biology},
month={dec},
number={34},
pages={1--14},
pmid={28152978},
publisher={BMC Plant Biology},
title={{Chloroplast genome resources and molecular markers differentiate rubber dandelion species from weedy relatives}},
url={https://bmcplantbiol.biomedcentral.com/articles/10.1186/s12870-016-0967-1},
volume={17},
year={2017}
}

答案1

BibTeX 并不真正处理非 ASCII 字符。在大多数情况下,它只需传递字符即可应付自如,但一旦 BibTeX 需要“理解”字符,就会出错。例如,BibTeX 无法对非 ASCII 字符进行排序(我是说,在这个一般情况下,即使我的 Windows 上的 MikTeX 提供的 BibTeX 可以很好地对您的 MWE 进行排序,但 Ubuntu 上的 TeX live 的 BibTeX 却给出了同样意外的输出)。

如果你想坚持BibTeX并希望对非 ASCII 字符进行合理的排序,您需要使用宏来标记这些字符,如中所述如何在参考书目中书写“ä”及其他变音符号和重音字母?你会写

author={H{\"o}randl, Elvira},

author={{\v S}t{\v e}p{\'a}nek, Jan and Kirschner, Jan and 
        Jarol{\'i}mov{\'a}, Vlasta and Kirschnerov{\'a}, Ludmila},

然后,BibTeX 将通过忽略变音符号对带有变音符号的字符进行排序。因此{\"o}( ö) 排序为o。这对于英语文本来说可能没问题,我猜这也是您所期望的。但对于排序规则更复杂的语言,例如瑞典语(“ö”是字母表末尾与“o”分开的字母)或德语(传统上名称列表将“ö”排序为“oe”),它可能并不合适。

我认为这种方法并不特别令人满意,特别是当您使用完全支持 Unicode 的 XeLaTeX 引擎时。回到使用宏的 ASCII 感觉不太对劲。

BibTeX8是 BibTeX 的一个版本,可以处理 8 位编码文件(因此不支持 UTF-8,但类似的东西还可以)。BibTeX8 可以借助其文件latin1根据本地规则对非 ASCII 进行排序。.csf

这又感觉不太对劲,因为你实际上不能使用完整的 UTF-8。此外,你必须指定.csf要排序的编码,所以这可能有点尴尬。

比比特可能还有另一个系统可以帮助您,但文档很少,它似乎不再开发并且似乎没有活跃的用户群(至少我在谷歌上找不到很多,但这也可能意味着它运行得如此美妙以至于没有人抱怨)。

比贝尔最终提供完整的 Unicode/UTF-8 支持,能够按.bib原样处理您的文件而无需修改。但 Biber 不能与一起使用natbib。Biber 是该包的后端biblatex,是 TeX 中参考书目和引文处理的重新实现。请参阅bibtex 与 biber 以及 biblatex 与 natbib 的比较

如果你想使用 Biber,你必须放弃natbib并切换到biblatex要切换到 biblatex 该怎么做?)。因此,切换到biblatex只是一个选项 (1) 如果您没有被迫使用特定的.bst样式/模板,并且 (2) 如果您不向期刊或出版商提交您的作品(大多数出版商的工作流程与 不兼容biblatex,请参阅Biblatex:向期刊投稿)。

相关内容