答案1
借助 tex 编辑器,这项工作可能很容易完成。使用 winedt,可以这样做(仅适用于 miktex):
进入 winedt 菜单Options ---> Execution Modes
。在打开的窗口中选择TeX Options
:
按照图片所示进行修改。 给出OK
并出来。 现在,所有辅助文件都将存储在TeXAux
主文件夹内的文件夹中。 如果取消选中该框,TeXAux
则将创建目录(如果该目录尚不存在)。 因此,您的主目录不会变得混乱。
其他编辑器可能也有类似的选项,但不幸的是我对它们不太了解:-(
附录
以下是 Karl Koeller(winedt 及其宏的重要贡献者)的一封个人邮件:
我只是想让你注意到,WinEdt(从最新的 6 个版本开始)使用自己的算法(由我编写)来管理 TeXAux 文件夹中的辅助文件。换句话说,它不使用某些 miktex 应用程序提供的 --aux-directory 命令行开关(请参阅 WinEdt 手册索引中的“辅助文件夹”)。
这意味着此功能不依赖于您使用的 TeX 系统。TeX Live 用户也可以利用此功能。
因此,从 winedt 6 开始,texlive 也具备此功能。
纺织机械商
前往Options ---> Configure Texmaker
获取窗口:
勾选如图所示的方框,然后按OK
就可以出来了。现在全部输出文件(不幸的是包括 pdf 文件)将存储在build
主文件夹内的文件夹中。
轻松清理辅助文件
如果一切都归结为清理辅助文件,那么可以解决阿拉拉。它的手册非常出色,值得一读。您必须添加clean
以下指令:
% arara: clean: {files: [yourfile.aux, yourfile.idx, yourfile.ilg, yourfile.ind, yourfile.log, yourfile.bbl, yourfile.bcf, yourfile.ist, yourfile.blg, yourfile.run.xml]}
您可以随意添加要清理的文件。一组正常的指令可能如下所示:
% arara: pdflatex: {synctex: yes}
% arara: makeindex
% arara: biber
% arara: pdflatex: {synctex: yes}
% arara: pdflatex: {synctex: yes}
% arara: clean: {files: [yourfile.aux, yourfile.idx, yourfile.ilg, yourfile.ind, yourfile.log, yourfile.bbl, yourfile.bcf, yourfile.ist, yourfile.blg, yourfile.run.xml]}
%\documentclass{article}
.
.
.
然后通过发出 编译你的文档arara yourfile
。你必须确保 arara 已安装并且位于系统路径中。
答案2
显然,Nautilus 有一个不太为人所知的功能(如果您使用 Ubuntu,您可能会使用它;)),您可以在某个.hidden
目录中的文件中放入文件名列表(没有通配符!),每行一个;然后 Nautilus 将不会显示这些文件(您可能需要刷新 Nautilus 中的视图才能使此功能生效)。然后,创建此文件只需要一些简单的脚本。例如,类似
#!/bin/bash
# make LaTeX intermediate files in the current directory hidden in Nautilus
ls *.aux *.log *.toc &> /dev/null >> .hidden
sort .hidden | uniq > .hidden-new
mv .hidden-new .hidden
现在您可以在使用 TeX 处理任何文件之后调用这样的脚本。
(重要提示:您可以使用此处提供的脚本,但仅需您自行承担风险- 我的 bash-fu 比我的 TeX-fu 弱多了;)!)
另外,Emacs(我正在使用它 - 反正没有其他选择,因为它是现存最好的文本编辑器)有一个变量completion-ignored-extensions
这样当你发现(意思是开幕在 emacspeak 中)文件时,自动完成功能不会考虑以指定扩展名结尾的文件(默认值相当合理,因此您可能根本不需要对其进行修改)。
最后,如果你使用 Emacs(你真的应该使用),你可能想了解dired-x
Dired 模式的扩展,其中包括一个名为省略文件(可使用后缀和/或正则表达式进行配置)其功能与 Nautilus.hidden
文件相同,但更好 - 它正常运行™在所有目录中,而无需创建任何外部文件。(编辑:似乎至少在 Ubuntu 中,dired-x
开箱即用;当dired
进入目录时,您可以按 来M-o
切换隐藏所有“不感兴趣”的文件。您也可以查看文档以了解如何默认启用此功能。)
编辑:今天我向一位朋友展示了这个小 bash 脚本,我们注意到最后两行或多或少是多余的。我认为一个更简单的脚本也可以做到:
#!/bin/bash
# make LaTeX intermediate files in the current directory hidden in Nautilus
ls *.aux *.log *.toc &> /dev/null >> .hidden
答案3
如何处理所有*.aux、*.log、*.toc 文件以及类似的文件?
当 pdfLaTeX 编译 *.tex 文件时,您会不时收到一条错误消息,让您摸不着头脑,想知道到底出了什么问题。而将辅助文件隐藏在某处,除了所有其他原因外,还会增加错误源。
大多数人都喜欢整洁的办公桌。那么如何做才不会让事情变得更复杂呢?
完成后只需删除文件即可。
我的编辑器 (Emacs) 有一个清理功能,当我写完并得到 PDF 时,它会删除所有辅助文件。看看你的编辑器,可能也有类似的东西。
我发现在我的 Windows PC 上非常有用的是一个我称之为“Putzdienst”的 powershell 脚本,我在这里找到了它:http://uweziegenhagen.de/?p=2095并根据我的需求进行定制。“Putzdienst”可以翻译为“清洁服务”。
如果您开始编写自己的脚本,请务必小心不要删除整个文件夹。
答案4
您可以使用 perl 脚本来处理这个问题:
#!/usr/bin/perl
use strict 'vars';
use File::Copy;
&MAIN(@ARGV);
sub MAIN {
## call this by running the following from prompt:
##
## perl perl_code.pl <your_latex_filehandle>
##
my ($filehandle) = @_;
## a list of suffixes generated by LaTeX, you may want to add others
## that you may need for your document.
my @suffixes = qw / aux log toc ps /;
## testing whether filehandle exists and whether it ends in ".tex"
if (( -e $filehandle ) && ($filehandle =~ /\.tex$/)){
my $base_name = $filehandle;
$base_name =~ s/\.tex$//;
## check to see whether there are hidden files that LaTeX needs to know about
## to properly compile file.
foreach my $suffix ( @suffixes ){
my $unhidden = $base_name . "." . $suffix;
my $hidden = ".hidden_" . $unhidden;
if ( -e $hidden){
print "Unhiding: " . $hidden . "\n";
move($hidden, $unhidden) ;
}
}
## make a system call to "pdflatex" (I'm assuming this is the route you're using.
system ("pdflatex $filehandle");
## hide files you want hidden.
foreach my $suffix ( @suffixes ) {
my $unhidden = $base_name . "." . $suffix;
my $hidden = ".hidden_" . $unhidden;
if ( -e $unhidden){
print "hiding: " . $unhidden . "\n";
move($unhidden, $hidden) ;
}
}
} else {
print "\"$filehandle\" does not exist or is not a \".tex\" file.\n";
}
}