大型报告的特定书目需求

大型报告的特定书目需求

我是我实验室的一份大型活动报告(约 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])。

如果这是一个好的答案,那么我肯定是错的。有什么建议吗?

完整源代码:源代码
PDF 结果:PDF

谢谢,菲利普

相关内容