Текст книги "Создание электронных книг в формате FictionBook 2.1: практическое руководство (beta 4)"
Автор книги: Михаил Кондратович
сообщить о нарушении
Текущая страница: 6 (всего у книги 10 страниц)
Присоединяем файл картинки командой EditAdd Binary Object.
Затем выделяем картинку-болванку и щелкаем по полю «Href:» панели линков. Нажимая стрелки управления курсором «вверх» и «вниз», выбираем картинку. Она тут же появится вместо картинки-болванки.
О том, как подготовить картинку-иллюстрацию читайте ниже. «§ 5.2. Подготовка картинок»
Подписи к иллюстрациям рекомендуется делать обычным текстом, отделяя его от основного текста пустой строкой. Можно дополнительно выделить текст курсивом.
А если нужно быстро вытащить картинки из книги? Нет проблем. Проэкспортируйте ее в HTML (FileExportTo Html). Все картинки будут в каталоге [имя файла]_files, который будет создан в том же каталоге, что и файл HTML.
==ЭТО ИНТЕРЕСНО==================
Бывает, нужно извлечь растровую картинку из документа M$ Word. Функции экспорта картинок там не предусмотрено. Можно скопировать картинку в буфер, но если ее масштабировали, то она и скопируется с измененными размерами.
Как быть? Все очень просто. Сохраняем Word-документ, как HTML и все картинки будут в каталоге [имя файла]_files. В первозданном виде.
===============================
§ 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» Фрица Шнайдера. Обе эти книги издавались на русском языке.
В газетной публикации я приводил два простеньких скрипта собственного изготовления.
Здесь такой необходимости нет. Как пример, рекомендую посмотреть скрипты, написанные для 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. На данный момент этот продукт является, хотя и весьма сырой, но самой многообещающей разработкой в этой области.
Часть V
Прочие вопросы создания книг в формате FictionBook
§ 5.1 Советы по оформлению книг
Совет номер один. Не стоит стремиться воспроизвести все полиграфические изыски печатного оригинала.
В понятие «изыски» входит, например, выделение заголовков жирным или курсивным шрифтом, отбитие фрагментов текста пустыми строками и т.д.
Но некоторые правила оформления бумажных книг полезны и даже обязательны для книг электронных.
Это касается, в частности, использования специальных символов.
Символ «тире» или «минус», который имеется на клавиатуре, вовсе не «тире», а дефис.
Для обозначения «тире» используется символ «длинное (оно же типографское) тире» (десятичный код 151). Как набирать символы через десятичные коды см.«§ 5.6 Символы, которых нет на клавиатуре».
Короткое тире – «–» (десятичный код 150) используется между числами, например: «1941 – 1945 г.» или в качестве математического минуса.
Кавычки также должны быть типографские, «елочкой» – „«»“. Возможно также использование кавычек «лапками», – «„“», особенно, если это кавычки вложенные. При загрузке книги в библиотеку Альдебарана управляющий скрипт автоматически заменяет вложенные кавычки «елочки» на «лапки». Использование компьютерных кавычек «""», а также английских (верхних) кавычек «“”» в русскоязычных книгах недопустимо.
Если понадобилось сделать р а з р я д к у, делайте ее с помощью неразрывных пробелов (дес. код 160). Но, вообще-то, злоупотреблять разрядкой не следует.
Об использовании неразрывных пробелов. В FB2 ими отделяются: а) длинное тире в начале прямой речи от идущего следом слова; б) длинное тире в тексте от идущего впереди слова или знака препинания. Еще неразрывным пробелом можно «связать» идущий в начале предложения однобуквенный предлог со следующим словом.
Списки можно организовать, ставя в начале каждого абзаца символ «bullet» – «•», или «звездочку» – «*». Первый и последний абзац списка можно отделить от основного текста пустыми строками. Еще можно офомить список элементом cite.
Если перед началом главы или эпизода идет место и время действия, то наиболее целесообразно выделять его курсивом, и пустой строкой после. Но никак не подзаголовком.
В некоторых произведениях после названия главы идет краткое ее содержание (пример: «Робинзон Крузо» Д. Дефо; «Путешествия Гулливера» Дж. Cвифта, почти все произведения Янки Мавра, и т.д.) На данный момент, для выделения таких описаний наиболее разумно использовать элемент cite. Возможно дополнительное выделение курсивом. В будущем для этого был бы хорош специальный элемент.
Надписи.
Дмитрий Грибов настоятельно рекомендует оформлять их элементом cite.
Были идеи оформлять надписи, как таблицы. Однако они были отвергнуты, поелику такое нестандартное использование таблиц является хаком. [5.1] 5.1
Хак – нестандартное использование возможностей софта. Недостатком решений, использующие такие уловки, является непредсказуемый результат, при условиях применения, отличающихся от стандартных.
[Закрыть]
Последнее решение таково:
Надписи оформляются элементом cite.
Надписи, требующие центровки, оформляются элементом subtitle, помещенным ВНУТРЬ элемента cite.
Правда, FB Editor не позволяет сделать это так просто. Команда EditStyleSubtitle внутри элемента cite неактивна.
Поэтому поступаем следующим образом. Аккуратно перемещаем текст в буфер (EditCut), вставляем его в произвольном месте ВНЕ элемента cite, трансформируем в subtitle, выделяем subtitle ЦЕЛИКОМ, вновь перемещаем в буфер обмена и вставляем в элемент cite.
Особо вычурные надписи допускается оформлять картинкой. Например, это полностью касается рисованных надписей из трилогии Кира Булычева «Заповедник сказок».
Еще одна глубокая и больная тема – таблицы. Несмотря на то, что последняя версия формата полностью поддерживает таблицы, отсутствие оной поддержки в редакторах, и, самое главное, библиотечных скриптах, не дает возможности нормально оформлять их.
Поэтому здесь можно рекомендовать только индивидуальный подход. Где-то уместно сделать таблицу просто строчками текста. Где-то – нарисовать картинкой и вставить в текст.
==ЭТО ИНТЕРЕСНО=================
Трансформировать таблицу, созданную, к примеру, в Excel, в растровую картинку, проще простого. Аккуратно выделяем таблицу и копируем в буфер обмена. Затем вставляем ее, в программу редактирования растровых картинок. В тот же MS Paint, хотя бы. И сохраняем как картинку.
===============================
Второй метод применим лишь для относительно небольших таблиц. Ведь при просмотре книги на КПК читалка отмасштабирует получившуюся картинку под размер экрана. И, если таблица будет слишком велика, текст получится слишком мелким, то есть – нечитаемым.
После окончания работы на книгой ее обязательно нужно просмотреть в читалке, лучше даже в нескольких. Часто при этом выплывают нюансы, которые при работе в FB Editor можно упустить из виду.
И последнее. Не стесняйтесь задавать вопросы. На форуме сайта формата (http://www.fictionbook.org/forum) вам охотно помогут. Главное, чтобы ваши вопросы не были откровенно дилетантскими…
§ 5.2 Подготовка картинок
Перед тем, как добавить в книгу картинки, следует хорошенько подумать.
Дело в том, что картинки очень сильно «утяжеляют» файл. Дополнительные килобайты объема складываются в мегабайты, мегабайты в гигабайты. Траффика. А траффик стоит денег. Если Вам не жалко денег пользователей, задумайтесь над тем, что чрезмерный траффик не приветствуется хостерами, тем более, если у вас платный хостинг. Да и в онлайн-библиотеку возьмут не всякий «объемный» файл.
Поэтому помещать в файл картинки имеет смысл, только в том случае, если они имеют художественную ценность и хорошо иллюстрируют содержание произведения.
К таким относятся, например, иллюстрации художника Е. Мигунова к произведениям Кира Булычева.
А вот выложенная в начале 2008 года на «Альдебаране» «Хижина дяди Тома» могла прекрасно обойтись без иллюстраций. Учитывая качество их сканирования и масштабирования.
И главный критерий при подготовке картинки для книги – минимизация объема.
Первый способ снизить размер файла заключается в грамотном выборе формата файла картинки.
Несмотря, на то, что FB Editor поддерживает вставку картинок в формате BMP и даже TIFF, при выборе формата картинки следует знать, что читалки пока поддерживают только два формата – JPEG и PNG.
JPEG характеризуется исключительным коэффициентом сжатия. Естественно, за счет понижения качества карттинки.
Разработанный «в пику» платному формату GIF, PNG использует методы сжатия, не изменяющие исходного изображения.
Эти особенности и определяют выбор формата для конкретного изображения.
Для полноцветных картинок – как правило, это фотографии или полутоновые картинки – обычно используется JPEG. Картинки же, имеющие большие площади одинакового цвета – штриховые рисунки и диаграммы, к примеру, лучше сжимать в PNG.
Например, картинка-скриншот 800x600 в формате JPEG занимает 70–80 kB, а в формате PNG (64 цвета) – 38–45 kB. Разница налицо.
И, наоборот, полноцветная картинка обложки (320 x 200) в формате PNG «весит» 134 kB, а в формате JPG – 34 kB, при практически одинаковом качестве. Разница – 100 kB. Несжимаемых 100 kB, заметьте. При упаковке книги в архив, эти 100 kB добавятся к его размеру.
При большом количестве иллюстраций, перед тем, как присоединять картинки к книге, имеет смысл обработать их программой, убирающей из JPEG служебную информацию. Например, PureJPG. Картинки PNG можно просто перепаковать.
==ВАЖНО!=======================
Оставшаяся в файлах картинок служебная информация, кроме увеличения объема, может просто-напросто помешать выводу этих картинок в читалке.
К примеру, грандиозная работа по сканированию и компоновке картинок, проделанная человеком, готовившим книгу Э. Скобелева «Необыкновенные приключения Арбузика и Бебешки» пошла коту под хвост, так как из-за оставшейся в файлах PNG служебной информации программы Adobe ImageReady картинки не может отобразить ни одна читалка, за исключением FBReader…
===============================
Уменьшить объем файла PNG можно, в первую очередь, уменьшая размер картинки в пикселах.
До каких размеров? Как можно, меньше, но чтобы при этом ясно можно было понять, что изображено на рисунке.
Год-два назад я бы уверенно заявил: «Не более 320 x 240».
Сейчас же все большее распространение получают КПК и коммуникаторы с полным VGA–экраном. (640 x 480).
И тем не менее, в подавляющем большинстве случаев 320 x 240 более чем достаточно. Поверьте на слово.
После того, как Вы уменьшили картинку, она станет несколько смазанной. Устранить это можно, обработав ее фильтром Sharpen (увеличение резкости).
Кроме того, можно уменьшать количество цветов. Обычно для скриншота программы хватает 32–64 цветов, для графика или диаграммы – и 16 более чем достаточно.
При этом следует, по возможности, избегать чисто двуцветных черно-белых (black&white) картинок. Проблема в том, что они гораздо хуже масштабируются, давая неаппетитный «мусор».
Если картинка – штриховой рисунок, то фон имеет смысл сделать прозрачным. Ведь фон в читалке совсем не обязательно будет белым. Он может быть и цветным и текстурным. В таком случае вокруг рисунка появятся некрасивые белые поля.
Что же касается JPEG, здесь также играет роль размер картинки в пикселах. А также коэффициент качества (сжатия). JPEG – формат с потерей качества, поэтому, чем больше сжатие, тем хуже качество картинки. Могу с уверенностью сказать, что для картинок, использующихся в FictionBook, вполне допустим коэффициент сжатия 50–60%.
Можно обрабатывать картинки в PhotoShop. При этом готовые картинки необходимо сохранять при помощи функции «Save for Web», чтобы не утяжелять файлик превьюшкой и служебной информацией. Очень удобно рисовать в PhotoShop обложки к книгам.
Однако, в случае, когда требуется только изменить размер картинки и сохранить ее в компактный формат, использование PhotoShop равносильно забиванию гвоздей отбойным молотком.
Для этих целей существует компактный и, что немаловажно, бесплатный софт. Например – XnView.
Реализованная как просмотрщик графики с продвинутыми функциями редактирования, программка чрезвычайно удобна для подготовки картинок. Здесь есть все что нужно: масштабирование с использованием навороченных алгоритмов, уменьшение количества цветов, и, конечно же, пакетная обработка файлов.
Подготовке картинок в PhotoShop посвящена обширная статья Marina_Ch на www.fictionbook.org.
§ 5.3 Обложки
Как-то на форуме fictionbook.org даже разгорелась дискуссия: а нужна ли вообще обложка электронной книге?
Мое мнение однозначно: нужна. Обложка придает электронной книге законченный вид.
Как правило, сканируется обложка бумажного оригинала. Размер итоговой картинки не должен превышать 320 x 240, формат – jpeg. «Вес» картинки с обложкой должен быть не более 20-25 килобайт.
Если книжка, обложку которой вы сканируете заметно потрепана, то перед тем, как уменьшить ее, не поленитесь и отретушируйте скан. Это не отнимет у вас много времени, и заметно увеличит презентабельность книги.
Уже упоминавшаяся выше «Хижина дяди Тома» выглядит донельзя удручающе. Выбранный букмейкером большой размер картинки обложки ничуть не улучшает качество восприятия картинки на на ней, кстати, весьма скромной. Зато отлично видна каждая трещинка и потертость на картоне…
Как поступить, если есть текст (например, из библиотеки Максима Мошкова), а обложки нет, и отсканировать ее неоткуда?
В этом случае на помощь нам придут сетевые книжные магазины. Любой уважающий себя магазин вместе с аннотацией книги выставляет картинку с ее обложкой. Как правило уже подходящего размера и в формате jpeg.
Только не забудьте проверить картинку на предмет присутствия чужеродных элементов. Наподобие ленточек с надписью «Новинка» и так далее. В электронной библиотеке такие обложки будут смотреться несколько странно.
На худой конец, можно сесть и нарисовать обложку самому. Это 10–15 минут работы в Photoshop, или графическом редакторе попроще. Написать читабельным шрифтом имя автора и название книги, подобрать картинку, и – вуаля – обложка готова.
По поводу картинки. Она должна максимально подходить к содержанию книги. Это может быть сканированная иллюстрация из бумажного издания. Если его нет, можно нарисовать картинку самому. Если вы не художник, вас выручит коллаж из клип-артов [5.2] 5.2
Клип-арт (clip-art) – библиотеки картинок, поставляемые вместе (или дополнительно) с графическими пакетами.
[Закрыть] или картинок из Сети.
Для поиска картинок в Сети лучше всего воспользоваться соответствующей функцией поисковика Google. Чтобы выбор был больше, следует вводить название объекта на английском языке.
В конце концов, если ничего подходящего найти не удалось, можно обойтись вообще без картинки…
В качестве иллюстрации к вышесказанному, приведу пару обложек подготовленных мной для произведений Сергея Павлова.
В произведении фигурирует горилла, используемая в экспериментах по телепортации. Поэтому в наборе клип-арта программы CorelDraw было найдено подходящее изображение гориллы, дополнено рисунком четырехконечной звездочки, переведено в растровый формат и вставлено в макет обложки, который готовился в PhotoShop.
А эта обложка создана методом, так сказать, наименьшего сопротивления. В самом сюжете повести никаких зацепок для обложки найти не удалось. Поэтому, взяв за отправную точку то, что действие происходит в системе Юпитера, из Сети был скачан соответствующий (кстати, довольно известный) снимок и смонтирован в макет.
Как видим, получилось неплохо. Не шедевр, конечно, но обложки вполне достойные.
Вот чего точно не стоит делать, так это использовать обложку от издания произведения на другом языке. Мало того, что это неэстетично, так еще и сбивает читателя с панталыку.
По тем же причинам не стоит и цеплять обложку от сборника, в который входило данное произведение, если название сборника не совпадает с названием произведения.
В обоих случаях гораздо практичнее и эстетичнее нарисовать обложку самому.