添加不在 bib 文件中的 bib 项目

添加不在 bib 文件中的 bib 项目

我使用 Papers 来管理我的所有参考文献并生成 bibtex.bib 文件。在某些文章中,我想包含 bibtex.bib 文件中没有的参考文献。这通常用于“个人信件”之类的内容。我不想在我的软件中添加“假”项目来做到这一点。

是否有可能添加我的 tex 源中的一个项目可以在文档中引用并出现在参考部分?

答案1

BibTeX 和文件的全部意义.bib在于您不必在文档中临时编写任何内容。所有可引用的来源都已在文件中给出.bib,并且可以在文档中根据需要调用和格式化。

如果您不想.bib用某些条目“污染”主文件,则可以使用第二个.bib文件来存放这些一次性引用。BibTeX 可以轻松处理多个.bib文件。可以使用该文件.bib创建第二个文件(请参阅下面的 MWE,其中“主”文件就是通过这种方式创建的)。.texfilecontents.bib

当然,输出结果仍然取决于参考书目样式格式化您的条目的方式。因此,如果您想要“自由格式”的引用,您可能需要对 BibTeX 进行一些小技巧。

包裹notes2bib将这个想法更进一步,并使其自动化。它允许您在文档中即时创建一次性参考书目条目。在内部,该包只是将条目写入.bib单独的.bib文件并告诉 BibTeX 也加载它。

该软件包有许多选项可供您自定义输出。根据样式和所需的输出,可能需要进行调整。

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

% for unsrtnat
\bibnotesetup{
  note-name = ,
  use-sort-key = false
}

\usepackage{filecontents}
\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}
\bibnote{Personal communication with Sir Humphrey Appleby}
\bibliographystyle{unsrtnat}
\bibliography{\jobname}
\end{document}

[1] 汉弗莱·阿普尔比。《论公务员的重要性》。1980 年。//[2] 与汉弗莱·阿普尔比爵士的私人通信。


如果不怕手工活的话,可以修改.bblBibTeX生成的文件来排版参考书目。

在一个简单的文档中它可能看起来像这样

\begin{thebibliography}{1}

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

\end{thebibliography}

环境thebibliography的工作方式或多或少类似于enumerate或而不是itemize。有一个强制参数:您可以在中使用的输入键,以及用于作者年份引文命令的引文标签或元数据的可选参数。可选参数的使用和格式取决于引文管理包。\bibitem\item\bibitem\cite

您可以在此处轻松添加您自己的条目。

\begin{thebibliography}{1}

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

\bibitem[Appleby(2018)]{app:perscomm}
Personal communication with Sir Humphrey Appleby.
\newblock 2018.

\end{thebibliography}

这种方法的缺点是.bbl文件本质上是临时的:它应该在每次运行 BibTeX 时重写。

完成后,你可以\bibliography{\jobname}用文件内容替换该行.bbl。这样可以修复输出,并且无需运行 BibTeX。


如果您使用biblatex,则无法修改文件.bbl,因为文件的格式不同:它不包含格式化的参考书目,它只包含 LaTeX 可读格式的原始数据。

您仍然可以使用第二个.bib条目或notes2bib。您可能还想看看如何设置 BibLaTeX 以用于“自由格式”引用

相关内容