![biblatex/biber:在多个引用部分中使用来自一个文件的字符串宏](https://linux22.com/image/270144/biblatex%2Fbiber%EF%BC%9A%E5%9C%A8%E5%A4%9A%E4%B8%AA%E5%BC%95%E7%94%A8%E9%83%A8%E5%88%86%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%9D%A5%E8%87%AA%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%AE%8F.png)
我有一个@string
存储在文件中的定义abrv.bib
。我想将此缩写文件与包含条目的 bib 文件“entry.bib”结合起来,以便为我的文档的特定部分创建参考列表。我已经能够成功地对一个biblatex
部分执行此操作,但我发现对多个部分执行此操作相当困难。我提供了一个小例子来说明我的问题。
我@string
在 中的定义abrv.bib
正在 和 中使用entry1.bib
。entry2.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“开发”文件夹中获取该选项。
编辑:我刚刚更新了biblatex
2.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}