編譯 arXiv LaTeX 原始檔時出現問題

編譯 arXiv LaTeX 原始檔時出現問題

我使用 LaTeX 來寫論文。我在 Windows XP 電腦上使用 TeXworks/MiKTeX。當我編寫 LaTeX 程式碼時,我可以使用“pdfLaTeX+MakeIndex+BibTeX”毫無問題地編譯它。

但是如果我從 arXiv 下載 LaTeX 原始程式碼並嘗試使用“pdfLaTeX+MakeIndex+BibTeX”編譯它,它將無法工作。我收到錯誤“!未定義的控制序列”。

但是,如果我使用“pdfLaTeX”而不是“pdfLaTeX+MakeIndex+BibTeX”,那麼從 arXiv 編譯 LaTeX 原始碼就沒有任何問題。

為什麼會發生這種情況? 「pdfLaTeX+MakeIndex+BibTeX」和「pdfLaTeX」有什麼不同?

我問這些問題的原因是我想對我的一篇 arXiv 論文進行一些小的更改,因此我將下載 LaTeX 原始程式碼並在那裡進行更改。我想我必須使用“pdfLaTeX”來編譯原始程式碼,但我想確保論文中沒有進行不需要的更改。

從 arXiv 下載的 LaTeX 原始檔似乎沒有 .tex 副檔名。它們似乎屬於不同的類型(我猜這是由於 arXiv 處理造成的),但無論如何我可以使用 TeXworks 打開它們,沒有任何問題。

答案1

嘗試將.tex擴展名重新加入到檔案中。我不確定為什麼 arXiv 會刪除它,但許多編輯器會假設在運行編譯序列時它就在那裡。

要明白我的意思,請比較 pdfLaTeX 和 BibTeX 的編譯:

$ pdflatex myfile.tex
$ bibtex myfile

請注意,bibtex不需要檔案副檔名,因為它也會查看 LaTeX 運行產生的檔案。像 TeXworks(毫無疑問,還有其他)這樣的編輯器會自動為您執行這些序列,但這需要它知道擴展名在哪裡,以便可以刪除。當沒有要刪除的擴充功能時,就會出現歧義:

$ pdflatex myfile
$ bibtex myfile

這些程式之一很可能發現了「錯誤」myfile,導致了您看到的錯誤。 (例如,查看aux文件內部;pdflatex直接在此文件上運行肯定會引發錯誤。)

相關內容