我正在编写一个文档,想在其中添加参考书目。由于我使用的是 CentOS 7,而且 texlive 几乎没有默认安装的软件包,因此我bibtex
从加拿大运输安全局网站。
在我的 tex 文件中,我像这样加载它:
\usepackage[backend=bibtex]{biblatex}
\addbibresource{myBib.bib}
我得到了这个错误:
I couldn't open style file biblatex.bst
---line 6 of file myDoc.aux
: \bibstyle{biblatex
: }
I'm skipping whatever remains of this command
I found no style file---while reading file myDoc.aux
由于我在CTAN上没有找到该bibtex.bst
文件,因此我下载了plain.bst
加拿大运输安全局网站。而且,由于第一次尝试没有成功,我把它放在了多个地方。
~/texmf/tex/plain.bst
~/texmf/tex/bibtex/plain.bst
~/texmf/tex/bibtex/bstplain.bst
~/texmf/tex/latex/biblatex/bst/plain.bst
/usr/share/texlive/texmf/tex/bibtex/bst/plain.bst
然后我运行texhash ~/texmf/
和sudo texhash /usr/share/texlive/texmf/
。以下是相应的ls-R
文件:
~/texmf/ls-R
./tex:
bibtex
generic
latex
plain.bst
./tex/bibtex:
bst
plain.bst
./tex/bibtex/bst:
plain.bst
.
.
.
./tex/latex/biblatex:
biber
bibtex
bst
CHANGES.md
doc
latex
README
./tex/latex/biblatex/bibtex:
bib
bst
./tex/latex/biblatex/bibtex/bst:
biblatex.bst
./tex/latex/biblatex/bst:
plain.bst
.
.
.
./tex/latex/biblatex/latex/bst:
plain.bst
.
.
.
/usr/share/texlive/texmf/ls-R
./tex:
bibtex
generic
latex
./tex/bibtex:
bst
./tex/bibtex/bst:
plain.bst
然后,在我的 tex 文件中,我告诉了bibtex
我想要使用哪种样式:
\usepackage[backend=bibtex,style=plain]{biblatex}
\addbibresource{myBib.bib}
并且知道我犯了这个错误:
! Package biblatex Error: Style 'plain' not found.
我不明白为什么它不起作用,而且我在网上找不到其他任何信息。有人有想法吗?
答案1
在我们开始之前,最好尝试了解biblatex
和 BibTeX 之间的区别。bibtex 与 biber 以及 biblatex 与 natbib 的比较有一些解释应该可以更清楚地说明两者之间的区别,所以很快:BibTeX 是一个从文件中提取参考书目数据.bib
并在文件(“BibTeX 样式”)的帮助下将数据处理.bst
为 LaTeX 可读数据的程序。更一般地说,有时人们(当然是我)说“BibTeX”时,他们指的是使用 BibTeX 和文件附带的整个参考书目设置.bst
。biblatex
是一个用于引文和参考书目的 LaTeX 包,其工作方式与“BibTeX 方法”不同。biblatex
可以与 BibTeX 和较新的 Biber 一起使用作为“后端”,从文件中提取相关条目数据.bib
。
当你想使用
\usepackage[<options>]{biblatex}
在您的文档中,您正在使用biblatex
。
当您biblatex
使用选项加载时backend=bibtex,
,您正在使用 biblatex
BibTeX 后端。
这意味着您需要biblatex
在系统上正确安装 BibTeX。
第一条消息
I couldn't open style file biblatex.bst
---line 6 of file myDoc.aux
: \bibstyle{biblatex
: }
I'm skipping whatever remains of this command
I found no style file---while reading file myDoc.aux
你得到的信息表明 BibTeX 已启动并正在运行(该消息来自 BibTeX),但biblatex
似乎没有完全安装。特别是文件biblatex.bst
(可从https://ctan.org/tex-archive/macros/latex/contrib/biblatex/bibtex/bst在 CTAN 上)似乎未正确安装。
根据您的目录列表,您有
./tex/latex/biblatex/bibtex/bst:
biblatex.bst
但文件应该位于
./bibtex/bst/biblatex
此处的正确路径至关重要,因为如果文件位于其他地方,则无法正确找到它kpsewhich
。(路径规范称为 TDS:http://tug.ctan.org/tds/tds.html。从技术上讲,只有./bibtex/bst/
路径的一部分是至关重要的,其余部分都是任意的,但最好将目录与子目录组织在一起。)
这是从 CTAN 手动安装软件包的危险之一:对于复杂的软件包,您可能会弄错目录结构。这就是为什么有些软件包附带一个.tds.zip
,其中 TDS 结构已经在中正确表示.zip
,您只需将所有内容解压到您的 中TEXMFHOME
。
从 CTAN 手动安装的另一个问题是软件包兼容性。您从 CTAN 获得的版本是软件包的最新版本。新版本biblatex
可能依赖于其他软件包的类似更新。因此,如果您手动安装一个软件包,您可能最终必须手动更新或安装其他几个软件包,以确保版本匹配。
由于您是从 Linux 发行版的软件存储库安装 TeX Live 的,因此也可以biblatex
通过 Linux 发行版正确安装。不幸的是,我对 CentOS 不太熟悉,不知道 CentOS 7 附带哪个版本的 TeX Live。但启动yum
搜索功能进行查找biblatex
不会有什么坏处。
如果您的 Linux 发行版在其存储库中提供的 TeX Live 已经过时或您需要的软件包不可用,您可能需要考虑从 TUG.org 安装“原始”TeX Live。(Ubuntu 的说明位于如何在 Debian 或 Ubuntu 上安装“原始” TeXLive?. 通用说明位于https://tug.org/texlive/acquire-netinstall.html。)
假设您的biblatex
安装已完成并且与安装中的所有软件包兼容,
\usepackage[backend=bibtex,style=plain]{biblatex}
\addbibresource{myBib.bib}
仍然不太正确。您告诉biblatex
使用一种名为 的样式plain
,但biblatex
不知道该名称的样式。biblatex
有自己的定义参考书目和引用样式的系统,不使用 BibTeX 的.bst
文件。如果plain
是指 BIbTeX 样式,plain.bst
它根本不能与 一起使用biblatex
。(正如我们所见,当它与 BibTeX 一起使用时biblatex
需要biblatex.bst
。无论您请求哪种样式,始终都会使用该文件biblatex
。)
您需要选择biblatex
自己的样式之一。可用的标准样式列于文档biblatex
CTAN 上还提供更多自定义样式:https://www.ctan.org/topic/biblatex。 例如
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex,
style=authoryear,
]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite[380]{sigfridsson}
ipsum \autocite[cf.][]{nussbaum}
dolor \autocite{worman}
sit \autocite[cf.][41]{geer}
\printbibliography
\end{document}
如果你根本不想使用biblatex
而只想使用标准 BibTeX,你的文档将如下所示
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\begin{document}
Lorem \cite[380]{article-full}
ipsum \cite{incollection-full}
dolor \cite{inproceedings-full}
sit \cite[41]{inbook-full}
\bibliographystyle{plain}
\bibliography{xampl}
\end{document}
请注意,现在建议使用 Biber 作为后端,biblatex
而不是 BibTeX。只有 Biber 允许您使用 的所有biblatex
高级功能。但 Biber 需要在您的系统上可用,并且必须安装在与您的版本兼容的版本中biblatex
。