我正在製作一個文檔,我想在其中添加參考書目。由於我在CentOS 7下,並且幾乎沒有預設安裝texlive的軟體包,所以我bibtex
從CTAN網站。
在我的 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
在CTAN地點。而且,由於它在第一次嘗試時不起作用,因此我將其放在多個位置。
~/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 之間的差異。bibtex 與 biber 和 biblatex 與 natbib有一些解釋應該會讓兩者之間的差異更加清晰,所以很快: BibTeX 是一個從文件中提取參考書目資料.bib
並藉助.bst
文件(「BibTeX 樣式」)將資料處理為 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/bstCTAN 上)似乎未正確安裝。
根據您的目錄列表
./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
版本可能依賴其他類似的最新軟體包。因此,如果您手動安裝軟體包,您最終可能還必須手動更新或安裝其他幾個軟體包以確保版本匹配。
biblatex
由於您是從 Linux 發行版的軟體儲存庫安裝 TeX Live 的,因此也可以透過 Linux 發行版正確安裝。不幸的是,我不太熟悉 CentOS,也不知道 TeX Live CentOS 7 發布的是哪個版本。但啟動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
版本相容的版本中。