filecontents

filecontents

有没有办法将 BibTeX 内容包含在 LaTeX 文件中?

这个问题是在向期刊提交修订稿时出现的。我可以提交一个新的主文件,但我没有找到提交新 BibTeX 文件的方法。所以自然而然的问题是,我是否可以将它们合并为一个文件。

答案1

filecontents

菲利佩·奥莱尼克提到filecontents环境在评论中并且仅从你的问题标题来看,我会说这就是你正在寻找的内容(假设 BibTeX 文件意味着.bib文件)。

filecontents可用于将任意文件包含到.tex文件中。.tex如果该文件尚不存在(如果您的 LaTeX 足够新,您可以使用可选参数传递forceoverwrite传递给环境,让 LaTeX 覆盖具有该名称的现有文件 - 请谨慎使用此选项),则该文件将被写入工作目录(通常是主文件所在的文件夹),当 TeX 编译文件时.tex

所以

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

\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
  year    = {1980},
}
\end{filecontents}

\begin{document}
\cite{appleby}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}

将生成一个.bib与该文件同名的文件.tex,然后可以使用该文件来生成参考书目。

filecontents极其如果您想为其他人提供自包含文件以供测试,这很有用,对于此网站上的 MWE 来说也非常有用。但当出版商要求您在文件中提交参考书目时,这通常不是他们想要的。.tex这似乎是您问题的主要内容。然后出版商通常会谈论该.bbl文件。

.bbl基于 BibTeX 的书目文件

当您使用 LaTeX、BibTeX、LaTeX、LaTeX 编译上述示例时,您将获得一个包含完整参考书目的文档。该参考书目的关键是.bblBibTeX 运行生成的文件。您可以在以下网址了解更多信息使用问号或粗体引用关键字代替引用编号但简而言之,该.bbl文件包含的参考书目格式可以thebibliography在可以手动生成的环境中为 LaTeX 排版。

上述示例的文件.bbl包含(除其他内容外,我将其缩短了一点)

\begin{thebibliography}{1}
\bibitem[Appleby(1980)]{appleby}
Humphrey Appleby.
\newblock \emph{On the Importance of the Civil Service}.
\newblock 1980.
\end{thebibliography}

该代码可以直接用 LaTeX 排版。

事实上,如果你将下面这一行替换掉

\bibliography{\jobname}

从上面的例子中,取出全部内容.bbl并抛出,filecontents得到

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

\begin{document}
\cite{appleby}
\bibliographystyle{plainnat}
\begin{thebibliography}{1}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}[1]{\texttt{#1}}
\expandafter\ifx\csname urlstyle\endcsname\relax
  \providecommand{\doi}[1]{doi: #1}\else
  \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi

\bibitem[Appleby(1980)]{appleby}
Humphrey Appleby.
\newblock \emph{On the Importance of the Civil Service}.
\newblock 1980.

\end{thebibliography}
\end{document}

您将获得一份可以仅用 LaTeX 进行编译的文档,以生成包含参考书目和工作引文的相同文档。

这是许多出版商希望您提交的,因为这是一个直接包含所有可排版材料的文档,不需要额外运行 BibTeX 等辅助工具。另请参阅https://www.overleaf.com/help/219

有些期刊可能不需要你直接把文件内容复制.bbl.tex文件中,而是要求你将.tex.bbl文件一起提交,但他们很少想要该.bib文件。

.bbl文件biblatex

.bbl文件biblatex不包含可直接排版的 TeX 代码,而是包含经过扩展和排序的原始数据,其格式比文件更容易被 LaTeX 理解。.bib格式化仍然需要在侧面完成biblatex。这意味着复制和粘贴内容并不容易.bbl

可以将biblatex-包含.bbl到 a 中, .tex如中所述Biblatex:向期刊投稿,但这很少是期刊想要或需要的。首先,该文件与特定版本(和 Biber).bbl密切相关,这意味着您的版本和出版商的软件版本必须相同。其次,没有多少出版商能够处理它,因为它需要与基于 BibTeX 的书目不同的工作流程,因此即使您包含文件并且您有匹配的版本,他们也不太可能接受提交。biblatexbiblatex.bbl

向 arXiv 提交biblatex论文的人经常会遇到版本问题,需要找到旧版本的biblatexBiber 才能正常工作。请参阅让 arXiv 接受 BibTeX BBL(2018 年 5 月)

相关内容