355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Михаил Кондратович » Создание электронных книг в формате FictionBook 2.1: практическое руководство » Текст книги (страница 7)
Создание электронных книг в формате FictionBook 2.1: практическое руководство
  • Текст добавлен: 6 октября 2016, 23:47

Текст книги "Создание электронных книг в формате FictionBook 2.1: практическое руководство"


Автор книги: Михаил Кондратович



сообщить о нарушении

Текущая страница: 7 (всего у книги 15 страниц)

Сноски отличаются от линков, тем, что ведут не в произвольное место книги, а в специально предназначенный раздел-body «notes».

Соответственно, чтобы делать сноски, нужно сначала этот раздел создать.

Для этого переходим в режим редактирования исходника и, найдя в конце книги закрывающий тэг набираем после него:

Значение атрибута «name» элемента body должно быть именно «notes».

Дополнительное body можно вставить командой EditAddBody (Ctrl+B). Но потом все равно придется лезть в редактор исходника, чтобы добавить атрибут name.

Затем добавляем секции. Одна сноска – одна секция.

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

В начале текста сноски должен идти порядковый номер сноски.

Секциям или абзацам, соответственно, присваиваются имена, например, «note01» и т.д.

После этого можно ссылаться на них. Для этого служит элемент «сноска». В отличие от линка, для сноски очень желателен специальный текст. Обычно это цифра в квадратных скобках, например, «[1]». При необходимости набрав, а затем выделив ее, вызываем команду вставки сноски: EditStyleFootnote (Ctrl+W). Выбор имени метки делается точно так же как для ссылки.

Настоятельно рекомендую заключать сноски именно в квадратные скобки. Это практически стандарт. Фигурные скобки «{}» обычно применяются для ссылок на список использованной литературы. А просто цифры, без скобок, конечно, выглядят красивее, но, при экспорте книги в txt, они просто потеряются.

Кстати о красоте. Если после слова идет знак препинания, то гораздо эстетичнее помещать сноску после этого знака, а не втискивать между ним и словом.

Если в книге очень много сносок, почти на каждой странице, как, например, в эпопее Л.Н. Толстого «Война и мир», то представляется весьма разумным помещать текст сносок прямо в основном тексте, отграничив его все теми же квадратными скобками. Пусть это идет несколько вразрез со стандартом, ведь главное для нас – удобство читателей. Хотя, вообще-то, уже появилась программа-ридер, которая показывает сноски, как всплывающие окна. Но, пока эта фича не стала всеобщим стандартом, нам вольно делать такие отступления. К тому же, должен заметить, на КПК часто щелкать по сноскам весьма и весьма несподручно…

==ВАЖНО!========================

ОЧЕНЬ желательно, чтобы текст сноски был по обьему не более двух-трех абзацев. Это связано с тем, что уже имеется софт, отображающий сноски, как полагается в цивильной книге, внизу виртуальной страницы. Также уже существует читалка, отображающая сноски в виде всплывающих окон. И дело даже не в том, что с длинными сносками такой софт будет глючить (а он, зараза, и глючит!). При отображении внизу страницы или отдельным окошком длинные тексты очень плохо смотрятся.

Также не стоит забывать про конверторы в PDF и другие полиграфически-ориентированные форматы. Они тоже любят размещать сноски внизу страницы.

Посему объемистые пояснения следует оформлять в виде приложений. Примерно так, как сделано в этой книге.

===============================

Ликвидировать сноску можно все той же командой EditStyleRemove links.

Вставка иллюстраций

Вставить в книгу иллюстрации очень просто.

В меню Edit выбираем пункт Insert/Image (Ctrl+M).

(Не перепутайте с аналогичной командой – EditAddImage (Ctrl+G). Она выполняется точно так же, но предназначена для вставки картинок строго в начало секции.)

Должна появиться картинка с красной надписью «Unknown image ID». Это так называемая картинка-болванка.

Теперь надо присоединить настоящую картинку к файлу книги и связать ее с тэгом иллюстрации.

Присоединяем файл картинки командой EditAdd Binary Object.

Затем выделяем картинку-болванку и щелкаем по полю «Href:» панели линков. Нажимая стрелки управления курсором «вверх» и «вниз», выбираем картинку. Она тут же появится вместо картинки-болванки.

О том, как подготовить картинку-иллюстрацию читайте ниже. § 5.2 «Подготовка картинок».

Подписи к иллюстрациям рекомендуется делать обычным текстом, отделяя его от основного текста пустой строкой. Можно дополнительно выделить текст курсивом.

