Skip to main content

Calibre - polskie literki w książkach w formacie EPUB z czcionkami zewnętrznymi.

Zamieszczone w

Nie lubię marnotrawstwa. Wiem, że teraz wszystko jest tanie: dyski są tanie, pamięci są tanie, pendrive'y są tanie, ale i tak wklejanie plików z czcionkami do każdej książki - wydaje mi się, delikatnie mówiąc, szkodliwą rozrzutnością. Dla 100 książek z pełnym zestawem moich ulubionych krojów czcionek (około 500 KB) daje to dodatkowy narzut, który nagle rośnie nam do niebagatelnych 50 MB. I to samych czcionek. Jest jednak alternatywa...

Polega ona na tym, że w definicje czcionek w dokumencie EPUB przygotowuje się w taki sposób, że czytniki nie sięgają do plików czcionek spakowanych razem z resztą do EPUBa, tylko biorą je niejako "z zewnątrz" EPUBa.
Ta metoda wydaje mi się lepszą od tej opisywanej poprzednio, we wpisie o czcionkach wbudowanych w dokument EPUB. Lepszą bo:

  1. jest mniej inwazyjna - w sensie ingerencji w pliki książek. Co prawda trzeba dokonać pewnych zmian w samym czytniku (skopiować czcionki), ale jeśli ktoś bez przerwy nie zmienia swoich upodobań w tym względzie, to robi się to tylko raz,
  2. pliki książek są mniejsze - w pierwszej metodzie, każdy plik przyrastał od 100KB w górę, w zależności od liczby załączonych plików czcionek (w moim przypadku ~500KB),
  3. jest wygodniejsza i szybsza - skonfigurowałem sobie Calibre w taki sposób, że wszystko dokonuje się automatycznie przy konwersji książki.

Przygotowanie czytnika (opisane są dla nooka, ale powinny być bardzo podobne lub identyczne dla innych czytników):

  1. podłączyć czytnik do komputera,
  2. po zamontowaniu się wewnętrznej pamięci czytnika jako dysku w naszym komputerze, otwieramy go (większość linuksów robi to za nas),
  3. w głównym katalogu nooka tworzymy katalog np. o nazwie myfonts,
  4. kopiujemy do niego czcionki typu TrueType, których chcemy używać z naszymi książkami (ja użyłem Liberation, tak jak w artykule o załączaniu czcionek).

Przygotowanie samej książki:

  1. wciągnąć książkę do Calibre,
  2. zaznaczyć książkę na liście i kliknąć w Konwertuj książki,
  3. ustawić Format wyjściowy na EPUB (nawet jeśli książka jest już w tym formacie),
  4. wybrać zakładkę Wygląd i zachowanie z lewej strony okna konwersji,
  5. wkleić w okienko Dodatkowa stylizacja kodem CSS definicje czcionek (takie jak np. te z ramki poniżej),
  6. wcisnąć OK.

Definicje czcionek dla arkuszy stylów książki, mogą wyglądać tak:

@font-face {
	font-style: italic;
	font-family: 'Liberation', serif, sans-serif;
	font-weight: normal;
	src: url(res:///system/media/sdcard/myfonts/LiberationSans-Italic.ttf);
}
@font-face {
	font-style: normal;
	font-family: 'Liberation', serif, sans-serif;
	font-weight: normal;
	src: url(res:///system/media/sdcard/myfonts/LiberationSans-Regular.ttf);
}
@font-face {
	font-style: italic;
	font-family: 'Liberation', serif, sans-serif;
	font-weight: bold;
	src: url(res:///system/media/sdcard/myfonts/LiberationSans-BoldItalic.ttf);
}
@font-face {
	font-style: normal;
	font-family: 'Liberation', serif, sans-serif;
	font-weight: bold;
	src: url(res:///system/media/sdcard/myfonts/LiberationSans-Bold.ttf);
}
body {
	font-family: 'Liberation', sans-serif;
}

Generalnie to wszystko.

Co ważne - rozwiązanie to nie działało - dopóki używałem znaku cudzysłowu w definicji stylu w parametrze src. Podejrzewam, że w związku z tym mogłyby wystąpić problemy, gdyby w URLu trzeba było użyć na przykład znaku spacji, ale tego nie sprawdzałem. Dla nooka ścieżka do katalogu głównego pamięci wewnętrznej to res:///system/media/sdcard/, dla innych urządzeń trzeba takiej ścieżki poszukać w sieci.

Żeby zautomatyzować ten proces w Calibre można umieścić definicje czcionek jako domyślne modyfikacje dla wyglądu naszych książek. Wystarczy nasze definicje wkleić do odpowiedniego okienka w ustawieniach programu:

Preferencje -> Conversions -> Opcje wspólne -> Dodatkowa stylizacja kodem CSS.