TeXlipse、bibunits 和多个参考书目

TeXlipse、bibunits 和多个参考书目

我使用的是 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.auxbu2.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 时,我创建了以下脚本/组织。

  1. 在 eclipse 项目目录中,我创建了一个src目录来对除主 tex 文件之外的所有内容进行排序
  2. 在这个包含构建工具的目录之外,我将主tex文件放在
  3. 我倾向于保留可能对多个项目通用的参考资料,以防止重复
  4. 这些bat文件基于循环和当前目录变量来识别要构建的项目文件。
  5. 为了解决这个问题的 bibunits 特定性质,我使用了一个自定义bat文件(见下面的示例中名为bibunitBuild.bat包含bu*.aux在 for 循环中)
  6. 清理脚本也很容易创建和包含,取决于您是否希望保留流程日志或没有 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" &_
)

相关内容