biblatex/biber:在多个引用部分中使用来自一个文件的字符串宏

biblatex/biber:在多个引用部分中使用来自一个文件的字符串宏

我有一个@string存储在文件中的定义abrv.bib。我想将此缩写文件与包含条目的 bib 文件“entry.bib”结合起来,以便为我的文档的特定部分创建参考列表。我已经能够成功地对一个biblatex部分执行此操作,但我发现对多个部分执行此操作相当困难。我提供了一个小例子来说明我的问题。

@string在 中的定义abrv.bib正在 和 中使用entry1.bibentry2.bib的输出biber表明在处理第 1 节时找到了 ,但在第 2 节中找不到。 生成的文档将包含第 1 节的正确引用,但包含第 2 节的引用,其中宏应该扩展的abrv.bib地方有空白。@string

我怎样才能同时abrv.bib使用这两个参考部分?我做错了什么吗?这是一个错误吗?

我正在使用 TeX Live 2012、biber v1.6 和 biblatex 2.6 的 pdflatex。

文件.tex:

\documentclass{article}

\usepackage[backend=biber]{biblatex}

\addsectionbib[datatype=bibtex]{./abrv.bib}
\addsectionbib[datatype=bibtex]{./entry1.bib}
\addsectionbib[datatype=bibtex]{./entry2.bib}

\begin{document}

\section{Section 1}

\begin{refsection}[abrv,entry1]
  \nocite{*}
\end{refsection}
\printbibliography[section=1,title=\null]

\section{Section 2}

\begin{refsection}[abrv,entry2]
  \nocite{*}
\end{refsection}
\printbibliography[section=2,title=\null]

\end{document}

参考文献

@string{AUTHOR = "Author"}

条目1.bib

@book{ key1,
  author = AUTHOR,
  title = "Title1",
  publisher = "Publisher",
  year = 2013
}

条目2.bib

@book{ key2,
  author = AUTHOR,
  title = "Title2",
  publisher = "Publisher",
  year = 2013
}

Biber 输出:

INFO - This is Biber 1.6
INFO - Logfile is 'file.blg'
INFO - Reading 'file.bcf'
INFO - Found 0 citekeys in bib section 0
INFO - Using all citekeys in bib section 1
INFO - Found 0 citekeys in bib section 0
INFO - Using all citekeys in bib section 2
INFO - Found 0 citekeys in bib section 0
INFO - Processing section 1
INFO - Looking for bibtex format file 'abrv.bib' for section 1
INFO - Found BibTeX data source 'abrv.bib'
INFO - Looking for bibtex format file 'entry1.bib' for section 1
INFO - Found BibTeX data source 'entry1.bib'
INFO - Overriding locale 'en_US.UTF-8' default tailoring 'variable = shifted' with 'variable = non-ignorable'
INFO - Sorting 'entry' list 'nty' keys
INFO - No sort tailoring available for locale 'en_US.UTF-8'
INFO - Processing section 2
INFO - Looking for bibtex format file 'abrv.bib' for section 2
INFO - Looking for bibtex format file 'entry2.bib' for section 2
INFO - Found BibTeX data source 'entry2.bib'
WARN - BibTeX subsystem: /var/folders/q5/gq1zmtqd46b4fvqx73m25hw00000gn/T/SZ8HSBpKix/entry2.bib_8957.utf8, line 2, warning: undefined macro "AUTHOR"
WARN - The field 'author' in entry 'key2' cannot be null, deleting it
INFO - Overriding locale 'en_US.UTF-8' default tailoring 'variable = shifted' with 'variable = non-ignorable'
INFO - Sorting 'entry' list 'nty' keys
INFO - No sort tailoring available for locale 'en_US.UTF-8'
INFO - Writing 'file.bbl' with encoding 'ascii'
INFO - Output to file.bbl
INFO - WARNINGS: 2

答案1

这里的问题是默认情况下biber会在引用部分之间清除 bibtex 宏。我已更改此默认设置,并clrmacros为版本 1.7 添加了一个新选项,您可以从 SF“开发”文件夹中获取该选项。

编辑:我刚刚更新了biblatex2.7 开发版本并进行了修复,这使得全局 bib 资源可以更好地与此配合使用,以便您可以这样做(即它修复了您的案例 II)。

\documentclass{article}
\usepackage{biblatex}
\addglobalbib{test3.bib}
\begin{document}

\section{Section 1}

\begin{refsection}[test3-1.bib]
  \nocite{*}
\end{refsection}
\printbibliography[section=1,title=\null]

\section{Section 2}

\begin{refsection}[test3-2.bib]
  \nocite{*}
\end{refsection}
\printbibliography[section=2,title=\null]

\end{document}

相关内容