使用 Texmaker 5.02 和biblatex
,当我尝试编译文档时出现此错误:
Undefined control sequence.
<to be read again> \edef \blx@tempa {745\x {00AD}\bibrangedash 771}
l.423
l.423 是\printbibliography
出现的位置;如果我删除它,则不会出现错误。
据我了解,错误消息表示,其中一个 bib 字符串包含导致出现问题的字符。Unicode 00AD 是软连字符。我找不到它(它不在 bib 文件中唯一出现的 745 和 771 之间)
另外,真正奇怪的是:文档编译得很好;然后我添加了一些引用(对文档和 bib 文件)。然后它开始给出这个错误信息。但如果我删除添加的引用,它现在仍然给出错误信息。
我很困惑。有什么想法吗?
答案1
错误
! Undefined control sequence.
<to be read again> \edef \blx@tempa {745\x
{00AD}\bibrangedash 771}
l.24 \end
{document}
可以使用以下 MWE 进行重现(如果没有,问题就不会出现safeinputenc,
,但.bbl
在这种情况下数据也不会完全正确)
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, safeinputenc, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
journal = {J. Imp. Things},
volume = {47},
pages = {745-771},
date = {1980},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{appleby}
\printbibliography
\end{document}
pages
如果您复制并粘贴字段的内容到https://w3c.github.io/xml-entities/unicode-names.html 该网站回应
U+0037 DIGIT SEVEN 7
U+0034 DIGIT FOUR 4
U+0035 DIGIT FIVE 5
U+00ad SOFT HYPHEN ­ \-
U+002d HYPHEN-MINUS -
U+0037 DIGIT SEVEN 7
U+0037 DIGIT SEVEN 7
U+0031 DIGIT ONE 1
普通连字符前面有一个不可见的 U+00AD 软连字符。
如果您只删除并重新输入示例中的可见连字符,则会错过不可见的软连字符。删除并重新输入整个字段。它应该是
pages = {745-771},
没有 U+00AD。之后删除.aux
、.bbl
和.bcf
文件并重新编译。