Настройка стилей в FBReader с помощью styles.xml
На страницу 1, 2  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов The-eBook -> PocketBook -> PocketBook с экраном E-Ink
 
Автор Сообщение

alamik
Гость









СообщениеДобавлено: 17.01.2009 19:05     Цитата

В новой прошивке PocketBook 301 версии 301.09 стала доступна настройка стилей fb2-тегов с помощью редактирования файла styles.xml. Предлагаю в этой теме подробно обсудить его структуру и способы настройки.

Оригинальный файл styles.xml лежит во внутренней памяти Pocket Book 301 (полный путь: /system/config/styles.xml) и имеет следующую структуру:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<DefaultStyles>
   <base family="Georgia" fontSize="10"/>
   <style id="0" name="Regular Paragraph" firstLineIndentDelta="20" allowHyphenations="true"/>
   <style id="1" name="Title" fontSizeDelta="10" bold="true" spaceBefore="2" spaceAfter="7" alignment="center" allowHyphenations="false"/>
   <style id="3" name="Poem Title" fontSizeDelta="2" bold="true" spaceBefore="6" spaceAfter="6" leftIndent="40" allowHyphenations="false"/>
   <style id="2" name="Section Title" fontSizeDelta="6" bold="true" spaceAfter="5" alignment="center" allowHyphenations="false"/>
   <style id="31" name="Header 1" fontSizeDelta="6" bold="true" spaceAfter="5" alignment="center" allowHyphenations="false"/>
   <style id="32" name="Header 2" fontSizeDelta="6" bold="true" spaceAfter="5" alignment="center" allowHyphenations="false"/>
   <style id="5" name="Annotation" fontSizeDelta="-2" firstLineIndentDelta="20" allowHyphenations="true"/>
   <style id="6" name="Epigraph" fontSizeDelta="-2" italic="true" leftIndent="80" allowHyphenations="true"/>
   <style id="4" name="Subtitle" bold="true" allowHyphenations="true"/>
   <style id="33" name="Header 3" bold="true" allowHyphenations="true"/>
   <style id="34" name="Header 4" bold="true" allowHyphenations="true"/>
   <style id="13" name="Author" leftIndent="20" allowHyphenations="false"/>
   <style id="14" name="Date" leftIndent="40" allowHyphenations="false"/>
   <style id="7" name="Stanza" spaceBefore="6" spaceAfter="6" alignment="left" allowHyphenations="false"/>
   <style id="8" name="Verse" leftIndent="20" alignment="left" allowHyphenations="false"/>
   <style id="10" name="Image" spaceBefore="8" alignment="center"/>
   <style id="23" name="Contents Table" spaceAfter="7" leftIndent="20" firstLineIndentDelta="-20" alignment="left"/>
   <style id="24" name="Author in Library" fontSizeDelta="-2" alignment="left" allowHyphenations="false"/>
   <style id="25" name="Book in Library" fontSizeDelta="-2" alignment="left" allowHyphenations="false"/>
   <style id="26" name="Recent Book List" spaceAfter="3" leftIndent="20" firstLineIndentDelta="-20" alignment="left" lineSpacing="1.2"/>
   <style id="9" name="Preformatted text" italic="true" alignment="left" allowHyphenations="false"/>

   <style id="12" partial="true" name="Cite" italic="true"/>
   <style id="15" partial="true" name="Internal Hyperlink" allowHyphenations="false" hyperlink="internal"/>
   <style id="37" partial="true" name="External Hyperlink" allowHyphenations="false" hyperlink="external"/>
   <style id="16" partial="true" name="Footnote" fontSizeDelta="-6" vShift="10" allowHyphenations="false" hyperlink="internal"/>
   <style id="17" partial="true" name="Emphasis" italic="true"/>
   <style id="18" partial="true" name="Strong" bold="true"/>
   <style id="35" name="Header 5" bold="true"/>
   <style id="36" name="Header 6" bold="true"/>
   <style id="19" partial="true" name="Subscript" fontSizeDelta="-4" vShift="-4" allowHyphenations="false"/>
   <style id="20" partial="true" name="Superscript" fontSizeDelta="-4" vShift="10" allowHyphenations="false"/>
   <style id="21" partial="true" name="Code" italic="true" allowHyphenations="false"/>
   <style id="22" partial="true" name="StrikeThrough"/>
   <style id="27" partial="true" name="Italic" italic="true"/>
   <style id="28" partial="true" name="Bold" bold="true"/>
   <style id="29" partial="true" name="Definition" italic="true"/>
   <style id="30" partial="true" name="Definition Description" italic="true"/>
