2010-05-27 32 views
5

編譯乳膠文檔時,編譯器會發出大量「對象」文件。這混亂了我正在工作的目錄,並且很難像SVN一樣使用VCS。當我使用C++代碼工作時,我爲代碼和對象提供了單獨的目錄,我可以在源目錄上運行make,但.o文件轉到構建目錄。執行乳膠文檔的單獨編譯

有沒有一種合適的方式來執行與Latex文檔分開的編譯?可以通過使用Makefile或將選項傳遞給latex編譯器來完成嗎?

感謝

回答

4

您可以使用目錄結構:

pdflatex --output-directory=tmp file.tex 

,所有的文件將被存儲在文件夾tmp(PDF格式包括在內)。

因爲這不是一個最佳的解決方案,所以我製作了我自己的工具pydflatex,它通過存儲輔助文件(使用上面的技巧)編譯LaTeX源文件,並將pdf返回到當前目錄,所以在編譯你的目錄中只有file.texfile.pdf。這對版本控制起到了很好的作用。

+0

乳膠命令也有這個--output-directory選項,謝謝 – tonicebrian 2010-06-29 15:13:33

+1

確切地說,'pdflatex'和'latex'都是到主命令'pdftex'的符號鏈接,所以它們有相同的選項。順便說一下,我不認爲現在使用'latex'命令(vs'pdflatex')的興趣不大,因爲pdf現在已經完全取代了dvi。 – 2010-06-30 10:15:08

2

我不禁大爲乳膠(作爲最後用戶認真對待20年前;-),但對於Subversion,你應該在svn:ignore財產讀 - 它可以很容易忽略帶有擴展名的文件而不是想要的版本(目標文件,Python中的字節碼文件通常可以放在與源文件相同的目錄中,一些文本編輯器使用的備份文件,& c)。

+0

顛覆是一個問題,但不是重要的問題。您可以使用svn:ignore,但是您必須在每個文檔上指定該屬性並且它不是最優的。其他讓我困擾的問題是,使用shell無法自動完成,因爲所有具有不同擴展名的文件名相同,或者在Latex變得混亂時只是rm「對象」文件。 – tonicebrian 2010-06-29 15:10:07

0

Latex在主文檔所在的目錄中生成臨時文件。如果您希望將內容放置在不同的位置,請嘗試使用下面的主文件。

\documentclass{article} 
\input{src/maindocument.tex} 

使用這種方法,你可以保持像下面

/ 
    main.tex 
    /src 
     maindocument.tex 
0

除了上面的兩個選項。

  1. 使用Lyx:它照顧單獨的文件。我認爲它將Latex文件複製到它自己的私人目錄並在其上運行乳膠。在任何情況下,當前目錄中都不會創建任何內容。
  2. 使用makefile或其中一個特殊的Latex make程序,並讓您的常規目標運行make clean