我正在尝试使用 BibLaTeX 和 Biber 编译一份引用拉脱维亚作者撰写的文件其姓氏包含A和长音符变音符号(A)。
如果没有--output-safechars
Biber 标志,则pdflatex
无法处理.bbl
文件并显示:
包 inputenc 错误:Unicode 字符 \u8:-ü 未设置为用于 LaTeX。
这似乎是指前面提到的特殊字符A,尽管我注意{\=a}
在.bib
文件中使用了适当的 LaTeX 转义序列。
梅威瑟:
文件test.tex
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[
backend=biber,
style=alphabetic
]{biblatex}
\addbibresource{test.bib}
\begin{document}
abc~\cite{SIOC}
\printbibliography
\end{document}
文件test.bib
:
@MISC{SIOC,
author = {Uldis Boj\={a}rs and John Breslin},
title = {{SIOC} Core Ontology Specification},
howpublished = {\url{http://rdfs.org/sioc/spec/}},
year = {2010},
timestamp = {2015.07.06}
}
重现错误的步骤:
pdflatex test.tex
biber test
pdflatex test.tex
解决错误并获取所需 PDF 文件的步骤:
pdflatex test.tex
biber --output-safechars test
pdflatex test.tex
biber --output-safechars test
pdflatex test.tex
pdflatex test.tex
有趣的是,和 --output-safechars
,作者姓名在文件中呈现.bbl
如下:
{{hash=4364fe18faaa147d121961f15b77b40a}{Boj\={a}rs}{B\bibinitperiod}{Uldis}{U\bibinitperiod}{}{}{}{}}%
没有 --output-safechars
,其渲染效果如下:
{{hash=4364fe18faaa147d121961f15b77b40a}{Bojārs}{B\bibinitperiod}{Uldis}{U\bibinitperiod}{}{}{}{}}%
这意味着,Biber 主动将我的转义序列(在 中可以起作用pdflatex
)改回 Unicode 字符(不起作用)。
这是预期的行为吗?
更具体地说:
从副作用的角度来看--output-safechars
,使用它是否安全?如果安全,那么有什么理由让人们打电话给 Biber?没有 --output-safechars
?
或者,似乎可以定义相应的 Unicode 字符或据称使用--bblsafechars
选项,尽管这并没有出现在Biber 手册。
答案1
是的,这是预期的行为。biber 将(尝试)将输入中的命令转换为 unicode,以便能够对条目进行排序。
对于重音命令,在许多情况下它将使用unicode“字形+组合重音”表示。
然后它会在 bbl 中输出这个“字形 + 组合重音”,而 pdflatex 将无法使用它(并且无法更改这一点)。
避免该问题的最佳方法是不要使用像\=
bib 中的重音命令,而只使用正确的 utf8-input ā。--output-safechars
通常也应该正常工作,但它也会将其他非 ascii 输入转换为命令(例如欧元),您应该检查是否总是能得到您想要的命令。