隐藏特定的输出文件:即 .aux 和 .log 文件

隐藏特定的输出文件:即 .aux 和 .log 文件

是否可以隐藏 .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 读回的文件hyperreflog经常由编辑器和 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

相关内容