书目名称定义

书目名称定义

在最近我使用的乳胶模板中,我在参考书目命令中看到了两个文件名

\bibliography{biblio, chapter1}

这是什么意思?

答案1

指令

\bibliography{<list of one or more files with extension "bib">}

服务于两个截然不同但并非毫无关联的目的:

  1. 对于 BibTeX,它提供了所有 bib 文件的列表,这些文件可能(实际上应该!)包含通过各种\cite命令引用的书目条目。BibTeX 搜索列出的 .bib 文件,并(假设它可以找到\cited 个条目)根据指令指向的文件中包含的说明对其进行格式化\bibliographystyle。BibTeX 将其输出放在名为 的文件中\jobname.bbl,其中“ \jobname”是您的主 tex 文件的名称——包含\documentclass指令的文件。

  2. 对于 LaTeX,该指令的\bibliography意思是“打开文件\jobname.bbl并将其内容包含在您正在处理的输入流中,并打印出 bbl 文件的内容就在这儿\bibliography“。LaTeX 还将参数中指定的任何 bib 文件的名称写入文件\jobname.aux

第一次运行 LaTeX 时\jobname.tex,即BibTeX 运行后,\jobname.bbl根据定义,文件仍为空。因此,LaTeX 会打印一个空的书目并发出警告,表示未找到任何书目项。如上所述,它还会将书目文件列表写入文件aux。此外,在执行 BibTeX 运行之前,所有\cite命令都打印为,?因为尚未处理和格式化任何书目项。LaTeX 还会将通过\cite指令引用的所有书目条目的键写入文件aux

当 BibTeX 运行时,它会读取文件\jobname.aux并找出 (a) 要使用哪种参考书目样式、哪些文件(扩展名为 .bib)可能包含 bib 条目,以及要在文件中查找哪些条目bib;回想一下,每条\cite指令都会在文件中生成一行项目\jobname.aux。BibTeX 使用这些信息来创建文件\jobname.bbl

下次运行 LaTeX 时,文件\jobname.bbl不再为空;因此,LaTeX 将其内容包含在输入流中并生成打印的参考书目。通过查阅文件\jobname.aux,LaTeX 还会对命令及其对应条目进行匹配\cite;在运行结束时,LaTeX 会将.aux每个命令的输出写入文件\cite。(我相信您知道,某些参考书目样式需要数字引用标注,而其他样式则需要作者年份样式的标注。)

在 BibTeX 传递之后第二次运行 LaTeX 时,它会重新读取文件aux,现在可以将引用命令与它们应该生成的命令(各种格式的标注)进行匹配。假设没有出现拼写错误或其他错误,所有引用标注现在都应该得到正确解决。

这就是为什么你经常会看到这样的警告:先运行 LaTeX,然后运行 ​​BibTeX,然后再运行 BibTeX再两次完全传播编辑 tex 文件时可能生成的所有更改。

相关内容