我想使用biblatex
,但在使用时出现错误bibtex8
(或其他后端,无所谓)。我已经确定了问题所在:我正在使用“build”目录。
所以我的文件结构是:
myfile.tex
mybib.bib
/build [all copiled files go here, including myfile.aux and myfile-blx.bib]
在我的.tex
我有:
\addbibresource{mybib.bib}
在文件中生成以下内容.aux
:
\bibdata{myfile-blx,mybib}
现在bibtex8
使用(Texmaker)从基础目录运行:
bibtex8 --wolfgang build/%
它正确地找到了该.aux
文件和该mybib.bib
文件,但没有找到该-blx.bib
文件。
我目前有三种解决方法:
- 不使用构建目录,所以所有内容都在一个目录中(我不喜欢这样)
- 运行 (pdf)latex 后手动将
-blx.bib
文件复制到父目录 - 手动编辑
.aux
文件以:\bibdata{build/myfile-blx,mybib}
显然,这些都不是我们想要的。
那么我怎样才能自动将这一行添加到我的.aux
文件中呢?
\bibdata{build/myfile-blx,mybib}
编辑2012-09-04:
@PLK:我会尝试使用biber
。但我在两台机器上使用它。主工作站是 Windows 7 64 位,而 biber 主页上没有它的二进制文件。32 位无法执行。
我主要在 [Windows 7,64 位,miktex、texmaker、jabref] 上运行,也在 [xubuntu,32 位,texlive、texmaker、jabref] 上运行。
我个人认为最小的例子并不是那么有用,因为除非我使用构建目录,否则所有内容都会编译而没有任何错误。MWE:
\documentclass[a4paper, fontsize=12pt]{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{mybib.bib}
% This file was created with JabRef 2.8.1.
% Encoding: ISO8859_1
@ARTICLE{author2010,
author = {Some Author},
title = {Fancy Title},
journal = {Another Journal},
year = {2010},
volume = {91},
pages = {229-261},
number = {2},
timestamp = {2012.09.01}
}
@comment{jabref-meta: selector_review:}
@comment{jabref-meta: selector_publisher:}
@comment{jabref-meta: selector_author:}
@comment{jabref-meta: selector_journal:}
@comment{jabref-meta: selector_keywords:}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex8,bibencoding=latin1]{biblatex}
\addbibresource{mybib.bib}
\begin{document}
\section{Section}
Lots of text.
\footnote[111]{\cite[S.~250--255]{author2010}}
\printbibliography
\end{document}
如上所述,没有构建目录时,一切都会顺利运行。当我使用构建目录时,第一次pdflatex
运行正常。然后bibtex8
在文件中产生以下错误/输出./build/myfile.blg
:
The 8-bit codepage and sorting file: 88591lat.csf
The top-level auxiliary file: build/myfile.aux
The style file: biblatex.bst
I couldn't open database file myfile-blx.bib
---line 4 of file build/myfile.aux
: \bibdata{myfile-blx
: ,mybib}
I'm skipping whatever remains of this command
这是因为它期望myfile-blx.bib
和mybib.bib
都位于父目录中./
。如上所述,我可以通过.aux
运行前手动编辑文件来解决bibtex8
。当我这样做时,它运行时不会出现错误。
答案1
biber选项--output_directory
可以解决这个问题。
答案2
我认为您正在寻找的是BIBINPUTS
来自bibtex
手册页的环境变量。
对于您来说,bibtex
编译脚本的部分内容可能是:
export BIBINTPUTS=..
cd build
bibtex myfile
cd ..
我发现这个读物这。