即使我使用 \nocite{*},多个参考书目仍然有效

即使我使用 \nocite{*},多个参考书目仍然有效

我有一个巨大的 latex 项目,它分为多个部分。我希望每个部分都有一个 .bib,然后在相应部分的末尾显示此文件中的参考资料。

我在这里搜索解决方案,但没有找到任何可行的方法。通常人们会有一个单独的 .bib 文件,然后在每个部分之后创建一个参考书目,其中包含相应部分中引用的所有内容。这对我来说不起作用,因为我很少在文本中引用内容。

我也不想要一个全局书目,所以标签可以在各部分之间重新启动。

答案1

您可以使用refsections 为文档的每个部分创建单独的参考书目。使用可选参数 ,您可以为该\begin{refsection}...\end{refsection}修复一个特定文件。然后只会使用该文件中的条目。.bibrefsection\nocite{*}.bib

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\begin{filecontents}[overwrite]{\jobname-one.bib}
@book{elk,
  author    = {Anne Elk},
  title     = {A Theory on Brontosauruses},
  year      = {1972},
  publisher = {Monthy \& Co.},
  location  = {London},
}
\end{filecontents}
\addbibresource{\jobname-one.bib}
\begin{filecontents}[overwrite]{\jobname-two.bib}
@book{belk,
  author    = {Anne Belk},
  title     = {A Theory on Diplodocuses},
  year      = {1980},
  publisher = {Monthy \& Co.},
  location  = {London},
}
\end{filecontents}
\addbibresource{\jobname-two.bib}

\begin{document}
\begin{refsection}[\jobname-one]
\part{One}
Lorem
\nocite{*}
\printbibliography
\end{refsection}

\begin{refsection}[\jobname-two]
\part{Two}
Ipsum
\nocite{*}
\printbibliography
\end{refsection}
\end{document}

两部分,每部分都有一个参考书目条目。

如果你不想使用refsections,因为完全独立的书目并不可取,你可以keyword根据文件名寻找带有 s 的解决方案,例如biblatex:按不同的 .bib 文件分类的多个参考书目使用 biblatex 分离多个 bib 文件引用

相关内容