将 .bib 文件放在包文件夹中-TeXWorks 找不到它?

将 .bib 文件放在包文件夹中-TeXWorks 找不到它?

我为所有课程文献创建了一个courses.bib数据库文件,并将其与我的一个包放在一起,tlnames.sty该包定义了一些相关的宏。这两个文件所在的文件夹是~/documents/texlive/texmf/tex/latex/tlnames

我正在从内部编译它TeXWorks 使用 LaTeXmk 脚本的修改版本,除了参考书目之外,它运行正常 - 它找不到courses.bib。查找tlnames.sty工作正常 - 我可以导入包并从中使用宏。

自从我把它放在courses.bib那里后,我就运行texhash ~/documents/texlive/texmf并收到以下输出

$ texhash texmf
texhash: Updating /home/tomas/documents/texlive/texmf/ls-R... 
texhash: Done.

为什么这不起作用?我需要做什么才能帮助 BiBTeX 找到我的数据库?

为了问题的完整性:我正在运行 Ubuntu 12.04,带有 TeX Live 2011 和 TeXWorks 版本 0.5 r.952。

答案1

(仍在运行 11.10,但是....)

我不会把我的.bib文件放在那里。如果您想要一个系统范围的解决方案,请尝试从终端运行此命令:

kpsewhich -var-value BIBINPUTS

对我来说,这给了我很多选择,包括

~/home/<username>/texmf

因此,如果我添加如下文件test.bib

~/home/<username>/texmf/bibtex/bib/

BibTeX 和/或 Biber 即使不使用 也能找到此文件texhash。(这可以在 emacs 和终端内进行;我没有 TeXWorks。)

答案2

存储在texmf树中的文件必须位于“正确”位置,以便 TeX 找到它们。对于.bib文件,它们需要位于 内texmf/bibtex/bib。根据您的描述,~/documents/texlive/texmf是您系统上的本地树,因此您需要.bib里面的文件

~/documents/texlive/texmf/bibtex/bib

如果你愿意的话,你可以进一步细分事物,所以也许

~/documents/texlive/texmf/bibtex/bib/tlnames

将是您可以使用的位置。

最近的 TeX Live 版本(包括 TL2011)不需要您访问texhash本地树,除非它存储在远程磁盘上。因此对于大多数人来说,只需在正确的位置添加文件texmf就足够了。

相关内容