
Недавно я обновил свои пакеты 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}
Также неправильно указано ~
между инициалами. Аргумент to \addbibresource
должен содержать .bib
расширение.
решение4
Просто обновление того, что мне помогло (потому что ни один из предыдущих ответов не помог): естьнеобходимыйполя, когда вы определяете свой bibliography.bib
файл (или другой файл), в частности, я пропустил volume=
один из символов @article
, из-за чего biber сгенерировал некоторые неподходящие структуры.
TLDR: следите за определением всех обязательных полей в библиографии, даже если они Вам не нужны (Вы всегда можете написать volume=""
).