我有一个无法处理的 biblatex 条目。它看起来如下:
@article{testentry,
author = {Stevens, Jim (May) and Win, Zhang, K. Lo},
title = {The e-approach to Understanding things},
journal = {Journal of Research},
volume = {12},
number = {122},
pages = {12-13},
year = {1994}
}
我在用:
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
和
\usepackage[style=authoryear,
backend=biber,
giveninits=true,
uniquelist = false]{biblatex}
生成的输出弄乱了作者字段中的“(May)”括号,以及“e-approach”之前的空格。我收到的错误:Unicode 字符 U+2002 (inputenc) 未设置为用于 Latex。
我该如何修复此问题?
答案1
作为乌尔丽克·菲舍尔评论中说 U+2002 是 en 空格,所以你的一个空格不是普通空格 (U+0020),而是 en 空格 (U+2002)。从错误的输出(“The”和“e-appraoach”之间缺少一个空格,导致标题显示为“Thee-approach”),你已经可以猜出问题可能出在哪里,你可以通过以下方式验证粘贴您的.bib
条目到https://w3c.github.io/xml-entities/unicode-names.html。该工具的输出显示
U+0054 LATIN CAPITAL LETTER T T
U+0068 LATIN SMALL LETTER H h
U+0065 LATIN SMALL LETTER E e
U+2002 EN SPACE   \hspace{0.6em}
U+0065 LATIN SMALL LETTER E e
U+002d HYPHEN-MINUS -
U+0061 LATIN SMALL LETTER A a
U+0070 LATIN SMALL LETTER P p
U+0070 LATIN SMALL LETTER P p
U+0072 LATIN SMALL LETTER R r
U+006f LATIN SMALL LETTER O o
U+0061 LATIN SMALL LETTER A a
U+0063 LATIN SMALL LETTER C c
U+0068 LATIN SMALL LETTER H h
您可以清楚地看到有问题的 U+2002 位于 之后The
。
\DeclareUnicodeCharacter
针对此类问题的另一种调试技术是在序言中添加一个易于搜索的替换文本
\DeclareUnicodeCharacter{2002}{XXX Hello, here I am ???}
然后您只需在输出文档中搜索“XXX”即可找到有问题的位置。
解决方案很简单,删除 en 空格并将其替换为普通空格,以便标题显示
title = {The e-approach to Understanding things},
该author
字段包含两个有趣的名称。
Win, Zhang, K. Lo
不是技术上语法错误,但将被解析为由以下部分组成的单个名称
- 姓氏的一部分
Win
, - 名字部分
K. Lo
和 - 后缀部分(“初级部分”)
Zhang
。
这可能是或可能不是所希望的,也可能是所涉及的实际名称的准确表示。通常后缀仅用于“Jr.”/“Sr.”/“III。”。
Stevens, Jim (May)
仅当您要求使用 的名字首字母时,的问题才会变得明显giveninits=true,
。
该名称解析为
- 姓氏
Stevens
和 - 给定的名称
Jim (May)
生成名字首字母时,Biber 只取每个“单词”的第一个字符,因此最终结果J. (.
并不理想。在这种情况下,最好使用given-i
Biber 的扩展名格式手动提供所需的名字首字母。
author = {family=Stevens, given={Jim (May)}, given-i=J},
总共
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, giveninits=true, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{testentry,
author = {family=Stevens, given={Jim (May)}, given-i=J
and Win, Zhang, K. Lo},
title = {The e-approach to Understanding things},
journal = {Journal of Research},
volume = {12},
number = {122},
pages = {12-13},
year = {1994}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{testentry}
\printbibliography
\end{document}