
在某些情況下,我讀過諸如“在文件上運行 Latex,然後運行 Bibtex,然後再次運行 Latex...”之類的說明。我使用 TeXstudio 作為編輯器,在編譯任何 tex 程式碼時,我只需按編譯按鈕即可。這背後發生的事情對我來說並不重要,因為我想要的 pdf 已經創建了。現在我正在使用.bib
文件進行引用,我遇到了一個問題,解決方案與上面相同。但我該怎麼做呢?我只知道編譯按鈕。如何從 Bibtex 單獨運行 Latex 以及從 Latex 單獨運行 Bibtex?當只需按下“編譯”時,兩者中的哪一個正在運行?
答案1
“編譯”按鈕正在運行預設編譯序列。聽起來這可能是你的情況下的 pdfLaTeX 。 (如果您願意,您可以更改此設定 - 許多編輯器允許您自訂預設值。)
要產生參考書目,您需要查看文件中的內容。您如何管理參考文獻?如果您使用諸如
\bibliographystyle{stylename}
\bibliography{bibfilename}
然後你需要運行
pdflatex
->bibtex
->pdflatex
->pdflatex
如果你有這樣的事情:
\usepackage{biblatex}
\addbibresource{bibfilename.bib}% or \bibliography{bibfilename}
...
\printbibliography
然後你需要運行
pdflatex
->biber
->pdflatex
->pdflatex
可以bibtex
與 with 一起使用biblatex
,但不是預設值。除非你有
\usepackage[backend=bibtex]{biblatex}
你不需要擔心這個。如果您確實使用此選項,則將使用bibtex
上面的編譯順序而不是上面的編譯順序biber
。
若要執行編譯,您可以使用命令列或編輯器。大多數編輯器都有帶有非預設編譯選項的按鈕或選單。儘管 pdfLaTeX 是預設的,但可能有一個用於 bibTeX(也許還有 biber)的按鈕或選單選項。您可能可以進一步自訂內容以適合您的工作流程。
答案2
這是我喜歡使用的技巧:
在專案的根目錄中建立一個名為eg的python腳本
compile_refs.py
,並將以下程式碼貼到其中:#!/usr/bin/python import subprocess, sys commands = [ ['pdflatex', sys.argv[1] + '.tex'], ['bibtex', sys.argv[1] + '.aux'], ['pdflatex', sys.argv[1] + '.tex'], ['pdflatex', sys.argv[1] + '.tex'] ] for c in commands: subprocess.call(c)
當您想編譯引用時,只需執行:
python compile_refs.py main_file_name
。
答案3
這是一個有用的工具,Makefile
您可以使用它來自動化 中所述的編譯過程CFR 的回答:
DOCNAME=report
all: report
.PHONY: clean
report:
pdflatex $(DOCNAME).tex
bibtex $(DOCNAME).aux
pdflatex $(DOCNAME).tex
pdflatex $(DOCNAME).tex
view: report
open $(DOCNAME).pdf
clean:
rm *.blg *.bbl *.aux *.log
Makefile
只需將其貼到與主 .tex 檔案位於同一目錄中的檔案中,並將report
變數定義替換DOCNAME=report
為檔案的名稱即可。
然後您可以按如下方式使用它:
make
或make report
將從 TeX 來源建立 PDF 文件。make view
將建立 PDF(如果尚未建立)並使用系統預設 PDF 檢視器將其開啟。make clean
將清理 PDF 建立過程中所建立的中間文件。
如果您需要使用biber
而不是bibtex
,只需將呼叫替換bibtex
為呼叫即可biber
。
答案4
如果您使用的是 TEXSTUDIO。前往:設定 --> 編譯並透過等待每個步驟的執行來執行:
1.pdf乳膠. --> 2 bibtex . --> 3 pdflatex 。 --> 4 pdflatex 。