</DefaultStyles>


Добавлено спустя 32 минуты 58 секунд:

Итак, что мне уже удалось расшифровать. Таким вот образом в этом файле описывается стиль:
Цитата:
<style id="3" name="Poem Title" fontSizeDelta="2" bold="true" spaceBefore="6" spaceAfter="6" leftIndent="40" allowHyphenations="false"/>

Жирным я выделил свойства.

Мною были идентифицированы следующие свойства:
  • id - идентификационный номер стиля (нас это не интересует)
  • name - имя стиля
  • family - гарнитура шрифта
  • fontSize - размер (кегль) шрифта
  • fontSizeDelta - на сколько размер шрифта отличается от родительского
  • leftIndent - отступ слева
  • rightIndent - отступ справа
  • firstLineIndentDelta - отступ красной строки
  • spaceBefore - пропуск перед
  • spaceAfter - пропуск после
  • alignment - выравнивание
  • allowHyphenations - переносы
  • lineSpacing - междустрочный интервал
  • italic - курсив
  • bold - жирный
  • hyperlink - тип ссылки
  • vShift - вертикальное смещение строки

Совсем непонятным для меня осталось свойство partial.

Добавлено спустя 15 минут 36 секунд:

Названия стилей:
  • Regular Paragraph - обычный текст
  • Title - заголовок
  • Section Title - название главы
  • Poem Title - название стиха
  • Subtitle - подзаголовок
  • Header 1, ..., Header 6 - текст внутри тегов <h1>, ..., <h6>
  • Annotation - аннотация
  • Epigraph - эпиграф
  • Author - автор
  • Date - дата
  • Stanza - стих
  • Verse - строфа
  • Image - изображение
  • Preformatted text - текст внутри тега <pre>
  • Cite - цитата
  • Internal Hyperlink - ссылка
  • External Hyperlink - внешняя ссылка
  • Footnote - сноска
  • Emphasis - выделенный курсивом
  • Strong - выделенный жирным
  • Subscript - подстрочный индекс
  • Superscript - надстрочный индекс
  • Code - текст программы
  • StrikeThrough - перечёркнутый текст
  • Italic - курсив
  • Bold - жирный


Добавлено спустя 4 минуты 3 секунды:

Свойства bold, italic, allowHyphenations, fontSizeDelta, family можно использовать для всех стилей кроме Image.

Добавлено спустя 8 минут 58 секунд:

Свойства lineSpacing, alignment нельзя использовать для Bold, Italic, StrikeThrough, Superscript, Subscript, Strong, Emphasis, Footnote, External Hyperlink, Internal Hyperlink, Cite, Code.

Добавлено спустя 1 минуту 37 секунд:

lineSpacing нельзя также использовать для Image.

Добавлено спустя 1 минуту 22 секунды:

Строчка
Цитата:
<base family="Georgia" fontSize="10"/>
описывает стиль текста по умолчанию.

Добавлено спустя 4 часа 7 минут 36 секунд:

У меня вопрос к разработчикам:
Как выставить выравнивание по правому краю?
Например, у тега с name="Author":
alignment="left" работает
alignment="center" работает
alignment="right" не работает Sad
 
^

DmitryZ
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Зарегистрирован: 29.12.2006
Сообщения: 295



СообщениеДобавлено: 20.01.2009 12:49     Цитата

