买者自负 ...

买者自负 ...

我是一名高中数学老师,我一直在使用 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 错误很难追踪,更不用说增加可避免的复杂性了!

买者自负 ...

答案2

听起来这是一个很好的例子ltx2any. 它是一个 LaTeX 构建包装器,它的一个功能

默认保持主目录干净

这意味着所有构建文件都保存在子文件夹中。乍一看,这听起来类似于联邦法规biber答案,但由于 latex 实际上是在子文件夹中运行的,因此使用其他工具(如etc.)不会出现任何问题。

示例调用:

 ltx2any -t path_where_you_want_the_auxiliary_files_to_go filename.tex 

相关内容