суббота, 27 июня 2015 г.

Трудности оглавления в современных редакторах документов


Надо сверстать документ (курсовую работу)

Верстаем с помощью html+css. Ведь это так удобно - один раз написал стили, указал отступы, размеры шрифтов. Подключил prettyprint, для приятной глазу подсветки синтаксиса в блоках кода. Написал стили для печати, в которых правильно обрабатываются разрывы страниц.

Ну думаю, все. Теперь буду фигачить курсовые в markdown и преобразовывать их в удобный для просмотра и печати html. Но тут потребовалась еще одна фича - оглавление. Ну это думаю просто - напишу скриптик (или в интернетиках найду), который пройдется по древу документа и найдет в нем все заголовки и выведет их в стиле.

HEADER1
  header2
  header2
    header3
 
Но все рушится одной маленькой проблемой. Не знаю что на самом деле указано в ГОСТе, но в методических рекомендациях к выполнению работы сказано, что в оглавлении около каждого заголовка должен быть указан номер страницы.
И джаваскриптом этот номер страницы никак не вытащить - он просто не знает в какую страницу попадет заголовок при печати.

Понятное дело, html ориентирован на веб, и со всеми его наворотами к печати не предназначен. И хоть в лепешку разбейся, полноценной верстки документов в нем не добъешься.

Позже всплыла еще одна проблема - невозможно добавить что либо к футеру и хердэру каждой страницы при печати. И их туда автоматически пришивает браузер при печати. И у тебя есть выбор - либо печатаешь без номеров страниц вообще, либо с номерами страниц и дополнительной ненужной хренью, типа url страницы, откуда печатается документ (C://html/...../doc.html), дата печати, заголовок страницы.


Альтернативные редакторы

Ну ладно, получается у нас программная многоножка. Печатаем документ в удобном тебе редакторе в формате markdown, преобразуем в html, а когда хотим сдать документ оформленный по всем ГОСТам - копируем его в какой нибудь Google Docs или Word, оформляем оглавление и нумерацию страниц, печатаем.

Google docs 

Начнем с того что он жутко тормозной и с простейшим документом на 30 страниц на i5 macbook air ворочается кое как. Но это беда всех крупных веб приложений.
И первый наш претендент с оглавлением тоже не справляется. Просто рисует список заголовков, что я сам спокойно делал на чистом js.

Microsoft office online. 

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

iCloud office online (pages)

Также делать оглавление не умеет. Кнопок в нем мало, перекликав все кнопки, ничего похожего на создание оглавление не нашел. И в интернете тоже. Десктопную версию pages ставить не стал. Может она и умеет.

Word mobile preview. 

Уж не знаю, почему они назвали его mobile - ставится он сейчас бесплатно на windows 10 и обладает немножко урезанным функционалом, но при этом очень быстро работает. Кнопки "составить оглавление" обнаружено не было. 

Решение

Остается два варианта - купить полноценный microsoft word (или воспользоваться триалом)
Либо составлять оглавление вручную.

Может я чего то не знаю и существуют простые способы автоматического составления оглавления. Но эти способы очень хорошо запрятаны, что даже после некоторого ресерча на эту тему, эффективного решения найдено не было.
Есть еще всякие open source офисы, но когда я их в последний раз трогал палкой, это была просто куча глючащего кода, которая не могла корректно открыть или сохранить файл в doc формате. Может быть сейчас в них уже можно работать.
Есть еще всякие tex/latex, но у меня нету нескольких свободных месяцев для того, чтобы научиться работе с этим языком.

Просто сам факт того, что во всех современных офисах созданных гигантами ПО, нету простейшей вещи, удивляет.

Комментариев нет:

Отправить комментарий