Первый проект с Latex

Все началось с моего дикого желания заменить MS Word для технической документации по проекту.
Все началось с моего дикого желания заменить MS Word для технической документации по проекту.

Предыстория или как пришел к нам Latex

Как бы мне не хотелось, но каждый проект (в том числе и внутренние) сопровождается большим количеством документов, а когда работаешь с бюджетными организациями, то там документов еще больше.

Каждый документ имеет часть, которая во всем скопе просто одинаковая (ее копируют из документа в документ), и если в эту постоянную часть вносятся корректировки, то приходится каждый документ открыть и заново копировать-вставлять часть текста.

Или настройка стилей в документе. Это тема — моя отдельная боль. С небольшими документами — это проблема вроде как не заметна, но если у вас 20 небольших документов? А если 20 больших документов? Да уже к пятому документу начинаешь выть.

Формирование глоссария? Списков литературы? Оглавления? Работа с заголовками (да еще и нумерация заголовков) и так дале и тому подобное.

Даже зная инструментарий MS Word на приличном уровне, все может сломаться по щелчку пальцев — достаточно допустить к документу хотя бы одно человека, который знает MS Word не так хорошо как хотелось бы.

В общем желание уйти от MS Word с каждым днем все крепло. И начался достаточно продолжительный период поиска и тестирования различных приложений и программ. Но инструментария, который меня бы устроил не попадалось. Но в один прекрасный день, после того как в очередной раз слетели стили в документе, одна из коллег предложила попробовать Latex.

Немного почитав об этом инструменте, приняли решение начать применять инструмент прям в текущем проекте.

С чего мы начинали

Первый проект с Latex

Нам понадобилась примерно неделя для того чтобы освоить Latex на начальном уровне. А именно:

  • Установить компилятор (у нас TexLive);
  • Установить редактор (TexStudio);
  • Освоить конструкции языка;
  • Установить git и всем подключиться к репозиторию (в команде были люди, которые не владели git’ом).

С этого момента технический писатель занимался только текстом. А за оформление документов теперь отвечал другой человек. И вы не поверите, но скорость создания документов сильно увеличилась.

Мы выстроили следующую схему работы с Latex:

  • Была сделана первоначальная настройка документа (поля, размер шрифта, оформление ссылок, оформление заголовков и т. д.).
  • Все эти настройки вынеслись в отдельный файл, который теперь подключался к каждому новому документу, и если в файл с настройками вносились коррективы, то они применялись ко всем документам, к которым был подключен файл.
  • Текстом занимался технический писатель. Но за оформлением техпис тоже следил. Если возникала необходимость внести корректировки в оформление, то техпис сначала пробовал самостоятельно это сделать. Но если с ходу не получалось, то задача предавалась человеку, отвечающему за оформление.
  • Работа всей команды сопрягалась через git (этот тот плюс, который влюбил в этот инструмент наших разработчиков).

Что поразило меня при начале работе с Latex, так это отсутствие «свежей» информации в русскоязычной части Интернета. И это касалось не только статейной информации, но и печатной литературы.

В итоге общими силами команды нам удалось найти:

  • Курс от ВШЭ Д. А. Федоровых «Документы и презентации в Latex», 2014г.
  • Коттвиц Ш. «LaTeX: руководство для начинающих», 2022г.
  • С. М. Львовский «Набор и вёрстка в системе LaTeX», 2014г.

Это конечно не исчерпывающий список литературы, но этого вполне достаточно, чтобы быстро освоить азы Latex и приступить к использованию инструментария.

Чуть позже удалось найти еще пригодные для изучения материалы на русском: лекторий ФПМИ; А. В. Кузнецов «Основы Latex. Учебное пособие», 2021г.

Работа в Latex

Первый проект с Latex

Если не вдаваться в технические подробности, то проще всего сравнить принцип работы в Latex с принципом работы в HTML и CSS. Есть разметка и есть оформление. Все оформление можно вынести в отдельный файл / пакет и подключать к нужным документам.

Возможностей у Latex безграничное множество. Каждую возможность можно подключить через пакет или попробовать написать самому (но второй вариант точно не для новичков) .

Есть единый репозиторий пакетов Latex: CTAN. К каждому пакету есть документация (правда не у каждого пакета она исчерпывающая). В большинстве случаев документация на английском языке.

В отдельные файлы можно помещать повторяющиеся части документов. Например, титульные листы, глоссарии, элементы интерфейсов.

Не нужно отслеживать пробелы, отступы, случайные переносы строк, выравнивание.

Но самая любимая мной функциональность — возможность подставить команду, которая будет выводить нужный текст / изображение. Это функциональность нас сильно выручала при описание интерфейсов. Мы в отдельном файле сразу определили все элементы интерфейсов (поля, кнопки и т. д.) и в тексте уже использовали команды. И если в интерфейс вносились изменения, то нам было достаточно изменить только описание команды, чтобы во всех документах внеслись правки.

Вся разметка и оформление пишутся в файлах с расширением. tex. Но эти файлы не конечные. Конечным файлом работы в Latex является. pdf.

Файлы pdf, созданные с помощью Latex, читать одно удовольствие: текст прекрасно масштабируется, все ссылочки, перекрестные ссылки работают; боковая панель понимает оглавление; быстрый поиск по файлу с подсказками. В общем такой файл не стыдно передать клиенту.

Ложка дёгтя

У Latex есть свои минусы. Самый важный минус — это работа с большими таблицами. Увы, но таблицы в Latex не такие идеальные как текст. И с ними пришлось мучаться. А именно с переносом строк на другую страницу.

Второй минус — работа со сторонними шрифтами. Для того чтобы подцепить шрифт к Latex придется помучатся и то не факт что получится. Работы по подключению шрифтов относятся к суперуровню владения Latex.

Итоги знакомства

Первый проект с Latex

Итогом знакомства на практике с Latex стал файл settings. tex. Файл уже перекочевал в другой проект и уже в новом проекте успел обзавестись обновлениями.

Нам почти сразу подсказали пакет, который помог бы оформить документацию по ГОСТу (Eskdx). Но в этом случае мы бы так досконально не познакомились с возможностями Latex за один проект. Ну и этого пакета есть существенный недостаток — он охватывает огромное количество вариаций оформления и подключает пакеты, которые в нашем проекте не использовались. Поэтому ни я ни коллеги не жалеем, что пошли по более сложному пути.

И так чем же нас так пленил Latex:

  • Возможность работы с git;
  • Разделение текста и оформления;
  • Ускорение обновления документов за счет выноса повторяющихся частей в отдельные файлы;
  • Интерактивный pdf-файл.

Есть еще один плюс, который мы пока не опробовали, но мечтаем реализовать: конвертация. tex-файлов в полноценные справочные системы, которые можно было бы размещать на сайте.

P. s.: Не все было так легко, как может показаться из статьи. На поиск реализации некоторых частей оформления документов уходили целые дни. Изучалась документация пакетов, англоязычные форумы, перечитывались книги, пересматривались видеоматериалы.

Если статья заинтересует общественность, то напишу еще серию постов по Latex, в которых раскрою содержание нашего файла settings.tex.

33
Начать дискуссию