我从 Ubuntu Linux 上的 CTAN 提供的安装程序安装了 TexLive 2013。到目前为止,我已经能够使用 latex 和 pdflatex 命令,但我遇到了 bibtex 问题。我需要进行任何设置(例如导出环境变量)才能让 bibtex 知道.bst
文件的位置吗?
bibtex 命令似乎无法识别.bst
存储在
texlive/2013/texmf-dist/bibtex/bst/revtex/
、
texlive/2013/texmf-dist/bibtex/bst/natbib/
等下的文件。
然而,.bst
下面的文件
texlive/2013/texmf-dist/bibtex/bst/base/
似乎被识别了。
我实际上想要使用的样式文件是
texlive/2013/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst
。如果我这样做,
$ kpsewhich aipnum4-1.bst
我将一无所获。
我安装了TexLive 2013后,没有对tex系统做任何改动,没有手动添加文件,也没有更新TexLive。
编辑
根据评论,我添加了一个小例子。下面的sample.tex
和fa.bib
可以用pdflatex和bibtex编译成PDF。在下plain.bst
。texlive/2013/texmf-dist/bibtex/bst/base/
如果我更改\bibliographystyle
为aipnum4-1
或注释掉其他样式,则不会生成参考部分,并且引用会用问号标记。
sample.tex
\documentclass{article}
\begin{document}
This is the minimum story I heard from the king of Elephants. \cite{pa}
\bibliography{fa.bib}
\bibliographystyle{plain}
% .. works
%\bibliographystyle{aipnum4-1}
% .. does not work
%\bibliographystyle{siam}
%\bibliographystyle{apsrev}
%\bibliographystyle{plainnat}
\end{document}
fa.bib
@Article{pa,
author = {Elegant Elephant},
title = {Eggs of Elephants are Elegant},
journal = {Elite Elephants},
year = {2399},
volume = 3,
pages = 447,
}
编辑2
我发现我对PATH
环境变量(以及MANPATH
和INFOPATH
)的设置不合适。我已将它们设置/etc/profile
为
INFOPATH=$INFOPATH:/usr/local/texlive/2013/texmf-dist/doc/info
MANPATH=$MANPATH:/usr/local/texlive/2013/texmf-dist/doc/man
PATH=$PATH:/usr/local/texlive/2013/bin/x86_64-linux
我将其更正为
INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH; export INFOPATH
MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH; export MANPATH
PATH=/usr/local/texlive/2013/bin/x86_64-linux:$PATH; export PATH
我的 Ubuntu 包管理器似乎在/usr/share/texlive/
和下安装了它自己的 tex 系统/usr/share/texmf/
,可能是因为另一个包依赖于 tex 包。
由于第一个错误的设置PATH
,ubuntu 安装的 tex 相关可执行文件优先于我直接从 CTAN 安装的 texlive 2013。例如, 使用了kpsewhich
at而不是。结果,当我这样做时/usr/bin/kpsewhich
/usr/local/texlive/2013/bin/x86_64-linux/kpsewhich
kpsewhich plain.bst
我有
/usr/share/texlive/texmf-dist/bibtex/bst/base/plain.bst
这是由 ubuntu 的 tex 包安装的。仅安装了此包,bibtex/bst/base/
但没有安装bibtex/bst/revtex/
其他 bst 目录,
kpsewhich aipnum4-1.bst
导致字符串为空。
现在,使用更正后的 PATH 设置,
kpsewhich aipnum4-1.bst
返回
/usr/local/texlive/2013/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst
可以使用注释中列出的任何 bst 文件将上述示例 tex 文件编译为 PDF。
看起来 ubuntu 的 tex 包没有安装pdflatex
,
/usr/local/texlive/2013/bin/x86_64-linux/pdflatex
到目前为止我一直很愉快地使用。
读完这个答案后我意识到了自己的错误: