将 bbl 文件条目添加到 latex 文档

将 bbl 文件条目添加到 latex 文档

我有一个主文件和一个对应的 bib 文件。现在我想引用已编译bbl文件中找到的项目。如何将两者结合起来?

思路:

  1. 将新内容添加\bibitemmain.bbl文件,重新编译时删除条目
  2. 可以合并多个 bib/bbl 文件吗?
  3. 根据答案建议,手动将 bbl 文件转换为 bib

答案1

文件起什么.bbl作用?

.bbl.bib文件是用于使条目在 LaTeX 文件中可用的中间数据格式。它们的格式和确切用途在biblatex基于 BibTeX 的系统之间有所不同。

对于基于 BibTeX 的系统(例如natbib),该.bbl文件包含一个thebibliography可以直接排版的环境。通常thebibliography是一个美化的enumerate环境,带有一些额外的\label类似命令。该.bbl文件(本质上)\input\bibliography{...}和 排版。文件的格式和内容由您在文档中给出的.bbl控制。BibTeX 的文件可以轻松手动编辑,实际上“手动书目方法”本质上是将 的内容直接写入文档(例如,参见.bst\bibliographystyle.bbl.bblhttps://www.tug.org/TUGboat/tb30-1/tb94mori.pdf)。

因为biblatex文件.bbl不包含可排版的代码,而是包含可用于的摘要格式的原始数据biblatex.bbl文件在文档开头读取,以便在处理文档时提供有关所有条目的所有信息。由于biblatex允许您将文档分成几个refsection部分并支持从不同refcontext部分获取数据,因此文件的结构可能比所有条目及其数据的简单列表稍微复杂一些。但最终,biblatex文件.bbl是基于文本的列表结构,如果需要可以手动编辑。

也可以看看Latex 的 .bib 文件和 .bbl 文件之间的区别如何在不运行 bibtex 的情况下告诉 LaTeX 使用现有的 bbl 文件?。我曾在使用 bibulous 自定义引文让 arXiv 接受 BibTeX BBL(2018 年 5 月)LaTeX 文件可以包含 BibTeX 文件吗?并且您可能会在本站上找到更多帖子来解释这一点或.bbl顺便或详细地提及其工作原理。

.bbl合并多个文件时遇到困难

需要记住的一件重要事情是.bblBibTeX 和 的文件都是经过排序的。这意味着在合并两个文件时(无论通过何种方式),biblatex您必须注意排序顺序。.bbl

此外,.bbl文件可能包含 中不存在的、.bib超出排序范围的数据。其中biblatex包括名称唯一性和消歧义数据。一些更高级的作者年份 BibTeX 样式还会动态创建年份消歧义标签,如“Knuth 1986a, Knuth 1986b”中的“a”和“b”。如果添加了新条目,这些上下文相关功能可能不再按预期运行。文件本身中不存在且由后端计算的数据的另一个示例是或.bib生成的字母数字标签。alpha.bststyle=alphabetic

对于基于 BibTeX 的文件,如果两个文件的输出兼容,输出一致,.bbl那就太好了。如果两个文件都是用相同的 生成的,那么这是理所当然的,如果不是这样,可能需要手动干预。由于的文件只包含数据,因此 不必担心。.bbl.bbl.bstbiblatex.bblbiblatex

将文件一的内容粘贴.bbl到文件二中

合并文件的简单解决方案.bbl是将一个.bbl文件的内容复制到另一个文件中。

由于.bbl文件旨在作为.bib.tex文件之间的辅助和临时桥梁,因此每次运行 BibTeX 或 Biber 时,它们都会被覆盖。这意味着biblatex手动更改这些文件非常繁琐,但对于 BibTeX 来说非常简单,对于 来说也相当简单。

总而言之,如果您只有少量条目需要集成到您的.bbl文件中,并且上下文相关的数据和排序起的作用很小或根本不起作用,那么这种方法是可行的。

.bbl使用 LaTeX加载多个文件

使用 BibTeX加载多个文件没有问题.bbl,但如果你不操作相关的宏,两个文件都会产生带有自己编号的单独参考书目

\begin{document}
\cite{sarfraz,kullback}
\cite{doody,wilde}
\input{bblone.bbl}
\input{bbltwo.bbl}
\end{document}

两个独立的书目

根据所需的输出,可能会将两个.bbl文件(或多或少)组合在一起(这只是一个概念证明,绝对不建议,它以一种非常简单的方式重新定义了低级命令)

\begin{document}
\cite{sarfraz,kullback}
\cite{doody,wilde}
\makeatletter
\begingroup
% usually \begin{...}\end{...} has an implicit group, we need to get rid of that
\def\begin#1{\csname #1\endcsname}
\def\end#1{\csname end#1\endcsname}
% save the real endthebibliography and disable the end for the first bbl
\let\orig@endthebibliography\endthebibliography
\let\endthebibliography\relax
\input{bblone.bbl}
% remove the beginning and restore the end
\let\thebibliography\@gobble
\let\endthebibliography\orig@endthebibliography
\input{bbltwo.bbl}
\endgroup
\makeatother
\end{document}

一份综合书目

也可以从不同的文件中获取数据,请biblatex参见.bbl如何导入/打印从单独/外部文档创建的参考书目?。但由于结构更复杂,因此要正确处理也更加复杂。

因此理论上可以.bbl在 LaTeX 方面进行组合,但这可能很快变得非常复杂,并且不能解决排序和上下文相关信息的问题。

转换.bbl.bib

我更倾向于将第二个文件的内容转换.bbl.bib文件。有了该.bib文件,您就可以照常使用 BibTeX 或 Biber。

转换不必手动完成,您可以使用https://text2bib.economics.utoronto.ca/就像建议的那样从 textplain 引用转换为 bibtex。当然,您必须仔细检查结果,并且应该期望对结果进行一些修复,但作为第一种方法,这样的工具可能会有所帮助。好处是您只需执行一次。

.bib一次加载多个文件没有问题,请参阅来自多个 .bib 文件的书目

相关内容