(我个人对这个问题的兴趣主要在于 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 文件夹提供简单的捆绑支持。您可能会对它感兴趣。