使用 bibunits 时出现问题

使用 bibunits 时出现问题

我正在尝试使用bibunits包。如果我使用以下命令序列编译 TeX 文件,它可以正常工作。

pdflatex document
bibtex bu1
pdflatex document
pdflatex document

但是,如果我使用 TeXstudio 2.8.8 进行编译,TeXstudio 无法识别 bibunit 中的 bibtex 条目。这是一个最小的例子。

\documentclass{article}
\usepackage{bibunits}
\usepackage{filecontents}
\begin{filecontents}{mybib.bib}
    @ARTICLE{Meyer2000,
        AUTHOR="Bernd Meyer",
        TITLE="A constraint-based framework for diagrammatic reasoning",
        JOURNAL="Applied Artificial Intelligence",
        VOLUME= "14",
        ISSUE = "4",
        PAGES= "327--344",
        YEAR=2000
    }
    @ARTICLE{Codishetal2000,
        AUTHOR="M. Codish and K. Marriott and C.K. Taboch",
        TITLE="Improving program analyses by structure untupling",
        JOURNAL="Journal of Logic Programming",
        VOLUME= "43",
        ISSUE = "3",
        PAGES= "251--263",
        YEAR=2000
    }
\end{filecontents}
\begin{document}
    \begin{bibunit}[plain]
        References to the \TeX book \cite{Meyer2000}
        and to Lamport’s \LaTeX\ book, which appears
        only in the references\nocite{Codishetal2000}.
        \putbib[mybib]
    \end{bibunit}
\end{document}

答案1

老问题了,但确实是我的问题。我对 TeXstudio 了解不多,但我搞了一个 hack 让它工作。一定有更好的方法。请有人发布它。

  1. 转到选项->配置 TeXstudio...
  2. 从左侧选项中选择命令
  3. 滚动到 BibTeX
  4. 按照如下所述更新 BibTeX 命令

默认命令应为“bibtex.exe %”,它显然在主文件名(不带扩展名)上运行 bibtex。我在 bu# 上添加了 bibtex 执行列表,其中 # 是从 1 到 9 的数字。

因此 BibTeX 命令现在看起来像:

bibtex.exe % | bibtex.exe bu1 | bibtex.exe bu2 | bibtex.exe bu3 | bibtex.exe bu4 | bibtex.exe bu5 | bibtex.exe bu6 | bibtex.exe bu7 | bibtex.exe bu8 | bibtex.exe bu9

仅供参考,我在 Windows 7 上运行 TeXstudio 2.8.4

就像我说的,这是个黑客攻击。但它似乎有效。


编辑:我猜 TeXstudio 会根据它是否认为有变化来有条件地“重新编译”参考书目。我还猜想它不能很好地使用 bibunits 检测变化。因此,在使用此 hack 时,我必须执行(至少)三个 TeXstudio 步骤。首先,重新编译主 tex 文件。其次,重新编译 bib 文件(f11)​​。第三,再次重新编译主 tex 文件。

答案2

改变

bibtex.exe % 

bibtex ?a*/*.aux 

选项 - 配置 TeXstudio - 命令 - BibTeX。

来源.编译顺序:F6、F11、F6、F11、F6、F12、F1。

答案3

你可能想要使用latexmk. 它完全自动化了编译过程。

latexmk -pdflatex -synctex=1 document.tex

将会完成这项工作。

你可以告诉 TeXstudio 使用latexmk只需将 PdfLaTeX 命令的设置从

pdflatex -synctex=1 -interaction=nonstopmode %.tex

latexmk -pdflatex -synctex=1 -interaction=nonstopmode %.

答案4

为了在 Linux 下将 bibunits 与 Texstudio 结合使用(我的情况是 Texstudio 2.12.22),我执行以下操作:

  1. 选项->配置 TeXstudio...

  2. 从左侧选项中选择构建

  3. 在用户命令下,添加以下命令,执行 bibunits 文档中描述的构建过程:

    /PATH/TO/SCRIPT/latex_bibunits.sh %.tex | txs:///view
    

使用包含以下内容的 bash 脚本 latex_bibunits.sh:

#!/bin/bash
FILE=$1
pdflatex $FILE
buFiles=$(ls bu*.aux)
for f in ${buFiles[@]}; do
    bibtex $f
done
pdflatex $FILE
pdflatex $FILE

此外,确保 latex_bibunits.sh 是可执行的,例如使用chmod 755 latex_bibunits.sh

相关内容