plasTeX — это свободный фреймворк на языке Python для разбора, обработки и конвертации документов, написанных в системе разметки LaTeX. Проект предназначен для превращения исходных LaTeX-файлов в абстрактное представление документа (DOM-подобную структуру), которое затем может быть использовано различными рендерерами для генерации выходных форматов, таких как HTML, PDF, EPUB, DocBook и прочие. Архитектура plasTeX ориентирована на расширяемость через плагины и модули, что позволяет адаптировать обработку предметных классов документов и добавлять новые способы вывода.
Разработка и поддержка проекта осуществляются в виде набора Python-пакетов, включающих парсеры, инфраструктуру командной строки и набор готовых рендереров. Исторически plasTeX возник как попытка создать программный слой между исходным LaTeX и современными форматами публикации, сохраняя семантику исходных команд и окружений. Документы, преобразованные через plasTeX, обычно сохраняют структуру разделов, формулы, списки, таблицы и метаданные, а также могут быть дополнительно обработаны для интеграции с веб-ориентированными или издательскими рабочими процессами.
- Парсинг LaTeX: разбор исходных файлов LaTeX в дерево объектов с поддержкой пользовательских команд и окружений.
- Абстрактное представление документа: создание DOM-подобной структуры, удобной для программной обработки и трансформаций.
- Модель расширяемости: система плагинов и модулей для добавления новых макросов, окружений и специализированных обработчиков.
- Рендереры для вывода: набор рендереров для экспорта в HTML, XML-наследуемые форматы, EPUB и другие целевые форматы; поддержка создания собственных рендереров.
- Сохранение семантики: попытки сохранить смысловые элементы документа (заголовки, библиография, сноски, формулы) при конвертации в другие форматы.
- Интеграция с инструментами Python: возможность использования в скриптах и пайплайнах для автоматизированной обработки коллекций документов.
- Командный интерфейс: утилиты для запуска разборки и конвертации из терминала, управление настройками и путями вывода.
- Обработка математических формул: поддержка экспорта формул в форматы, пригодные для веба и печати, с возможностью постобработки.
- Работа с метаданными и ссылками: обработка информации о заголовке, авторстве, библиографии и перекрёстных ссылках внутри документа.
- Сообщество и документация: наличие руководств и примеров по расширению парсера и созданию пользовательских рендереров; в случае ограниченной или отсутствующей официальной информации это отражается в составе доступных плагинов и примеров использования.