将 TeX 输出“捆绑”到目录中

将 TeX 输出“捆绑”到目录中

(我个人对这个问题的兴趣主要在于 OS X,但我也赞赏针对其他操作系统的解决方案/方法。)

我认为使用 TeX/LateX 的主要问题是它在感兴趣的文件下面创建了太多辅助文件。特别是,当浏览文件夹以查找要打印的特定文件时,我只对生成的 PDF 文件感兴趣。当然,使用 Word 和 OpenOffice 文件更容易做到这一点;您可以在一个目录中拥有数百个这样的文件,然后快速查看它们。

由于每个文件夹只有一个文档是一种很好的做法,我想知道是否有一个工具可以使该文件夹成为一个捆绑包,从而对 Finder 隐藏其内容并仅打开 PDF 文件。

或者是否有 TeX 编辑器将此技术用于其项目文件?处理文件系统上的这种干扰的最佳方法是什么?

编辑:
为了澄清一下,我不太想删除辅助文件或将它们放在其他地方。问题是,即使有 makefile 和 clean 目标或删除所有辅助文件的特殊命令,我仍然需要为每个 PDF 目标设置一个单独的文件夹。只是因为当每个目录中有多个文档时,事情会变得越来越混乱。只是文件夹以其独特的方式分散了注意力。您无法真正预览它们的内容(例如 PDF),实际上 OS X finder 看起来并不是为仅包含文件夹的文件夹设计的,但那是另一回事。

我只想让文件系统的 GUI 层以与显示.app捆绑包相同的方式显示我的 latex 文档文件夹。(或者 XML Word/OpenOffice 文件,当然,只是这些文件被主动捆绑在 zip 容器中,但原理是相似的。)

答案1

您可以为辅助文件和输出文件指定不同的目录。

  -aux-directory=DIR              Use DIR as the directory to write auxiliary
                                  files to.
  -output-directory=DIR           Use DIR as the directory to write output
                                  files to.

这些是 MikTeX 选项名称。它们在您的 TeX 发行版中可能有不同的名称。

或者,在 Makefile 中定义一个 :clean 目标。

答案2

Mac OS X 包只不过是一种特定的目录结构。Finder 会将某些包(例如应用程序包)显示为单个文件。请参阅文档了解详情。

也就是说,我能够将 pdf 打包到应用程序包中。

$ ls -R paper.app
paper.app:
Contents

paper.app/Contents:
Info.plist  MacOS  Resources

paper.app/Contents/MacOS:
paper

paper.app/Contents/Resources:
paper.pdf

$ cat paper.app/Contents/Info.plist 
{
        CFBundleExecutable = paper;
        CFBundleSignature = THth;
        CFBundlePackageType = APPL;
        CFBundleVersion = "1.0";
        CFBundleIdentifier = "foo.bar";
        CFBundleDisplayNam = paper;
        CFBundleName = paper;
}

$ cat paper.app/Contents/MacOS/paper 
#!/bin/sh
dir="`dirname $0`"
open "$dir"/../Resources/paper.pdf

因此,您可以在里面进行构建,然后在 Finder 中paper.app/Contents/Resources双击打开您的 pdf。paper.app

但我不认为这有什么特别的用处。

答案3

Jerome Laurens 在 iTeXMac 中编写了一个规范来执行此操作:http://www.tug.org/TUGboat/Articles/tb27-0/laurens.pdf

苹果电脑我相信已经不再开发了,但我一直很喜欢这个想法。

答案4

这是另一个类似问题的答案,有一个基本应用程序,为 .texd 文件夹提供简单的捆绑支持。您可能会对它感兴趣。

相关内容