А если нужно быстро вытащить картинки из книги? Нет проблем. Проэкспортируйте ее в HTML (FileExportTo Html). Все картинки будут в каталоге [имя файла]_files, который будет создан в том же каталоге, что и файл HTML.

==ЭТО ИНТЕРЕСНО==================

Бывает, нужно извлечь растровую картинку из документа M$ Word. Функции экспорта картинок там не предусмотрено. Можно скопировать картинку в буфер, но если ее масштабировали, то она и скопируется с измененными размерами.

Как быть? Все очень просто. Сохраняем Word-документ, как HTML и все картинки будут в каталоге [имя файла]_files. В первозданном виде.

Читатель Змей предложил, как вариант, сохранять документ в .mht, картинки там будут уже перекодированные в base64. Затем можно открыть итоговый файл в Блокноте, и перекинуть нужные куски в исходник книги, не забыв отбить их тэгами binary. В общем, способ на любителя.

===============================


§ 4.5 Использование регулярных выражений

Функции поиска и замены в FB Editor предусматривают использование регулярных выражений (Regular Expressions, RegExp).

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

Синтаксис регулярных выражений в FB Editor заимствован из языка Perl.

В приложении к книге дано краткое описание синтаксиса регулярных выражений, использующихся в FB Editor. Однако, настоятельно рекомендую этим не ограничиваться, а прочитать хороший учебник по языку Perl. А еще есть замечательная книга Дж. Фридла: «Регулярные выражения». Хорошенько поискав, ее можно найти в Сети ;)).

Рассмотрим использование регулярных выражений на примере достаточно сложной, но часто встречающейся задачи – замены компьютерных кавычек «""» на типографские „«»“.

Основная проблема здесь в том, что открывающие и закрывающие компьютерные кавычки одинаковы. Поэтому приходится ориентироваться по символам, расположенным рядом.

Обычным способом придется вызывать команду поисказамены не менее десяти раз, рискуя что-то забыть или перепутать. Регулярные выражения позволяют произвести все замены за четыре захода.

Для начала примем за аксиому, что кавычка, расположенная в самом начале абзаца – открывающая, а в самом конце – закрывающая.

Вызываем команду EditReplace.

В поле поиска «Find what:» вводим конструкцию для поиска:

^"

В поле замены «Replace with:» вводим конструкцию замены. В этом случае она совсем простая:

«

Не забыв установить флажок «Regular expression», нажимаем кнопку«Replace All».

Аналогично, для кавычки в конце абзаца конструкции поиска и замены будут:

"$

и

»

Выражения «^» и «$» называются литералами и обозначают начало и конец строки соответственно. В конструкции замены они не нужны.

Теперь обработаем оставшиеся кавычки.

Начнем с открывающей кавычки. Перед ними обычно идет пробел. Ну, иногда еще дефис или скобка.

Конструкция для поиска будет такая:

