我正在使用 XeLaTeX、biblatex 和 biber 编辑每期包含 10 到 15 篇文章的期刊。
在问题的项目文件夹中,有一个journal-issue.tex
包含序言的主文件夹。然后,每篇文章都有一个子文件夹,其中包含文章本身、author-title.txt
文章的参考书目文件以及bib-author-title.bib
与其相关的所有其他内容(图像等)。
所有不同的文章都使用 加载\input{author-title.txt}
。为了使结构尽可能清晰和简单,我想在文本文件中添加每篇文章的 bib 资源,但出现错误
LaTeX 错误:只能在序言中使用。
有没有办法让我从文章文件中添加 bib 资源?我试图避免在文档的序言中单独加载所有这些资源。
这样做的原因是我必须编辑所有文章以适应 LaTeX,而不想一直更改主文件。同时,我更愿意按文章保存参考书目文件,而不是为所有文章创建一个长文件。
答案1
您不能在文档主体中使用该命令。但您可以收集所需的数据并将其写入文档末尾的某个文件中:
\documentclass{article}
\usepackage{biblatex}
\ExplSyntaxOn
\tl_new:N \g_philipp_bibresources_tl
\NewDocumentCommand\addlocalbibresource{m}
{
\tl_gput_right:Nn \g_philipp_bibresources_tl
{\exp_not:n{\addbibresource{#1}}\iow_newline:}
}
\AtEndDocument
{
\iow_open:Nn\g_tmpa_iow{tmp_philipp_bibresources.tex}
\iow_now:Nx \g_tmpa_iow {\g_philipp_bibresources_tl}
\iow_close:N\g_tmpa_iow
}
\ExplSyntaxOff
\InputIfFileExists{tmp_philipp_bibresources.tex}{}{}
\begin{document}
\addlocalbibresource{biblatex-examples.bib}
\addlocalbibresource{test.bib}
\cite{doody}
\printbibliography
\end{document}