В конце прошлого года в Ракетно-Космической Корпорации "Энергия" прошла конференция молодых ученых и специалистов. Автор этой статьи входил в состав секретариата, в частности выполнял функцию верстки сборника тезисов. Описание возникших проблем и путей их решения под катом.


К сожалению, система верстки LaTeX не распространена (по моей статистике) среди инженеров. Вместо использования команд форматирования высококлассные специалисты применяют, как метко выразился один профессор МГТУ им. Баумана, навязанный юристами и бухгалтерами редактор (конечно, речь об MS Word). Да, несомненно, при верстке некоторых объектов встречаются технические сложности, заставляющие потратить несколько часов на поиски элегантного решения, но эти затраты нивелируются, если в написании документа участвует группа людей, или если необходимо строго придерживаться определенного шаблона оформления. Про набор, верстку и внешний вид формул молчу.


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


Изначально я не предполагал верстать все тезисы при помощи LaTeX'а: планировалось, что секретари конференции пришлют уже подготовленные части сборника тезисов, каждый по своей тематической секции, а я должен быть их подчистить в плане форматирования, объединить в отдельный документ и преобразовать в PDF. Однако, мои глаза не смогли спокойно смотреть на присланный материал, к тому же в тот момент по основной работе было не слишком много текучки, что позволило потратить время на верстку тезисов в LaTeX'е.


Итак, мой рабочий цикл выглядел следующим образом:


1) Копирую текст из Word'а в VIm;
2) При помощи регулярного выражения добавляю переносы строк после каждой точки (мне так нравится), добавляю дополнительные переносы строк в окончания абзацев;
3) При помощи регулярного выражения оформляю заголовок доклада и информацию об авторах;
4) Оформляю список литературы в виде списка LaTeX;
5) Преобразую в PNG и вставляю картинки, набираю формулы.


Всего в сборнике тезисов было почти четыре сотни работ. Необходимо отметить, что десяток работ из них были сверстаны в LaTeX'е.


В процессе верстки подключил к VIm'у плагин latexsuite — он позволил мне сэкономить немного времени.


Что получилось автоматизировать (в основном, регулярными выражениями):


  • поиск и экранирование спецсимволов LaTeX;
  • добавление команд форматирования к заголовкам, информации об авторах и заголовку списка литературы;
  • оформление ФИО авторов в виде Иванов~И.~И., а не Иванов И. и не И.И. Иванов.
  • разбиение на строки длиной менее 80 символов;
  • подсчет количества работ, в том числе по категориям.

Что не получилось (не хватило терпения/желания) автоматизировать:


  • преобразование различных юникодных символов в команды LaTeX'а: кавычек в <<>>, тире в "---, креста в \times и т.д.;
  • добавление символа ~ между числом и единицей измерения;
  • форматирование единиц измерения, в основном ^2, ^3 и градусов Цельсия;
  • форматирование нумерованных и маркированных списков;
  • переоформление элементов списка литературы примерно в соответствии с ГОСТ.

Что невероятно поразило — некоторые авторы кладут в DOC-файл рисунок большого размера (например, скриншот разрешением 1920x1280), а затем средствами текстового редактора кадрируют его, вырезая чертеж или окно (например, размером 400x300 пикселей). Переоформление такого рода рисунков заняло довольно много времени и потребовало определенной аккуратности.


Кроме таких рисунков, много времени съело преобразование рисунков, нарисованных средствами Word, в растровую картинку. Приходилось рендерить DOC-файл в PDF-формат при помощи CutePDF, а затем вырезать изображение из нужной странички PDF-документа. Правда, в отдельных случаях удалось оперативно получить от авторов рисунки в виде отдельных файлов.


И, конечно, отдельное удовольствие доставил повторный набор формул, изначально представленных в DOC-файле, в командах LaTeX'а.


Оформление сборника тезисов, имеющего суммарный объем побольше 700 страниц, содержащего тезисы почти 400 работ, заняло порядка 60 рабочих часов. На мой взгляд, выполнение аналогичных задач в MS Word, а именно: переформатирование в единый стиль, единообразная запись информации об авторах, приведение к единообразию кавычек и тире, вставка неразрывных пробелов вместо обычных, потребовало бы не меньшего времени. По крайней мере у меня.


