LaTeX — свободная система подготовки документов, в которой автор описывает структуру текста командами, а движок TeX рассчитывает переносы, формулы, нумерацию, ссылки и выпускной PDF. Она особенно полезна для научных статей, диссертаций, книг и технических руководств, где важны единообразная вёрстка, точная математика и воспроизводимая сборка.
LaTeX не является одним графическим редактором с собственной лентой инструментов. Это формат и набор макросов поверх TeX, который обычно устанавливается вместе с дистрибутивом TeX Live, MiKTeX или MacTeX. Пользователь редактирует обычные файлы с расширением .tex, запускает pdfLaTeX, LuaLaTeX или XeLaTeX и получает PDF, журнал сборки и вспомогательные файлы. Редактор исходного текста можно выбирать отдельно, поэтому внешний вид рабочего места зависит от TeXworks, TeXstudio, Visual Studio Code, Vim, Emacs либо другой среды, но правила документа определяет именно LaTeX.
Актуальный выпуск ядра имеет дату 2026-06-01 и относится к линии LaTeX2e. Само ядро распространяется командой LaTeX Project под свободной лицензией LPPL, а практическая установка включает также движки, шрифты, классы, пакеты, программы для библиографии и утилиты обслуживания. Поэтому корректная загрузка LaTeX — это получение полноценного TeX-дистрибутива, а не поиск случайного файла с названием latex.exe.
Скачать LaTeX
- Редактирование PDF
- Русский интерфейс
- Просто новичкам
- Нет визуального редактора
- Нужен TeX-дистрибутив
- Ошибки требуют чтения лога
Что именно называется LaTeX
Название LaTeX часто употребляют сразу в трёх значениях, и из-за этого возникают ошибки при установке. В узком смысле это формат макрокоманд, который загружается поверх движка TeX. В практическом смысле — экосистема классов и пакетов, описывающих структуру статьи, книги, отчёта, презентации или письма. В бытовом смысле пользователи называют LaTeX весь установленный комплект, хотя на диске он представлен дистрибутивом TeX Live, MiKTeX или MacTeX, несколькими движками и отдельным редактором.
TeX создал Дональд Кнут как систему высококачественного набора. LaTeX разработал Лесли Лампорт, чтобы вместо низкоуровневых типографских операций автор мог задавать смысловые элементы: заголовок, раздел, формулу, таблицу, библиографическую ссылку. Современное ядро поддерживает команда LaTeX Project. Основной рабочий формат по-прежнему называется LaTeX2e: обозначение не означает заброшенную версию, поскольку ядро получает регулярные датированные выпуски и включает всё больше компонентов программного слоя LaTeX3.
Отдельного официального приложения LaTeX Editor не существует. Официальный проект прямо рекомендует получать LaTeX внутри TeX-дистрибутива. На Windows наиболее типичны TeX Live и MiKTeX, на macOS — MacTeX, на Linux — пакет дистрибутива либо собственная установка TeX Live. Онлайн-редакторы могут предоставлять LaTeX в браузере, но они являются самостоятельными сервисами и не превращают сам LaTeX в онлайн-продукт.
Архитектура рабочего комплекта
Полезно разделять пять уровней. Исходник .tex содержит текст и команды. Класс .cls задаёт общую модель документа: размеры страницы, заголовки, колонтитулы и поведение структурных элементов. Пакеты .sty добавляют функции, например расширенную математику, работу с графикой, гиперссылки или управление языками. Движок разбирает команды и создаёт результат. Дистрибутив устанавливает и обновляет все эти компоненты, а редактор только помогает писать и запускать сборку.
Такое устройство объясняет, почему два пользователя могут говорить, что работают в LaTeX, но видеть разные окна. Один вводит команды в TeXworks и нажимает зелёную кнопку, другой запускает latexmk из терминала, третий использует расширение для Visual Studio Code. В каждом случае документ обрабатывает один и тот же класс движков, а поведение команд определяется версиями ядра и пакетов. Поэтому при диагностике важно указывать не только название редактора, но и дистрибутив, год TeX Live или выпуск MiKTeX, выбранный движок и минимальный пример исходника.
Установка обычно включает и дополнительные программы. BibTeX или Biber формируют библиографию, MakeIndex создаёт предметный указатель, kpsewhich ищет файлы в дереве TeX, tlmgr управляет TeX Live, а latexmk повторяет сборку столько раз, сколько нужно для ссылок и вспомогательных баз. Эти утилиты не являются случайными дополнениями: без них многие реальные проекты потребовали бы ручной последовательности команд.
Как выглядит интерфейс LaTeX
У ядра LaTeX нет собственного визуального интерфейса. Самая точная форма его экрана — текстовый исходник, вывод компилятора и полученный документ. В исходнике видны команды вроде \documentclass, \section и \begin{equation}; в журнале — загруженные классы, пакеты, предупреждения и номер строки ошибки; в PDF — итоговая типографика. Графическая IDE объединяет эти три области, но является отдельной программой.
В этом подходе нет панелей для непосредственного растягивания рамок или перетаскивания абзацев мышью. Автор меняет правило в исходнике и пересобирает документ. Для короткой записки это может казаться лишним шагом, зато в большой работе структура остаётся явной: разделы не превращаются в набор вручную оформленных строк, подписи связаны с объектами, а номера и ссылки пересчитываются автоматически.
Редактор обычно добавляет подсветку синтаксиса, автодополнение команд, дерево разделов, просмотр PDF и переход между строкой исходника и соответствующим местом результата. Эти удобства полезны, но переносимость проекта не должна зависеть от конкретной IDE. Надёжный проект собирается из командной строки на другой машине при наличии нужного дистрибутива и пакетов.
Установка на Windows
Для Windows официальный путь — TeX Live или MiKTeX. TeX Live ориентирован на полный ежегодный выпуск с собственным менеджером tlmgr. Сетевой установщик сначала разворачивает программу установки, затем получает выбранные коллекции с зеркала CTAN. Полная схема занимает много места, но уменьшает вероятность того, что редкий пакет понадобится в самый неудобный момент. Можно выбрать базовую или специализированную схему, каталоги установки, формат бумаги и дополнительные языковые коллекции.
MiKTeX использует другую модель: базовый установщик сравнительно компактен, а отсутствующие пакеты могут загружаться по требованию. Это удобно на рабочей станции с постоянным интернетом, но автоматическая установка должна быть разрешена в настройках. В закрытой сети лучше заранее создать локальный репозиторий или выполнить полную установку, иначе проект остановится на первом неустановленном пакете.
Перед установкой стоит удалить или хотя бы чётко развести старые комплекты. Одновременное присутствие TeX Live и MiKTeX допустимо, но переменная PATH может направить редактор к не той версии pdflatex. После установки полезно открыть новый терминал, выполнить where pdflatex и pdflatex --version, затем собрать минимальный документ. Если редактор продолжает видеть старый путь, его нужно перезапустить или вручную указать команды в настройках сборки.
Установка на Linux и macOS
В Linux LaTeX часто доступен через системный менеджер пакетов. Преимущество такого варианта — интеграция с обновлениями дистрибутива и предсказуемые зависимости. Недостаток — версия TeX Live может отставать от текущего ежегодного выпуска, а пакеты разделены на наборы вроде базового, рекомендованного, научного и полноформатного. Для универсальной рабочей станции удобно установить крупный комплект; для контейнера или сервера лучше перечислить только необходимые коллекции и закрепить образ.
Собственный установщик TeX Live подходит, когда нужен текущий выпуск независимо от репозитория ОС. Он может работать без прав администратора в пользовательском каталоге. После установки нужно добавить каталог вида .../texlive/2026/bin/платформа в PATH. Смешивать системный TeX Live и установку TUG опасно без проверки путей: менеджер пакетов ОС не знает о файлах, созданных сетевым установщиком, а системный tlmgr может быть ограничен пользовательским режимом.
На macOS стандартным выбором является MacTeX. Это адаптированная поставка TeX Live с настройкой путей и графическими приложениями. Полный пакет велик, зато после установки доступны движки, шрифты и типичные инструменты. BasicTeX заметно меньше, но требует осознанно добавлять пакеты. На компьютерах Apple Silicon актуальный MacTeX предоставляет совместимую универсальную среду; при использовании старых редакторов необходимо отдельно проверить их архитектуру.
Первый документ и цикл сборки
Минимальный исходник состоит из объявления класса, начала документа, текста и окончания документа. Команда \documentclass{article} выбирает стандартный класс статьи, а содержимое помещается между \begin{document} и \end{document}. Файл сохраняют в UTF-8 с расширением .tex, затем запускают выбранный движок. При успешной сборке рядом появляются PDF, журнал .log и вспомогательный файл .aux.
Наличие вспомогательных файлов — нормальная часть технологии. В первый проход LaTeX записывает номера разделов, метки, список литературы и сведения для оглавления. Во второй проход читает их и обновляет ссылки. Если библиография обрабатывается отдельной программой, последовательность становится длиннее. Инструмент latexmk анализирует зависимости и автоматически выбирает требуемое число запусков, поэтому для постоянной работы он надёжнее одной кнопки компилировать один раз.
Рекомендуемый первый тест должен быть коротким. Чем меньше пример, тем легче отличить проблему установки от ошибки шаблона. Сначала собирают документ без сторонних пакетов, затем добавляют язык, математику, изображения и библиографию. Если большой проект не компилируется, полезно временно закомментировать половину содержимого или создать минимальный воспроизводимый пример с тем же классом и проблемной командой.
Выбор движка: pdfLaTeX, LuaLaTeX или XeLaTeX
pdfLaTeX остаётся самым совместимым вариантом для старых шаблонов и издательских классов. Он напрямую создаёт PDF, быстро работает и поддерживается огромным числом пакетов. Его традиционная модель шрифтов основана на TeX-кодировках и заранее подготовленных метриках. Современный LaTeX принимает UTF-8 во входном файле по умолчанию, однако для кириллицы в pdfLaTeX по-прежнему важны подходящая выходная кодировка шрифта и языковой пакет.
XeLaTeX использует Unicode и системные OpenType- или TrueType-шрифты через пакет fontspec. Это удобно, когда документ должен совпадать с корпоративной гарнитурой или содержать несколько письменностей. Движок хорошо подходит для сложных шрифтовых сценариев, но старые пакеты, рассчитанные только на pdfTeX, иногда требуют замены. Команды inputenc и fontenc в типичном XeLaTeX-проекте не нужны.
LuaLaTeX также работает с Unicode и OpenType, но дополнительно содержит язык Lua для программируемой обработки. Он удобен для современных многоязычных проектов, микротипографики и автоматизации. Выбор между XeLaTeX и LuaLaTeX зависит от шаблона и пакетов; для нового проекта LuaLaTeX часто предлагает более тесную интеграцию с развивающимся стеком LaTeX. Менять движок в последний день перед сдачей рискованно: переносы, метрики и разбиение страниц могут измениться.
Структура документа и классы
Главное преимущество LaTeX проявляется, когда автор использует смысловые команды. Раздел задаётся \section, а не увеличением размера шрифта вручную. Цитата, теорема, список, рисунок и таблица оформляются окружениями. Класс решает, как эти элементы выглядят и нумеруются. Благодаря этому одну рукопись можно адаптировать к требованиям журнала заменой класса и небольшого набора параметров, а не полным ручным переоформлением.
Стандартные классы article, report, book и letter покрывают базовые сценарии. article не имеет уровня главы, report и book поддерживают главы, а book рассчитан на двустороннюю книжную структуру. Реальные издательства, университеты и конференции часто распространяют собственные классы. Их нельзя бездумно смешивать с пакетами, меняющими поля и заголовки: класс уже может задавать эти параметры.
Преамбула находится между \documentclass и \begin{document}. Здесь загружаются пакеты, объявляются метаданные, новые команды и настройки. Чем крупнее проект, тем полезнее вынести повторяющиеся определения в отдельный файл или собственный пакет. Однако чрезмерная абстракция затрудняет передачу рукописи: соавтору и редакции нужны все локальные .sty, .cls, шрифты и изображения.
Пакеты и каталог CTAN
Функциональность LaTeX расширяется пакетами. CTAN служит распределённым архивом, откуда TeX-дистрибутивы получают исходники, документацию и метаданные. Пользователь обычно не копирует архивы вручную: TeX Live устанавливает пакет через tlmgr, MiKTeX — через MiKTeX Console или автоматическую загрузку, а Linux-дистрибутив — через собственные пакеты. Ручная установка в локальное дерево оправдана для внутреннего класса организации или тестовой версии.
Название пакета не всегда совпадает с именем файла или командой установки. Ошибка File ...sty not found указывает отсутствующий файл, но пакет в репозитории может называться иначе. Команда kpsewhich имя.sty показывает, видит ли TeX файл и откуда его загружает. Если файл найден в неожиданном пользовательском каталоге, устаревшая локальная копия может перекрывать свежую системную версию.
Обновлять пакеты во время критической подготовки макета следует осторожно. Текущий репозиторий TeX Live соответствует своему году, а переход между ежегодными выпусками обычно выполняется новой установкой. Для воспроизводимости полезно записывать год дистрибутива, дату ядра, список нестандартных пакетов и точные версии шаблона. В контейнерах или CI-системе можно закрепить образ, чтобы через месяц документ не изменил разбиение страниц из-за обновившейся метрики.
Русский язык, Unicode и переносы
В новом документе исходный файл следует сохранять в UTF-8. Современное ядро LaTeX рассматривает UTF-8 как стандартную входную кодировку, поэтому пакет inputenc часто оставляют только ради совместимости со старыми шаблонами. Для pdfLaTeX кириллический текст обычно требует выходной кодировки T2A и набора шрифтов с кириллицей. Для LuaLaTeX и XeLaTeX используют Unicode-шрифты и fontspec.
Пакет babel настраивает язык, переносы, подписи стандартных элементов и типографские соглашения. В многоязычном документе важно явно указать основной и дополнительные языки. Иначе могут примениться английские правила переноса, а названия оглавления и рисунков окажутся не на том языке. Для движков Unicode также применяется polyglossia, но выбирать между ним и babel нужно с учётом класса и набора пакетов, а не только по привычке.
Проблема кракозябр чаще всего возникает не в PDF, а на стыке кодировки файла, редактора и старого шаблона. Нужно проверить фактическую кодировку, удалить несовместимые объявления вроде Latin-1, пересоздать вспомогательные файлы и убедиться, что выбранный шрифт содержит нужные символы. Копирование текста из офисного редактора может привнести неразрывные пробелы, типографские кавычки и скрытые символы; в Unicode-движках они обычно допустимы, но отдельные шаблоны обрабатывают их неожиданно.
Шрифты и микротипографика
В pdfLaTeX шрифтовая система опирается на семейства, серии, начертания и кодировки NFSS. Пакеты шрифтов подключают подготовленные метрики и файлы, поэтому произвольная гарнитура из системы не становится доступной одной строкой. Зато такой проект хорошо воспроизводится на разных компьютерах, если дистрибутив содержит те же пакеты. Для научных журналов это часто важнее выбора любого локального шрифта.
XeLaTeX и LuaLaTeX позволяют указывать системные и проектные OpenType-шрифты через fontspec. Можно определить основную, рубленую и моноширинную гарнитуры, выбрать языковые функции OpenType и подключить отдельные математические шрифты. Чтобы проект не зависел от конкретного компьютера, разрешённые лицензией файлы шрифтов помещают в каталог проекта и обращаются к ним по относительному пути.
Пакет microtype управляет микротипографическими приёмами, включая выступающие знаки пунктуации и небольшое расширение символов. Эффект заметен в выравнивании края и уменьшении числа неудачных строк. Поддержка функций различается между движками, поэтому после смены pdfLaTeX на Unicode-движок нужно сравнить результат, а не предполагать полное совпадение.
Математические формулы
Математика — одна из главных причин выбора LaTeX. Встроенный режим различает формулу внутри строки и отдельное отображаемое выражение. Пакет amsmath добавляет выравниваемые системы, многострочные формулы, улучшенную нумерацию и команды операторов. amssymb расширяет набор символов. Автор описывает структуру выражения, а движок рассчитывает интервалы, размеры скобок, положение индексов и переносы.
Формулу, на которую ссылается текст, помещают в нумеруемое окружение и отмечают \label. Ссылка через \ref или специализированную команду обновится при повторной сборке. Нельзя вручную печатать номер в тексте: вставка новой формулы нарушит соответствие. Для длинных вычислений применяют align, gather, multline и связанные окружения, а не цепочку пробелов.
Типичная ошибка новичка — использовать математический режим ради курсива или выравнивания обычного текста. Математический набор меняет пробелы и семантику символов, поэтому текстовые слова внутри формулы помещают в \text{}. Современная работа над тегированным PDF дополнительно усиливает требование различать настоящую математику и декоративное использование математического режима.
Таблицы
Базовое окружение tabular строит таблицу по описанию столбцов. Буквы l, c и r задают выравнивание, вертикальная черта создаёт линию, а специальные типы столбцов позволяют фиксировать ширину и переносить текст. Пакет booktabs предлагает аккуратные горизонтальные линии и рекомендует избегать тяжёлой сетки. Для чисел полезен siunitx, который выравнивает значения по десятичному разделителю и единообразно форматирует единицы.
Широкая таблица не должна автоматически уменьшаться до нечитаемого размера. Сначала сокращают подписи, меняют ориентацию страницы, используют переносимые столбцы или выносят подробные данные в приложение. Масштабирование всей таблицы через resizebox скрывает проблему, но уменьшает шрифт и толщину линий. Для таблиц на несколько страниц применяется longtable; обычное плавающее окружение table не может само разрываться между страницами.
Внешние данные удобно генерировать скриптом в небольшой .tex-файл и подключать командой \input. Это снижает риск ручной ошибки в сотнях чисел. При этом скрипт должен экранировать специальные символы LaTeX: амперсанд разделяет ячейки, процент начинает комментарий, подчёркивание имеет особое значение. Для полностью автоматической отчётности полезно хранить рядом исходные данные, скрипт и команду сборки.
Рисунки и плавающие объекты
Пакет graphicx подключает изображения командой \includegraphics. pdfLaTeX, LuaLaTeX и XeLaTeX обычно работают с PDF, PNG и JPEG; точный набор зависит от движка. Для схем, графиков и логотипов предпочтителен векторный PDF, для фотографий — JPEG, для интерфейсных кадров с текстом — PNG. EPS чаще встречается в старых цепочках DVI и требует преобразования при прямом выпуске PDF.
Окружения figure и table являются плавающими: LaTeX выбирает место с учётом доступного пространства и правил страницы. Параметры размещения выражают предпочтения, а не абсолютную команду. Чрезмерное применение принудительного режима приводит к пустым местам и очереди необработанных объектов. Лучше дать движку несколько вариантов, уменьшить крупный рисунок или изменить структуру абзацев.
Подпись создаётся \caption, метка ставится после неё, а ссылка вставляется из текста. Имена файлов лучше делать латинскими, без пробелов и служебных символов: современные движки терпимее старых, но внешние программы и издательские системы могут быть строже. Все графические файлы должны входить в передаваемый проект; абсолютные пути с домашнего компьютера делают сборку непереносимой.
Оглавление, нумерация и перекрёстные ссылки
LaTeX формирует оглавление из структурных команд и вспомогательного файла. После изменения заголовков требуется повторная сборка, потому что на первом проходе записываются новые данные, а на следующем они попадают в документ. То же относится к ссылкам на разделы, рисунки, таблицы и формулы. Предупреждение о том, что метки могли измениться, не означает повреждение проекта: оно просит запустить движок ещё раз.
Метки должны быть уникальными и устойчивыми. Практичная схема использует префиксы sec:, fig:, tab: и eq:. Название метки не печатается в PDF, поэтому его можно выбирать по смыслу. Пакет hyperref превращает ссылки и элементы оглавления в переходы, добавляет закладки и позволяет задать метаданные PDF. Обычно его загружают ближе к концу преамбулы, если документация конкретного пакета не требует другого порядка.
Ручное изменение счётчиков возможно, но должно быть исключением. Если номера глав, приложений или теорем не соответствуют требованиям, лучше настроить класс и правила нумерации. Массовая вставка \setcounter маскирует структурную ошибку и ломает автоматические ссылки. Для ненумеруемого заголовка со включением в оглавление иногда нужны две команды; специализированный класс может предоставлять готовую.
Библиография: BibTeX и Biber
Библиографическая база обычно хранится в файле .bib. Каждая запись имеет ключ, тип и поля: автор, заголовок, год, журнал, издательство, DOI и другие данные. В тексте указывается ключ, а стиль решает, как оформить ссылку и список. Это отделяет факты об источнике от визуального стандарта и позволяет одной базе обслуживать несколько статей.
Классическая связка использует BibTeX и библиографический стиль .bst. Современный пакет biblatex часто работает с Biber, лучше поддерживает Unicode и предоставляет гибкие настройки. Эти системы нельзя смешивать случайно: если проект настроен на Biber, запуск одного BibTeX не создаст правильный результат. Редактор должен знать выбранный backend, а latexmk обычно определяет его по служебным файлам.
После добавления новой записи последовательность включает LaTeX, Biber или BibTeX и ещё несколько проходов LaTeX. Если ссылка остаётся вопросительным знаком, нужно прочитать .blg и .log, проверить ключ, имя файла базы и наличие записи. Удаление всех вспомогательных файлов помогает только после исправления причины. Поле автора следует вводить в структурированном виде, иначе сортировка и сокращение имён будут неверными.
Предметный указатель и глоссарии
Предметный указатель строится в два этапа. Команды \index записывают термины во вспомогательный файл, MakeIndex сортирует их и создаёт готовый фрагмент, затем LaTeX включает его в документ. Для русского алфавита необходимо учитывать возможности конкретной программы сортировки и кодировку; в сложных проектах применяют Xindy или дополнительные настройки.
Пакеты глоссариев позволяют объявлять термины, сокращения и символы, а затем автоматически собирать списки. Как и библиография, они требуют внешнего шага и нескольких проходов. В IDE этот шаг иногда скрыт в профиле сборки, поэтому перенос проекта на новую машину вызывает пропавший словарь. Надёжнее хранить команду сборки в latexmkrc, Makefile или инструкции проекта.
Не каждый термин следует индексировать при каждом появлении. Хороший указатель создаётся редакторским решением: выбираются значимые понятия, подтермины и перекрёстные отсылки. Автоматическая разметка всех одинаковых слов даёт длинный бесполезный список. LaTeX обеспечивает механизм и номера страниц, но не заменяет интеллектуальную работу над навигацией.
Большие проекты: книги, отчёты и диссертации
Крупный документ удобно делить на файлы по главам и подключать через \input или \include. Первый вариант просто вставляет содержимое, второй создаёт отдельные вспомогательные файлы и поддерживает выборочную сборку. Главный файл содержит класс, преамбулу и порядок частей. Такой проект легче редактировать, проверять в системе контроля версий и распределять между соавторами.
Общие определения выносят в отдельный файл, но не следует создавать десятки скрытых уровней подключения. Автор должен быстро понимать, где объявлена команда и откуда пришёл пакет. Для диссертации особенно важен контроль университетского класса: поля, титульный лист, нумерация и библиография часто регулируются локальными требованиями, а не общими рекомендациями LaTeX.
Выборочная сборка экономит время, но финальную проверку нужно выполнять на полном документе. Номера, ссылки, список рисунков и размещение плавающих объектов зависят от всей структуры. Перед сдачей полезно собрать проект в чистом каталоге, используя только файлы из репозитория. Если результат требует случайного файла из домашнего дерева texmf, комплект неполон.
PDF, метаданные и доступность
Современные движки создают PDF напрямую. Пакет hyperref добавляет интерактивные ссылки, закладки и сведения о документе. Метаданные следует задавать отдельно от визуального заголовка, особенно если в названии есть команды форматирования. Шрифты должны встраиваться, а графика — иметь достаточное разрешение. Проверка только внешнего вида не выявляет отсутствие карты символов или неверные свойства документа.
Проект LaTeX активно развивает создание тегированного PDF и поддержку стандартов доступности. Команда \DocumentMetadata должна располагаться до \documentclass и включает современный механизм метаданных. Однако доступность не возникает автоматически от одной строки: структура таблиц, альтернативные описания графики, язык, порядок чтения и математическая семантика требуют подходящих пакетов и проверки специализированными средствами.
Для архивного PDF/A и доступного PDF/UA нужно использовать актуальное ядро и совместимые версии пакетов. Старый шаблон может отключать или переопределять механизмы, на которых строится тегирование. В критическом проекте стоит начать тестирование в начале работы, а не после окончательной вёрстки. Требования издателя могут касаться конкретной версии PDF, цветового пространства, встроенных шрифтов и запрета активного содержимого.
Презентации с Beamer
Класс Beamer использует LaTeX для презентаций. Слайды создаются окружениями frame, а формулы, таблицы, библиография и команды пакетов работают близко к обычному документу. Темы управляют оформлением, но содержательная структура остаётся в исходнике. Это особенно удобно для лекций и научных докладов с большим количеством математических обозначений.
Beamer поддерживает пошаговое появление элементов через overlays. Этой возможностью легко злоупотребить: длинная последовательность состояний увеличивает PDF и усложняет репетицию. Для раздаточного материала можно включить другой режим, но результат следует проверить отдельно. Сложные анимации и свободное позиционирование объектов — не сильная сторона Beamer; для них специализированный редактор презентаций может быть быстрее.
Одна кодовая база позволяет повторно использовать определения формул и библиографию из статьи, однако презентация не должна становиться уменьшенной копией страницы A4. Размер шрифта, объём текста и контраст нужно проектировать под экран. LaTeX обеспечивает согласованность и точность, но не принимает за автора решения о композиции каждого слайда.
Автоматизация и воспроизводимая сборка
LaTeX хорошо вписывается в автоматические процессы, потому что исходники текстовые, а сборка запускается командой. В простом случае достаточно latexmk -pdf main.tex. В проекте с LuaLaTeX указывают соответствующий режим, а дополнительные программы подключают правилами. Скрипт может проверять ненайденные ссылки, предупреждения, наличие нужных файлов и итоговый размер PDF.
В системе непрерывной интеграции следует закреплять окружение. Плавающий образ с последним TeX Live способен изменить переносы или поведение пакета без правок в репозитории. Ежегодный образ и сохранённые версии локальных классов делают результат повторяемым. При обновлении создают отдельную ветку, собирают документ и сравнивают журнал и страницы.
Для регулярных отчётов данные можно преобразовывать в таблицы и графики внешними программами, а LaTeX использовать как финальный слой. Важна граница ответственности: вычисления выполняет проверяемый код, LaTeX форматирует готовые результаты. Запуск произвольных команд из документа через shell-escape отключён или ограничен по умолчанию именно потому, что такой исходник получает доступ к системе.
Совместная работа и контроль версий
Файлы LaTeX удобно хранить в Git: изменения видны построчно, ветки объединяются лучше, чем бинарные документы, а история показывает правки формул и текста. Чтобы различия оставались читаемыми, полезно писать по одному смысловому предложению на строку или использовать стабильное форматирование. Автоматическая переформатировка всего файла перед каждой фиксацией создаёт шум.
В репозиторий включают исходники, изображения, библиографию, локальные классы, настройки сборки и краткую инструкцию. Временные файлы .aux, .log, .toc и большинство результатов Biber обычно игнорируют. Финальный PDF можно публиковать как артефакт выпуска, но хранить его после каждой мелкой правки необязательно.
Конфликты в преамбуле требуют особой осторожности. Два соавтора могут добавить разные пакеты для одной задачи или изменить порядок загрузки. После объединения веток нужно выполнить чистую сборку, а не доверять старым вспомогательным файлам. Для комментариев в тексте можно использовать обычные проценты, но редакционные заметки лучше оформлять командой, которую легко отключить перед финальным выпуском.
Форматы файлов и обмен данными
Основной исходный формат — текстовый .tex. Классы имеют расширение .cls, пакеты — .sty, библиографические базы — .bib. Изображения подключаются как отдельные файлы. В результате прямой сборки создаётся PDF; классическая команда latex формирует DVI, который затем преобразуют в PostScript или PDF. Современные проекты обычно выбирают прямой PDF-процесс.
LaTeX не является универсальным редактором готовых PDF. Он прекрасно создаёт новый документ из исходника, но не предназначен для открытия чужого PDF и изменения одного абзаца внутри страницы. Для такой задачи нужен PDF-редактор. Аналогично экспорт в DOCX не является основной функцией ядра: преобразование выполняют Pandoc, TeX4ht, LaTeXML или издательские инструменты, и сложная математика либо пользовательские макросы требуют ручной проверки.
HTML и EPUB можно получить внешними конвертерами, но исходник, оптимальный для печати, не всегда оптимален для адаптивного экрана. Авторские команды, TikZ-графика и сложные таблицы преобразуются с разной точностью. Если несколько форматов являются обязательными, архитектуру проекта следует проверить на раннем прототипе и ограничить нестандартные макросы.
Настройка TeX Live и обслуживание установки
Менеджер tlmgr показывает установленный пакет, его категорию, версию и файлы. В собственной установке TeX Live он также обновляет пакеты и меняет зеркало. В поставках Linux-дистрибутивов его функции могут быть ограничены, потому что пакетами управляет система. Попытка обновлять системный TeX Live напрямую способна нарушить учёт файлов, поэтому сначала нужно определить происхождение установки.
TeX ищет файлы в нескольких деревьях: системном, локальном и пользовательском. Команда kpsewhich --var-value помогает увидеть пути. После ручного добавления файлов иногда требуется обновить базу имён, но современные пользовательские деревья часто находятся без этого. Нельзя копировать пакет в случайный каталог программы и надеяться, что движок его увидит.
Если установка повреждена, сначала проверяют свободное место, права записи, зеркало и антивирус. Сетевой установщик загружает тысячи небольших архивов, поэтому нестабильный прокси может приводить к повторным ошибкам. Для лаборатории или нескольких машин разумно подготовить локальное зеркало. Резервная копия всего TeX Live не заменяет резервную копию проекта: установка восстанавливается, а уникальные классы и исходники — нет.
Безопасность исходников
Обычная сборка LaTeX ограничивает выполнение внешних команд. Параметр --shell-escape расширяет возможности: пакет может вызвать программу построения графика, конвертер или скрипт. Одновременно исходник получает потенциальный доступ к файлам и командам пользователя. Поэтому нельзя включать неограниченный режим для неизвестного архива только ради того, чтобы исчезла ошибка.
Некоторые инструменты поддерживают ограниченный список безопасных команд. Если проект требует внешнего процесса, нужно понять, какой именно пакет его вызывает, какие аргументы передаются и можно ли предварительно сгенерировать результат. В CI сборку запускают в контейнере с минимальными правами и без секретов. Файлы из публикационной системы следует рассматривать как код, а не как пассивный текст.
Опасность представляют и устаревшие локальные пакеты. Они могут перекрывать исправленную системную версию. Регулярная чистая сборка на контролируемом окружении помогает обнаружить такую зависимость. При передаче проекта следует удалить случайные исполняемые файлы и документировать необходимые инструменты, не включая сторонние загрузчики.
Типичные ошибки: Undefined control sequence
Сообщение Undefined control sequence означает, что движок не знает команду в указанном месте. Причина может быть простой опечаткой, отсутствующим пакетом, командой для другого движка или слишком старым ядром. Первая строка ошибки показывает контекст и номер строки. Нужно найти саму команду, а не удалять весь абзац, где она встретилась.
Если команда заявлена в документации пакета, проверяют наличие \usepackage и версию пакета. Если она работает только в LuaLaTeX, профиль pdfLaTeX не подойдёт. Команды из новой версии ядра не появятся после обновления одного редактора: обновлять нужно TeX-дистрибутив. Локальная команда может быть объявлена после первого использования или находиться в файле, который не подключён.
После исправления можно удалить только действительно производные файлы и повторить сборку. Безусловная очистка не лечит неопределённую команду, но исключает вторичные ошибки из старого .aux. При обращении за помощью полезно приложить точный фрагмент журнала от первой ошибки: последующие сообщения часто являются её последствиями.
Предупреждения о строках и размещении
Overfull \hbox сообщает, что материал вышел за допустимую ширину. В журнале указан размер выхода и строка исходника. Причиной бывает длинный адрес, неразрывное слово, формула, таблица или запрет переноса. Игнорировать предупреждение опасно: в PDF текст может зайти в поле или обрезаться. Сначала исправляют содержание и разрешают перенос, затем рассматривают локальные типографские настройки.
Underfull \hbox означает слишком рыхлую строку. В узких колонках некоторые такие предупреждения неизбежны, но массовое появление указывает на жёсткие переносы, короткие строки или неподходящую ширину. Глобальное увеличение допустимой растяжимости способно скрыть симптом ценой плохого набора.
Предупреждение о невозможности разместить float связано с рисунком или таблицей, которые не помещаются по заданным правилам. Нужно проверить размер объекта и параметры размещения, а не вставлять десятки принудительных барьеров. Если очередь плавающих объектов переполнена, один ранний слишком большой рисунок может задержать все последующие.
Ошибки файлов, пакетов и шрифтов
File ... not found чаще всего означает отсутствующий пакет, класс, изображение или библиографическую базу. Важно прочитать расширение. Для .sty ищут пакет в менеджере дистрибутива; для .cls проверяют комплект шаблона; для изображения — относительный путь и регистр букв. Linux различает Figure.png и figure.png, тогда как Windows может скрывать ошибку до переноса проекта.
Ошибки fontspec почти всегда связаны с запуском pdfLaTeX вместо XeLaTeX или LuaLaTeX либо с отсутствующим шрифтом. Название гарнитуры должно совпадать с тем, что видит система, а файл проекта — иметь разрешённый путь. В контейнере системного шрифта может не быть, хотя на компьютере автора всё работает. Лучшее решение — установить документированный пакет шрифтов или добавить разрешённые файлы в окружение сборки.
Конфликт версий проявляется сообщениями о неизвестных параметрах, несовместимых форматах вспомогательных файлов и внутренних командах. Половинчатое обновление, когда ядро новое, а пакет старый, особенно проблемно. Следует обновлять согласованный дистрибутив, проверить локальные копии и выполнить чистую сборку. Копирование одного .sty из интернета без зависимостей может временно изменить ошибку, но не создаёт поддерживаемую установку.
Ссылки и библиография не обновляются
Вопросительные знаки вместо номера означают, что ссылка ещё не разрешена или метка отсутствует. Нужно проверить совпадение ключа в \label и \ref, затем выполнить достаточное число проходов. Если одна метка объявлена дважды, LaTeX сообщает о множественном определении и выбирает неоднозначный результат. Уникальные префиксы уменьшают риск.
Библиография не появится, если ни одна запись не процитирована, если база не подключена или внешний backend не запускался. В biblatex команда печати списка и источник данных должны присутствовать явно. После Biber требуется снова запустить LaTeX. Журнал .blg показывает синтаксические ошибки в базе и неизвестные поля.
Если latexmk зацикливается, причина может быть в файле, который меняется при каждом проходе, нестабильной дате или пакете, постоянно переписывающем метаданные. Нужно прочитать вывод и определить зависимость, а не увеличивать лимит запусков. Иногда помогает обновление пакета или исправление пользовательской команды, которая генерирует разные значения.
Рабочий процесс для научной статьи
Для журнальной статьи сначала получают официальный класс и пример. Содержимое переносят в структуру шаблона, не меняя поля и шрифты пакетами общего назначения. Библиографию настраивают тем способом, который поддерживает редакция. Рисунки готовят в требуемых форматах, а собственные команды формул собирают в небольшом блоке преамбулы.
Во время работы полезно включить автоматическую сборку и переход между исходником и PDF. Каждая таблица и формула получает метку, ссылки вводятся командами, а не вручную. Перед отправкой выполняют чистую сборку, проверяют предупреждения, открывают PDF в отдельном просмотрщике, убеждаются во встраивании шрифтов и собирают архив только из необходимых файлов.
Некоторые журналы требуют исходники, способные собраться в их ограниченном окружении. Редкие пакеты, системные шрифты и shell-escape могут быть запрещены. В таком случае локально красивый документ не является готовым к подаче. Нужно соблюдать список поддерживаемых компонентов и проверять архив через тестовую систему издателя.
Рабочий процесс для диссертации
Диссертация требует стабильного проекта на месяцы или годы. Нужно выбрать поддерживаемый класс, зафиксировать дистрибутив и создать структуру глав. Библиографическая база хранится отдельно, иллюстрации имеют устойчивые имена, а пользовательские команды обозначений сосредоточены в одном файле. Git и регулярные резервные копии обязательны независимо от редактора.
Сложные требования к титульному листу, спискам сокращений, приложениям и нумерации следует реализовать на уровне класса или настроек, а не ручными пробелами. Перед окончательной печатью проверяют двусторонние поля, пустые страницы, расположение крупных таблиц и качество графики. Смена шрифта или движка может изменить сотни страниц, поэтому такие решения принимают заранее.
Для руководителя, предпочитающего DOCX, можно готовить промежуточный формат конвертером, но он не должен становиться единственным источником. Правки из двух ветвей необходимо сводить осознанно. Альтернативой является рецензирование PDF с комментариями и перенос изменений в .tex. При совместной работе онлайн-сервис удобен, но локальная копия и воспроизводимая сборка всё равно нужны.
Рабочий процесс для технической документации
В техническом руководстве ценится повторное использование. Команды могут оформлять предупреждения, параметры, сочетания клавиш и фрагменты кода единообразно. Данные о версиях и таблицы совместимости генерируются из структурированных источников. Главный документ подключает модули в нужном порядке и выпускает PDF для конкретной редакции продукта.
Кодовые листинги требуют осторожности. Пакет listings работает без внешнего процесса, а minted использует Pygments и обычно требует shell-escape. Выбор зависит от политики безопасности и доступности инструмента в сборочной среде. Длинные строки, табуляция и Unicode в коде нужно тестировать на реальных примерах.
LaTeX подходит для печатного PDF, но единый исходник для PDF, сайта и встроенной справки может потребовать промежуточного формата. Если HTML равноправен, стоит оценить Sphinx, AsciiDoc или Markdown с генераторами, а LaTeX оставить одним из backend. Прямая сложная разметка TeX хуже переносится в веб.
Сильные стороны LaTeX
- Смысловая структура отделена от внешнего оформления, поэтому большой документ остаётся единообразным.
- Математический набор, ссылки, нумерация, оглавление и библиография автоматизируются и хорошо масштабируются.
- Текстовые исходники подходят для Git, автоматической проверки и сборки на сервере.
- Система расширяется классами и пакетами, а проекты можно переносить между Windows, Linux и macOS.
- Результат воспроизводим при закреплённом дистрибутиве, шрифтах и зависимостях.
Особенно заметен выигрыш в документах, где много повторяющихся элементов. Одна команда меняет оформление всех теорем, таблиц или предупреждений. Номер рисунка нельзя случайно забыть обновить после вставки новой иллюстрации. Издательский класс централизованно задаёт макет, а автор сосредотачивается на структуре.
Свободная лицензия ядра и доступность крупных дистрибутивов без платы позволяют использовать систему в образовании, на сервере и в организации. При этом пакеты имеют собственные лицензии, а шрифты и шаблоны нужно проверять отдельно. LaTeX бесплатен не означает, что любой подключённый ресурс разрешено свободно распространять.
Ограничения и компромиссы
Главное ограничение — отсутствие встроенного WYSIWYG. Новичку нужно освоить команды, структуру проекта и чтение сообщений компилятора. Простая одностраничная листовка с произвольным расположением объектов быстрее создаётся в графическом редакторе. LaTeX окупается, когда правила повторяются и документ развивается.
Полный TeX-дистрибутив занимает заметное место и содержит тысячи пакетов, многие из которых никогда не понадобятся конкретному пользователю. Минимальная установка экономит диск, но требует сети и управления зависимостями. Переход между ежегодными выпусками, конфликт локальных пакетов и разные профили движков создают административную нагрузку.
Сообщения об ошибках иногда низкоуровневые: одна пропущенная фигурная скобка вызывает цепочку далеко от причины. Пакеты могут конфликтовать по порядку загрузки или переопределять команды. Готовые шаблоны уменьшают порог входа, но сложный шаблон способен скрыть архитектуру до первой нестандартной задачи.
LaTeX не редактирует существующий PDF как объектную страницу, не предоставляет естественный обмен правками с любым офисным пользователем и не гарантирует идеальный экспорт в DOCX или HTML. Эти ограничения не являются дефектами реализации: система решает другую задачу — программируемую подготовку документов из исходного текста.
Сравнение LaTeX с аналогами
| Программа | Лучше подходит для | Главное ограничение |
|---|---|---|
| LaTeX | Научных статей, диссертаций, книг и формул | Нет встроенного визуального редактирования |
| Typst | Современной программируемой вёрстки с быстрым циклом сборки | Меньше накопленных издательских шаблонов |
| ConTeXt | Сложной типографики и интегрированных издательских проектов | Меньше учебных материалов и готовых классов |
| GNU TeXmacs | Визуального редактирования научных текстов и формул | Формат и рабочий процесс отличаются от обычного LaTeX |
| Microsoft Word | Совместного визуального редактирования и обмена DOCX | Труднее поддерживать сложную программируемую вёрстку |
| LibreOffice Writer | Бесплатной офисной работы с визуальным документом | Меньше специализированных научных шаблонов |
| Markdown с Pandoc | Одного простого исходника для HTML, DOCX и PDF | Сложная вёрстка требует фильтров и LaTeX-шаблонов |
LaTeX следует выбирать, когда документ долгий, структурный, насыщен формулами и должен точно собираться по правилам журнала или университета. Typst удобен для нового проекта, где важны современный синтаксис и скорость, но архив шаблонов LaTeX остаётся шире. ConTeXt подходит типографу, готовому работать в более цельной, но менее массовой экосистеме. TeXmacs, Word и Writer лучше для пользователей, которым необходимо видеть страницу во время непосредственного редактирования. Markdown с Pandoc рационален, если одинаково важны веб, DOCX и PDF, а печатная вёрстка сравнительно проста.
PDF Commander не включён в таблицу прямых аналогов, потому что редактирует уже созданные PDF, тогда как LaTeX формирует документ из исходника. Эти инструменты могут дополнять друг друга: LaTeX выпускает основную версию, а PDF-редактор решает разовую задачу с готовым файлом, если исходник недоступен или требуется операция над страницами.
Как перейти с Word на LaTeX
Переход следует начинать не с полного копирования старого оформления, а с понимания структуры. Создают классы заголовков, формул, рисунков и библиографии, затем переносят текст. Ручные пробелы, табуляции и номера удаляют. Стили Word не преобразуются автоматически в правильную семантику LaTeX, особенно если документ оформлялся визуально без последовательных стилей.
Конвертер может создать начальный .tex, но сложные таблицы, поля формул, рисунки и перекрёстные ссылки требуют проверки. Часто быстрее перенести текст по разделам и заново подключить графику. Библиографию лучше экспортировать из менеджера источников в BibTeX, а не копировать готовый список как обычный текст.
Для команды полезен короткий шаблон с командами проекта и готовой сборкой. Не нужно заставлять каждого изучать внутренности класса. Автору достаточно знать структуру, формулы, ссылки и типичные ошибки. Ответственный за шаблон поддерживает пакеты и CI. Такой раздел обязан быть документирован, иначе единственный специалист становится точкой отказа.
Как обновлять существующий проект
Старый проект сначала собирают в исходном окружении и сохраняют эталонный PDF и журнал. Затем переходят на новый TeX Live или MiKTeX в отдельном каталоге. Сравнивают первую ошибку, список предупреждений, число страниц и визуальные различия. Массово заменять команды до получения базовой сборки не следует: трудно понять, какая правка действительно нужна.
Устаревшие пакеты могут иметь современные замены, но миграция должна учитывать издательский класс. Если шаблон официально требует старую версию, лучше использовать контейнер или архивный дистрибутив, чем переписывать его перед подачей. Для собственного документа обновление оправдано, особенно ради Unicode, безопасности и доступного PDF.
После перехода удаляют временные совместимые хаки, обновляют инструкцию и фиксируют новое окружение. Пользовательские .sty проверяют на дублирование возможностей ядра. Современный LaTeX перенёс многие функции программного слоя в ядро, но это не означает, что любой старый пакет можно убрать без чтения документации.
Практическая проверка перед выпуском PDF
- Выполнить чистую автоматическую сборку и убедиться, что нет ненайденных ссылок и цитат.
- Просмотреть первую ошибку и все предупреждения о выходе текста за поля.
- Проверить оглавление, нумерацию, закладки, ссылки и метаданные PDF.
- Открыть документ на другой системе или в контейнере с тем же окружением.
- Убедиться, что изображения, шрифты и локальные пакеты входят в комплект и разрешены для передачи.
- Сравнить требования издателя к версии PDF, цветам, размеру страницы и встраиванию шрифтов.
Визуальная проверка должна охватывать не только первые страницы. Плавающий рисунок может переместиться в конце главы, длинная ссылка — выйти за поле, а библиография — получить неожиданный разрыв. Для большого документа полезно автоматически преобразовать страницы в изображения и просмотреть контактные листы, а затем детально открыть подозрительные места.
Финальный архив собирают из чистой копии репозитория. Если он компилируется только на компьютере автора, значит в проекте есть скрытая зависимость. В архив не включают установщик TeX Live, кэш пакетов и временные журналы, если редакция не просит их; вместо этого указывают движок, год дистрибутива и команду сборки.
Версия, лицензия и статус разработки
Современный LaTeX продолжает развиваться датированными выпусками. На момент подготовки материала актуальная версия ядра — 2026-06-01. Она распространяется через CTAN и уже входит в TeX Live 2026; обновления других дистрибутивов могут появляться с задержкой. Команда latex --version показывает прежде всего версию движка, а строка LaTeX2e <дата> в начале журнала сообщает дату формата.
Ядро и базовые пакеты распространяются под LaTeX Project Public License версии 1.3c или совместимыми условиями, указанными в конкретном файле. LPPL разрешает использование и распространение, но вводит правила для изменённых версий, чтобы модифицированный файл не выдавался за оригинал и не нарушал совместимость. Пакеты CTAN могут иметь другие свободные лицензии, поэтому коммерческое или встроенное распространение проверяют по каждому компоненту.
LaTeX3 — не отдельная программа, которую обычному пользователю нужно устанавливать вместо LaTeX2e. Это долгосрочный проект и программный слой; значительная часть его инфраструктуры уже включена в актуальное ядро. Документы продолжают объявлять обычные классы LaTeX2e, а разработчики пакетов используют интерфейсы L3 там, где это уместно.
Поля, колонтитулы и книжная полоса
Размер страницы и поля должны определяться классом или единым пакетом, а не последовательностью отрицательных отступов. Пакет geometry удобен для собственного отчёта, потому что позволяет задать бумагу, внутреннее и внешнее поля, верхнюю и нижнюю зоны. В издательском шаблоне он может конфликтовать с уже рассчитанной полосой, поэтому его подключают только с разрешения документации класса.
Для двусторонней печати внутреннее и внешнее поля различаются, а нечётные страницы традиционно находятся справа. Класс book учитывает развороты и может начинать главы с нечётной страницы, вставляя пустую. Удаление такой страницы вручную нарушает логику печати. Если PDF предназначен только для экрана, режим односторонней страницы можно выбрать явно, но менять его после финальной разбивки нежелательно.
Колонтитулы зависят от меток текущей главы и раздела. Пакеты вроде fancyhdr дают гибкую настройку, однако стандартный механизм меток асинхронен: плавающие объекты и разрыв страницы влияют на то, какое название считается первым или последним. Для сложной книги лучше использовать средства класса и проверять каждую смену главы. Номер страницы не должен перекрываться с длинным заголовком.
Абзацные отступы, интервалы и переносы образуют связанную систему. Увеличение межстрочного интервала меняет число строк и положение всех последующих объектов. Нельзя компенсировать это локальными отрицательными пробелами. Если норматив требует полуторный интервал, настройку задают в преамбуле совместимым пакетом, затем заново проверяют таблицы, сноски и формулы.
Собственные команды и смысловая разметка
Пользовательская команда полезна, когда один смысловой элемент повторяется много раз. Например, обозначение величины, название продукта или оформление клавиши лучше определить один раз и применять по всему проекту. Тогда изменение записи выполняется в одном месте. Команда должна отражать смысл, а не случайный внешний вид: имя вроде \productname устойчивее, чем \blueboldtext.
Для простых макросов используют \newcommand, которая отказывается молча перезаписывать существующее имя. Аргументы позволяют передавать содержимое, а необязательный аргумент — задавать типичный вариант. В современных версиях ядра доступны более выразительные интерфейсы объявления команд. Разработчику пакета следует использовать документированные механизмы, а не внутренние команды с символом @ без необходимости.
Окружение подходит для элемента с началом и концом: примера, предупреждения, доказательства или блока требований. Его внешний вид можно изменить централизованно. Но макрос не должен поглощать непредсказуемые фрагменты и создавать скрытые глобальные настройки. Группировка ограничивает действие шрифта, цвета и интервалов; забытая группа приводит к изменению всего остатка документа.
При передаче в журнал собственные команды иногда нужно раскрыть, если система принимает только ограниченный набор пакетов. Поэтому преамбула должна быть компактной и документированной. Тысячи строк шаблона, скопированные из разных ответов, сложнее сопровождать, чем небольшой пакет с версией, лицензией и тестовым документом.
Графики, схемы и TikZ
Система PGF/TikZ создаёт векторную графику командами LaTeX. Она подходит для блок-схем, геометрических построений, диаграмм и иллюстраций, которые должны использовать те же шрифты и обозначения, что основной текст. Исходник рисунка хранится вместе с документом, поэтому подписи и формулы остаются редактируемыми и воспроизводимыми.
Пакет PGFPlots строит графики по координатам или таблицам данных. Для научного отчёта это снижает риск расхождения между расчётом и подписью оси. Однако LaTeX не должен выполнять тяжёлое численное моделирование: расчёт разумнее провести в Python, R, Julia или другой системе, сохранить данные, а PGFPlots использовать для согласованного оформления.
Сложный TikZ-рисунок заметно увеличивает время сборки. Внешняя компиляция позволяет один раз создать PDF каждого рисунка и повторно использовать его, но часто требует shell-escape и отдельной настройки. Более простой безопасный вариант — собирать рисунки самостоятельными документами в доверенном окружении и подключать готовые PDF в основной проект.
Для фотографий и снимков интерфейса TikZ не нужен. Векторная перерисовка растрового изображения увеличит объём работы без пользы. Выбор формата определяется природой материала: линии и текст — вектор, непрерывные тона — растр. В финальном PDF проверяют толщину линий, читаемость подписей и то, что цвет остаётся различимым при чёрно-белой печати.
Скорость сборки и производительность
Небольшая статья компилируется быстро, но книга с сотнями изображений, сложными шрифтами, TikZ и библиографией может собираться минуты. Первый способ ускорения — не пересобирать то, что не изменилось. latexmk отслеживает зависимости, отдельные рисунки кэшируются, а выборочная сборка глав сокращает цикл редактирования.
Черновой режим может пропустить загрузку тяжёлых изображений и показать рамки. Это удобно при работе над текстом, но финальный запуск обязан вернуть нормальный режим. Снижение разрешения исходных фотографий до разумного значения уменьшает PDF и потребление памяти; вставка многомегапиксельного кадра в маленькую колонку не добавляет деталей на печати.
LuaLaTeX и XeLaTeX могут стартовать медленнее pdfLaTeX из-за работы со шрифтами. Кэш шрифтов и корректные пути важны для стабильности. Если сборка внезапно замедлилась, нужно сравнить журнал, проверить зацикленные ссылки, огромные таблицы и внешние команды. Запуск антивирусного анализа для каждого из тысяч временных файлов тоже способен заметно увеличить время на Windows.
Параллельная сборка независимых рисунков возможна, но два процесса не должны одновременно изменять один и тот же вспомогательный файл. В CI удобно разделить этапы: подготовка данных, выпуск графики, сборка основного PDF и проверки. Такая схема показывает, на каком шаге возникла ошибка, и позволяет кэшировать неизменившиеся зависимости.
Редакторы, профили сборки и SyncTeX
Редактор для LaTeX выбирают по удобству, но его профиль должен явно указывать движок. Если шаблон требует LuaLaTeX, кнопка, запускающая pdfLaTeX, создаст ошибки шрифтов или неизвестных примитивов. Для проекта полезно хранить комментарий-настройку редактора либо конфигурационный файл, но основной командой остаётся документированный запуск из терминала.
SyncTeX связывает координаты в PDF со строками исходника. Прямой поиск открывает в просмотрщике место, соответствующее курсору, обратный — переводит из PDF к команде. Для этого движок создаёт вспомогательный файл сжатого отображения. Если переходы ведут не туда, нужно пересобрать проект с включённым SyncTeX и убедиться, что просмотрщик открывает текущий PDF, а не копию из другого каталога.
Автодополнение ускоряет ввод, но не гарантирует правильность команды. Редактор может предлагать пакет, которого нет в установленном дистрибутиве, или вставлять устаревшее окружение. Встроенная проверка орфографии должна знать язык обычного текста и игнорировать команды; для проверки стиля применяют внешние инструменты, которые понимают структуру LaTeX хотя бы частично.
Онлайн-редактор удобен для соавторов и снимает задачу локальной установки, но проект зависит от доступных версий TeX Live, лимитов тарифа и политики сервиса. Локальный дистрибутив остаётся эталоном для автономной работы и конфиденциальных материалов. Перенос между средами проверяют по файлам проекта, а не по виду окна.
Тестирование классов и пакетов
Авторы шаблонов должны тестировать не только один красивый пример. Нужны документы с длинными заголовками, пустыми разделами, несколькими языками, большими таблицами, сносками, формулами и плавающими объектами. Ошибка класса проявляется на границах: в начале страницы, после приложения, при пустой библиографии или в режиме двусторонней печати.
Инструмент l3build используется разработчиками LaTeX-пакетов для автоматических тестов и сборки документации. Тест фиксирует значимый вывод, а новая версия сравнивается с эталоном. Это позволяет заметить изменение поведения ядра или движка до публикации пакета. Обычному автору статьи l3build не обязателен, но принцип полезен: минимальные примеры проблем нужно сохранять.
Проверка разных движков имеет смысл только если пакет заявляет их поддержку. Результаты pdfLaTeX, XeLaTeX и LuaLaTeX не обязаны совпадать пиксель в пиксель: различаются шрифты и алгоритмы. Тест должен оценивать структуру, отсутствие ошибок и ожидаемые команды. Для издательского шаблона один движок можно объявить обязательным и выдавать понятное сообщение при неправильном запуске.
Перед выпуском новой версии класса полезно собрать реальные документы предыдущей версии. Совместимость пользовательских команд и нумерации важнее внутренней красоты кода. Если изменение неизбежно, его описывают в журнале и дают путь миграции. Скрытая смена полей или библиографического backend способна сорвать подготовку десятков рукописей.
Кому подходит LaTeX
LaTeX оправдан для исследователя, преподавателя, инженера, автора учебника, технического писателя и издательской команды, если документ содержит формулы, повторяющуюся структуру, большое число ссылок или должен собираться автоматически. Он особенно силён там, где исходник живёт долго, проходит через Git и выпускается многократно.
Для короткого делового письма, свободного макета буклета или коллективной правки с людьми, работающими только в DOCX, офисный редактор практичнее. Для редактирования готового PDF нужен специализированный PDF-инструмент. Для веб-документации с приоритетом HTML стоит рассмотреть форматы, изначально рассчитанные на несколько выходов.
Выбор не обязан быть идеологическим. LaTeX может готовить научную часть и формулы, данные — приходить из Python или R, рисунки — из векторного редактора, а финальный PDF — проверяться отдельными анализаторами. Успешный процесс использует сильную сторону каждого инструмента и сохраняет воспроизводимый главный исходник.
Итог
LaTeX — не визуальный PDF-редактор, а программируемая система подготовки документов поверх TeX. Устанавливать её следует через полноценный дистрибутив: TeX Live, MiKTeX или MacTeX. После установки пользователь выбирает редактор и движок, хранит материал в текстовых исходниках и получает PDF последовательной сборкой с обработкой ссылок, библиографии и указателей.
Система требует обучения и дисциплины: нужно понимать классы, пакеты, журналы и различия движков. Взамен она даёт точную математику, устойчивую структуру, автоматическую нумерацию, переносимость исходников и возможность воспроизводить крупный документ на сервере. Для научной статьи, диссертации, книги или технического отчёта эти свойства часто важнее непосредственного редактирования страницы мышью.
Начинать лучше с минимального шаблона и актуального дистрибутива, постепенно добавляя язык, библиографию, графику и автоматизацию. Критические требования — шрифты, доступность, издательский класс и несколько форматов выпуска — нужно проверять на раннем прототипе. Тогда LaTeX остаётся не набором случайных команд, а управляемой системой публикации, в которой исходник, зависимости и результат можно проверить и повторить.