我最近在家里升级了我的 texlive 软件包,由于引用,我无法再编译我的文档。我已经在 Google 上搜索了好几天,但我找不到有关此问题的任何最新信息(它似乎确实会不时弹出)。我的大部分条目都是从 ADS 中提取的(特别是那些给我带来麻烦的条目)。
这是一个包含此类麻烦条目之一的最小条目。
\documentclass[11pt]{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{2013APh....50...26A,
author = {{Abeysekara}, A.~U. and {Alfaro}, R. and {Alvarez}, C. and {{\'A}lvarez}, J.~D. and
{Tollefson}, K. and {Torres}, I. and {Ukwatta}, T.~N. and {Villase{\~n}or}, L. and
{Weisgarber}, T. and {Westerhoff}, S. and {Wisher}, I.~G. and
{Wood}, J. and {Yodh}, G.~B. and {Younk}, P.~W. and {Zaborov}, D. and
{Zepeda}, A. and {Zhou}, H.},
title = "{Sensitivity of the high altitude water Cherenkov detector to sources of multi-TeV gamma rays}",
journal = {Astroparticle Physics},
archivePrefix = "arXiv",
eprint = {1306.5800},
primaryClass = "astro-ph.HE",
keywords = {TeV gamma-ray astronomy, Water cherenkov, Cosmic ray},
year = 2013,
month = dec,
volume = 50,
pages = {26-32},
doi = {10.1016/j.astropartphys.2013.08.002},
adsurl = {http://adsabs.harvard.edu/abs/2013APh....50...26A},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
\end{filecontents}
\usepackage[language=english, style=numeric-comp, sorting=none, backend=biber, natbib=true, doi=false, bibencoding=utf8, isbn=false]{biblatex}
\addbibresource{\jobname}
\begin{document}
This is a simple document\cite{2013APh....50...26A}
\end{document}
我得到的错误是
Runaway argument?
{{{hash=8b556f9238232cff536971111edddb4b}{family={{Abeysekara}}, fami\ETC.
! Paragraph ended before \name was complete.
<to be read again>
\par
l.140
?
我猜问题来自于花括号+重音符号和其他“奇怪的字符”的组合。
我正在使用 biber 2.10 和 texlive 2017.45XXX(当前 archlinux 版本)。
在工作中,它工作正常,我使用 texlive 2017.44XXX 和 biber 2.7
除了尝试降级我的 texlive(这是一个糟糕的解决方案)之外我还能做什么?
答案1
有同样的问题,现在明白了:你应该括号嵌套深度不得超过 3 层。
正如@gusbrs 注意到的,它与名称有关——但仅仅是因为注意括号中的重音字母需要另一级嵌套。
所以,
author = {{ÖKO} Friendly Company},
会起作用,但
author = {{{\"O}KO} Friendly Company},
现在不会了。
即使括号平衡,也会出现错误。所以author = {{{a}}},
可以工作,但author = {{{a} {b}}},
不会。
最后的符号将会引发! Paragraph ended before \name was complete.
错误。
尝试删除尽可能多的括号,使用前面提到的 utf8 编码,这对于您的条目来说应该足够了。
注意:biber --tool -V *.bib
将不是警告你这一点。
答案2
Egreg 的建议非常好,但很容易理解您的情况。我试图缩小导致问题的原因,结果发现是其中一个名称{{\'A}lvarez}
。不知何故,这导致 .bbl 文件的括号不平衡,从而给您的编译带来问题。一旦使用,bibencoding=utf8
您可以将其更改为{Álvarez}
并摆脱错误。我手头没有您的其他问题案例,但我猜测开头的双括号导致了问题(即使我不明白为什么它们会导致问题)。如果是这种情况,您需要修复的实例数量已经少得多。
\documentclass[11pt]{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{2013APh....50...26A,
author = {{Abeysekara}, A.~U. and {Alfaro}, R. and {Alvarez}, C. and {Álvarez}, J.~D. and {Tollefson}, K. and {Torres}, I. and {Ukwatta}, T.~N. and {Villase{\~n}or}, L. and {Weisgarber}, T. and {Westerhoff}, S. and {Wisher}, I.~G. and {Wood}, J. and {Yodh}, G.~B. and {Younk}, P.~W. and {Zaborov}, D. and {Zepeda}, A. and {Zhou}, H.},
title = "{Sensitivity of the high altitude water Cherenkov detector to sources of multi-TeV gamma rays}",
journal = {Astroparticle Physics},
archivePrefix = "arXiv",
eprint = {1306.5800},
primaryClass = "astro-ph.HE",
keywords = {TeV gamma-ray astronomy, Water cherenkov, Cosmic ray},
year = 2013,
month = dec,
volume = 50,
pages = {26-32},
doi = {10.1016/j.astropartphys.2013.08.002},
adsurl = {http://adsabs.harvard.edu/abs/2013APh....50...26A},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
\end{filecontents}
\usepackage[language=english, style=numeric-comp, sorting=none, backend=biber, natbib=true, bibencoding=utf8, doi=false, isbn=false]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
This is a simple document\cite{2013APh....50...26A}
\end{document}
答案3
如果我删除姓氏周围的所有(错误的)括号,就不会出现问题。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{2013APh....50...26A,
author = {Abeysekara, A. U. and Alfaro, R. and Alvarez, C. and
{\'A}lvarez, J. D. and Tollefson, K. and Torres, I. and
Ukwatta, T. N. and Villase{\ n}or, L. and Weisgarber, T. and
Westerhoff, S. and Wisher, I. G. and
Wood, J. and Yodh, G. B. and Younk, P. W. and Zaborov, D. and
Zepeda, A. and Zhou, H.},
title = {Sensitivity of the high altitude water {Cherenkov} detector to
sources of multi-{TeV} gamma rays},
journal = {Astroparticle Physics},
archivePrefix = {arXiv},
eprint = {1306.5800},
primaryClass = {astro-ph.HE},
keywords = {TeV gamma-ray astronomy, Water cherenkov, Cosmic ray},
year = 2013,
month = dec,
volume = 50,
pages = {26-32},
doi = {10.1016/j.astropartphys.2013.08.002},
adsurl = {http://adsabs.harvard.edu/abs/2013APh....50...26A},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
\end{filecontents}
\usepackage[
language=english,
style=numeric-comp,
sorting=none,
% backend=biber,
natbib=true,
doi=false,
% bibencoding=utf8,
isbn=false
]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
This is a simple document~\cite{2013APh....50...26A}
\printbibliography
\end{document}
首字母之间的部分也是错误的~
。参数\addbibresource
应该包含.bib
扩展。
答案4
只是对我有帮助的更新(因为之前的答案都没有):有必需的字段,当您定义您的bibliography.bib
文件(或另一个文件)时,特别是我volume=
在其中一个中缺少了@article
,这导致 biber 生成一些不适当的结构。
TLDR:留意定义参考书目中所有必填字段,即使您不需要它们(您可以随时写volume=""
)。