我正在做一个“将文件拖到这里,用 LaTeX 编译”的项目。我有一个Dropbox我想将 .tex 文件放入特定文件夹中,并编写一个脚本帮我编译它。我使用的是 Mac OS X(Snow Leopard)。您能给我一个 .sh 脚本或 Automator 脚本(如果有教程就更好了),让我使用 pdfLaTeX 将我的文档编译成 .pdf 文件吗?
我该如何处理 LaTeX 文档依赖项,如.sty、图像等等?
编辑:我在 SuperUser 上发布了这个问题,我发现了一个关于使用 latexmk+folderactions 的好建议,所以去Dropbox + Latex:自动 pdf 编译 [SU]了解详情。
答案1
您可以向您的 Dropbox 添加一个文件夹操作:当有新内容到达时,它将触发 AppleScript 来触发编译文件的命令。
在 Finder 中,右键单击文件夹。转到服务,然后转到文件夹操作设置。然后您可以选择要执行的操作(您可以添加自己的操作以显示在选项中)。
答案2
只是最近的更新。iPad 上有一款应用程序 - Tex Touch 可以实现这一点。在开发者网站上,它提供了有关如何设置 Dropbox 文件夹的说明,该文件夹带有一个操作,以便同步 iPad 的文件可以在您的家用计算机上编译并以 PDF 格式返回到 iPad。
答案3
您可以.tex
通过键入从命令行编译文件pdflatex file.tex
,假设您的所有资源(图形,样式文件)都在.tex
文件所述的位置。
如果您可以假设这一点,那么您就可以编写一个 shell 脚本来检查目录中的所有.tex
文件,然后,如果相应文件上的时间戳.pdf
较旧,则运行pdflatex
该文件。
这应该只是几行 shell 代码。正如 Caramdir 所建议的,超级用户可以帮助您编写该脚本。
尽管如此,编译仍有可能中断。因此,您必须担心收到这些错误消息,而不是一次又一次地尝试重新编译。
答案4
为了让事情变得更简单,你可以使用橡皮作为编译器。Rubber 会帮你处理所有依赖关系,所以你不需要重新发明轮子。
它是一个命令行工具,因此你可以将它与任何机制结合使用,例如前面提到的文件夹操作(如果你使用的是 Mac)或其他任何机制。你可能想要编写一个包装器来检查退出状态,.log
如果失败,也弹出文件。(或者,由于您使用的是 Mac,所以会弹出 Growl 通知?)