([s(-])"

Конструкция замены:

$1«

В квадратных скобках мы перечислили символы, один из которых может идти перед искомой кавычкой. Литерал «s» обозначает пробельный символ. Символ «скобка» является зарезервированным, так как используется в самих конструкциях регулярных выражений, поэтому, чтобы искать его в тексте, мы отделили его косой чертой. Заключив все это в круглые скобки, мы образовали выражение, к которому будем обращаться из строки замены. И в конце непосредственно сама искомая кавычка.

Символ, который идет перед кавычкой, нужно оставить в неприкосновенности. Поэтому в поле замены вводится обращение к выражению в строке поиска – $1.

Теперь закрывающая кавычка. После нее могут идти: пробел, запятая, точка, закрывающая скобка, вопросительный знак, восклицательный знак, дефис, символ «многоточие».

Конструкция поиска:

(S)"([s!.)-…,?:;])

Конструкция замены:

$1»$2

Здесь используется два выражения. Первое означает, что перед закрывающей кавычкой должен идти НЕ пробел. Второе выражение содержит перечисление символов, которые могут идти после нее. Соответственно, в конструкции замены идет обращение к двум выражениям.

Напоследлк должен заострить ваше внимание, что в режиме исходника FB Editor регулярные выражения функционируют несколько по-другому. В частности, не получается использовать метасимвол «|», некорректно обрабатываются перечни, содержащие кириллицу.

§ 4.6 Использование скриптов

Автор FB Editor предусмотрел расширение его возможностей при помощи Java Script.

Вызываются они из меню ToolsScripts[скрипт].

Первые девять скриптов можно вызывать клавишами Ctrl+1…9.

Документации, разумеется, не предусмотрено никакой. Во всем придется разбираться самостоятельно.

Поэтому, перед тем, как заняться написанием скриптов, необходимо проштудировать хороший справочник по функциям JavaScript с примерами.

Очень подробный справочник входит в состав MSDN Library. Много полезной информации можно найти также на W3SCHOOLS.

Из бумажных изданий могу посоветовать «JavaScript и DHTML: сборник рецептов» Дэнни Гудмана (доступна в Сети) и «Полный справочник по JavaScript» Фрица Шнайдера. Обе эти книги издавались на русском языке.

Если английский язык для вас не проблема, а средство общения, то на уже упоминавшемся www.flazx.com вы сможете бесплатно скачать множество руководств по JavaScript. Среди них хочу особо выделить JavaScript: The Definitive Guide. Книга выдержала уже пять изданий.

Компактный и информативный справочник по JavaScript входил в состав редактора FB Writer (см. ниже)

В газетной публикации я приводил два простеньких скрипта собственного изготовления.

Здесь такой необходимости нет. Как пример, рекомендую посмотреть скрипты, написанные для FB Writer, моим земляком, известным на форуме FictionBook.org под ником Sclex.

Правда, тут есть одно маленькое, но очень вредное «но». Механически перенести наработки Sclex-а под FBE 1.0 не получится. Они жестко заточены под FB Writer и совместимый с ним FB Editor 2.0.

§ 4.7 Баги с нами!

Хотя FB Editor – довольно надежная и функциональная программа, он все-таки содержит несколько неприятных ошибок.

Вот, к примеру, символ по внешнему виду похожий на тире «—» (десятичный код 173) в режиме WYSIWYG не виден. Вернее виден, только если приходится на конец строки. Приходится переключаться в режим Source и вылавливать эти символы-паразиты.

Бывает так, что при попытке сохранить книгу выскакивает окошко со следующим сообщением:

Code: 8004005 [Unspecified error]

Source: msxml4.dll

Description: Unexpected NameSpace parameter

Это, скорее всего, где-то образовалась ошибочная конструкция наподобие section/EM/cite/EM.

Паниковать не надо. Внимательно пройдитесь по всей книге, обращая особое внимания на цитаты и стихи. Обнаружив цитату или стихи, разорванные на отдельные абзацы, аккуратно соберите их в один элемент.

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

Также небезопасно превращать абзац в subtitle и тут же отменять это действие. Есть риск, что программа «захлопнется». Разумеется, ничего при этом не сохранив.

При редактировании, если рядом оказыывается два и более подряд идущих пробелов FB Editor автоматически конвертирует второй и последующие пробелы в неразрывные. Вообще-то это никакой не баг, а особенность, связанная с тем, что FB Editor использует DHTML, но все равно очень раздражает.

§ 4.8 Дальнейшее развитие редактора

C начала 2007 года вокруг FB Editor наблюдается весьма активное шевеление. Не совсем, откровенно говоря, здоровое.

За модернизацию FB Editor взялись сразу два человека.

Автор, известный на форуме Fictionbook.org, как Pilgrim, доработал FB Editor, так, чтобы он поддерживал все новшества FictionBook 2.1. К сожалению, энтузиазма у него хватило ненадолго.

Алексей Савельев (Alex Saveliev), выпустивший свой продукт под названием FB Writer, напротив, сделал упор на функциональность программы. Обеспечена совместимость с IE 7.0, исправлено несколько особенно вредных ошибок, доработан интерфейс, появилось много новых «фич». Особого внимания и, чего кривить душой, восхищения, заслуживают написанные под FB Writer скрипты, значительно облегчающие и ускоряющие подготовку книги. Начиная с версии 2.0 была реализована даже проверка правописания.

Все было бы хорошо, но Алекс потребовал за свою работу деньги. Мало того, последние версии редактора требуют для запуска подключение к Internet, что автоматически вычеркнуло эту программу из списка софта, которые я использую.

Кончилось все это печально, но закономерно. Какой-то доброхот взял да и взломал FB Writer. После чего разобиженный автор закрыл проект.

К счастью, еще до этого грустного финала совершенствованием FB Editor-а занялся программист компании «ЛитРес». За основу были взяты исходники Pilgrim-a. На данный момент этот продукт является, хотя и весьма сырой, но самой многообещающей разработкой в этой области.

Увы, пока что он таковым и  остается. Летом 2008-го распространение FB Editor было признано вредным для коммерческих интересов «ЛитРес»-а. Посему, продукт, едва доведенный до стадии «работоспособная бета», был принудительно зачислен в разряд «закрытый инструмент для своих». В общем, в очередной раз бабло победило зло.

Осенью 2009-го прошел слушок, что «ЛитРес» вроде бы собирается вновь «отпустить на волю» редактор. Но токмо не удобства пользователей для, а популяризации третьей версии формата ради.

Ждать пришлось почти полгода. 14 января 2010 г. Дмитрий Грибов выложил исходники FB Editor в свободный доступ. Не благотворительности ради, а дальнейшего развития для. Выяснилось, что совершенствованием редактора «ЛитРес» уже полгода как не занимается. Потому как программист занимавшийся этим, ушел из компании. После этого в Сеть протекла и последняя верия «офицального» дистрибутива.

К чести «ЛитРес»-а, надо признать, что продукт, так и не вышедший из состояния «бета», стал значительно стабильнее. Доведена до ума функция Words, есть куча доработок рангом поменьше.

Что, однако, не мешает, с грустью констатировать тот факт, что ситуация, пусть на новом уровне, вернулась к началу 2007-го…

§ 4.9 Альтернативные средства редактирования

Говоря о редактировании FB2-книг, несправедливо было бы не упомянуть об   разработках, существующих, так сказать, в параллельной плоскости.

Book Designer 4.0

В первую очередь, это Book Designer В. Войцеховича и его специальная версия для FB2 – FB Designer.

Программа BookDesigner была разработана как средство для конвертации книг из любого формата в любой же формат. И она полностью отвечает своему назначению. Если требуется сконвертировать книгу в экзотический формат или, наоборот, извлечь из оного, то здесь альтернативы Book Designer просто нет.

Проблема, в том, что BookDesigner совершенно не рассчитан на серьезное редактирование книг. Открыть файл, быстро разметить его и сохранить в новом формате – с этим он справляется великолепно. И функция Book Cleaner (пакетный запуск регулярных выражений) также достойна всяческих похвал. Но когда приходится долго и вдумчиво редактировать книги, то выясняется, что BookDesigner в этом не силен.

Не совсем корректно работает функция Undo. Не поддерживается элемент cite. То, что отображается на экране, не всегда соответствует реальному содержимому файла. Даже сохранение работает совсем не так, как мы привыкли.

На язык так и просятся слова незабвенного товарища Огурцова: «Все молодцы, работа проделана большая, но так дело не пойдет!»

А давно обещанный Book Designer 5.0 до сих пор существует в виде обновления.

FB Writer

Как уже было сказано, молодой и перспективный редактор FB Writer, начиная с версии 1.2 перестал быть бесплатным. Мало того, даже пробную версию редактора запустить без подключения к Internet стало невозможно. А после того, как появилось «рекальство», отучающее программу от этих пагубных привычек, автор свернул проект и удалил страничку FB Writer.

Однако, благодаря доброй воле одного из участников форума Fictionbook.org, FB Writer и «клистир» к нему, стали вновь доступны в Сети. Естественно, упускать такую возможность познакомиться с интересной софтинкой поближе было бы неразумно.

Любители копирайта и уязвленный автор могут не беспокоиться. И программа и взломка были использованы мной исключительно в ознакомительных целях. Поелику не имею привычки работать на машине, подключенной к Сети. Кроме  того, я уже говорил, что FB Editor 1.0 меня вполне устраивает, а когда (и если!) FBE 2.0 будет доведен до ума, то перейду на него.

Итак, приступим.

Для работы FB Writer требуется Windows семейства NT, MSXML, Script 5.6 и, внимание, Microsoft Net# Framework 2.0.

Кто не в курсе, FB Writer представляет собой переработанный и улучшенный FB Editor. Переработанный настолько качественно и толково, что полностью заслуживает права называться самостоятельным продуктом.

Первое, что бросается в глаза при первом запуске программы – внешний вид ее стал заметно лучше. Автор не стал устраивать авангардисткие эксперименты с большими иконками, он просто дополнил строгий интерфейс FBE 1.0 новыми элементами.

Особенно эффектно стало выглядеть дерево структуры документа. Добавленные пиктограммы значительно «оживили» его.

Заметно увеличился список горячих клавиш, в частности появились комбинации для набора типографских кавычек-«елочек».

В раздел меню «File» добавлен только один пункт, но зато какой: «Spellcheck» – проверка орфографии.

Правда, работает он весьма незатейливо, по принципу старого доброго «Лексикона» – перебирает слова, останавливаясь на неизвестных. При этом недостаток «Лексикона» – малый объем словарей, с нераспознаванием склонений/спряжений проявляет себя во всей красе. Хорошо хоть, словари можно дополнять.

Словари – четыре файла с расширением .dic (русский и английский, слова и имена собственные) находятся в рабочей директории программы. Редактировать их можно в любом текстовом редакторе, ориентированном на plain text, который не ограничивает размер рабочего файла. Под это определение подпадает практически любой «программистский» редактор или заменитель «Блокнота», которых в Сети пруд пруди.

Раздел «Edit» тоже особенно не изменился. Разве что добавление элементов перекочевало в отдельный раздел «Add», а из раздела «View» переехал пункт «Preferences». Сюда же сместился по-прежнему неработающий пункт «Words».

В раздел «View» добавлены команда просмотра книги во внешней читалке – «in External Viewer» и управление дополнительной панелькой для пиктограмм – Extra Toolbar.

На основной панельке добавились пиктограммы верхнего и ниженго индекса.

В новый раздел меню «Add» перенесены команды добавления всех элементов. Среди  них есть и новая команда «Sub-section». Текущая секция становится вложенной. Очень удобно. Не нужно копировать секцию в буфер и тут же вставлять. В раздел «Add» также перебрались команды добавления ссылок  и сносок. При этом они обзавелись разновидностями «View…» – возврат от текста сноски на то место, где на него ссылаются.

Еще один новый пункт главного меню «Symbols» отведен под ввод спецсимволов. Выбор их очень богатый: здесь и математические символы и греческий алфавит, и западноевропейские литеры.

Пункт «Tools» за ненадобностью упразднен.

Предпоследний, тоже новый, пункт «Cmd» выделен под скрипты. Набор их гораздо богаче, чем в FB Editor. Великое множество скриптов можно скачать со странички моего земляка Sclex-а. Установка скриптов сводится к их распаковке в папку папка в которую установлен FB Writerstylesрабочий стильcmd.

Ну, и последний пункт, «?», содержит весьма скромный help, из которого, впрочем можно почерпнуть сведения о горячих клавишах. Гораздо более интересна следующая команда – «Jscript Help».

Да, в комплекте с FB Writer поставляется удивительно качественный, прекрасно структурированный справочник по JavaSсript. Просто невероятно, как много ценной информации могут вместить четыре сотни килобайт chm-ки!

Окно редактирования описания (description) книги теперь разделено на закладки. Это эстетично и гораздо более эргономично. При этом предусмотрено нормальное редактирование описание оригинала (src-title-info) для переводных книг. Плюс еще несколько мелких улучшений. В частности, картинку обложки теперь можно выбрать из списка присоединенных бинарных объектов, причем она тут же будет показана. Сами бинарники теперь можно добавлять пачками, есть специальные кнопки для экспорта и удаления сразу всех. Язык(и) книги теперь также выбирается из весьма пространного списка.

О настройках (EditPreferences) поподробнее.

Первым разделом в них значится StyleLanguage. Теперь файлы настройки представления книги в рабочем окне, языка менюшек, базовый шаблон пустой книги, иконки, набор скриптов объединены в пакет файлов, который располагается в отдельной папке внутри папки styles. Добавить новый стиль просто – создать в папке styles новую папку, скопировать туда файлы базового стиля и отредактировать их. А здесь производится переключение этих пакетов.

Следующий блок («Main settings») тоже весьма небогат. Здесь можно включить автоматическую загрузку последней открытой книги и выбрать внешнюю читалку для пункта «Viewin External Viewer».

Третий и последний блок – настройки редактора исходника. Все те же стандартные автосвертка строк, подсветка синтаксиса, цвет и гарнитура шрифта.

А вот шрифта для основного рабочего окна в окошке настроек нет. Управление видом текста в рабочем окне теперь целиком возложено на файл main.css.

В целом программа производит впечатление продуманного и серьезного продукта, почти не вызывающего нареканий.

Разве что, раздражает некоторое своеволие. FB Writer автоматически добавляет в любую открываемую книгу body «notes». Подобные действия следовало бы, как минимум, оставить на усмотрение пользователя.

Остается только грустно помечтать, насколько хороший инструмент для создания книг получили бы мы, если бы в авторе не взыграла коммерческая жилка…


    Ваша оценка произведения:

Популярные книги за неделю