Настройка стилей в FBReader с помощью styles.xml
Goto page 1, 2  Next
 
View unanswered posts
Post new topic   Reply to topic    The-eBook Forum Index -> PocketBook -> PocketBook с экраном E-Ink
 
Author Message

alamik
Guest









PostPosted: 17.01.2009 19:05     Quote

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

Оригинальный файл styles.xml лежит во внутренней памяти Pocket Book 301 (полный путь: /system/config/styles.xml) и имеет следующую структуру:
Code:
<?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 секунд:

Итак, что мне уже удалось расшифровать. Таким вот образом в этом файле описывается стиль:
Quote:
<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 секунды:

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

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

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

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

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



Joined: 29 Dec 2006
Posts: 295



PostPosted: 20.01.2009 12:49     Quote

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

alamik
Guest









PostPosted: 28.01.2009 23:17     Quote

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

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

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



Joined: 26 Mar 2009
Posts: 37


Location: Воркута

PostPosted: 20.04.2009 14:22     Quote

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


И как, начал? Very Happy
_________________
PB301+ / 301.14.2
 
View user's profile Send private message ^

alamik
Guest









PostPosted: 20.04.2009 15:34     Quote

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

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

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



Joined: 26 Mar 2009
Posts: 37


Location: Воркута

PostPosted: 21.04.2009 00:52     Quote

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

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

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



Joined: 13 Apr 2009
Posts: 4



PostPosted: 22.04.2009 10:17     Quote

Да без утилиты не разобраться. А в какой среде будет утилита?
_________________
hp rx1950 - hp 214 - hp 514 - PB+
 
View user's profile Send private message ^

alamik
Guest









PostPosted: 22.04.2009 16:41     Quote

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

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

Член клуба The eBook



Joined: 12 Nov 2007
Posts: 1991


Location: Москва

PostPosted: 22.04.2009 16:57     Quote

Глупый вопрос - а если настраивать десктопным фбридером и потом копировать получившийся файл?
_________________
Onyx Boox M92SM
 
View user's profile Send private message ^

alamik
Guest









PostPosted: 22.04.2009 18:17     Quote

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

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

Член клуба The eBook



Joined: 12 Nov 2007
Posts: 1991


Location: Москва

PostPosted: 22.04.2009 18:30     Quote

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

Code:
books.xml  options.xml  state.xml  system.xml  ui.xml

_________________
Onyx Boox M92SM
 
View user's profile Send private message ^

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

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



Joined: 13 Apr 2009
Posts: 4



PostPosted: 13.05.2009 13:39     Quote

Смею, сударь, задать вопрос о состоянии вопроса о разработке программы. Иль смею спросить поделиться настроенным styles??
_________________
hp rx1950 - hp 214 - hp 514 - PB+
 
View user's profile Send private message ^

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

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



Joined: 19 Jun 2009
Posts: 34



PostPosted: 11.07.2009 12:53     Quote

Хм,а можно ли задать в нём кегли шрифтов используемых по умолчанию(ну те что меняются при увеличении/уменьшении шрифта)?
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 25 Apr 2004
Posts: 5870



PostPosted: 24.08.2009 23:56     Quote

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

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

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



Joined: 09 Feb 2009
Posts: 102


Location: Москва

PostPosted: 25.08.2009 00:08     Quote

1drey, какой шрифт используете?
_________________
Kobo Aura One [Onyx i86ML; Texet TB-138; Onyx A61S Hamlet; PB 301+]
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 25 Apr 2004
Posts: 5870



PostPosted: 25.08.2009 11:40     Quote

Viktor W.
Встроенные.
Liberation Serif
Liberation Sans
Т.е. с засечками и без них попробовал. Одинаковый результат.
 
View user's profile Send private message ^

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

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



Joined: 26 Mar 2009
Posts: 37


Location: Воркута

PostPosted: 28.09.2009 20:13     Quote

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

Это оригинальная строчка из styles; т.е. переносы в названиях глав вроде как запрещены. На самом деле переносы встречаются. Менял false на true - то-же самое.
Так как все-таки запретить переносы в названиях глав Question
_________________
PB301+ / 301.14.2
 
View user's profile Send private message ^

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

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



Joined: 13 Sep 2009
Posts: 5



PostPosted: 19.11.2009 18:46     Quote

Свойство partial, по всей видимости, устанавливает элемент как часть элемента, в котором тот находится. При установленном свойстве partial="true" нельзя, например, сделать индивидуальные отступы, отличающиеся от того элемента, где он находится. Как-то вот так...
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 31 Jan 2011
Posts: 3646


Location: Украина, г.Харьков

PostPosted: 10.03.2011 23:20     Quote

Ну так кто-нибудь окончательно разобрался с настройками styles.xml? Поделитесь опытом!
_________________
PB 903Pro[5.03.11] PB А7[28.02.12]
Lbook V3ext[29.05.08]
 
View user's profile Send private message ^

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

Член клуба The eBook



Joined: 20 Jul 2009
Posts: 18415


Location: Сумы, Украина

PostPosted: 11.03.2011 10:05     Quote

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

Все элементарно. Ставим ФБРеадер180, открываем книгу, заходим в настройки и правим под себя стиль. Только в Абзаце по умолчанию не задаем шрифт а то потом смена не будет работать. сразу на книге правим и сразу видим что и как. Я так делал. Wink
_________________
PB 602Grey, PB A7, NSTGL
+PB Power Bank.
 
View user's profile Send private message ^
Display posts from previous:   
Post new topic   Reply to topic    The-eBook Forum Index -> PocketBook -> PocketBook с экраном E-Ink All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

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