На самом деле документации нигде нет, нужно изучать исходники фбридера.
С align=right вышел конфликт названий между фбридером и библиотекой inkview. В следующей версии будет работать.
 
Профиль Сообщение ICQ ^

alamik
Гость









СообщениеДобавлено: 28.01.2009 23:17     Цитата

Проштудировал связанные со стилями исходники FBReader. Ведать, начну писать утилиту по редактированию styles.xml.
 
^

Elm
Зрелый участник форума

Зрелый участник форума



Зарегистрирован: 26.03.2009
Сообщения: 37


Откуда: Воркута

СообщениеДобавлено: 20.04.2009 14:22     Цитата

alamik писал(а):
Ведать, начну писать утилиту по редактированию styles.xml.


И как, начал? Very Happy
_________________
PB301+ / 301.14.2
 
Профиль Сообщение ^

alamik
Гость









СообщениеДобавлено: 20.04.2009 15:34     Цитата

Начал! Very Happy
Но надо закончить...
 
^

Elm
Зрелый участник форума

Зрелый участник форума



Зарегистрирован: 26.03.2009
Сообщения: 37


Откуда: Воркута

СообщениеДобавлено: 21.04.2009 00:52     Цитата

Удачи!
Ждем-с.
Вопрос пока утилита не готова: а можно вручную (если да - то как) убрать пропуск после эпиграфа, заголовка и пр.?
Ибо если в книге есть аннотация, обложка, эпиграфы, она разбита на книги-части-главы то сам текст может начинаться страницы с десятой, что по-моему не очень здорово.
_________________
PB301+ / 301.14.2
 
Профиль Сообщение ^

Soluslex Lex
Новенький участник форума

Новенький участник форума



Зарегистрирован: 13.04.2009
Сообщения: 4



СообщениеДобавлено: 22.04.2009 10:17     Цитата

Да без утилиты не разобраться. А в какой среде будет утилита?
_________________
hp rx1950 - hp 214 - hp 514 - PB+
 
Профиль Сообщение ^

alamik
Гость









СообщениеДобавлено: 22.04.2009 16:41     Цитата

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

Aardvark
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 12.11.2007
Сообщения: 1991


Откуда: Москва

СообщениеДобавлено: 22.04.2009 16:57     Цитата

Глупый вопрос - а если настраивать десктопным фбридером и потом копировать получившийся файл?
_________________
Onyx Boox M92SM
 
Профиль Сообщение ^

alamik
Гость









СообщениеДобавлено: 22.04.2009 18:17     Цитата

У десктопного FBReader'a файла не получается. Он хранит всё в реестре. По крайней мере в Винде. Как на других ОС, не знаю. Но виндусятникам это всё равно не поможет. А было бы хорошо. У FBReader'a, в принципе, код открытый - при очень большом желании можно и переделать...
 
^

Aardvark
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 12.11.2007
Сообщения: 1991


Откуда: Москва

СообщениеДобавлено: 22.04.2009 18:30     Цитата

Линуксовый FBReader хранит настройки в xml-файлах:

Код:
books.xml  options.xml  state.xml  system.xml  ui.xml

_________________
Onyx Boox M92SM
 
Профиль Сообщение ^

Soluslex Lex
Новенький участник форума

Новенький участник форума



Зарегистрирован: 13.04.2009
Сообщения: 4



СообщениеДобавлено: 13.05.2009 13:39     Цитата

Смею, сударь, задать вопрос о состоянии вопроса о разработке программы. Иль смею спросить поделиться настроенным styles??
_________________
hp rx1950 - hp 214 - hp 514 - PB+
 
Профиль Сообщение ^

Димастый
Зрелый участник форума

Зрелый участник форума



Зарегистрирован: 19.06.2009
Сообщения: 34



СообщениеДобавлено: 11.07.2009 12:53     Цитата

Хм,а можно ли задать в нём кегли шрифтов используемых по умолчанию(ну те что меняются при увеличении/уменьшении шрифта)?
 
