如本 MWE 所示
\RequirePackage{snapshot}
\documentclass{scrbook}
\usepackage{filecontents,biblatex}
\begin{filecontents}{bib/\jobname.bib}
@misc{anything,
author={A. Anyone}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\chapter{My document}
This is my text
\end{document}
我喜欢将参考书目放在子文件夹中bib
。但是 filecontents 无法创建该文件夹,尽管我已--shell-escape
启用:
! I can't write on file `bib/bundledocbib.bib'.
<to be read again>
\relax
l.4 \begin{filecontents}{bib/\jobname.bib}
答案1
如果您确实启用了 -shell-escape,您可以在第一次使用之前创建该文件夹(这里使用 Windows 命令):
\documentclass{scrbook}
\usepackage{filecontents,biblatex}
\usepackage{shellesc}
\ShellEscape{mkdir bib}
\begin{filecontents}{bib/\jobname.bib}
@misc{anything,
author={A. Anyone}}
\end{filecontents}
\addbibresource{bib/\jobname.bib}
\begin{document}
\chapter{My document}
\cite{anything}
This is my text
\end{document}
在我的测试文件夹中,这没问题,但对于真正的文档,我不会这样做 - 我也不会对它们使用文件内容。在我看来,覆盖一些重要文件太容易了。