ビーバーは著者名における{}のサポートに失敗している

ビーバーは著者名における{}のサポートに失敗している

Biber と LaTeX を使用するとバグが発生します。

これが私のMNWEです:

テスト.bib:

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

テスト.tex:

\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、texlive2011 に含まれる biblatex で試しましたが、同じ問題が発生しました。

答え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>

この特定の修正には、空の置換文字列の処理にバグがあったため、SF の biber 1.3/biblatex 2.3 開発バージョンが必要です。

関連情報