设置
我在用橡皮编译我的乳胶文档。在我的根文件夹中main.tex
,我有mybib.bib
(均来自这里) 和Makefile
。
main.tex
\documentclass[11pt]{article}
\usepackage{cite}
\begin{document}
\title{My Article}
\author{Nobody Jr.}
\date{Today}
\maketitle
Blablabla said Nobody ~\cite{Nobody06}.
\bibliography{mybib}{}
\bibliographystyle{plain}
\end{document}
mybib.bib
@misc{ Nobody06,
author = "Nobody Jr",
title = "My Article",
year = "2006" }
Makefile
.PHONY: clean
LATEX_SRC=$(wildcard *.tex)
REFS=$(wildcard *.bib)
all: main.pdf
%.pdf: %.tex $(LATEX_SRC) $(REFS)
mkdir -p build
rubber --into build --short --pdf $<
rubber-info --into build --check $<
clean:
rm -rf build
跑步make
会抱怨
running: bibtex main.aux...
[biblio] There were errors running bibtex.
build/main.aux:3: [bibtex] I couldn't open database file mybib.bib
解决方法
\bibliography{mybib}{}
用\bibliography{../mybib}{}
in替换main.tex
是一种有效的解决方法。
问题
现在,我该如何获得橡皮告诉BibTeX正确的文件夹?main.tex
和myref.bib
都是rubber
,所以我不确定如何BibTeX看不到后者。我的main.aux
包含行\bibdata{mybib}
,这导致了问题,这就是为什么将添加../
到main.tex
给出了一个可行的解决方案,但我更了解如何使用橡皮而不是亲自修补它的行为,因为我相信我可能会滥用它。
答案1
将此行添加到主 LaTeX 文件确实可以解决问题。
% rubber: bibtex.path ../
现在 BibTeX 将了解该项目的文件结构。