我使用的是 Eclipse 4.2,其中有 TeXlipse 1.5(与 StatET 3.2 捆绑的版本)和 MixTeX 2.9。我使用 TeXlipse、bibtex 和natbib
来制作参考书目没有任何问题。但我经常想在同一个文档中包含多个参考书目(即参考文献列表)。 natbib
无法胜任这项任务。在这些情况下,我会求助于软件包bibunits
。
问题是 Texlipse 不能很好地与 配合使用bibunits
。当 latex(或 pdflatex 等)在包含 的文档上运行时\usepackage{bib units}
,它会.aux
为每个要创建的参考书目生成一个文件:bu1.aux
、bu2.aux
等等。如果要生成参考书目,bibtex 需要处理以下每个.aux
文件:
bibtex bu1.aux
bibtex bu2.aux
等等。但 Texlipse 似乎不知道这一点。因此,默认情况下,它不会指示 bibtex 处理这些内容.aux files
。结果是参考书目无法正常显示。
以下是一个完整的文档示例,命令行工具(pdflatex、bibtex)可以很好地处理该文档,但这给 Texlipse 带来了很多麻烦。虽然它使用了bibunits
,但它只有一个参考书目(为了简单起见):
\documentclass{article}
\usepackage{bibunits}
\defaultbibliography{references}
\defaultbibliographystyle{plainnat}
\usepackage{natbib}
\begin{document}
\begin{bibunit}
Lorem ipsum dolor \citep{Smith_Lorem_1980}.
\putbib
\end{bibunit}
\end{document}
哪里references.bib
@BOOK{Smith_Lorem_1980,
AUTHOR = {John Smith},
TITLE = {Sit Amet},
YEAR = {1980},
PUBLISHER = {Knopf},
}
(该示例需要单独的.bib
文件:TeXlipse 不支持\thebibliography
命令。)
有没有办法更改 Texlipse 配置,以便它可以处理在处理示例文件等文件时生成的 .aux 文件?现在,我已经想出了一个解决方法(将 BibTeX 配置为处理文件的“外部工具” .aux
),但它很笨重。
答案1
与本问题中描述的说明类似texlipse 构建器脚本配置我将我的外部构建程序指向一个 Windowsbat
文件。
当使用运行 MikTex 的 Windows 时,我创建了以下脚本/组织。
- 在 eclipse 项目目录中,我创建了一个
src
目录来对除主 tex 文件之外的所有内容进行排序 - 在这个包含构建工具的目录之外,我将主
tex
文件放在 - 我倾向于保留可能对多个项目通用的参考资料,以防止重复
- 这些
bat
文件基于循环和当前目录变量来识别要构建的项目文件。 - 为了解决这个问题的 bibunits 特定性质,我使用了一个自定义
bat
文件(见下面的示例中名为bibunitBuild.bat
包含bu*.aux
在 for 循环中) - 清理脚本也很容易创建和包含,取决于您是否希望保留流程日志或没有 tmp 文件的干净工作目录。
内容bibunitBuild.bat
:
FOR %%B IN (bu*.aux) DO ( ECHO Will try and compile %%~dpB%%~nB with bibtex & "%MikTexPath%bibtex.exe" --include-directory="%%~dpB\..\..\References" "%%~dpB%%~nB")
内容xelatexCompile.bat
:CheckOS
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (GOTO 32BIT) ELSE (GOTO 64BIT)
:64BIT
ECHO 64-bit compiling
SET MikTexPath=C:\Program Files\MiKTeX 2.9\miktex\bin\x64\
GOTO END
:32BIT
ECHO 32-bit compiling
SET MikTexPath=C:\Program Files\MiKTeX 2.9\miktex\bin\
GOTO END
:END
SET TeXCompilier=xelatex.exe
FOR %%A IN (*.tex) DO (
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
call bibunitBuild.bat &_
"%MikTexPath%makeindex.exe" -s "%%~nA.ist" -t "%%~nA.glg" -o "%%~nA.gls" "%%~nA.glo" &_
"%MikTexPath%makeindex.exe" -s "%%~nA.ist" -t "%%~nA.alg" -o "%%~nA.acr" "%%~nA.acn" &_
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
)