我正在使用natbib
和bibtex
,在 中排版一份俄文文档(带有pdflatex
)chicago
。对于这样的条目:
@book{belyj1913,
Address = {Москва},
Author = {Андрей Белый},
Publisher = {Наука},
Title = {Петербург},
Year = {1981}}
运行时我得到:
! Package inputenc Error: Unicode char \u8:�. not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type H <return> for immediate help.
...
l.47 Белый, �.
(1981).
并且名字的首字母没有出现在 pdf 中。
如果我使用 ,问题就会消失plainnat
,它会输入全名。不过,我喜欢 的某些方面chicago
,我想知道这个首字母提取问题是否可以克服。
我使用babel
西里尔字母,以下是序言的摘录:
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
...
\usepackage{natbib}
\bibpunct[:]{(}{)}{;}{a}{}{,}
拉丁文参考资料很好用。其他本地功能(如连字)也很好用。
讨论使用 Biblatex 和 Polyglossia 的西里尔文书目条目(首字母损坏)代表biblatex
和polyglossia
,我都没用过。
答案1
BibTeX 并不真正适合 UTF-8 编码。在很多情况下它可以工作,但在提取首字母时肯定会有问题,因为例如西里尔字母“А”是两个字节(0xD090
),而只选择了第一个字节。
您可以使用西里尔字母的内部表示来解决此问题:
@book{belyj1913,
Address = {Москва},
Author = {{\CYRA}ндрей Белый},
Publisher = {Наука},
Title = {Петербург},
Year = {1981},
}
无论使用首字母还是全名,它都能独立工作。
但是,按作者姓名排序并不能真正保证正确。您应该尝试biblatex
和biber
,它们符合 UTF-8 标准。
答案2
对我来说,BibTeX 通过使用与 UTF-8 兼容的 bibtex 版本,可以与 natbib 和俄语兼容。只需运行bibtexu
而不是bibtex
,它就可以工作。
答案3
对于 BibTeX,@egreg 的回答对我没有帮助,所以我想在这里留下我的解决方案:
将 .bib 文件的编码(假设它被称为 references.bib)更改为
CP-1251
在 .tex 文件中,更改
\bibliography{references}
为\inputencoding{cp1251} \bibliography{references} \inputencoding{utf8}
使用以下方法编译 .bbl 文件
bibtex8 project.aux --csfile "cp1251.csf"
对我来说,这比@egreg 的解决方案更方便,因为您不必将西里尔字母更改为{\cyrA}
类似表示形式。