Рабочий процесс: latexmk, git и границы применимости
Заключительный урок: как организовать работу над .tex-проектом и когда LaTeX лучше не использовать.
latexmk — автоматизатор сборки: он сам определяет, сколько раз и в каком порядке запускать движок и BibTeX, чтобы все ссылки и библиография сошлись.
Вы освоили язык — теперь о ремесле: как удобно вести проект, версионировать его, и в каких случаях разумнее взять обычный редактор.
latexmk: одна команда вместо четырёх
Помните цепочку latex → bibtex → latex → latex? latexmk делает её сам — он анализирует, что изменилось, и собирает ровно столько раз, сколько нужно:
latexmk -pdf thesis.tex # собрать pdfLaTeX, все нужные проходы
latexmk -xelatex thesis.tex # то же через XeLaTeX
latexmk -pvc thesis.tex # следить за файлом и пересобирать при сохранении
latexmk -C # удалить все служебные файлыРежим -pvc особенно удобен: вы редактируете .tex в любимом редакторе, а PDF пересобирается автоматически при каждом сохранении — почти как живой предпросмотр Overleaf, но локально.
Версионирование в git
Поскольку .tex — это текст, он идеально ложится в git: видны построчные изменения, можно вести историю, ветки, совместную работу. В репозиторий кладут только исходники, а служебные файлы исключают через .gitignore:
# .gitignore для LaTeX-проекта
*.aux
*.log
*.out
*.toc
*.bbl
*.blg
*.pdfСовет: пишите каждое предложение с новой строки («one sentence per line»). Тогда git-diff показывает изменения по предложениям, а не по целым перевёрстанным абзацам — обзоры правок становятся читаемыми.
Редакторы и среды
| Инструмент | Чем хорош |
| Overleaf | онлайн, ничего не ставить, совместная работа |
| TeXstudio | локальная IDE: подсветка, автодополнение, предпросмотр |
| VS Code + LaTeX Workshop | для тех, кто уже живёт в VS Code |
| Detexify | рисуете символ мышкой — сайт подсказывает команду |
Detexify и Mathpix (распознаёт формулу с фото в LaTeX) экономят массу времени, когда вы не помните команду нужного символа.
Когда LaTeX НЕ нужен
LaTeX — мощный, но не универсальный инструмент. Берите что-то проще, если:
- Документ короткий и без формул — письмо, записка, объявление. Накладные расходы LaTeX не окупятся.
- Нужна живая совместная правка с не-технарями — коллеги в Word/Google Docs не освоят разметку.
- Жёсткий шаблон в .docx обязателен — некоторые издатели и организации принимают только Word.
- Много сложной нелинейной вёрстки (буклеты, реклама) — там удобнее верстальные пакеты (InDesign).
Золотое правило: LaTeX окупается на длинных структурированных документах с математикой, ссылками и библиографией. Для всего остального честно оцените, не проще ли обычный редактор.
Как работает под капотом
latexmk внутри — это умный скрипт: он хранит контрольные суммы вспомогательных файлов и после каждого прохода проверяет, «устаканились» ли номера в .aux и список в .bbl. Пока что-то меняется между проходами, он запускает движок снова; как только всё стабилизировалось — останавливается. Режим -pvc добавляет наблюдение за временем модификации .tex и запускает пересборку при сохранении. Это автоматизация ровно той двухпроходной логики, которую вы изучили в начале курса.
Файл .latexmkrc и чистка проекта
Чтобы не передавать флаги при каждом запуске, рядом с проектом кладут файл настроек .latexmkrc. В нём один раз задают, каким движком собирать (например, всегда XeLaTeX) и что использовать biber для библиографии; дальше достаточно набрать latexmk без аргументов. Это особенно ценно в командной работе: настройки сборки едут вместе с репозиторием, и у всех участников документ собирается одинаково. Полезно различать две команды чистки: latexmk -c удаляет промежуточные служебные файлы, но оставляет готовый PDF, а latexmk -C сносит и PDF тоже. Первую удобно звать перед коммитом, чтобы не тащить мусор; вторую — когда нужна полностью свежая пересборка с нуля после странных «залипших» ошибок.
Git, Overleaf и история
Совет «одно предложение на строку» стоит дополнить практикой осмысленных коммитов: фиксируйте логически завершённые куски («добавил главу про методику», «исправил библиографию»), а не накапливайте всё в один гигантский коммит перед сдачей. Тогда история становится навигацией по работе, а не свалкой. Overleaf, хоть и онлайн, тоже ведёт историю версий и умеет синхронизироваться с git, так что можно совмещать удобство браузерного редактора с полноценным версионированием. Отдельно отметим разделение труда: исходники .tex и .bib — под контролем версий, а .aux, .log, .bbl и сам .pdf исключают через .gitignore, потому что они полностью воспроизводятся из исходников и только засоряют diff.
Инструменты-помощники и честные границы
Несколько внешних сервисов экономят время на рутине. Detexify подскажет команду символа, который вы нарисовали мышкой; Mathpix распознает формулу с фотографии или скриншота и вернёт готовый LaTeX — незаменимо, когда нужно перенести выкладку из учебника. Но честность важнее энтузиазма: бывают задачи, где обычный редактор объективно выигрывает. Markdown проще для заметок, документации и постов, которые потом рендерятся на сайте; Word и Google Docs незаменимы, когда документ правят несколько не-технических соавторов в реальном времени или когда организация принимает только .docx с жёстким фирменным шаблоном. Зрелость инженера — не тащить LaTeX везде, а выбирать инструмент под задачу: длинный структурированный текст с математикой, ссылками и библиографией — это LaTeX, а короткая записка или совместный черновик с коллегами — скорее нет.
Частые ошибки
- Собирать вручную по одному проходу вместо
latexmk— забытый проход = устаревшие ссылки. - Коммитить служебные файлы в git — замусоривают историю; используйте
.gitignore. - Тянуть LaTeX на одностраничную записку — потеря времени там, где хватит любого редактора.
Итоги
latexmkавтоматизирует все проходы сборки;-pvcдаёт авто-пересборку..texотлично версионируется в git; служебные файлы — в.gitignore.- LaTeX окупается на больших научных документах; для коротких и не-математических текстов берите редактор попроще.