我是一名高中数学老师,我一直在使用 TeX 创建测试、测验和工作表。我在装有 TeXShop 的 Mac OS X El Capitan 上。我在主目录中创建了一个 TeX 文件夹,并且为每门课程(AP Calc、Regular Calc 和 Precalc)创建了子文件夹。当我在 AP Calc 文件夹中创建 .tex 文件时,所有临时/构建文件和 PDF 文件都位于该文件夹中。我希望在每个课程文件夹中都有一个子文件夹来放置所有构建文件:
/Tex /AP Calc /Build /Regular Calc /Build /Precalc /Build
我一直在阅读如何更改“首选项”->“引擎”->“pdfLaTeX”->“LaTeX”行以将 PDF 输出到课程文件夹并将构建文件输出到构建文件夹,但尚未成功。
希望在出现太多混乱之前找到解决方案......
答案1
TeX Live(以及 MikTeX)提供的 pdfTeX 实现不支持将 PDF 输出到一个目录,而将其他生成的文件输出到另一个目录。
它是可以输出全部将生成的文件复制到工作目录以外的目录。例如,假设filename.tex
在工作目录中,那么我们可以out
为生成的文件创建一个子目录。
mkdir out
然后
pdflatex --output-directory=out filename.tex
将会输出所有生成的文件到out/
。
$ ls
filename.tex out/
$ ls out
filename.aux filename.log filename.pdf
在 TeXShop 的情况下,您可以做的是修改引擎,以便 PDF 自动移回工作目录。
mv -f out/filename.pdf ./
会将生成的文件移回工作目录。(显然,您可能希望使用相关的 TeXShop 变量,而不是,filename
但我没有可用的 TeXShop,所以我不确定它是否与我的编辑器的相同。)
请注意,这将覆盖filename.pdf
工作目录中现有的任何内容,因此应谨慎使用。除非您对脚本有信心,否则使用以下方法会更安全
[[ -e "filename.pdf" ]] && mv filename.pdf out/filename.pdf.$$
mv -n out/filename.pdf ./
并从输出目录中手动删除无效的 PDF。
然而,尽管这一切都是可能的,我强烈建议根本没做。当所有事物都处于默认预期的位置时,事情就会变得简单得多。
不仅 pdfTeX,而且所有其他参与创建文档的程序都必须能够找到生成的文件,包括脚本(如)makeglossaries
和二进制文件(如 Biber)makeindex
、、epstopdf
图像外部化、某些形式的逐字列表等等。所有写入和读取文件(默认情况下,都在工作目录中)。
列出目录后,目录可能看起来更整洁,但复杂性增加的代价很高。TeX 错误很难追踪,更不用说增加可避免的复杂性了!