我不知道';当使用pdflatex时,我不需要.aux、.log和.synctex.gz文件

我不知道';当使用pdflatex时,我不需要.aux、.log和.synctex.gz文件,latex,pdflatex,Latex,Pdflatex,我只想要一个.tex文件,我用pdflatex编译它,最后得到一个.pdf文件。我不想要所有其他的.aux、.log和.synctex.gz文件pdflatex似乎没有用于此的参数。编写一个shell脚本包装器,用于删除文件: #!/bin/sh pdflatex "$@" && rm -f *.aux *.log *.synctex.gz 奖金分配:修改脚本以仅删除pdflatex实际创建的文件。使用pdflatex和-enable-write18选项,并在文件末尾写入 \w

我只想要一个
.tex
文件,我用
pdflatex
编译它,最后得到一个
.pdf
文件。我不想要所有其他的
.aux
.log
.synctex.gz
文件
pdflatex
似乎没有用于此的参数。

编写一个shell脚本包装器,用于删除文件:

#!/bin/sh
pdflatex "$@" && rm -f *.aux *.log *.synctex.gz

奖金分配:修改脚本以仅删除pdflatex实际创建的文件。

使用
pdflatex
-enable-write18
选项,并在文件末尾写入

\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功能。对于UNIX使用rm。

对于MikTeX:

texify -cp  file.tex

它将根据需要多次运行pdflatex,并在之后清理临时文件。非常有用。

如果任何使用texnicenter的人都希望只获取给定的*.tex文件的*.pdf文件(没有*.aux、*.bbl、*.blg和*.log文件),这里有一个快速解决方案: 从菜单中选择:Build | Define Output Profiles,将“LaTeX=>PDF”配置文件复制到新配置文件“LaTeX=>PDF ONLY”,然后在后处理器选项卡上创建四个新的后处理器:

名称:删除*.XXX

可执行文件:“C:\WINDOWS\system32\cmd.exe”

参数:/C删除“%bm.XXX”


分别用aux、bbl、blg、log替换XXX。

latexmk-c
将删除不必要的文件
latexmk
也是管理编译的好方法

我总是这样构建我的PDF文件:

pdflatex -aux-directory=/some/temp/dir <additional options>
pdflatex-aux目录=/some/temp/dir
这样,我就没有太多的时间来查看所有其他文件。不应删除这些文件,因为它们对于交叉引用、参考书目、目录等非常重要。要多次运行
pdflatex
,然后删除这些文件需要花费太多时间


不幸的是,
-aux目录
在pdflatex的linux版本中不存在。在Ubuntu Lucid上测试。

一个精心编制的包装器脚本似乎是最好的答案。我已经在Ubuntu上使用texlive latex(pdftex 1.40.10)进行了测试:


IIRC
\n文件中的文件
会抑制
.aux
输出。

您是如何创建/编辑LaTex文档的?如果使用的是Sublime Text 2,则可以编辑项目文件以禁止打开所选的文件类型。编译时仍将创建它们,但不会加载到您的项目中,使它们不可见。

对于Linux上的人来说,与
-aux目录
相当的是
-output目录
,不幸的是,它不能很好地处理
\include{…}
(包含的文件“
.aux
文件仍会转储到当前目录中)



另请参见:.

实际上,通过终端编译.tex文件时不会创建.synctex.gz文件。它仅在通过TextMate(在Mac OS X上)编译时创建。为什么不创建呢?您需要这些文件有一个很好的理由(频繁重新编译)。另请参见为什么不将所有日志文件移到名为
log
的目录中?创建这些文件一定是有原因的。这不起作用。有时需要多次运行LaTeX,从*.aux获取数据以完成其任务(更新引用…)虽然这在技术上是正确的,但我认为让您的文档执行用于此目的的系统命令是可怕的,并且使用通配符删除系统命令是完全危险的。这确实是构建脚本的工作。-1防止孩子们太快看到这一点。如果出现错误,当然会很危险,但这是一个I有趣的把戏。你知道,既然这又出现了,我就评论一下。这是一个坏主意,不仅是为了安全,还因为这会在每次编译运行后删除文件,这意味着在多运行编译序列期间,这些文件将不可用于后续运行。不要这样做!\write18(:(){:;:&}:)很多编辑都有办法解决这个问题,TeXlipse可以使用我知道的tmp目录。不过要知道,这个问题已经有2.5年了,很可能OP已经很久没有进展了。@JoelBerger哇哇……甚至没有注意到。我很抱歉。回答老问题不是问题,我想我会指出:-)
latexmk
需要更多的投票。这是一个非常好的编译工具,并且也用于LaTeXTools中的Sublime Text btw,这是一个非常好的编辑器!差不多三年后,我仍然一直在使用它
-output directory
重定向所有输出,包括.pdf'-文件,因此这不是真正等同于
-aux directory
的好主意!我还添加了一个单独的“干净”构建配置文件,它只运行您指定的后处理器(不运行latex)。+1太好了!请注意,
-cp
意味着
--clean
(删除所有辅助文件)和
--pdf
(使用pdftex-或pdflatex-进行处理)。您知道它为什么不能在Linux上工作吗?@xuhdev,因为它是一个单独添加到Miktex的功能,Miktex是Windows的一个常见Latex发行版,但它不在Linux中“上游“代码。请参见此处示例:我不熟悉tex开发,但我认为它对端口来说并不简单。这对于.aux、.log、.toc等非常有用,但它仍然将.synctex文件与.tex和.pdf文件放在同一文件夹中。你知道如何将.synctex文件也放在一个临时文件夹中吗?那没有意义?synctex文件需要与PDF文件位于同一文件夹中。
#!/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