Niedawna aktualizacja programu Calibre do wersji 5.0 przyniosła trochę problemów, z którymi powoli sobie radzimy.
Jak pamiętamy, program został przepisany w 3 wersji Pythona, a to spowodowało konieczność zaktualizowania wszystkich wtyczek. Przez jakiś czas np. nie mieliśmy dostępnej wtyczki Hyphenate This!, odpowiadającej za dzielenie wyrazów w plikach EPUB/AZW3.
Działanie tej wtyczki opisywałem tutaj dwukrotnie:
- Jak podzielić wyrazy w e-bookach KF8 lub EPUB? (rok 2013)
- Jak przy pomocy Calibre poprawić e-booki wysyłane na Kindle? (rok 2015)
Wtyczka została zaktualizowana, ale zauważyłem, że czasami dzieli wyrazy… dość dziwnie.
Problem
Oto przykład z książki Euro. W jaki sposób wspólna waluta zagraża przyszłości Europy autorstwa Josepha Stiglitza.
Przy niektórych słowach polskie znaki znajdują się nieprawidłowo w następnym wierszu.
Np. rozwi-ązaniami, albo zamkni-ętymi.
Co się stało?
Wtyczka Hyphenate This! korzysta z dostępnego publicznie pliku słownika hyph_pl_PL.dic, który ma wiele lat i stosowany jest choćby w programie Libre Office. Nawet ustawienia wtyczki odsyłają do Libre Office.
Co więcej, z identycznego pliku korzysta program Calibre, który w ramach funkcji „Dopracuj książkę” ma również dodawanie łączników opcjonalnych – jako „Add soft hyphens”.
No i podział przez „Dopracuj książkę” działał, przez wtyczkę już nie.
Pierwszy jest taki, że wtyczka daje dodatkowe możliwości – np. pominięcie nagłówków i krótkich wyrazów.
Drugi, że „Dopracuj książkę” działa co najmniej dziwne – jeśli poprawimy w ten sposób plik EPUB, to przy konwersji do MOBI program z niego… nie korzysta, a bierze niezmodyfikowaną kopię oryginału, oznaczoną jako „ORIGINAL EPUB”. Uznałem że to błąd, zgłosiłem w bugtrackerze Calibre, na co odpowiedział mi sam Kovid Goyal, twórca Calibre, że tak ma być. No cóż, niezbadane są ścieżki myślenia developerów.
Jeśli uprzemy się przy korzystaniu z „Dopracuj książkę”, w zaawansowanych ustawieniach Calibre można tworzenie kopii wyłączyć – ustawiamy następujący parametr:
save_original_format_when_polishing = False
Dobre i to.
Rozwiązanie
Na rozwiązanie wpadł nasz czytelnik Dariusz.
Okazuje się, że plik hyph_pl_PL.dic korzystał ze starego kodowania znaków, popularnego w swoim czasie w internecie ISO 8859-2. Obecnie większość stron, ale również e-booków zapisywana jest w formacie UTF-8.
I wystarczyło przekodować plik słownika do UTF-8. Tu możecie go pobrać. Jeśli otwiera się zamiast zapisywania, skorzystajcie z opcji „zapisz link jako…” lub podobnej pod prawym klawiszem myszki. Ewentualnie link do pliku ZIP.
Sprawdziłem na paru książkach i już jest w porządku. Wracamy do Stiglitza.
Plik instalujemy tak jak opisywałem we wcześniejszych artykułach. Z menu wtyczki Hyphenate This (będzie dostępna w głównym pasku Calibre jako „Dziel wyrazy”) wybieramy „Settings”.
Następnie dodajemy z dysku plik słownika („hyph_pl_PL.dic”). Jest to czynność jednorazowa. Potem możemy już przerabiać pliki EPUB lub AZW3.
Jeśli mieliście podobnie jak ja problemy z podziałami wyrazów, sprawdźcie nowy plik słownika.
PS. Jeśli ktoś wysyła przekonwertowane w Calibre pliki na Kindle w formacie MOBI „both” (patrz artykuł 50 twarzy MOBI), może zauważyć, że ostatnio część plików konwertuje się nieprawidłowo. Napiszę o tym niedługo artykuł, tymczasem wspomnę tylko, że konieczne jest tutaj użycie konwersji przy pomocy amazonowego programu Kindle Previewer.
Ja po prostu nie aktualizuję calibre bo i po co skoro działa
No, biorąc pod uwagę te problemy, żałowałem że nie zostałem przy wersji 4.x. Ale problem z PS. występuje też przy 4.23, którą w desperacji zainstalowałem, więc pozostanie nie rozwiązuje wszystkiego.
Zaletą Calibre 5 jest jednak znacznie większa szybkość, np. konwersji, ale również wyszukiwarki. Jak w starym wpisałem w wyszukiwarce tytuł książki, międlił i międlił dysk przez kilkanaście sekund nawet. W nowym działa to natychmiast (co nie jest pewnie zaletą pythona tylko nowego formatu bazy danych, może wreszcie indeks dodali).
Ja mam 4.21 i nigdy nie miałem problemów z mielącą wyszukiwarką, ułamek sekundy i są wyniki.
A ile masz książek w Calibre? Ja 3870.
4x mniej ale to i tak chyba całkiem sporo xd
U mnie jest ponad 5000 pozycji i też zero problemów z wydajnością wyszukiwarki, zarówno w wersji 5.x jak i 4.x.
Ja od jakiegoś czasu zamiast Hyphenate This! używam epubQTools, jest nawet nowsza wersja przekonwertowana na pythona3 – https://github.com/johnykvsky/epubQTools ostatnio na nią trafiłem, sprawdzałem i działa, chociaż nie jest to oficjalne wydanie (program jest już nierozwijany?)
Plik po konwersji wygląda lepiej niż po Hyphenate – tak to ustawiłem, że mam skrypt, który wszystkie pliki w danym katalogu konwertuje, jak kupuję książkę, to zapisuję do niego, odpalam skrypt, mieli, jak gotowe, to dodaję do calibre epub i mobi.
Dzięki, muszę potestować jak to działa pod windows. Faktycznie sądziłem, że program nie jest już rozwijany.
I z tego co pamiętam epubQTools tworzył plik mobi z podziałem wyrazów (!).
„Następnie dodajemy z dysku wtyczkę.” – chyba chodzi o słownik?
Tak, moja pomyłka. Już poprawione.
Ktoś mógłby mi wyjaśnić jak pobrać ten przekodowany słownik z podanego linku w artykule? Moja przeglądarka go wyświetla zamiast pobrać (Opera i Egde).
Prawy przycisk myszy i „Zapisz link jako”
Podaję też link do pliku zip:
https://swiatczytnikow.pl/downloads/hyph_pl_pl.zip
To nie może być takie pros…
…
…
…
A jednak 🤣
No nie wiem, czy jest dobrze po przekonwertowaniu do utf-8? Po podmianie słownika w czytniku nadal występują kwiatki typu: stoj – ący.
Upewniłbym się czy na czytniku nie masz starej wersji książki. No i przed ponownym podzieleniem trzeba usunać podziały (remove soft hyphens), a także jeśli trzeba, przekonwertować z epub do mobi.
Już to robiłem. Podział przy pomocy wtyczki i słownika w utf-8, zamiana słowników w czytniku, usunięcie słownika z czytnika. Wynik za każdym razem do d… Przypuszczam, że jest to konflikt wtyczka – opcja w dopracuj książkę. Zadałem sobie trud odszukania w słowniku błędnie podzielonego słowa i w słowniku był zakaz dzielenia w tym miejscu (o zakazie lub możliwości dzielenia decyduje parzysta lub nieparzysta cyfra). W chwili obecnej używam „dopracuj książkę” , słownik wywalam z czytnika, w css ustawiam blokadę podziału nagłóków.
Ja mam taki problem, że po wrzuceniu na mojego Kindle’a przekonwertowanego pliku AW3, po operacji dzielenia wyrazów, słowa są niewyszukiwalne na urządzeniu – Kindle ich po prostu nie widzi w wyszukiwarce. Jedyny sposób to zaznaczenie jakiegoś wyrazu i kliknięcie lupki, żeby znaleźć pozostałe takie same wyrazy w książce czy na urządzeniu.
Czy jest na to jakieś rozwiązanie?
To wina oprogramowania kindla i nie tylko kindla. Gdy wstawiasz podział słów wstawiasz „znaczniki”, które są niewidoczne na ekranie, ale wyszukiwanie ich nie ignoruje.