Biber falha ao suportar {} em nomes de autores

Biber falha ao suportar {} em nomes de autores

Eu tenho um bug ao usar Biber e LaTeX:

Aqui está meu MNWE:

teste.bib:

@misc{citation1, title = {Any title}, author = {{{Foo} bar}}, }, 

teste.tex:

\documentclass{book}
\usepackage[backend=biber]{biblatex}
\addbibresource{test.bib}
\begin{document}
Minimal\cite{citation1}.
\end{document}

Onde alterar a linha do autor no arquivo bib author = {{Foo} bar}corrige o problema.

Erros:

(./test.bbl
Runaway argument?
{{{hash=caae7d4677b9798ddeb82790f6e3b20d}{{{Foo}\bibnamedelimb bar}}{\ETC.
! Paragraph ended before \name was complete.

Ao usar o BibTeX, não há problema (alterar backend=bibtex).

Tentei com o biber 1.2 e o último biblatex e o biber 0.99 e o biblatex incluído no texlive2011, mesmo problema.

Responder1

Este formato de saída é um pouco confuso, pois não está claro se o objetivo é proteger "Foo" ou o nome inteiro. Além de pedir à equipe do Zotero para não gerar um bibtex tão bagunçado, adicione isto ao seu biber.conf para remover automaticamente os colchetes dentro de um nome já completamente protegido:

<?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>

Esta correção específica precisa das versões dev biber 1.3/biblatex 2.3 do SF, pois houve um bug no processamento de strings de substituição vazias.

informação relacionada