我们可以有带有外文字母的有序 bibtex/natbib 书目吗?

我们可以有带有外文字母的有序 bibtex/natbib 书目吗?

假设你有一个用 bibtex/natbib 编写的参考书目,其中包含作者姓名,例如也使用斯堪的纳维亚字母,例如艾奎斯特伊索厄德高厄斯特隆德安德森

有没有办法让这些词语出现在参考书目中所需的位置?

如果想要编写国际文本,其中参考书目符合字母表或字母表所指定的规则,则此功能可能很有用。

答案1

BibTeX 只能对 ASCII 字符进行排序。这就是为什么非 ASCII 字符通常必须使用 LaTeX 宏进行“转义”的原因之一,如如何在参考书目中书写“ä”及其他变音符号和重音字母?(另一个原因是 BibTeX 无法生成非 ASCII 字符的首字母。)

大多数 BibTeX 会purify$在使用排序键进行排序之前对其进行样式化。这purify$会将一些特殊控制序列转换为字母,同时忽略所有其他控制序列,然后删除所有非字母数字字符。

被替换的控制序列如下所示,所有其他序列(如\relax)均被删除。

控制序列 替代品
\i
\j
\oe/\OE 俄亥俄
\ae/\AE 艾伊
\aa A
\o o
\l
\ss 党卫军

这意味着{\AE}lk排序为aelk,但是{\AA}lk{\"A}lk全部Alk排序为alk

由此产生的排序顺序通常适用于英语出版物,但可能不适用于其他语言。


有这样的项目

  • BibTeX8,可以处理 8 位编码(现在 UTF-8 已成为事实上的标准,这可能不是你想要的),以及
  • BibTeXu 可以处理 Unicode,但是该项目似乎缺乏文档记录,并且至少我无法让 BibTeXu 按照瑞典语或丹麦语传统进行排序。

如果您想要 Unicode 支持和基于语言环境的排序,目前在 LaTeX 世界中,最好的选择是使用biblatexBiber。使用biblatexBiber,您可以在输入中直接使用 Unicode,并且排序遵循 Unicode 规则。

在以下 MWE 中,排序顺序遵循所选文档语言的 Unicode 排序规则。可以使用该选项强制使用与主文档语言不同的特定排序顺序sortlocale

\documentclass[swedish]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\begin{filecontents}{\jobname.bib}
@book{aalk,
  author    = {Anne Ålk},
  title     = {A Theory on Brontosauruses},
  year      = {1970},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{alk,
  author    = {Anne Alk},
  title     = {A Theory on Brontosauruses},
  year      = {1971},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{aelk,
  author    = {Anne Ælk},
  title     = {A Theory on Brontosauruses},
  year      = {1972},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{aedlk,
  author    = {Anne Älk},
  title     = {A Theory on Brontosauruses},
  year      = {1973},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{blk,
  author    = {Anne Blk},
  title     = {A Theory on Brontosauruses},
  year      = {1973},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{nlk,
  author    = {Anne Nlk},
  title     = {A Theory on Brontosauruses},
  year      = {1975},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{olk,
  author    = {Anne Olk},
  title     = {A Theory on Brontosauruses},
  year      = {1975},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{oelk,
  author    = {Anne Ølk},
  title     = {A Theory on Brontosauruses},
  year      = {1975},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{oedlk,
  author    = {Anne Ölk},
  title     = {A Theory on Brontosauruses},
  year      = {1975},
  publisher = {Monthy \& Co.},
  location  = {London},
}
@book{plk,
  author    = {Anne Plk},
  title     = {A Theory on Brontosauruses},
  year      = {1975},
  publisher = {Monthy \& Co.},
  location  = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}

\printbibliography
\end{document}

相关内容