
У меня возникла ошибка при использовании Biber и LaTeX:
Вот мой MNWE:
тест.bib:
@misc{citation1, title = {Any title}, author = {{{Foo} bar}}, },
тест.текс:
\documentclass{book}
\usepackage[backend=biber]{biblatex}
\addbibresource{test.bib}
\begin{document}
Minimal\cite{citation1}.
\end{document}
Где изменение строки автора в bib-файле author = {{Foo} bar}
исправляет проблему.
Ошибки:
(./test.bbl
Runaway argument?
{{{hash=caae7d4677b9798ddeb82790f6e3b20d}{{{Foo}\bibnamedelimb bar}}{\ETC.
! Paragraph ended before \name was complete.
При использовании BibTeX проблем не возникает (изменение backend=bibtex
).
Пробовал с biber 1.2 и последним biblatex, а также biber 0.99 и biblatex, включенным в texlive2011, та же проблема.
решение1
Это немного беспорядочный формат вывода, поскольку неясно, является ли целью защитить "Foo" или все имя. Если не просить команду Zotero не выводить такой беспорядочный bibtex, добавьте это в свой biber.conf, чтобы автоматически удалить скобки внутри уже полностью защищенного имени:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<sourcemap>
<maps datatype="bibtex" map_overwrite="1">
<map>
<map_step map_field_source="AUTHOR"
map_match="\A{.+}\z" final="1"/>
<map_step map_field_source="AUTHOR"
map_match="(?:(?!\A){|}(?!\z))"
map_replace=""/>
</map>
</maps>
</sourcemap>
</config>
Для этого конкретного исправления требуются версии biber 1.3/biblatex 2.3 dev из SF, поскольку при обработке пустых строк замены возникла ошибка.