Знакомство каждого человека с компьютером рано или поздно подходит к редактированию документов.
А вот дальше, как говорится, есть варианты.
Человек может использовать компьютер лишь как печатающую машинку, у которой все средства форматирования сводятся к вставке лишних пробелов да переводу каретки на нужный интервал.
А может и научиться правильно форматировать документ используя хотя-бы необходимый минимум пробеловфункциональности редактора.
Вот те, кому надоело видеть/выковыривать из текста лишние пробелы, кому необходимо обеспечить совместную разработку документа с хранением в git/svn и много другого полезного — могут нажать кнопку ниже, чтобы прочитать немного больше про замечательный редактор Lyx.
Начнем со знакомства:
Lyx (ликс) является WYSIWYM редактором (не путать с WYSIWYG). Т.е. основным является не визуальное представление документа на экране, а его содержимое, которое может быть отформатировано так, как надо в конкретном месте.
Ликс представляет собой бесплатное, с открытым исходным кодом приложение, распространяемое под лицензией GPL v2, кросс-платформенное (Win/Mac/Linux/BSD, в том числе и неоффициальные порты под такую специфику как OS/2 и Haiku).
Собственно даже Apache OpenOffice и LibreOffice не имеют пакетов для такого разнообразия.
Бросая взгляд на основной экран Ликса, можно сразу отметить его хорошую (но не идеальную, как всегда) локализацию. Также есть и украинский язык интерфейса (но нет, например, белорусского). Однако это не сказывается на поддержке языков внутри документа — с этим нет никаких проблем.
Экран по умолчанию не загроможден лишними панелями, которые можно включить/выключить при необходимости.
Однако, как в том анекдоте «- отличие всего в 7м знаке букве, зато какая разница» — перед тем как начинать редактировать документ, желательно выбрать требуемый класс (формат) документа — от этого зависят две вещи — как можно форматировать документ, и как он будет в конце-концов выглядеть.
По поводу «форматирования документа» — в отличии от представления Microsoft, которое уже стало классическим, в Ликсе набор стилей параграфов ограничен ровно теми стилями, которые указаны в изначальном классе (шаблоне) документа.
Например в одном из стандартных классов «article» уровень вложенностей параграфов указывается через цепочку:
Часть, раздел, подраздел, подподраздел, абзац и подабзац. Параграф при этом может быть нумерованным или без нумерации.
Собственно такое жесткое разделение, закрепленное за классом документа, выгодно отличает Ликс от стиля WYSIWYG, где можно понаделать стилей в зависимости от погоды в Сингапуре и котировок на молоко в соседних деревнях.
Класс документа, можно поменять и позднее, но в любом случае придется приложить усилия к тому, чтобы документ стал выглядеть «по новому стилю». Для начала можно использовать стандартный article, и уже спустя некоторое время приходить к тому, чтобы модернизировать стиль, или создавать свои стили. Для последнего, кстати придется потрудиться, поскольку из за отсутствия визуальности, разработка собственного стиля невозможна без глубоких знаний текстового формата Lyx & LaTeX.
Вот мы и выбрали стиль документа и начинаем писать текст. И вот что странно… Хочется оставить кусочек места для титульной страницы и отступить до следующей. Правда, что все мы когда-то так делали? Однако Ликс не дает вставить лишнего перевода строки.
Пробуем написать один параграф. За ним следующий. Теперь идем между ними — жмем Enter — вуаля — есть пустое место. Еще один? Не, не дает. Уходим в другую строчку. Но что это? Ликс сам удалил пустой параграф! Печально, где моя Ятрань???
Та-же самая ситуация и с пробелами.
Вот и приходим к тому, что для того, чтобы отформатировать документ есть только один метод — выбрать правильный стиль параграфа, для которого в шаблоне документа заранее проставлено сколько там пунктов или миллиметров отступа от правого края и от предыдущего параграфа. Шаг влево, шаг вправо — нет, не расстрел — просто некуда идти.
Конечно не всё так катастрофично — при необходимости можно поставить вертикальный отступ ровно на столько сколько необходимо.
С остальными полезностями тоже всё в порядке — вставка картинок, автосборка оглавления и индекса. Перекрестные ссылки работают даже если сгенерировать PDF (только если генерировать через PDFLATEX и включить HYPERREF в свойствах документа).
Ну и немного о дополнительных возможностях и полезностях данного редактора:
Внутренний формат хранения свой. Файл документа представляет собой текстовый файл, который совсем не компактен (в 2.0 появилась возможность хранить в сжатом формате).
При этом, все внедряемые рисунки должны располагаться отдельными файлами, однако в редакторе они отображаются, чтобы было видно что и куда вставлено.
Однако текстовый формат хранения документа это огромный плюс тому, кто захочет организовать совместное редактирование документа несколькими людьми с хранением его в системе версионирования вроде GIT/SVN.
При этом, в сам Lyx встроена поддержка VCS, а также поддержка SVN (через внешние утилиты).
Отдельное слово хочется сказать про управление содержимым — каждому, кому приходилось реорганизовать документ с переносом целых глав и разделов в другую позицию, приходилось сталкиваться с долгой и нудной операцией выделения нужного куска. А вдруг если что-то случается с нумерацией, то бывает что проще откатить изменения на пару шагов назад, чем поправить.
В Lyx к операциям переноса глав и изменению отступов подошли совершенно с другого конца — открываем структуру документа, а затем прямо в ней, выбирая нужную часть, раздел или абзац — просто перемещаем их вверх/вниз либо изменяем уровень со всеми вложенными параграфами.
Возможностей у данного редактора очень много и незачем приводить здесь всю документацию, которую можно прочитать на сайте.
В качестве резюме:
Собственно использование Lyx как инструмента для работы с документацией внутри компании и было обусловлено в первую очередь тем, что совместная работа над документами приводила к тому, что каждый нажимал кнопки как хотел и куда хотел. От этого страдало оформление документов.
Наличие возможностей хранения в SVN помогло нам как иметь возможность идентифицировать того, кто внес ошибку в документ, так и средствами SVN исправлять эти ошибки, откатывая часть изменений в документе, которые порой были сделаны пол-года назад.
При этом надо учесть, что начальная часть документа берется из одного места (титульная страница, информация о конфиденциальности и т.п.), другая часть документа редактируется разными людьми, говорящими на разных языках, а третья часть вообще собирается автоматически (документация из исходного кода, конфигурация и состояние серверов и т.п.) и всё это красиво собирается в единый PDF который можно скачать нажав пару кнопок в CustomerCare.
Надеюсь, что данная статья будет интересна тем, кто ищет схожее решение по хранению и оформлению документации.