我正在制作一本有 3 章的书。每章有 4 个部分。我需要将参考书目放在每个部分中,因此我使用\refsection
环境来完成这项工作。
它运行得很完美,但是问题是我每次都需要手动编译 12 次参考书目。
我正在使用这个包含 2 个章节的示例代码,每个章节有 1 个参考书目部分:
\documentclass[12pt,twoside]{book}
\title{\LaTeX test for several things in my thesis}
\author{John Doe}
%% Biblio %%
\usepackage[backend = bibtex8,citestyle=numeric-comp,]{biblatex}
\addbibresource{biblio_1.bib}
\addbibresource{biblio_2.bib}
%% Document %%
\begin{document}
\begin{refsection}
\chapter{This is the 1$^{st}$ chapter}
Hello world, this is one reference \cite{Ex1}, and this is other \cite{Ex2}.
\printbibliography
\end{refsection}
%%
\begin{refsection}
\chapter{This is the 2$^{nd}$ chapter}
Hello world, this is one reference \cite{Ex3}, and this is other \cite{Ex1}.
\printbibliography
\end{refsection}
\end{document}
有没有办法在 TeXMaker 中进行批量编译,以避免编译 12 次(每次在编译器中手动更改 .aux 名称)并在一个命令中读取所有 .aux 文档(FileName1-blx.aux、FileName2-blx.aux...FileName12-blx.aux)?
提前感谢
答案1
最佳解决方案
最好的解决方案是使用 Biber 而不是 BibTeX/BibTeX8,后者现在被视为旧版后端。使用 Biber 您只需在一个文件上调用后端。
无论如何,切换到 Biber 是个好主意,因为 的一些出色功能biblatex
只有 Biber 才可用。BibTeX 只允许您访问一组减少的功能。目前,文档暂时biblatex
假设新文档使用 Biber。
切换到 Biber 应该像切换backend=bibtex8
到
backend=biber
然后你需要告诉你的编辑器运行 Biber 而不是 BibTeX,参见Biblatex 与 Biber:配置我的编辑器以避免未定义的引用。
次优解决方案
您确实应该使用 Biber,但如果您实在无法切换,您可以尝试使用 来编译您的文档latexmk
。
latexmk
可以自动找出需要在你的 TeX 文件上运行哪些工具。
所以
latexmk FileName
将自动运行
pdflatex FileName
bibtex8 FileName
bibtex8 FileName1-aux
bibtex8 FileName2-aux
pdflatex FileName
...
直到文件稳定。
当然,没有什么可以阻止您latexmk
与 Biber 一起使用。
一个办法
您还可以编写批处理脚本/bash 脚本来为您执行此操作并在编辑器中调用它。
对于 Windows,以下操作似乎可以正常工作
@ECHO OFF
for %%f in (%**.aux) do (
echo Running BibTeX8 on %%~nf
bibtex8 %%~nf
)
另存为compilewithbibtex.bat
。然后运行
pdflatex <documentname>
compilewithbibtex.bat <documentname>
pdflatex <documentname>
在你的工作目录中。
对 Bash 也可以做类似的事情。