我不知道';当使用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