Список и описание пакетов CTAN
Т.к я работаю в основном с LuaTeX, пакеты будут описываться для неё.
Компиляторы документов
- TeX - оригинальная типографическая система, созданная Дональдом Кнутом ещё в конце 70-ых годов прошлого века. Бородатая и низкоуровневая система, предоставляющая только команды сдвига и смены шрифта, что делает её похожей на PostScript. В связи с этой сложностью вокруг низкоуровневого ядра были написаны обвязки в виде макросов. Наиболее популярные и живые: LaTeX, ConTeXt и AMS-TeX. Они позволяют писать типографию на профессиональном уровне даже любителю. Компилирует в DVI, поэтому для получения PDF нужно сначала преобразовать получившийся файл в PS, а его в PDF (например, через Ghostscript). Понимает шрифты только в формате Type1 и METAFONT.
- pdfTeX - улучшенная версия компилятора
eTeX, написанная Хан Тхе Тханем в начале нулевых. Позволяет компилировать документы напрямую в PDF, минуя цепочку преобразований DVI→PS→PDF. Это расширяет типографические возможности (например, появляется поддержка микротипографики в виде висячей пунктуация и незаметном растяжении шрифта), расширяет возможности использования перекрёстных ссылок и графики (см. пакеты hyperref и PGF/TikZ ниже), а также ускоряет процесс построения итогового документа. - XeTeX - юникод-ориентированный компилятор TeX, ожидающий на входе кодировку UTF-8. Был написан Джонатаном Кью в 2004 году. Позволяет использовать системные шрифты в формате TrueType/OpenType и предоставляет дополнительный функционал в этом деле. Однако, подобно чистому TeX, использует цепочку преобразования DVI→PS→PDF (xdvipdfmx), что из микротипографических возможностей позволило реализовать только висячую пунктуацию.
- LuaTeX - юникод-ориентированная, подобно XeTeX, система TeX, а также слоупочный интерпретатор Lua. Разработка началась в 2007 году командой под руководством Тако Хокуотера. Движок был принят командой разработчиков pdfTeX как их идейный наследник. Вобрал в себя как плюсы pdfTeX (прямое преобразование документа в PDF и микротипографика), так и XeTeX (поддержка юникода и системных шрифтов в формате TrueType/OpenType). В качестве альтернативы языка TeX предоставляет язык Lua, которому доступны все внутренние механизмы движка. Однако, несмотря на все плюсы, работает заметно медленее и потребляет больше памяти, чем XeTeX и pdfTeX (в 1.5 и 6 раз, соответственно).
Утилиты
- Ghostscript - интерпретатор PostScript и набор утилит для работы с ps и pdf.
- Poppler - библиотека рендеринга и набор консольных утилит для работы с pdf.
- qpdf - свободная реализация фич Adobe Acrobat, в часности оптимизация для веба, шифрование и сжатие.
- gImageReader - фронтэнд к Tesseract OCR для оцифровки и распознования текста отсканированных страниц.
- pdftk - ещё одна утилита для работы с PDF. Удобна для нарезки страниц. Написана на Java и тянет её рантайм.
- DiffPDF - удобное сравнение страниц PDF.
- optpdf - моя кривая утилита, максимально упрощающая сжатие pdf. Использует библиотеки Ghostscript и qpdf.
Классы документа
- article, book, report и letter - стандартные классы, устаревшие ещё когда динозавры жили на земле. Реализуют статью, книгу, отчёт и письмо, соответственно. Используют много костылей и подпорок, чтобы сохранять совместимость с производными форматами. Не желателен, особенно с современными компиляторами TeX (LuaTeX, XeTeX).
-
koma-scriptdoc - отличная замена базовым классам. Аналогами вышеперечисленных классов являются scrartcl, scrreprt, scrbook и scrlttr2.
- minimal - класс, используемый когда важно быстро скомпилировать содержимое документа, наплевав на стиль (например, для черновика).
- sliders - класс для создания презентаций (слайдов). Такой же древний, как и первые классы. И такой же нежелательный.
- beamer - современная замена классу выше. Предоставляет куда больше фич.
- hepthesis - класс для академический отчётов, особенно для подготовки диссертаций в области физики.
- moderncv - класс для оформления резюме в соответствии с современными стандартами дизайна.
- papertex - вёрстка газет. Не очень удобна, но вменяемых альтернатив нет.
Язык и шрифты
- babeldoc - пакет локализации документов LaTeX. Создавался для pdfTeX, что, впрочем, не мешает его использовать с другими компиляторами. Поддерживает около 200 языков.
- polyglossiadoc - пакет локализации документов LaTeX. Пришёл на смену пакету babel для Xetex и LuaTeX. Поддерживает более семидесяти языков без учёта диалектов. Не работает с некоторыми старыми стилями.
- fontspecdoc - предоставляет команды загрузки и смены TrueType/OpenType шрифтов и лигатур. Для поддержки японского нужно также загрузить luatexja, luatexja-fontspec и luatexja-ruby (последнее нужно для фуриганы) .
- xcolordoc - позволяет менять цвет текста.
- microtypedoc - реализует висячую пунктуацию, кернинг и трейсинг для равномерного распределения текста, что улучшает читаемость.
- anyfontsizedoc - позволяет указывать любой желаемый размер шрифта.
Формулы
- amsmathdoc - добавляет и улучшает возможности математических выражений. Основывается на наборе макросов AMS-TeX к ядру TeX.
- unicode-mathdoc - позволяет использовать символы юникода в формулах.
- siunitxdoc - пакет с единицами измерений, оформленных по правилам СИ. Также добавляет множество символов всех сортов и расцветок.
Гиперссылки
- bookmarkdoc - автоматически индексирует закладки при использовании hyperref, что позволяет избежать второго вызова компилятора.
- hyperrefdoc - реализует механизм гиперссылок, улучшает перекрёсные ссылки и создаёт оглавние для навигации по PDF.
Оформление
- float - расширяет возможность по позиционированию плавающих объектов (таблиц, изображений, etc.). В частности позволяет указывать абсолютную позицию.
- scrlayer - аналог пакета fancyhdr для работы с колонтитулами в среде KOMA-Script.
PGF/TikZ
- tikzdoc - пакет, предоставляющий удобный интерфейс к pgf, что облегчает рисование сложных фигур. Приходится на замену pstricks и metapost.
-
circuitikzdoc - предоставляет макросы, упрощающие рисование электрических схем.
- tikz-planetsdoc - примитивы для рисования небесных тел одной командой.