Полученный документ радует красивыми шрифтами и единообразным оформлением.


p00


p01


p01


И напоследок космическая картинка...


image

Комментарии (33)


  1. vladob
    13.02.2018 01:54

    Пришлось мне как-то этим заниматься. Вот эта книжица политая моим потом и кровью. В одиночку. Еще я сделал и админил "от и до" вебсайт для ревьюверов (их было 400+), которые отработали с 1300+ поданных на конференцию работ, но это уже другая история.


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


    Самое легкое — просить пдф указанного качества (поля, шрифты и т.п.). Заморочнее — предоставить шаблоны для того же TeX'a и/или Ворда.


    1. kaftanati
      13.02.2018 08:52

      Зачем просить pdf?

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

      Переделав за всеми раз, наверняка придется повторить такой подвиг снова.


  1. maisvendoo
    13.02.2018 07:11

    Ох, статья прямо бальзам на душу. Есть всё-таки у нас в стране энтузиасты, которые внедряют тэх в массы.
    К слову, хочу сказать, что дела с тэхом в столицах, на мой взгляд не так плохи. На переферии же засилие ворда до сих пор переходит всякие границы и ситуация никак не желает сдвигаться. Моё личное мнение — заставлять писать тексты насыщенные математикой в ворде форменное издевательство над человеком. Правила эти придумывают те, кто не собирается их выполнять. Вот лично для меня проще сверстать всё в латэхе, а потом с помощью GrindEQ перегнать в ворд, с последующей корректировкой. Главная фишка тулзы — она перегоняет формулы из тэха в совершенно нормально редактируемый equation 3.0. Последнее время подумываю продать душу дьяволу и купить её (пока пользуюсь триалами), настолько она бывает необходима


    1. GeMir
      13.02.2018 15:34

      Печально, но факт — даже в околонаучной среде (те же журналы по дидактике математики) статью из LaTeX приходится перед публикацией переводить в «общепринятый» DOC (Times New Roman, 11pt…). Формулы, к слову, страдают не так сильно как векторная графика, которую хотят видеть в JPEG или PNG.

      тэх в массы […] дела с тэхом в столицах […] сверстать всё в латэхе
      Исключительно из любопытства — вы TeX принципиально как «тэх» произносите?


      1. maisvendoo
        14.02.2018 06:52

        вы TeX принципиально как «тэх» произносите

        Как учил Дональд Кнут


  1. maisvendoo
    13.02.2018 07:18

    Ещё одно мое мнение — MS Office не нужен. Вообще. И кстати, последние его версии поддерживают ODF, используемый в OO и LO. Я понимаю, что служебную записку из нескольких строчек глупо писать на латэхе, но для этого вполне сгодится LO. Для насыщенных математикой научных текстов — латэх.

    Единственное, что держит на вордоигле — наличие огромного массива старых документов в нем подготовленных, которые портятся часто при открытии в альтернативных пакетах. Но, момент отказаться от майкрософт офиса настал уже давно, и чем раньше это сделать, тем быстрее старые документы выйдут из оборота.

    MS Office не нужен Вам. Задумайтесь, те, кто до сих пор не мыслит своей работы без него


    1. remzalp
      13.02.2018 08:14

      Я согласен, что офис не нужен, но в сравнении латекса и ворда:


      Ворд — setup.exe -> -> -> серийник -> -> word ->пишем
      Латекс -> найти конкретную сборку -> setup.exe -> wtf -> wtf -> wtf -> мучения в выборе удобного редактора -> пытаемся понять -> пишем -> пытаемся понять -> рендерим -> материмся на шрифты -> правим -> рендерим


      Вордоигла — потому что с ним просто начать, а дальше уже пофиг, плакать будет в основном не пользователь, а тот, кто работает с кучей разношерстных документов.


      Кстати, в своё время хорошо решал вопрос обработки водовских документов через сохранение в формате HTML, там уже даже регулярками можно чистить, плюс все связанные картинки аккуратно рендерятся.


      С латексом сложно начать, уже три раза пытался начать работать с латексом, как-то оно не особо получается. Авторы курсов/книг ударяются в малополезные детали, еще не встречал чего-то уровня методички на 20 страниц, где всё просто и легко, рекомендованы конкретные быстрые решения, чтобы просто взять и легко настроить базовый шаблон, а потом начать писать. Бывает еще замшелая книга, которой все восторгаются, но половина подходов уже настолько устарела, что даже найти упоминаемые дистрибутивы несколько проблемно.


      А бывают книги, где сводится к куче не объясняемых телодвижений по сборке шаблонов, плагинов и прочего, в итоге собрал звездолёт, но не понимаешь — почему он вверх летит и как поворачивать.


      Сил и времени, чтобы глубоко зарыться и полностью всё осознать не особо много.


      Да, привет из Екатеринбурга — сайт библиотеки УрФУ позволяет скачивать сведения о книге в формате bibtex, так что регионы потихоньку подтягиваются.


      1. maisvendoo
        13.02.2018 08:25

        привет из Екатеринбурга

        Вас сложно назвать переферией, всё таки у вас двухмиллионный город с сильной наукой. В свое время имел честь общаться с вашими учеными по линии Всероссийских олимпиад по теоретической механике.

        В нашем регионе мехмат ЮФУ тоже не брезгует тэхом, я из-за этого собственно его изучать и стал, так как они в свои сборники иначе статьи не принимают. Но в целом по вузам не имеющим статус федеральных ситуация плечевна


      1. pantlmn
        13.02.2018 20:10

        Для старта можно поиграться на www.sharelatex.com или www.overleaf.com

        Англоязычный tex.stackexchange.com — самое доброжелательное интернет-сообщество, которое я когда-либо встречал.


      1. Matshishkapeu
        14.02.2018 06:42

        >> Латекс -> найти конкретную сборку -> setup.exe -> wtf -> wtf -> wtf -> мучения в выборе удобного редактора -> пытаемся понять -> пишем -> пытаемся понять -> рендерим -> материмся на шрифты -> правим ->

        Ужас какой-то. TexStudio не пробовали? От тех, кто вынужденно переходил в тех с нуля слышал о нем только приятное, что мол даже работать можно. Судя по описаниям — проще чем TexnicCenter (с которым работал лично) — хотя там все тоже работает из коробки и ОК.

        Хотя лично мне для практических нужд Тех убог. В ворде я могу влепить в документ эксельный график со всей рассчетной таблицей, данными, формулами и зависимостями, при необходимости поднять эту таблицу проверить данные, поменять что-то. В Техе я такого как-то не помню, не про это он.


        1. StarHunter Автор
          14.02.2018 06:49

          Есть еще основанный на LaTeX редактор LyX, очень интересная штука, но не помогающая преобразовывать готовые материалы из DOC в TeX.

          Что касается графиков — есть возможность встроить в TeX графики, построенные при помощи Gnuplot, что обеспечивает сходный с описанным функционал. Так же как и Word, TeX не совсем про графики.


          1. GeMir
            14.02.2018 14:02

            Так же как и Word, TeX не совсем про графики.
            А «о чём же» тогда pgfplots, TikZ и иже с ними?


            1. StarHunter Автор
              14.02.2018 19:25

              ИМХО, импорт изображений, рисование и построение графиков — лишь одна из многих функций TeX. При этом результат верстки текста, набора формул в TeX'е выглядит профессионально, а построенные графики — не всегда. Результат работы, например, gnuplot на мой взгляд значительно симпатичнее чем у pgfplots, хотя, повторюсь, это мое ИМХО, а может быть у меня руки кривые в плане pgfplots.


        1. maisvendoo
          14.02.2018 06:54

          1. Matshishkapeu
            15.02.2018 00:36

            Неплохой вариант на самом деле. При условии что работает с документом в основном его создатель. Если надо переслать / поделиться то придется писать длинное ридми как заставить это компиляться, сделать однообразное окружение у всех пользователей документа. То есть много дополнительных действий.


        1. remzalp
          14.02.2018 07:35

          За студию спасибо, хотя бы сразу не ужаснула, буду пробовать.


    1. hurtavy
      13.02.2018 08:22

      Это всё конечно прекрасно, но… Многие российские журналы требуют статьи именно в DOC и не берут латех. Ну и всякие формы того же Фонда фундаментальных исследований, разные отчёты, акты — там часто так накручено оформление, как наследие старых версий, что в ОО нормально не открывается.
      Последний раз я пару лет назад пытался в ОО заполнить заявку на грант. Оформление на вид осталось тем же, но оказалось, что у них в фонде эти файлы обрабатываются какой-то своей прогой. В общем, пришлось переделывать именно в Ворде, так как эта прога не смогла обработать DOC, пересохранённый ОО


      1. maisvendoo
        13.02.2018 08:26

        Это всё конечно прекрасно, но… Многие российские журналы требуют статьи именно в DOC

        потому что ломать эту ситуацию никто не стремится


      1. GeMir
        13.02.2018 15:36

        многие российские журналы требуют статьи именно в DOC и не берут латех
        Не только российские. Увы.


        1. hurtavy
          13.02.2018 16:02

          А вот там всё интереснее. Те же Elsevier раньше требовали именно в тех, а теперь уже нормально берут и DOC и прочие ODF


    1. kasyachitche
      13.02.2018 21:22

      Latex, в первую очередь, профессиональный инструмент, и не является пилюлей от всех проблем текстовых редакторов. Даже курсовую на 50+ таблиц, рисунков, источников, можно нормально (и не фокусируясь на работе с latex'ом) сверстать в word, благо там есть автонумерация (ну такая себе) и работа с источниками (вот тут все хорошо, если подключить стили).
      Может на заре развития текстовых редакторов идеология latex'а (пиши, а программа сверстает) была преимуществом, но текстовые редакторы не стоят на месте, и нужно внимательно изучить что предлагают в обоих лагерях.


      1. StarHunter Автор
        13.02.2018 21:31

        Для решения одной и той же проблемы существует множество путей. Однако среди моих знакомых меньше людей, которые пользуются шаблонами MS Word, чем LaTeX'ом. Грандиозное большинство использует офисный редактор как печатную машинку, никаких стилей, автонумерации, автоматических списков литературы…
        Мне кажется, что если человек способен формализовать и осмыслить эти понятия в своей голове, то он скорее будет пользоваться техом, чем шаблонами ворда.


    1. wyfinger
      13.02.2018 21:28

      Вы просто не представляете какие документы в Word пишут обычные офисные сотрудники.
      Уже не говорю про макросы, которые, например нашей службе экономят огромное количество времени. И вообще VBA макросы, ИМХО, главное конкурентное преимущество Office, посмотрите хотя-бы https://github.com/wyfinger/Raschet_DZSH
      Как-то я проверял, Excel единственный худо-бедно работает на файлах ~100 Mb c 4-5 листами по ~200 тыс. записей на каждом. Ни LO, ни тем более OnlyOffice не справляются.

      Latex хорош для подготовки публикаций, но это не единственный вектор использования офисных пакетов.
      Про Latex, скажите хоть кто-нибудь как сделать в вложенный список? в ненумерованный список добавить нумерованный (русские символы: а), б) ...). Верстаю книжку (https://www.sharelatex.com/project/58ab878dbf3be6ae4fe684e4), даже не знаю где спрашивать.


      1. StarHunter Автор
        13.02.2018 21:38

        Я убежден, что в приличной фирме должен быть сотрудник по разработке шаблонов LaTeX, который будет упрощать жизнь обычным писателям текстов, позволяя им работать, используя пару-тройку десятков команд.

        По редактированию — использовать пакет enumitem и счетчики \asbuk


      1. GeMir
        14.02.2018 14:04

        даже не знаю где спрашивать
        Здесь?


      1. Matshishkapeu
        15.02.2018 00:44

        >> И вообще VBA макросы, ИМХО, главное конкурентное преимущество Office,
        Еще интеграция с прочим. Например с САПР где в эксельных таблицах могут храниться размеры элементов из которых генерятся детали. Или инструменты менедмента данных типа Autodesk Vault — он помимо чертежей прекрасно интегрирауется с оффисом через адд-он и позволяет добавлять в проекты всякие текстовые документы, инструкции и ты ды.


  1. nerudo
    13.02.2018 08:55

    Для LibreOffice есть аддон, который позволяет сохранять документ в формат tex. Не пробовали?


    1. StarHunter Автор
      13.02.2018 21:25

      Этот аддон преобразует формулы MS Equation? Оставляет после себя лишние команды форматирования? Преобразует картинки в подходящий формат и кадрирует их?


      1. nerudo
        13.02.2018 23:15

        На эти и множество других вопросов я сам как раз рассчитывал получить ответ ;)
        Как раз проверил из интереса (давно хотел) — результат вполне достойный, хотя руками потом еще пилить и пилить. Из явных минусов:
        1) сохранил векторные картинки в неудобоваримом формате .svm, его руками надо преобразовывать в eps/pdf (но это на мой взгляд лучше, чем сохранять их в растр скриншотами);
        2) Подписи к таблицам/рисункам не связаны с самими объектами, а сделаны просто счетчиками. Но я всегда подозревал что в офисах они именно так жопно и реализованы. Хотя это не точно. Встроенный стиль подписи (Illustration) он преобразовал верно в отличии от моего самодельного;
        3) что-то не так с вертикальным объединением ячеек в таблицах
        4) ни слова не сказав напрочь потерял (даже комментариев не вставил) цветовое выделение фона текста. Я понимаю, что на бумагу так не печатают, но вот в электронном документе оно мне было очень полезно
        5) Какая-то смешная проблема со стилями — внутри каждой новой секции первый параграф без красной строки

        PS Простенькую 2-этажную формулу вполне корректно представил в теховской нотации. Но это из редактора OO. Как там в MS Equation — фиг знает.


  1. pantlmn
    13.02.2018 12:09

    Подобную задачу я осуществлял по такой траектории:
    soffice: doc/docx --> odt
    writer2latex: odt --> tex

    Получилось вот что.


  1. yeswell
    13.02.2018 22:09

    Прочитал комментарии и с удивлением не обнаружил ни слова про преобразование Word’овских картинок в растровые. Ведь можно было сделать скриншот или воспользоваться утилитой Ножницы. Странно, что автор так не поступал.

    В остальном статья очень полезная. По моему опыту LaTeX используют очень мало даже в университетской среде.


    1. StarHunter Автор
      14.02.2018 06:38

      Спасибо!

      Я преобразовывал страничку DOC-файла в PDF при помощи CutePDF, а затем вырезал из нее. Если делать скриншот, получается на мой взгляд неприемлемо низкое разрешение.


  1. vladob
    13.02.2018 23:25
    -1

    TeX — это монстр, гениально написаный гениальным Кнутом.

    Это не более чем еще один язык описания задачи, ЯП, со своими библиотеками (стилями), ресурсами (шрифтами), коммюнити и т.п. Да, имеет свои заморочки. Но по причине своих непревзойденных другими приложениями полезных качеств, похоже, останется с нами на века.
    Просто будет сидеть где-нибудь «под капотом» в более попсовых системах, типа всех MarkDown и таким образом прийдет к миллионам и миллиардам пользователей.

    Это монстр из той же «линейки», куда входят C, FORTRAN, LISP, SAS.
    Заставлять офисный крысок верстать в ТеХе не нужно, и по-видимому, не будет нужно никогда.

    Например в R коммюнити было много попыток подружить R с TeXом посредством соответствубщих библиотек. С появлением Rmd (R MarkDown) — одна из фич Rstudio — я стал этим пользоваться практически ежедневно.

    Показать его будущим математикам Дать мнимальные основы будущим инженерам — это «the must».