2011-10-19 6 views
1

で別のディレクトリにビルド製品を移動すると、私は、「文書/ personal_statement.pdf」にenv.PDFtargetを設定した場合は、LaTeXのコンパイルは、「文書/ personal_statement.pdfに起こる次のスニペットはsconsの

env = Environment() 
env.PDF(target="personal_statement.pdf", source="personal_statement.tex") 
env.Command("documents/personal_statement.pdf", "personal_statement.pdf", Copy('$TARGET', '$SOURCE')) 

を考えてみましょう"私は最終的な出力、すなわち "personal_statement.pdf"だけが "documents/personal_statement.pdf"に存在することを望みます。 現在、私はこれを2つのステップで実行しています。ステップ1:ファイルをコンパイルする。ステップ2:結果のPDFを別のディレクトリに移動する。 2つのステップを使用する代わりに、1つのステップでこれを達成する方法はありますか?

答えて

1

これを2つのステップで行うことの制限は、SConsではなくpdflatexに関連しています。 pdflatexには-output-directoryオプションがありますが、すべてのテンポラリファイルを含めてすべてをそのディレクトリに書き込みます。

例のスニペットはうまくいくかもしれませんが、より典型的なアプローチはインストールビルダを使用することです。

env = DefaultEnvironment() 
dst = env.PDF("personal_statement.tex") 
inst = env.Install("documents",dst) 
Default(inst) 
+0

遅い応答に申し訳ありません。あなたが返事をするまでに、私はこれをやめた。あなたのアプローチは確かに私がやっていたよりもエレガントです。ありがとう。 –

関連する問題