未找到 Bibtex 样式

未找到 Bibtex 样式

我正在编写一个文档,想在其中添加参考书目。由于我使用的是 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 和文件附带的整个参考书目设置.bstbiblatex是一个用于引文和参考书目的 LaTeX 包,其工作方式与“BibTeX 方法”不同。biblatex可以与 BibTeX 和较新的 Biber 一起使用作为“后端”,从文件中提取相关条目数据.bib

当你想使用

\usepackage[<options>]{biblatex}

在您的文档中,您正在使用biblatex

当您biblatex使用选项加载时backend=bibtex,,您正在使用 biblatexBibTeX 后端。

这意味着您需要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自己的样式之一。可用的标准样式列于文档biblatexCTAN 上还提供更多自定义样式: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

相关内容