LaTeX. Утилита latexmk
LaTeX. Утилита latexmk.
Содержание
1 Общая информация
- Сайт: https://www.cantab.net/users/johncollins/latexmk/index.html
- CTAN: https://www.ctan.org/tex-archive/support/latexmk
2 Основные возможности
Автоматическое определение зависимостей
- Анализирует файлы
.fls
,.log
и.aux
для выявления зависимостей между исходными файлами, что позволяет эффективно управлять повторными запусками компиляторов.
- Анализирует файлы
Поддержка различных форматов вывода
- Генерирует документы в форматах PDF, DVI, PS, включая возможность прямого создания PDF через
pdflatex
или последовательностьlatex → dvips → ps2pdf
.
- Генерирует документы в форматах PDF, DVI, PS, включая возможность прямого создания PDF через
Непрерывный предпросмотр
- Опция
-pvc
(preview continuously) автоматически обновляет предварительный просмотр при изменении исходных файлов.
- Опция
Управление библиографиями
- Автоматически выбирает между
BibTeX
иbiber
в зависимости от настроек документа.
- Автоматически выбирает между
Очистка временных файлов
- Команды
-c
и-C
удаляют вспомогательные файлы (.aux
,.log
,.bbl
и др.), сохраняя при этом итоговые документы.
- Команды
Автоматизация повторных запусков
- Определяет необходимое количество компиляций для разрешения перекрёстных ссылок, библиографических записей и других зависимостей.
Поддержка нестандартных задач
- Позволяет добавлять пользовательские зависимости через конфигурационные файлы (например, для генерации глоссариев или конвертации EPS в PDF).
Интеграция с инструментами
- Работает с
makeglossaries
,makeindex
и другими программами, автоматизируя сложные рабочие процессы.
- Работает с
3 Примеры использования
# Базовая компиляция в PDF
latexmk -pdf document.tex
# Принудительное завершение при ошибках
latexmk -f document.tex
# Непрерывный предпросмотр с обновлением PDF
latexmk -pvc -pdf document.tex
# Очистка всех временных файлов
latexmk -C
4 Примеры запуска latexmk
- Простой запуск:
latexmk
Это запускает LaTeX для всех
.tex
файлов в текущем каталоге с использованием вывода формат, указанных в файле конфигурации.Получить
.pdf
файл:
latexmk -pdf
- Получить
ps
, а затемpdf
:
latexmk -pdfps
- Скомпилировать только один конкретный
.tex
-файл в текущем каталоге:
latexmk myfile.tex
- Если вы хотите предварительно просмотреть полученные выходные файлы:
latexmk -pv
5 Очистка
- После запуска LaTeX текущий каталог загрязнён временными файлами; нужно удалить их:
latexmk -c
- Это не удаляет последний
.pdf
,.ps
,.dvi
файлы. Чтобы их удалить:
latexmk -C
6 Глобальный файл конфигурации
- В Linux можно поместить свои конфигурации в
$HOME/.latexmkrc
, который может содержать что-то вроде этого:
$dvi_previewer = 'start xdvi -watchfile 1.5';
$ps_previewer = 'start gv --watch';
$pdf_previewer = 'start evince';
7 Локальный файл конфигурации
Можно поместить файл конфигурации в текущий каталог.
Настройки влияют только на файлы в текущем каталоге.
Файл конфигурации должен называться
latexmkrc
или.latexmkrc
.Чтобы указать, какой формат файла вы хотите вывести: pdf или ps:
$pdf_mode = 1; # tex -> pdf
$pdf_mode = 2; # tex -> ps -> pdf
$postscript_mode = 1; # tex -> ps
- Если работа разделена на несколько файлов, необходимо указать основной файл:
@default_files = ('main.tex');
- Можно обработать несколько файлов:
@default_files = ('file-one.tex', 'file-two.tex');
Если не указать
@default_files
, будут использованы все.tex
-файлы в текущем каталоге.Cоздать номенклатуру (пакет
nomencl
) с помощью глоссария:
@cus_dep_list = (@cus_dep_list, "glo gls 0 makenomenclature");
sub makenomenclature {
system("makeindex $_[0].glo -s nomencl.ist -o $_[0].gls"); }
@generated_exts = (@generated_exts, 'glo');
- Преобразовать рисунки в формате
eps
в форматpdf
:
@cus_dep_list = (@cus_dep_list, "eps pdf 0 eps2pdf");
sub eps2pdf {
system("epstopdf $_[0].eps"); }
- Включить опцию оболочки
\write18
:
$latex = 'latex -interaction=nonstopmode -shell-escape';
$pdflatex = 'pdflatex -interaction=nonstopmode -shell-escape';
- Явно указать расширения временных файлов:
$clean_ext = "bbl nav out snm";