Stając przed zadaniem przekonwertowania książki „540ddc...” na współczesne formaty cyfrowe takie jak PDF, MOBI (dla czytnika Kindle) czy EPUB (dla pozostałych czytników ebook) należało znaleźć odpowiednie narzędzia. W założeniu miały to być rozwiązania darmowe.
Pierwotnie książka była pisana w tandemie WordPerfect i mini-Tag – oba edytory są już martwe, a i same źródła gdzieś mi się zapodziały przy którejś reinstalacji komputera. Została mi tylko strona w HTML z której należało zrobić odpowiednie źródła spełniające dzisiejsze standardy.
Poszukiwania w zasobach sieci kierowały mnie w kierunku TEX-a czy jego nadbudówki LATEX-a. Próbowałem też działać coś w klasycznym DOCBOOK-u ale porzuciłem go z powodu paru problemów. Została więc na placu boju rodzina *TEX* - problemem tylko wydawało się uczenie czegoś nowego. Na szczęście mamy alternatywę, która zwie się LYX – czyli tak naprawdę nakładka graficzna na LATEXa. Z samego LYXa wyprodukujemy ładne PDFy – niestety na obecną chwilę nie wyeksportujemy EPUB-a czy MOBI. Tutaj pomocą służy nam CALIBRE, który bardzo chętnie wykona nam odpowiednie formaty książek – pod warunkiem, że „na wejście” damy mu odpowiednio przygotowane źródła – najlepiej jakby to był... HTML.
No ale ktoś mógłby się zapytać – po co kombinować? Jak mam przecież HTML? Niestety – ta stara strona z moją książką posiadała ramki i zbyt dużo innych śmieci w kodzie, których naprawianie mijało się z celem.
Plan zakładał więc prace wg schematu:
1) Konwersja starej wersji witryny do LYXa
2) Generowanie PDFa z LYXa
3) Generowanie HTMLa dla CALIBRE
4) Czyszczenie HTMLa
5) Generowanie MOBI i EPUB z CALIBRE
1. Konwersja starej wersji witryny do LYXa
Jeżeli nie bawiliśmy się nigdy systemami texowymi to zdecydowanie zalecam ściągnięcie wersji BUNDLE. Posiada ona wszystko czego potrzebuje LYX do pracy. Sama „konwersja” to tak naprawdę ręczne kopiowanie ze starej witryny do dokumentu LYX. Pamiętać należy tylko, że LYX nie jest typowym edytorem tekstu i ma zdecydowany podział na treść i wygląd.
W skrócie: określamy tylko jaką część dokumentu teraz robimy (np. rozdział, akapit czy sekcja), a sam wygląd jest już tworzony podczas renderowania z odpowiedniego szablonu. Osobiście w samym LYX-ie musiałem korzystać ze znaczników „\PAGEBRAKE”, „\newline” czy „\\”. Są także obrazki, odnośniki i bibliografia. Nauka systemu LYX to czysta przyjemność i warto go poznać na przyszłość.
2. Generowanie PDFa z LYXa
Tworzenie PDFa z LYX jest banalne. Dokonujemy eksportu (z kilku rodzajów PDFa osobiście wybrałem luatex) i przeglądamy wynikowego PDF-a czy wszystko jest OK. Zwrócić należy uwagę zwłaszcza na obrazki, które stworzyłem w INKSCAPE. W LYX-ie można osadzać natywne pliki INKSCAPE czyli SVG ale warto także zrobić sobie PNG dla HTML-a. Obrazki możemy skalować albo odpowiednio centrować lub przesuwać do któregoś marginesu. Więcej mi nie było potrzebne ale z pewnością można bawić się np. w oblewanie obrazka tekstem.
3. Generowanie HTMLa dla CALIBRE
Podobnie jak z PDF tutaj mamy także kilka możliwości eksportu. Osobiście wybrałem opcje zwykłego HTML – miałem z tym formatem najmniej problemów. Wersja lyxHTML produkuje więcej śmieci, których CALIBRE nie trawi. Po eksporcie podmieniam także pliki obrazków na oryginalne. Te „przerobione” przez render LYX-a robiły jakieś wielkie marginesy i pojawiały się na nich artefakty.
4. Czyszczenie HTMLa
W tym podpunkcie jest najwięcej zabawy. Można oczywiście pomyśleć o stworzeniu jakiegoś skryptu (awk, python, perl), który by wykonał to czyszczenie „z automatu” ale jest to opłacalne dopiero przy większych projektach. Dlatego wymienię w podpunktach moje kroki do czyszczenia pliku wejściowego HTML-a dla CALIBRE. Edytujemy jakimś edytorem pracującym na czystym tekście nasz plik *.HTML i:
- Wyszukujemy frazy NEWLINE.
Może się zdarzyć, że wstawiając powyższy kod TEX-a zapomnieliśmy dodać przed nim znaku „\” lub dodaliśmy za dużo: „\\”. W takim przypadku możemy wyciąć z kodu HTMLa całą sekcję wyświetlającą tę frazę – ale od razu poprawiamy ten błąd w źródłach LYX-a
- Wyszukujemy frazy PAGEBREAK i kasujemy sekcje:
<div class="Indented">
<span class="unknown">\pagebreak</span>
</div>
CALIBRE w wersji w której pracowałem nie rozumiał tej sekcji – normalnie powinna powstać nowa strona. Bez wycięcia jednak powyższego w naszym MOBI znajdzie się napis: \PAGEBREAK
W PDF ta opcja działa i nie ruszamy jej w plikach LYXa
- Jeżeli w naszej pracy korzystaliśmy z odnośników to w HTMLu musimy je usunąć gdyż pojawią nam się śmieci w MOBI czy EPUB. Kasujemy sekcje która w HTMLu może wyglądać tak:
<span class="FootOuter"><span class="SupFootMarker"> [A] </span><span class="HoverFoot"><span class="SupFootMarker"> [A] </span>
Po wycięciu tej sekcji możemy dopisać hasło jakie pojawiało się na dole strony (odnośnik) np. w nawiasie za „*”. Oczywiście w PDF ta opcja działa i nie ruszamy jej w plikach LYXa
- Kasujemy wizytówkę ELYX-era.
Na końcu pliku HTML generowana jest wizytówka renderera. Jeżeli nie przeszkadza nam ona w końcowym rezultacie to zostawiamy ją. Jeżeli chcemy jednak ją usunąć, to na końcu pliku wycinamy sekcję która może wyglądać tak:
<hr class="footer"/>
<div class="footer" id="generated-by">
Document generated by <a href="http://elyxer.nongnu.org/">eLyXer 1.2.5 (2013-03-10)</a> on <span class="create-date">2013-10-28T10:36:07.017000</span>
</div>
- Wyszukujemy frazy „Bibliography” i spolszczamy ją.
Mimo, że w LYX-ie mam wymuszanie polskiej nazwy bibliografii to działa to u mnie tylko dla renderu PDF. W HTML uparcie tworzy się jej angielska wersja. Dlatego zmieniamy występującą frazę angielską na polską. U mnie występowała w dwóch miejscach koło siebie.
- Modyfikujemy odwołania do Bibliografii.
Jeżeli korzystamy w swoim tekście z odwołań do Bibliografii to niestety CALIBRE ma z nimi problem. Powstają odwołania, które prowadzą donikąd, a poza tym tworzy nam się paskudny, generyczny spis treści (TOC), składający się z pustych odwołań.
Wyszukujemy więc fraz podobnych do:
<span class="bibcites">[<a class="bibliocite" name="cite-5" href="#biblio-5">5</a>]</span>
i zamieniamy na zwykły „[5]” (w tym przypadku).
5. Generowanie MOBI i EPUB z CALIBRE
Mamy już wyczyszczony plik HTML-a, który możemy wczytać do CALIBRE. Tam korzystałem z domyślnych ustawień. Pamiętać należy tylko o dodaniu ewentualnej okładki, ręcznym dopisaniu autora i już możemy dokonać konwersji do MOBI i EPUB, a w naszej bibliotece CALIBRE są ugotowane świeże i pachnące produkty. Sprawdzamy tylko czy wszystko jest dobrze i możemy cieszyć się swoimi pracami w wersji na e-booki.
Oczywiście powyższe kroki są moimi, ramowymi krokami i z nowszymi wersjami Calibre mogą się one różnić lub mogą pojawić się nowe problemy.