Т.к я работаю в основном с 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 - примитивы для рисования небесных тел одной командой.