我正在尝试使用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 让它工作。一定有更好的方法。请有人发布它。
- 转到选项->配置 TeXstudio...
- 从左侧选项中选择命令
- 滚动到 BibTeX
- 按照如下所述更新 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),我执行以下操作:
选项->配置 TeXstudio...
从左侧选项中选择构建
在用户命令下,添加以下命令,执行 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
。