Biblatex 书目错误:未定义的控制序列。\edef \blx@tempa {745\x {00AD}\bibrrangedash 771} l.423 \

Biblatex 书目错误:未定义的控制序列。\edef \blx@tempa {745\x {00AD}\bibrrangedash 771} l.423 \

使用 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     &shy; \-
  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文件并重新编译。

相关内容