在辅助文件上运行 bibtex

在辅助文件上运行 bibtex

我在 Mac OS X Yosemite 上,使用 Texshop(通过 Mac Live)。我使用 biblatex 并以 bibtex 作为后端,并使用详细样式(所有这些我都无法更改)。

我需要将几个文件与它们自己的(有时不兼容的)书目 bib.files 放在一起。我已经编写了一个主文件,其中包含序言、bib.files 和用于各种文件的 \input(或 \include)。并且在每个文件中,我都有一个 refsection 环境。该程序先运行 LaTeX,然后运行 ​​BibTeX,然后要求在每个文件 blx(.aux) 上重复 Bibtex。

更准确地说,在控制台文件中是这样写的

软件包 biblatex 警告:请对文件(重新)运行 BibTeX:(biblatex)Livre200220171-blx.aux(biblatex)Livre200220172-blx.aux(biblatex)Livre20022017.aux(biblatex)然后重新运行 LaTeX。

在我的情况下具体该怎么做? 如果我打开文件 blx(.aux),我在 TexShop 中用于运行 Bibtex 的按钮通常无法操作。

有些人已经问过同样的问题,但使用不同的系统,答案似乎不适用于这里(或者我太笨了,不明白如何)。我是否必须在某处(哪里?)写一些命令(哪一个?)。

如果有另一种更简单的解决方案来整理文件及其参考书目(使用 biblatex 等),我当然也会感兴趣。

答案1

由于您正在使用 TeXShop,您可以轻松使用引擎pdflatexmk,它将自动执行 bibtex(或 biber,如果您设置biblatex使用它)pdflatex等的所有必要运行。只需将行

% !TEX TS–program = pdflatexmk

在根 .tex 文件的顶部。然后使用 Typeset->Typeset (Cmd-T) 进行排版。

答案2

您需要在每个指示的文件上运行 BibTeX。

而不是通常的

pdflatex Livre20022017
bibtex Livre20022017
pdflatex Livre20022017

序列,你需要运行

pdflatex Livre20022017
bibtex Livre200220171-blx
bibtex Livre200220172-blx
bibtex Livre20022017
pdflatex Livre20022017

由于在文档上运行 LaTeX 之前,您必须在其上运行 BibTeX 的附加文件是不可“预测”的,并且会随着文档的内容而变化,因此您的编辑器很可能没有按钮为您执行此操作。(编辑器中的按钮可能只会在主文件上运行 BibTeX .aux:。Livre20022017.aux

您可以使用以下建议的自动编译工具之一赫伯·舒尔茨他的回答例如latexmk或者arara。这些工具可以通过检查日志文件等或通过为其设置的专用规则自动执行必要的编译步骤。

但还有一个更好的解决方案:使用 Biber比贝尔是 中 BibTeX 的替代后端biblatex。 相当长一段时间以来,BibTeX 一直被指定为“遗留后端”,并且实际上仅出于向后兼容性的原因才受支持。 BibTeX 仅提供一组简化的功能(尽管 Joseph Wright 已经尽了最大努力通过 Biber 来加快 BibTeX 支持,但有些事情仅靠 BibTeX 是无法完成的),因此只有使用 Biber,您才能真正享受 的全部功能biblatex

.tex您的案例的一个主要优点是,无论结构如何,Biber 只需要在每个文档的一个文件上运行。您只需要在主文件上运行Biber .bcf,因此有效的编译顺序始终是

pdflatex Livre20022017
biber Livre20022017
pdflatex Livre20022017

(Biber 本身会选择具有正确文件扩展名的文件)。

有关切换到 Biber 的帮助,请参阅如何使用 biberBiblatex 与 Biber:配置我的编辑器以避免未定义的引用。您的文档中唯一需要的更改是使用backend=biber而不是backend=bibtex(如第一个链接中所述)。然后剩下的就是使用 Biber 而不是 BibTeX 进行编译,第二个链接告诉您如何告诉您的编辑器。

相关内容