是否预计 Biber 将转义序列转换为不可处理的 Unicode 表示?

是否预计 Biber 将转义序列转换为不可处理的 Unicode 表示?

我正在尝试使用 BibLaTeX 和 Biber 编译一份引用拉脱维亚作者撰写的文件其姓氏包含A长音符变音符号A)。

如果没有--output-safecharsBiber 标志,则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 输入转换为命令(例如欧元),您应该检查是否总是能得到您想要的命令。

相关内容