众所周知,bibtex 需要一些适当的设置才能妥善处理 UTF-8 字符。然而,即使按照推荐的做法,我还是遇到了名称中带重音字符的奇怪错误。请考虑以下示例。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\bibliographystyle{abbrv}
\begin{document}
\begin{filecontents}{accents.bib}
@inproceedings{accent,
author = {Öh, Angel and Rumstein, Ángel},
booktitle = {Proceedings of the 2015 something},
pages = {41--63},
title = {Title},
year = {2015}
}
\end{filecontents}
\section{Introduction}
Blah \cite{accent}.
\bibliography{accents}
\end{document}
运行 (latex then) bibtex 会生成一个accent.bbl
不符合 UTF-8 格式的文件:它有一个无效字符代替了Á. Rumstein
应该出现的 Á。请注意,Ö 是有效的。进一步的调查显示,当且仅当作者名字的第一个字母上出现重音时,才会发生此错误。更改abbrv
为plain
书目样式也可以解决问题。(该问题与 bib 文件的内联无关,我这样做只是为了生成一个独立的示例。)
有没有人报告过这个错误?我能解决它吗?还是我做错了什么?我找不到任何关于这个的提及,但我的搜索没有多大帮助,因为我偶然发现许多人的问题,他们没有inputenc
正确使用(因此任何重音符号都不起作用)。
我想坚持使用 LaTeX 和 bibtex,而不是切换到 XeLaTeX 或 biber。
答案1
您可以使用bibtexu
而不是bibtex
。
\begin{filecontents}{\jobname.bib}
@inproceedings{accent,
author = {Öh, Angel and Rumstein, Ángel},
booktitle = {Proceedings of the 2015 something},
pages = {41--63},
title = {Title},
year = {2015}
}
\end{filecontents}
\documentclass{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% not needed
\begin{document}
\section{Introduction}
Blah \cite{accent}.
\bibliographystyle{abbrv}
\bibliography{\jobname}
\end{document}
跑步后pdflatex+bibtexu+pdflatex
我得到