我是我实验室的一份大型活动报告(约 800 页,几千个书目条目)的集成者。对于这个版本,我们有特定的书目需求,我正在寻找实现它的最佳方法(包和架构)。总而言之,我的实验室包括 5 个部门,每个部门包括多个团队。预期结果是:
- 实验室介绍及相关参考书目
- 第一份部门报告,包括相关团队的引用,但末尾没有参考书目
- 部门 1 的团队 1,末尾无参考书目
- 部门 1 的团队 2,末尾无参考书目
- ...
- 第一阶段的最后一组,末尾没有参考书目
- 书目,按团队进行聚类(因此,该部门的所有团队书目,书目条目共享相同的计数器 - 如果团队 1 的最后一个条目是 n,则团队 2 的第一个条目应该是 n+1),知道如果部门引用给定的参考文献,并且团队引用相同的参考文献,则参考文献编号应该相同。
- 第二份部门报告,包括相关团队的引用,但末尾没有参考书目
- 第 2 部分第 1 组,末尾无参考书目
- ...
- ...
- 上一份部门报告,……
- 实验结论及相关参考书目
目前,我负责 5 个部门和大约 35 个团队... 对于上一版来说,它更简单:全局架构相同,但书目部分位于每个部门/团队的末尾。我使用了 chapterbib,一切都运行良好(使用一些自制的书目工具来合并/清除 bib 条目)。
对于这个版本,事情更加复杂。我已经对 chapterbib 进行了一些测试,甚至使用了“gather”选项,但我没有得到令人满意的结果(更具体地说,它现在根本不起作用)。所以我想知道我的方法是否可行,或者是否有更简单的解决方案,可能是通过更改包... 您的意见?欢迎任何帮助!
谢谢,菲利普
编辑。重点:每个部门/团队目前都与单个文件相关。我希望尽可能保留这种组织,因为它有利于为相应的负责人提供更好的版本。
答案1
这是与某些源映射(在您的例子中是附加操作)跨引用部分的幂等性有关的错误biber
。它已在 biber 2.5 中修复,您可以在 Sourceforge 上的开发文件夹中找到它。您还需要biblatex
在 Sourceforge 上使用 3.4 的开发版本。
答案2
我离完美的解决方案还差得很远,但我仍然遇到麻烦。目前,我的代码是:
\documentclass[twoside,11pt]{book}
\usepackage{fontspec,xltxtra}
\usepackage{lipsum}
\usepackage[backend=biber,defernumbers=true]{biblatex}
\usepackage{hyperref}
\usepackage{nameref}
\usepackage{csquotes}
\pagestyle{plain}
\defbibheading{subbibliography}{%
\section*{%
Bibliography for #1}}
\addbibresource[label=equ1]{equ1.bib}
\addbibresource[label=equ2]{equ2.bib}
\addbibresource[label=eqnn1]{equnoname1.bib}
\addbibresource[label=equ3]{equ3.bib}
\addbibresource[label=equ4]{equ4.bib}
\addbibresource[label=eqnn2]{equnoname2.bib}
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\perdatasource{equ1.bib}
\step[fieldset=KEYWORDS, fieldvalue=equ1, append]
}
\map{
\perdatasource{equ2.bib}
\step[fieldset=KEYWORDS, fieldvalue=equ2, append]
}
\map{
\perdatasource{equnoname1.bib}
\step[fieldset=KEYWORDS, fieldvalue=eqnn1, append]
}
\map{
\perdatasource{equ3.bib}
\step[fieldset=KEYWORDS, fieldvalue=equ3, append]
}
\map{
\perdatasource{equ4.bib}
\step[fieldset=KEYWORDS, fieldvalue=equ4, append]
}
\map{
\perdatasource{equnoname2.bib}
\step[fieldset=KEYWORDS, fieldvalue=eqnn2, append]
}
}
}
\begin{document}
\part{My report}
\begin{refsection}
\include{dep1}
\include{equ1}
\include{equ2}
\nocite{*}
\printbibheading
\printbibliography[heading=subbibliography,title=Team 1,keyword=equ1]
\printbibliography[heading=subbibliography,title=Team 2,keyword=equ2]
\printbibliography[heading=subbibliography,title=No team dep 1,keyword=eqnn1]
\end{refsection}
\begin{refsection}
\include{dep2}
\include{equ3}
\include{equ4}
\nocite{*}
\printbibheading
\printbibliography[resetnumbers=true,section=1,heading=subbibliography,title=Team 3,keyword=equ3]
\printbibliography[section=1,heading=subbibliography,title=Team 4,keyword=equ4]
\printbibliography[section=1,heading=subbibliography,title=No team dep 2,keyword=eqnn2]
\end{refsection}
\end{document}
对于 dep1.tex:
\chapter{Dep One}
Yop~\cite{equn2,eqde1}
et aussi~\cite{eqnn1}
对于 equ1.tex:
\section{Equ1}
\lipsum[1]
Yop~\cite{equn1}
\nocite{*}
对于 equ2.tex:
\section{Equ2}
\lipsum[1]
Yop~\cite{eqde1}
\nocite{*}
对于 equ1.bib:
@Book{equn1,
author = {Xxxx Yyyy},
title = {First biblio test},
publisher = {Yop},
year = {2016}
}
@Book{equn2,
author = {Xxxx Yyyy},
title = {Second biblio test},
publisher = {Yopla},
year = {2016}
}
对于 equ2.bib:
@Book{eqde1,
author = {Aaaa Bbbb},
title = {First biblio test},
publisher = {Yop},
year = {2016}
}
@Book{eqde2,
author = {Aaaa Bbbb},
title = {Second biblio test},
publisher = {Yopla},
year = {2016}
}
对于 eqnoname1.bib:
@Book{eqnn1,
author = {Uuuu Oooo},
title = {First biblio test},
publisher = {Yop},
year = {2016}
}
@Book{eqnn2,
author = {Uuuu Oooo},
title = {Second biblio test},
publisher = {Yop},
year = {2016}
}
(几乎)dep2.tex、equ3.tex、equ4.tex、equ3.bib、equ4.bib 和 equnoname2.bib 也一样。这是我的 makefile:
all: main
main:
xelatex main.tex
biber main
xelatex main.tex
xelatex main.tex
我希望这对于 MWE 来说已经足够了。经过编译,我几乎得到了我想要的东西,但仍然存在一些问题:
- 我不明白为什么我必须在最后的 \printbibliography 命令中放入“section=1”,因为文档说每当将此命令插入到 refsection 环境中时,它都会自动获取正确的章节编号(所以在我的情况下不是这样)
- 我使用 DeclareSourceMap 命令自动构建给定 bib 文件的完整参考书目(在 TeX StackExchange 上找到的解决方案,由 PLK 提供,不确定现在是否存在更简单的方法)
- 最后的但并非最不重要的,全部dep2 的引用与“[0]”相关联,即使最终的 dep2 书目构建得很好(即带有来自1至[6])。
如果这是一个好的答案,那么我肯定是错的。有什么建议吗?
谢谢,菲利普