考虑以下代码段
env = Environment()
env.PDF(target="personal_statement.pdf", source="personal_statement.tex")
env.Command("documents/personal_statement.pdf", "personal_statement.pdf", Copy('$TARGET', '$SOURCE'))
如果我将target
中的env.PDF
设置为“documents / personal_statement.pdf”,则LaTeX编译将在“documents / personal_statement.pdf”中进行。我只想要最终输出,即“personal_statement.pdf”出现在“documents / personal_statement.pdf”中。
目前我分两步完成这项工作。步骤1:编译文件,步骤2:将生成的PDF移动到另一个目录。
是否有一种方法可以一步完成,而不是使用两个步骤?
答案 0 :(得分:1)
分两步执行此操作的限制与pdflatex而非SCons更相关。 pdflatex具有-output-directory
选项,但它会将所有内容(包括所有临时文件)写入该目录。
虽然您的示例代码段可能有效,但我认为更典型的方法是使用“安装”构建器。
env = DefaultEnvironment()
dst = env.PDF("personal_statement.tex")
inst = env.Install("documents",dst)
Default(inst)