Bibtex、Latex 編譯

Bibtex、Latex 編譯

在某些情況下,我讀過諸如“在文件上運行 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

這是我喜歡使用的技巧:

  1. 在專案的根目錄中建立一個名為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)
    
  2. 當您想編譯引用時,只需執行: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為檔案的名稱即可。

然後您可以按如下方式使用它:

  1. makemake report將從 TeX 來源建立 PDF 文件。
  2. make view將建立 PDF(如果尚未建立)並使用系統預設 PDF 檢視器將其開啟。
  3. make clean將清理 PDF 建立過程中所建立的中間文件。

如果您需要使用biber而不是bibtex,只需將呼叫替換bibtex為呼叫即可biber

答案4

如果您使用的是 TEXSTUDIO。前往:設定 --> 編譯並透過等待每個步驟的執行來執行:

1.pdf乳膠. --> 2 bibtex . --> 3 pdflatex 。 --> 4 pdflatex 。

相關內容