有没有办法将 BibTeX 内容包含在 LaTeX 文件中?
这个问题是在向期刊提交修订稿时出现的。我可以提交一个新的主文件,但我没有找到提交新 BibTeX 文件的方法。所以自然而然的问题是,我是否可以将它们合并为一个文件。
答案1
filecontents
菲利佩·奥莱尼克提到filecontents
环境在评论中并且仅从你的问题标题来看,我会说这就是你正在寻找的内容(假设 BibTeX 文件意味着.bib
文件)。
filecontents
可用于将任意文件包含到.tex
文件中。.tex
如果该文件尚不存在(如果您的 LaTeX 足够新,您可以使用可选参数传递force
或overwrite
传递给环境,让 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 编译上述示例时,您将获得一个包含完整参考书目的文档。该参考书目的关键是.bbl
BibTeX 运行生成的文件。您可以在以下网址了解更多信息使用问号或粗体引用关键字代替引用编号但简而言之,该.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 的书目不同的工作流程,因此即使您包含文件并且您有匹配的版本,他们也不太可能接受提交。biblatex
biblatex
.bbl
向 arXiv 提交biblatex
论文的人经常会遇到版本问题,需要找到旧版本的biblatex
Biber 才能正常工作。请参阅让 arXiv 接受 BibTeX BBL(2018 年 5 月)。