使用 scons 将构建产品移动到不同的目录

发布于 2024-12-10 20:30:20 字数 522 浏览 0 评论 0原文

考虑以下代码片段

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

如果我将 env.PDF 中的 target 设置为“documents/personal_statement.pdf”,则 LaTeX 编译发生在“documents/personal_statement.pdf”中。我只希望最终输出,即“personal_statement.pdf”出现在“documents/personal_statement.pdf”中。 目前我分两步进行。步骤1:编译文件,步骤2:将生成的PDF移动到另一个目录。 有没有一种方法可以一步完成这一任务,而不是使用两步?

Consider the following snippet

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

If I set target in env.PDF to "documents/personal_statement.pdf", the LaTeX compilation happens in "documents/personal_statement.pdf". I want only the final output, namely "personal_statement.pdf" to be present in "documents/personal_statement.pdf".
Currently I am doing this in two steps. Step 1: compile the file, Step 2: move the resulting PDF to another directory.
Is there some way of accomplishing this in one step instead of using two steps?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盛夏已如深秋| 2024-12-17 20:30:20

分两步执行此操作的限制更多地与 pdflatex 有关,而不是与 SCons 有关。 pdflatex 有 -output-directory 选项,但它会将所有内容(包括所有临时文件)写入该目录。

虽然您的示例片段可能有效,但我相信更典型的方法是使用安装构建器。

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

The limitation of doing this in two steps is more related to pdflatex rather than SCons. pdflatex has the -output-directory option, but it will either write everything (including all of the temporary files) to that directory.

While your example snippet may work, I believe the more typical approach is to use the Install builder.

env = DefaultEnvironment()
dst = env.PDF("personal_statement.tex")
inst = env.Install("documents",dst)
Default(inst)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文