Ответ 1
latexmk -c
удалит ненужные файлы. latexmk
- отличный способ управления компиляцией!
Я просто хочу иметь файл .tex
, который я компилирую с помощью pdflatex
, и в конечном итоге с файлом .pdf
. Мне не нужны все остальные файлы .aux
, .log
и .synctex.gz
. pdflatex
, похоже, не имеет аргументов для этого.
latexmk -c
удалит ненужные файлы. latexmk
- отличный способ управления компиляцией!
Я всегда создаю свои PDF файлы следующим образом:
pdflatex -aux-directory=/some/temp/dir <additional options>
Таким образом, я не вижу всех дополнительных файлов. Эти файлы не должны удаляться, поскольку они важны для перекрестных ссылок, библиографий, оглавления и т.д. Чтобы запустить pdflatex
несколько раз, а затем удалить файлы, требуется слишком много времени.
-aux-directory
, к сожалению, не существует в Linux-версии pdflatex. Протестировано на Ubuntu Lucid. Если кто-либо, использующий TeXnicCenter, имеет такое же желание получить файл *.pdf для данного *.tex файла (без *.aux, *.bbl, *.blg и *.log файлы), вот быстрое решение: Выберите из меню: Сборка | Определите выходные профили, скопируйте профиль "LaTeX = > PDF" в новый профиль "LaTeX = > Только PDF" , затем на вкладке Postprocessor создайте четыре новые постпроцессоры:
Имя: удалить *.XXX
Исполняемый файл: "C:\WINDOWS\system32\cmd.exe"
Аргументы:/C del "% bm.XXX"
Замените XXX на aux, bbl, blg, log соответственно.
Для людей в Linux эквивалент -aux-directory
, как представляется, -output-directory
, к сожалению, он не играет хорошо с \include{...}
(файлы с включенными файлами .aux
все еще сбрасываются в текущий каталог).
Смотрите также: справочная страница.
Для MikTeX:
texify -cp file.tex
Он будет запускать pdflatex столько раз, сколько необходимо и очистить файлы temp впоследствии. Очень полезно.
Лучшим ответом представляется хорошо продуманная оболочка script. Что-то в этом роде, которое я тестировал на Ubuntu с использованием texlive-latex (pdftex 1.40.10):
#!/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
Напишите оболочку оболочки script, которая удаляет файлы:
#!/bin/sh
pdflatex "[email protected]" && rm -f *.aux *.log *.synctex.gz
Бонусное назначение: изменение script только для удаления файлов, фактически созданных pdflatex.
IIRC \nofiles
в вашем файле подавляет вывод .aux
.
Как вы создаете/редактируете документ LaTex? Если вы используете Sublime Text 2, вы можете редактировать файл проекта, чтобы подавить открывающиеся типы файлов по вашему выбору. Они все равно будут созданы после компиляции, но не будут загружены в ваш проект, сохраняя их невидимыми.
Используйте pdflatex
с опцией -enable-write18
и напишите в конце вашего файла LaTeX
\write18{del *.aux}
\write18{del *.log}
\write18{del *.gz}
или более pricise
\write18{del \jobname.aux}
\write18{del \jobname.log}
\write18{del \jobname.synctex.gz}
\write18{del \jobname.toc}
\write18{del \jobname.loc}
del
является DOS-функцией. Используйте rm
для UNIX.