I just want to have a .tex
file which I compile with pdflatex
and end up with a .pdf
file. I don't want all the other .aux
, .log
and .synctex.gz
files. pdflatex
doesn't seem to have arguments for this.
10 回答
latexmk -c
将删除不必要的文件。latexmk
也是管理编译的好方法!
我总是像这样构建我的 PDF 文件:
pdflatex -aux-directory=/some/temp/dir <additional options>
这样,我就不会看到所有其他文件。这些文件不应该被删除,因为它们对于交叉引用、参考书目、目录等很重要。运行pdflatex
几次然后删除文件需要太多时间。
不幸的-aux-directory
是,在 pdflatex 的 linux 版本中不存在。在 Ubuntu Lucid 上测试。
对于 Linux 上的人来说,相当于-aux-directory
似乎是-output-directory
,不幸的是它不能很好地使用\include{...}
(包含文件的.aux
文件仍然被转储到当前目录中)。
另请参阅:手册页。
如果任何使用TeXnicCenter的人都希望只为给定的 *.tex 文件(没有 *.aux、*.bbl、*.blg 和 *.log 文件)获取 *.pdf 文件,这里有一个快速的解决方案:选择从菜单中:构建 | 定义输出配置文件,将"LaTeX => PDF"配置文件复制到新配置文件"LaTeX => PDF ONLY",然后在后处理器选项卡上创建四个新的后处理器:
名称:删除*.XXX
可执行文件:“C:\WINDOWS\system32\cmd.exe”
参数:/C del "%bm.XXX"
将 XXX 分别替换为 aux、bbl、blg、log。
对于 MikTeX:
texify -cp file.tex
它将根据需要运行 pdflatex 多次,然后清理临时文件。很有用。
精心设计的包装脚本似乎是最好的答案。这些方面的东西,我在 Ubuntu 上使用 texlive-latex (pdftex 1.40.10) 进行了测试:
#!/bin/bash
TMPDIR=$(mktemp -d)
trap "rm -fr $TMPDIR; exit 255;" SIGINT SIGTERM SIGKILL
/usr/bin/latex -interaction=batchmode -output-directory=$TMPDIR $1
cp $TMPDIR/$1.dvi .
rm -fr $TMPDIR
您文件中的IIRC\nofiles
会抑制.aux
输出。
编写一个删除文件的 shell 脚本包装器:
#!/bin/sh
pdflatex "$@" && rm -f *.aux *.log *.synctex.gz
奖励分配:修改脚本以仅删除 pdflatex 实际创建的文件。
您如何创建/编辑您的 LaTex 文档?如果您使用的是 Sublime Text 2,您可以编辑项目文件以禁止打开您选择的文件类型。它们仍然会在编译时创建,但不会加载到您的项目中,从而使它们不可见。
使用选项pdflatex
并-enable-write18
在 LaTeX 文件末尾写入
\write18{del *.aux}
\write18{del *.log}
\write18{del *.gz}
或更贵
\write18{del \jobname.aux}
\write18{del \jobname.log}
\write18{del \jobname.synctex.gz}
\write18{del \jobname.toc}
\write18{del \jobname.loc}
del
是一个DOS函数。用于rm
UNIX。