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:
- 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,
- 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),
- 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):
- podłączyć czytnik do komputera,
- po zamontowaniu się wewnętrznej pamięci czytnika jako dysku w naszym komputerze, otwieramy go (większość linuksów robi to za nas),
- w głównym katalogu nooka tworzymy katalog np. o nazwie myfonts,
- 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:
- wciągnąć książkę do Calibre,
- zaznaczyć książkę na liście i kliknąć w Konwertuj książki,
- ustawić Format wyjściowy na EPUB (nawet jeśli książka jest już w tym formacie),
- wybrać zakładkę Wygląd i zachowanie z lewej strony okna konwersji,
- wkleić w okienko Dodatkowa stylizacja kodem CSS definicje czcionek (takie jak np. te z ramki poniżej),
- 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 URL
u 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.