是否可以隐藏 .aux 和 .log 文件?如果可以,最省维护/最简单的方法是什么?它们会造成很多混乱。我有一个文件夹,里面放着一堆 tex 文件,理想情况下我希望只看到 .tex 和输出 .pdf 文件。
附录:我正在使用 Windows 7。
答案1
如果您有一个基于 web2c 的系统,您可以尝试使用 TEXMFOUTPUT
我的副本 texmf.cnf
有
% Write .log/.dvi/etc. files here, if the current directory is unwritable.
%TEXMFOUTPUT = /tmp
但是这样做可能不是一个好主意。.aux
例如,文件需要由 LaTeX 读回,因此如果您设法移动它们,则需要配置 latex 以在非标准位置找到它们。类似的考虑适用于其他辅助文件,例如.bib
、、.bbl
由 等编写的书签文件。即使通常不由 latex 读回的文件hyperref
也log
经常由编辑器和 GUI 等解析,以便它们可以报告和逐步解决错误等。
答案2
这是 LaTeX 内核的一个简单补丁,它将大多数辅助文件移动到子目录(该子目录必须存在)。.log 文件保留在顶部,我不保证我修补了所有必要的内容 :-)。\DeclareAuxDir{directory/}
如果您要directory
保留文件,请指定。
\begin{filecontents}{aux-to-subdir.sty}
\RequirePackage{etoolbox}
\newcommand\DeclareAuxDir[1]{\gdef\AuxDir{#1}}
\let\AuxDir\@empty
% \document can't be patched using etoolbox so this is done manually here
% regexpatch would work but I have to run, so this is the direct version for now
\def\document{\endgroup
\ifx\@unusedoptionlist\@empty\else
\@latex@warning@no@line{Unused global option(s):^^J%
\@spaces[\@unusedoptionlist]}%
\fi
\@colht\textheight
\@colroom\textheight \vsize\textheight
\columnwidth\textwidth
\@clubpenalty\clubpenalty
\if@twocolumn
\advance\columnwidth -\columnsep
\divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
\fi
\hsize\columnwidth \linewidth\hsize
\begingroup\@floatplacement\@dblfloatplacement
\makeatletter\let\@writefile\@gobbletwo
\global \let \@multiplelabels \relax
\@input{\AuxDir\jobname.aux}%
\endgroup
\if@filesw
\immediate\openout\@mainaux\AuxDir\jobname.aux
\immediate\write\@mainaux{\relax}%
\fi
\process@table
\let\glb@currsize\@empty %% Force math initialization.
\normalsize
\everypar{}%
\ifx\normalsfcodes\@empty
\ifnum\sfcode`\.=\@m
\let\normalsfcodes\frenchspacing
\else
\let\normalsfcodes\nonfrenchspacing
\fi
\fi
\@noskipsecfalse
\let \@refundefined \relax
\let\AtBeginDocument\@firstofone
\@begindocumenthook
\ifdim\topskip<1sp\global\topskip 1sp\relax\fi
\global\@maxdepth\maxdepth
\global\let\@begindocumenthook\@undefined
\ifx\@listfiles\@undefined
\global\let\@filelist\relax
\global\let\@addtofilelist\@gobble
\fi
\gdef\do##1{\global\let ##1\@notprerr}%
\@preamblecmds
\global\let \@nodocument \relax
\global\let\do\noexpand
\ignorespaces}
\patchcmd{\@include}
{#1.aux}
{\AuxDir#1.aux}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\patchcmd{\@include}
{\@partaux #1.aux}
{\@partaux \AuxDir#1.aux}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\patchcmd{\@starttoc}
{\jobname}
{\AuxDir\jobname}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\patchcmd{\@starttoc}
{\endcsname \jobname}
{\endcsname \AuxDir\jobname}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\patchcmd{\enddocument}
{\jobname}
{\AuxDir\jobname}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\patchcmd{\makeindex}
{\jobname}
{\AuxDir\jobname}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
\patchcmd{\makeglossary}
{\jobname}
{\AuxDir\jobname}
{\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
% one could also patch \bibliography to load the .bbl file from the dir but I consider a .bbl more as part of a doc
% so not done
\end{filecontents}
\begin{filecontents}{bar.tex}
\section{bar}
test for \ref{foo}
\end{filecontents}
\documentclass{article}
\usepackage{aux-to-subdir}
% declaring the subdir to be used for aux/toc/...
% need to exist
\DeclareAuxDir{./auxfiles/}
\begin{document}
\tableofcontents
\section{foo} \label{foo}
\include{bar}
\end{document}
也许.bbl 文件也应该移到那里...还没完成。
答案3
如果你使用 Linux,那么橡胶IDE 只给你留下 tex 文件和 PDF 文件。Windows 版本目前不稳定。
缺点是 Gummi 会为您提供文档的实时预览,因此较大的文档会降低性能。
答案4
运行>CMD
属性 +h *.aux /s
创建一个隐藏文件类型。我为、、、和做.aux
了这个。非常好。起初我收到 pdfLaTeX 错误“我无法在文件上写入”。我不知道为什么,但我删除了所有这些文件,现在生成的新文件可以写入了。.synctex.gz
.nav
.out
.snm
.toc