Fórum Root.cz

Hlavní témata => Software => Téma založeno: Jan D. 06. 12. 2017, 22:26:04

Název: MikTex 2.9 portable / pdflatex - No hyphenation patterns were preloaded...
Přispěvatel: Jan D. 06. 12. 2017, 22:26:04
Prosím znalce LaTeXu o radu s nefunkčním dělením slov.
Jelikož jsem na tento problém našel v Google spousty dotazů, ale žádnou funkční odpověď, pokládám tutéž otázku sám, zda mi nějaký zkušený uživatel LaTeXu poradí:

MikTex 2.9 portable pro Windows (pdflatex) mi hlásí následující warning a dělení slov funguje špatně (neboli spousta řádek v dokumentu přeteče šířku stránky a ta slova, která se rozdělí, se obvykle rozdělí špatně, neboť nastavení dělení slov je i přes nainstalovanou češtinu převzaté z angličtiny):

   Package babel Warning: No hyphenation patterns were preloaded for
   (babel)                the language `Czech' into the format.
   (babel)                Please, configure your TeX system to add them and
   (babel)                rebuild the format. Now I will use the patterns
   (babel)                preloaded for \language=0 instead on input line 53.


Minimální dokument pro reprodukci problému je tento:

   \documentclass[a4paper]{book}
   \usepackage[czech]{babel}
   \usepackage[utf8]{inputenc}
   \usepackage[T1]{fontenc}

   \begin{document}

   \chapter{Test chapter}
   \paragraph{Test paragraph}Test text.

   \end{document}


Dokument generuji přes pdflatex:

   %latexpath%\pdflatex.exe test.tex

Češtinu mám nainstalovanou prostřednictvím těchto balíčků (balíčků mám nainstalováno více, ale babel-czech + arabi by měly poskytnout plnou podporu češtiny a problém lze reprodukovat i pouze s těmito):

   %MIKTEXDIR%\texmfs\install\miktex\bin\mpm.exe --verbose --repository=%PKGDIR%\ --install babel-czech
   %MIKTEXDIR%\texmfs\install\miktex\bin\mpm.exe --verbose --repository=%PKGDIR%\ --install arabi


(Instalace skončí bez chyby.)

Čeština je po nainstalování babel-czech zaškrtnutá v GUI konfigurátoru. Též veškerá další podpora češtiny funguje v pořádku (fonty, typografie, ...) - jediné, co v mém dokumentu nefunguje, je dělení slov. Hyphenation patterny se v adresářové struktuře nacházejí (soubor hyph-cs.tex), zjevně se tedy jedná o problém v konfiguraci a nikoliv chybějící balíček.

Používám MikTex verzi 2.9.6210 (nejnovější je 6521), ale jelikož dělení slov je naprosto zásadní funkčnost, nečekám, že by rok stará distribuce nebyla schopná slova dělit.

Co dělám špatně? Je třeba nainstalovat nějaké další balíčky pro dělení českých slov? Nebo musí být konfigurace po instalaci babel-czech přes commandline příkaz mpm.exe nějak aktualizována dalším příkazem? Možná je třeba přidat nějaký \usepackage nebo cokoliv jiného do dokumentu?

Děkuji za rady.
Název: Re:MikTex 2.9 portable / pdflatex - No hyphenation patterns were preloaded...
Přispěvatel: y, 06. 12. 2017, 23:22:27
tusim ze se vzdycky musel volat initex nebo neco takoveho. V Miktexu byvala v grafickem instalatoru volba "Create format files" nebo tak neco. Ale divim se, ze se to nezavolalo samo.
Název: Re:MikTex 2.9 portable / pdflatex - No hyphenation patterns were preloaded...
Přispěvatel: y, 06. 12. 2017, 23:26:27
Jeste jsem nasel tohle:
http://www.tex.ac.uk/FAQ-newlang.html
Ale ja uz jedu jenom Overleaf, takze jsem z problemu s mistni instalaci uz vypadl a  nedokazu poradit s jistotou.
Název: Re:MikTex 2.9 portable / pdflatex - No hyphenation patterns were preloaded...
Přispěvatel: Jan D. 07. 12. 2017, 06:55:34
Děkuji za odpovědi. Pod odkazem zmiňovaný návod nefunguje: initexmf --dump spadne s chybou na LuaTex (to, že předtím proběhne generování formátů pro pdflatex je nedostačující a problém přetrvává).

Skutečně ale pomůže vygenerovat formáty přes GUI. Nevím, co dělá GUI jinak, ale u LuaTex nespadne a dělení znaků poté funguje bez warningu i pro češtinu a můžu z dokumentu odstranit workaround v podobě \hyphenation{sez-nam slov zpu-so-bu-ji-cich pre-te-ce-ni rad-ku}.

Teď ještě přijít na to, jak formáty aktualizovat z příkazové řádky (vygooglil jsem miktex-makefmt.exe s řadou parametrů, ale spuštění pro pdflatex nefunguje, GUI dělá zjevně ještě něco navíc, co při initexmf --dump spadlém na LuaTex neproběhne). Ale i když na funkční příkaz nepřijdu, půjde to zlomit přes AutoHotKey nebo podobný program podstrkující GUI programům kliky myší na jednotlivých položkách menu. Hlavní je, že můžu pokračovat v psaní dokumentu :-)

Děkuji za konečně funkční rady :-)