使用选项 keepdirs 时,bundledoc 不会收集 *.bib 文件

使用选项 keepdirs 时,bundledoc 不会收集 *.bib 文件

考虑一下这个MWE:

\RequirePackage{snapshot}
\documentclass{scrbook}
\usepackage{filecontents,biblatex}
\begin{filecontents}{\jobname.bib}
  @misc{anything,
  author={A. Anyone}}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
 \chapter{My document}
This is my text
\end{document}

›收集‹bib我可以使用的文件:

bundledoc --include="*.bib" bundledocbib.dep

但当我使用它--keepdirs

bundledoc --keepdirs  --include="*.bib" bundledocbib.dep

bib省略了 -files 。

答案1

1)解决 bundledoc 中错误的解决方法

我可以使用 Debian 上的 TeXlive 2016 重现此行为。显然,bundledoc 脚本中有一个错误,它没有将相对路径扩展为绝对路径,而这是该keepdirs选项所必需的。

当我提供绝对路径时,bib 文件包含或不包含该keepdirs选项。

bundledoc --include=`pwd`/*.bib ...

我相信这是一个合理的解决方法。但 Ulrike 是对的,软件包开发人员应该知道这一点。

2) 解决方法是将 *.bib 文件添加到 *.dep

另外,我发现添加一行

*{file} {test.bib} {0000/00/00 v0.0}

添加到 *.dep 文件会导致正确的行为,即,*.bib 文件被添加到存档中,无论是否添加--keepdirs。当然,手动执行此操作不方便,因此可以考虑包括

\makeatletter
\@addtofilelist{test.bib}
\makeatletter

在文档的序言中。然后,--include=*.bib不再需要额外的选项。

相关内容