Профиль Сообщение ^

1dre
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 25.04.2004
Сообщения: 5870



СообщениеДобавлено: 24.08.2009 23:56     Цитата

Я правильно понимаю, что именно стили определяют, отображается ли курсив?
Открыл тут книжку. в которой автор интонации периодически поддчёркивает, выделяя речь курсивом. В lrf, полученном однокнопочным конвертором, курсив читается (на 505), из чего я делаю вывод. что курсив обозначен в исходном fb2. ПБ360 в этом же (исходном) файле курсив не отображает нигде.
Как бы поправить это дело?
 
Профиль Сообщение ^

Viktor W.
Бывалый участник форума

Бывалый участник форума



Зарегистрирован: 09.02.2009
Сообщения: 105


Откуда: Москва

СообщениеДобавлено: 25.08.2009 00:08     Цитата

1drey, какой шрифт используете?
_________________
Kobo Aura One [Onyx i86ML; Texet TB-138; Onyx A61S Hamlet; PB 301+]
 
Профиль Сообщение ^

1dre
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 25.04.2004
Сообщения: 5870



СообщениеДобавлено: 25.08.2009 11:40     Цитата

Viktor W.
Встроенные.
Liberation Serif
Liberation Sans
Т.е. с засечками и без них попробовал. Одинаковый результат.
 
Профиль Сообщение ^

Elm
Зрелый участник форума

Зрелый участник форума



Зарегистрирован: 26.03.2009
Сообщения: 37


Откуда: Воркута

СообщениеДобавлено: 28.09.2009 20:13     Цитата

Что-то никак не разберусь.
Код:
 ...name="Section Title"...allowHyphenations="false" 

Это оригинальная строчка из styles; т.е. переносы в названиях глав вроде как запрещены. На самом деле переносы встречаются. Менял false на true - то-же самое.
Так как все-таки запретить переносы в названиях глав Question
_________________
PB301+ / 301.14.2
 
Профиль Сообщение ^

gmaxzz
Новенький участник форума

Новенький участник форума



Зарегистрирован: 13.09.2009
Сообщения: 5



СообщениеДобавлено: 19.11.2009 18:46     Цитата

Свойство partial, по всей видимости, устанавливает элемент как часть элемента, в котором тот находится. При установленном свойстве partial="true" нельзя, например, сделать индивидуальные отступы, отличающиеся от того элемента, где он находится. Как-то вот так...
 
Профиль Сообщение ^

VasilisKa
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 31.01.2011
Сообщения: 3646


Откуда: Украина, г.Харьков

СообщениеДобавлено: 10.03.2011 23:20     Цитата

Ну так кто-нибудь окончательно разобрался с настройками styles.xml? Поделитесь опытом!
_________________
PB 903Pro[5.03.11] PB А7[28.02.12]
Lbook V3ext[29.05.08]
 
Профиль Сообщение ^

biv_sumy
Член клуба The eBook

Член клуба The eBook



Зарегистрирован: 20.07.2009
Сообщения: 18533


Откуда: Сумы, Украина

СообщениеДобавлено: 11.03.2011 10:05     Цитата

VasilisKa писал(а):
Ну так кто-нибудь окончательно разобрался с настройками styles.xml? Поделитесь опытом!

Все элементарно. Ставим ФБРеадер180, открываем книгу, заходим в настройки и правим под себя стиль. Только в Абзаце по умолчанию не задаем шрифт а то потом смена не будет работать. сразу на книге правим и сразу видим что и как. Я так делал. Wink
_________________
PB 602Grey, PB A7, NSTGL
+PB Power Bank.
 
Профиль Сообщение ^
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов The-eBook -> PocketBook -> PocketBook с экраном E-Ink Часовой пояс: GMT + 4
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

© The-eBook, 1999-2014. © Design by Prohorenkov
Syndicating News | Powered by phpBB © 2001, 2005 phpBB Group.
Хостинг предоставлен компанией DatForce     Яндекс.Метрика