SILE: возможности, установка и применение системы профессиональной вёрстки
SILE — не просмотрщик и не редактор готовых PDF, а программируемый движок вёрстки: пользователь описывает документ в исходном тексте, XML или через расширения, после чего система рассчитывает строки, страницы, шрифты и сложные макеты и формирует печатный PDF. Такой подход делает SILE близким по назначению к TeX/LaTeX и современным markup‑системам, но архитектурно проект строится вокруг Lua, фреймов страницы, HarfBuzz и собственного PDF‑вывода. На сентябрь 2026 года актуальный стабильный выпуск — 0.15.13; ветка проекта при этом продолжает развиваться, поэтому SILE нельзя считать заброшенным, хотя стабильные релизы выходят реже, чем у массовых настольных приложений.
| Параметр | Состояние |
|---|---|
| Тип | Программируемая система вёрстки и генерации печатных документов |
| Актуальный стабильный релиз | 0.15.13, опубликован 31 мая 2025 года |
| Основные платформы | Linux, macOS, BSD; Docker и Nix; Windows практичнее использовать через WSL |
| Основной результат | |
| Вход | SIL, XML, Lua и подключаемые inputter‑модули |
| Лицензия | MIT, бесплатно, исходный код открыт |
| Аккаунт и облако | Не требуются; локальная сборка является штатным сценарием |
| Интерфейс | Командная строка и текстовые исходники, без собственного WYSIWYG‑редактора |
Скачать SILE
Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.
Безопасный источник SILE — официальный проект The SILE Typesetter и его репозиторий sile-typesetter/sile. На странице релизов версия 0.15.13 отмечена как Latest и сопровождается исходными архивами, готовым x86_64‑артефактом, PDF‑руководством, файлами SHA‑256 и подписями. Для обычной установки разработчики в первую очередь рекомендуют системные пакетные менеджеры: Homebrew на macOS, официальные пакеты Arch Linux, Fedora и openSUSE, PPA для поддерживаемых выпусков Ubuntu, пакеты Void Linux, Nix либо контейнер Docker.
Выбирать способ получения лучше по назначению. Для рабочей станции разумнее пакет из репозитория ОС или Homebrew: менеджер зависимостей обновляет SILE вместе с окружением и знает, какие файлы установлены. Для CI и изолированных сборок подходят Docker и Nix. Исходный архив нужен, если требуется собственная конфигурация, отладочная сборка или интеграция с нестандартным окружением. Git‑ветки master и develop следует считать разработческими: они полезны для проверки будущих изменений, но не заменяют стабильный тег в воспроизводимом издательском процессе.
У SILE нет поддерживаемого обычного Windows‑инсталлятора. Официальная документация прямо указывает, что нативная совместимость Windows сейчас никем не поддерживается и может быть нарушена. На компьютере с Windows надёжнее использовать WSL с дистрибутивом Linux и устанавливать SILE внутри него. Наличие экспериментальных сборок в CI не следует трактовать как полноценную настольную редакцию для Windows.
Что такое SILE
Расшифровка названия — Simon’s Improved Layout Engine. Проект изначально создал Simon Cozens как новую систему типографской вёрстки, вдохновлённую отдельными идеями TeX и настольных издательских систем, но не являющуюся форком TeX. Сейчас код и сопутствующие проекты находятся в организации sile-typesetter; релизы линии 0.15 публиковались Caleb Maclennan и другими участниками сообщества. Репозиторий оставался активным в 2026 году, поэтому корректное позиционирование — развиваемый open‑source‑проект со стабильной веткой 0.15.x.
SILE решает задачу до появления PDF: принимает структурированный исходник, вычисляет типографику и создаёт конечный файл. Он не предназначен для открытия чужого PDF с целью чтения, выделения текста или аннотирования. Если задача заканчивается на просмотре готового документа, нужен читатель вроде Sumatra PDF или Okular. Если же нужно системно выпускать книги, каталоги, многоязычные материалы или документы с программируемой геометрией страниц, SILE выступает именно как компилятор вёрстки.
В актуальной архитектуре команда sile запускает бинарный CLI на Rust со встроенной Lua VM. При этом собственно типографские механизмы и значительная часть поведения остаются написанными на Lua и могут переопределяться во время работы. Такое разделение появилось в версии 0.15.0: Rust упростил упаковку и открыл путь к новым низкоуровневым компонентам, а Lua сохранил гибкость классов, пакетов и пользовательских расширений.
Хронология развития и поддержки
Для совместимости важны две линии изменений. В 0.14 проект формализовал модульную архитектуру и перевод сторонних классов, пакетов, inputter‑ и outputter‑модулей на LuaRocks; старые compatibility shims постепенно удалялись. Версия 0.15.0, выпущенная в июне 2024 года, перевела основной CLI на Rust со встроенной Lua VM, сохранив типографское ядро на Lua. Вместе с этим изменились некоторые умолчания, разбор пробелов в SIL и внутренние API. Для части старых проектов предусмотрен модуль retrograde, но он не отменяет все несовместимости.
В 0.15.7–0.15.10 развивались CSL‑библиографии, индексы и математика; 0.15.11 исправила важную ошибку переносов в ряде языков, 0.15.12 — неверное deprecated‑предупреждение, а 0.15.13 добавила функции позиционирования CSL‑цитат и набор исправлений. Последний стабильный тег датирован 31 мая 2025 года, однако основной репозиторий обновлялся в июле 2026 года. Для производства разумно фиксировать 0.15.13 или конкретный commit/container tag, а master проверять отдельно.
Основные функции SILE
Программируемая верстка страниц и фреймы
Ключевая идея SILE — страница как набор именованных фреймов, связанных геометрическими ограничениями. Фрейм может быть областью основного текста, колонтитула, сноски или боковой колонки, а текст способен перетекать между областями. Классы документа определяют, какие шаблоны страниц действуют в разных частях издания. Это особенно полезно для двухколоночных, многоязычных и других макетов, где геометрию удобнее описывать правилами, чем вручную перемещать блоки.
Lua как язык расширения
SILE программируется на Lua. Пакеты регистрируют команды и настройки, классы меняют логику документа, inputter‑модули добавляют входные форматы, а outputter‑модули — варианты вывода. Внутри документа можно подключить Lua‑модуль, внешний Lua‑файл или выполнить код напрямую. Поэтому SILE способен служить основой специализированного издательского инструмента, а не только языком разметки.
Из этого следует ограничение безопасности: исходник SILE потенциально активен. Документ или установленный пакет может запускать Lua‑код, поэтому неизвестные проекты лучше собирать в контейнере или другой ограниченной среде без доступа к секретам CI и важным каталогам.
Типографика, Unicode и OpenType
Для формирования текста SILE использует HarfBuzz; текущая документация требует HarfBuzz не ниже 2.7.4. Unicode‑обработка опирается на ICU, а поиск шрифтов в Unix‑окружении — на fontconfig. Доступны OpenType‑возможности, двунаправленный текст, языковые модули и переносы. Для стабильной 0.15.13 базовым шрифтом остаётся Gentium Plus; математика по умолчанию ориентируется на Libertinus Math, моноширинный текст — на Hack. В master уже задокументирован будущий переход на Gentium Book с 0.15.14, поэтому воспроизводимый проект должен задавать шрифты явно.
Книги, оглавления, сноски, библиографии и индексы
В поставке есть классы plain, book, letter, DocBook‑ориентированные и специализированные многоязычные варианты, включая diglot и triglot. Пакеты покрывают сноски, оглавления, библиографии, индексы, гиперссылки, списки, развороты и другие издательские задачи. Библиографический стек 0.15 использует CSL по умолчанию и умеет обрабатывать BibTeX‑данные через собственный слой преобразования.
Математика, графика и PDF
Математический пакет в серии 0.15 активно развивался в сторону более полного покрытия MathML и привычных формульных конструкций. SILE умеет размещать изображения и использовать страницы PDF как графический материал; SVG поддерживается с ограничениями. Основной вывод — PDF через libtexpdf, включая ссылки и программируемые PDF‑элементы. При этом SILE не превращает чужой PDF в редактируемый документ: для ручного изменения готовых страниц нужен отдельный редактор, например Adobe Acrobat Pro.
Сторонние пакеты и автоматизация
Расширения устанавливаются через LuaRocks и могут лежать глобально, в профиле пользователя или локально в проекте. Официальная документация приводит markdown.sile как пример стороннего inputter для Markdown. Для CI доступны GitHub Action, Docker и Nix: исходники можно собирать при каждом commit и сохранять PDF как артефакт, фиксируя версию движка, пакетов и шрифтов.
Интерфейс и удобство использования
Главная рабочая зона SILE — не собственное окно, а выбранный пользователем текстовый редактор и терминал. Исходник редактируется в VS Code, Vim, Neovim, Emacs или любой IDE, после чего команда sile файл.sil создаёт PDF. Проект поддерживает отдельные интеграционные репозитории для редакторов, но полноценного встроенного редактора с визуальным предпросмотром у SILE нет.
Навигация строится вокруг структуры исходников: крупную книгу можно разделить на главы и подключать их из мастер‑файла; классы задают общий дизайн; пакеты добавляют команды. Такая модель хорошо масштабируется в Git и удобна разработчикам, зато требует дисциплины в именах файлов, путях, версиях модулей и шрифтах. Ошибка проявляется не как визуально «съехавший объект» в редакторе, а как сообщение CLI, предупреждение или неправильный итоговый PDF.
Порог входа выше, чем у LibreOffice и настольных издательских программ с WYSIWYG. Минимальный документ короткий, но для реальной пользы надо освоить SIL‑синтаксис, классы, измерения, фреймы и принципы компиляции. Если требуется глубокая кастомизация, следующий уровень — Lua API. Зато после настройки шаблона обычная работа может сводиться к изменению контента и одной команде сборки.
Локализация CLI существует: история проекта фиксирует инфраструктуру i18n и добавление русских локализаций. Однако основной учебный материал, документация API, сообщения issue tracker и большинство примеров ориентированы прежде всего на английский. Русскоязычному пользователю важно учитывать это ещё до выбора SILE для команды.
Поддерживаемые форматы и совместимость
Входные документы
Два центральных текстовых формата — SIL и XML. SIL — собственный компактный синтаксис Sile Input Language; XML можно направлять непосредственно на команды SILE или обрабатывать пользовательским модулем под собственную схему. В линии 0.14 Lua также стал входным типом первого класса. Это позволяет строить документ программно, хотя такой вариант требует больше знаний API.
Markdown не является встроенной гарантией ядра: его добавляет сторонний пакет markdown.sile. Аналогично поддержка иных форматов зависит от inputter‑модулей. Поэтому SILE нельзя описывать как универсальный конвертер офисных документов. DOCX, ODT или EPUB не следует ожидать в роли штатного «Открыть и экспортировать» без дополнительного преобразования. Для массовой конвертации разметки удобнее сначала рассмотреть Pandoc, а для офисного файла — приложение, которое понимает исходный формат нативно.
Вывод и переносимость результата
Основной и практически значимый итог SILE — PDF. Такой файл можно открыть в Sumatra PDF, Okular, браузерах и других стандартных просмотрщиках. Он отделён от исходного проекта: получателю не нужны SILE, Lua, шрифты проекта или пакеты, если шрифты корректно встроены и PDF сформирован без внешних зависимостей.
Обратная сторона — PDF не является удобным исходником для повторной вёрстки. Надёжный архив проекта должен включать SIL/XML/Lua‑исходники, локальные расширения, библиографические файлы, графику, сведения о шрифтах и версию SILE. Один только PDF сохраняет визуальный результат, но не полноценную программируемую структуру, из которой он был получен.
Совместимость расширений
Сторонние LuaRocks‑пакеты должны соответствовать Lua ABI, с которым собран SILE. Документация отдельно предупреждает, что при нескольких версиях Lua иногда необходимо явно передавать версию LuaRocks. После крупных изменений API старые классы и пакеты могут потребовать адаптации; линия 0.14 уже удаляла некоторые compatibility shims для расширений эпохи 0.12 и старше.
Карта критических зависимостей
| Зависимость | Зачем нужна | Что произойдёт при проблеме | Как снизить риск |
|---|---|---|---|
| Шрифты | Формирование глифов, переносов и метрик | Замена гарнитуры меняет строки и пагинацию | Фиксировать набор и версии шрифтов в проекте или контейнере |
| HarfBuzz и fontconfig | Шейпинг и обнаружение шрифтов | Сборка может завершиться ошибкой или дать другое отображение | Использовать пакетную/контейнерную среду и не обновлять зависимости посреди тиража |
| ICU | Unicode и языковая логика | Риски различий в обработке текста и локали | Фиксировать образ сборки для критичных документов |
| LuaRocks‑пакеты | Дополнительные классы и inputter‑модули | Пропадут команды или изменится форматирование | Ставить пакеты локально и сохранять их версии |
| Версия SILE | Парсер, типографика, API и умолчания | После обновления документ может переразбиться | Закреплять 0.15.13 или конкретный контейнерный тег до контрольной сверки |
| Интернет | Нужен главным образом для установки и получения зависимостей | Уже установленный локальный проект обычно можно собирать без облака | Кэшировать пакеты и образы для автономной среды |
Аккаунт, подписка и сервер SILE не являются обязательной зависимостью локальной компиляции. Именно поэтому систему можно использовать для конфиденциальных макетов без загрузки документов в стороннее облако. Но приватность не равна безопасности выполнения: Lua‑код и сторонние пакеты получают возможности локального процесса, поэтому доверие к исходникам и зависимостям остаётся критическим условием.
Производительность и стабильность
Проект не публикует универсальных минимумов RAM, CPU или максимального числа страниц. Нагрузка зависит от объёма текста, сложности фреймов, шрифтов, формул, изображений и пользовательского Lua‑кода. Поэтому корректнее оценивать конкретный макет, а не переносить на SILE абстрактные «лимиты документов».
0.15.0 изменил упаковку и сделал Rust‑CLI основным, но не переписал типографское ядро. Для сборок проект предпочитает LuaJIT и отмечает его преимущество перед обычным PUC Lua, однако официального универсального процента ускорения для пользовательских документов нет. Критичные макеты лучше держать в фиксированном контейнере или Nix‑окружении.
История 0.15 показывает, что визуальная регрессия возможна даже без падения сборки: 0.15.11 исправила ошибку переносов, затрагивавшую ряд языков. Поэтому для книг и многоязычных материалов стоит хранить контрольные PDF и проверять пагинацию, переносы и ключевые развороты после обновления SILE, ICU, HarfBuzz или шрифтов.
Лицензирование и версии
SILE распространяется по разрешительной лицензии MIT. Плата за программу, подписка, пробный период и обязательная регистрация отсутствуют. Исходный код открыт, поэтому систему можно использовать, модифицировать и встраивать в собственные процессы в рамках условий лицензии. Отдельной коммерческой «Pro»‑редакции у SILE нет: различия возникают между стабильными тегами, development‑ветками, способами упаковки и сторонними модулями.
Стоимость использования поэтому определяется не лицензией, а инфраструктурой. Команда может платить за время разработки классов, поддержку Lua‑кода, CI, хранение шрифтов с подходящими лицензиями и контроль качества выпуска. В проекте без специалиста по программируемой вёрстке бесплатный движок иногда оказывается организационно дороже знакомого WYSIWYG‑редактора. В автоматизированном издательском конвейере ситуация обратная: отсутствие лицензионных платежей и текстовые исходники могут заметно упростить масштабирование.
Версии следует фиксировать явно. Стабильный 0.15.13 и текущий master — не одно и то же. В master уже встречается документация будущего поведения, например перехода на другой шрифт по умолчанию в 0.15.14. Для статьи, шаблона или CI нельзя автоматически переносить будущие настройки на 0.15.13.
Системные требования
Linux и BSD
Есть пакеты Arch Linux, Fedora, openSUSE, Ubuntu PPA, Void Linux и NixOS; для BSD упоминаются OpenBSD ports, Nix и исходная сборка. Точные минимумы CPU, RAM и диска не опубликованы. Для сборки из исходников нужны Rust toolchain и исходники Lua; в рантайме Rust‑инструменты и системный Lua основному Rust‑CLI не требуются. Для предпочтительного backend нужны HarfBuzz 2.7.4 или новее, fontconfig и ICU.
macOS
Подтверждённый путь — Homebrew. Формула ставит стабильный SILE, а HEAD собирает текущую ветку. Документация предупреждает, что стандартный шрифт может не устанавливаться автоматически, поэтому гарнитуры проекта нужно контролировать отдельно. Для исходной сборки ICU также можно получить через Homebrew.
Windows
Поддерживаемого нативного инсталлятора нет; официальная документация называет текущую совместимость неподдерживаемой. Практический путь — WSL и установка SILE как Linux‑программы. Работы с CMake/Visual Studio и CI‑артефакты существуют, но не равны поддерживаемой настольной редакции.
Docker и Nix
Docker‑образ siletypesetter/sile даёт стабильные и development‑теги; каталог проекта монтируется внутрь контейнера. Шрифты хоста нужно подключать отдельно. Nix позволяет запускать пакет из канала либо конкретный тег/ветку репозитория и удобен для воспроизводимой среды.
Преимущества и недостатки SILE
Плюсы и минусы
• Гибкая модель страниц. Фреймы и программируемые классы подходят для макетов, которые трудно выразить набором стандартных стилей текстового процессора.
• Открытая архитектура. Lua позволяет менять команды, алгоритмы и обработчики без форка всего движка.
• Локальная работа. Для компиляции не требуется аккаунт, подписка или загрузка документа в облако.
• Современный текстовый стек. HarfBuzz, ICU, OpenType и языковые модули дают хорошую основу для сложной многоязычной типографики.
• Автоматизация. Git, Docker, Nix, GitHub Action и текстовые исходники естественно встраиваются в CI/CD.
• Свободная MIT‑лицензия. Нет платы за редакции и ограничений пробного периода.
Минусы
• Нет WYSIWYG. Пользователь пишет исходник и оценивает PDF после компиляции, а не перемещает элементы мышью.
• Высокий порог для сложных макетов. Фреймы, измерения, Lua и классы требуют технического мышления.
• Windows не является поддерживаемой нативной платформой. Для обычной работы на Windows фактически нужен WSL или отдельная Linux‑среда.
• Меньшая экосистема, чем у LaTeX. Нестандартный издательский шаблон чаще придётся реализовывать самостоятельно.
• Риск несовместимости расширений. Крупные обновления API и Lua ABI могут потребовать адаптации сторонних пакетов.
• Исходники могут выполнять Lua‑код. Нельзя бездумно компилировать непроверенные проекты с правами рабочего пользователя.
Паспорт обратимости операций
| Операция | Обратимость | Что нужно сохранить |
|---|---|---|
| Изменение SIL/XML‑исходника | Полностью обратимо через систему контроля версий или резервную копию | Текстовые файлы проекта |
| Смена класса или пакета | Обычно обратима, но результат может заметно переразбиться | Версию класса, пакета и настройки |
| Обновление SILE | Обратимо при сохранении старой версии/контейнера | Тег образа, lock‑описание среды, контрольный PDF |
| Генерация PDF | Не изменяет исходник, но PDF не восстанавливает полную структуру проекта | SIL/XML/Lua, графику, библиографию и шрифты |
| Передача только PDF | Получатель увидит результат, но не сможет надёжно пересобрать макет | При необходимости редактирования передавать весь проект |
Главный принцип SILE — исходники являются мастер‑данными, а PDF является продуктом сборки. Поэтому опаснее всего не удалить сгенерированный PDF, а потерять контент, пользовательские классы, шрифты и точное окружение. Git‑репозиторий плюс воспроизводимая среда делает практически все обычные изменения обратимыми.
Сравнение с аналогами
| Инструмент | Модель работы | Сильная сторона | Когда лучше SILE |
|---|---|---|---|
| SILE | Текст/XML → программируемая вёрстка → PDF | Фреймы, Lua, гибкая издательская логика | Нестандартные книги, автоматизация, собственные классы |
| LaTeX | TeX‑экосистема и декларативная разметка | Огромная экосистема, наука, математика, шаблоны | Когда важнее программируемая модель страниц и Lua, чем совместимость с TeX‑миром |
| Typst | Современная разметка и компилятор | Быстрый старт, быстрые пересборки, удобный синтаксис, нативные Windows/macOS/Linux бинарники | Когда нужен более низкоуровневый контроль SILE‑классов и Lua‑экосистема |
| Scribus | Графическая настольная издательская система | Визуальная ручная вёрстка страниц | Когда документ должен генерироваться из данных и собираться без GUI |
| Pandoc | Конвертер форматов | Преобразование Markdown, DOCX, HTML, EPUB и других форматов | Когда задача именно типографская, а не конвертационная |
LaTeX остаётся более универсальным выбором для научной публикации, где издательство уже выдаёт класс, а коллеги используют TeX‑стек. SILE интереснее, когда команда готова проектировать собственный движок макета и хочет работать с Lua и фреймами. Typst проще для нового пользователя и предлагает нативный CLI на Windows, что особенно заметно на фоне слабой Windows‑поддержки SILE. Scribus выигрывает, если дизайнеру нужен прямой визуальный контроль каждой страницы, а SILE — если тот же макет должен регулярно генерироваться автоматически из изменяющихся данных.
С Sumatra PDF прямое сравнение некорректно: SILE создаёт PDF, Sumatra PDF его читает. Эти программы могут использоваться вместе в одном цикле: команда SILE компилирует исходник, а лёгкий просмотрщик открывает результат для визуальной проверки. Если требуется не создание, а объединение, разделение или другая утилитарная обработка готовых PDF, ближе по задаче будет PDF24 Creator.
Инструкция по установке
macOS через Homebrew
1. Установите Homebrew, если он ещё не настроен.
2. Выполните brew install sile.
3. Проверьте sile —version и зафиксируйте версию проекта.
4. Убедитесь, что нужные шрифты доступны системе.
5. Создайте минимальный test.sil и выполните sile test.sil; контрольный результат — test.pdf.
Linux
Используйте пакет дистрибутива: pacman -S sile для Arch Linux, dnf install sile для Fedora, zypper install sile для openSUSE. Для Ubuntu официальный проект поддерживает PPA sile-typesetter/sile. После установки проверьте версию и соберите минимальный test.sil.
Если готового пакета нет, доступны Nix, Linuxbrew или сборка из исходников. Исходная сборка требует Rust, исходники Lua, HarfBuzz, fontconfig и ICU; для git‑clone дополнительно нужен bootstrap и LuaRocks. Типичная последовательность после подготовки зависимостей — ./configure, make, затем sudo make install.
Windows через WSL
1. Подготовьте WSL с поддерживаемым Linux‑дистрибутивом.
2. Установите SILE внутри WSL по инструкции выбранного дистрибутива.
3. Проверьте доступ WSL к исходникам, шрифтам и изображениям.
4. Соберите тестовый PDF и откройте его Windows‑просмотрщиком.
Экспериментальные нативные Windows‑артефакты не стоит делать основой рабочего процесса: проект прямо предупреждает, что Windows сейчас не сопровождается как полноценная платформа.
Docker
Используйте официальный образ siletypesetter/sile с примонтированным каталогом проекта. При необходимости подключите каталог шрифтов в /fonts. Для воспроизводимости выбирайте тег конкретного релиза, а не плавающий latest. Удалять SILE безопаснее тем же пакетным менеджером, которым он был установлен; исходники проекта и локальные ресурсы храните отдельно, поскольку удаление программы не является архивированием документа.
Практические кейсы
Кейс 1. Книга из SIL‑исходников
Цель. Выпустить книгу из отдельных глав. Подготовка. Зафиксировать SILE, шрифты и класс book. Шаги. Разнести главы по включаемым файлам, настроить класс, оглавление и пакеты, затем собрать мастер‑файл. Проверка. Сверить число страниц, начала глав, колонтитулы и характерные переносы с контрольным PDF. Ограничение. Необычный дизайн потребует собственного класса или Lua‑расширения.
Кейс 2. XML → PDF без XSL‑цепочки
Цель. Получить печатный документ из структурированных XML‑данных. Подготовка. Зафиксировать схему и соответствие элементов обработчикам SILE. Шаги. Использовать XML с понятными SILE тегами либо подключить модуль под доменную схему и выполнить компиляцию. Проверка. Проверить вложенные элементы, спецсимволы и длинные абзацы. Ограничение. Очистку и нормализацию данных лучше выполнять до стадии вёрстки.
Кейс 3. Нестандартный макет на фреймах
Цель. Автоматизировать двухколоночные страницы, поля заметок и колонтитулы. Подготовка. Описать геометрию и связи областей. Шаги. Создать pagetemplate или класс, объявить фреймы и направить текстовые потоки. Проверка. Прогнать короткий и переполненный контент, исключив наложения и потерю текста. Ограничение. Drag‑and‑drop отсутствует: геометрию нужно диагностировать как код.
Кейс 4. Сборка PDF в CI
Цель. Получать PDF на каждый commit. Подготовка. Хранить исходники в Git и закрепить версии SILE, шрифтов и LuaRocks‑пакетов. Шаги. Использовать GitHub Action, Docker или runner, собрать документ и сохранить PDF как артефакт. Проверка. Контролировать успешный exit code, наличие PDF и критические сообщения лога. Ограничение. Для важных релизов автоматике нужна визуальная сверка утверждённых страниц.
Контроль перед сохранением и передачей
• Проверить, что сборка выполнена закреплённой версией SILE, а не случайным master/latest.
• Сверить шрифты и исключить неожиданный fallback.
• Проверить оглавление, индекс, библиографию, ссылки и страницы с нестандартными фреймами.
• Отдельно просмотреть формулы, RTL/многоязычный текст и переносы.
• Для продолжения работы передавать не только PDF, но и исходники, графику, библиографию, модули и описание среды.
• Перед печатью согласовать размер страницы, вылеты и метки реза с требованиями конкретной типографии.
Часто задаваемые вопросы
SILE — это замена Sumatra PDF?
Нет. SILE создаёт PDF из исходников, а Sumatra PDF открывает готовый файл. Они могут использоваться последовательно: компилятор формирует документ, просмотрщик помогает проверить результат.
Есть ли у SILE графический редактор?
Нет собственного WYSIWYG. Обычно используется внешний текстовый редактор, терминал и отдельный PDF‑просмотрщик. Для визуальной ручной вёрстки лучше DTP‑приложение.
Поддерживается ли Markdown?
Да, через сторонний пакет markdown.sile, устанавливаемый LuaRocks. Это не встроенная гарантия ядра, поэтому версию расширения следует фиксировать вместе с проектом.
Можно ли безопасно компилировать чужой .sil‑файл?
Только при доверии к источнику либо в изолированной среде. SILE позволяет выполнять Lua‑код и подключать модули, поэтому неизвестный проект потенциально активен.
Почему PDF может измениться после обновления?
На разбиение строк и страниц влияют алгоритмы переносов, метрики, ICU, HarfBuzz, шрифты и пакеты. Серия 0.15 уже содержала такие изменения, поэтому тиражный проект должен фиксировать среду.
Можно ли поставить SILE нативно на Windows?
На сентябрь 2026 года поддерживаемого обычного Windows‑инсталлятора нет. Практический вариант — WSL или другая Linux‑среда.
Можно ли редактировать существующий PDF в SILE?
Не как в PDF‑редакторе. SILE может включать PDF‑страницы как графический материал и генерировать новый PDF, но не предназначен для интерактивного изменения объектов чужого файла.
Подходит ли SILE для конфиденциальных документов?
Да, если локальная среда защищена: облако и аккаунт не обязательны. Одновременно нужно контролировать сторонние пакеты и Lua‑код, которые выполняются с правами локального процесса.
Что хранить для долгосрочного архива?
PDF, исходники SIL/XML/Lua, изображения, библиографические базы, пользовательские классы и пакеты, версии шрифтов и точную версию SILE либо описание контейнерной/Nix‑среды.
Вывод
SILE подходит разработчикам издательских процессов, техническим редакциям и небольшим командам, которым нужен открытый программируемый движок для получения PDF из структурированных исходников. Его сильная сторона — сочетание типографского движка, фреймов страниц, Lua‑расширяемости, Unicode/OpenType‑стека и удобной автоматизации через Git, Docker, Nix и CI. Особенно хорошо он выглядит там, где один и тот же сложный макет нужно многократно генерировать из изменяющегося контента.
Для пользователя, который хочет открыть PDF, поставить комментарий или вручную подвигать блоки на странице, SILE будет неправильным выбором. Здесь разумнее Sumatra PDF или Okular для просмотра, LibreOffice Writer для обычного авторинга, Scribus для визуальной DTP‑вёрстки, а специализированный PDF‑редактор — для изменения уже готовых PDF.
Главные ограничения SILE в 2026 году — отсутствие поддерживаемой нативной Windows‑редакции, сравнительно небольшой рынок готовых шаблонов и необходимость технической дисциплины. Если команда готова фиксировать версии, хранить шрифты и расширения вместе с проектом и воспринимать документ как сборку из исходников, SILE остаётся редким и мощным инструментом между TeX‑подходом и полностью программируемой издательской системой.