[cstex] Výstup do ePub

Michal Hoftich michal.h21 at gmail.com
Mon Mar 23 12:30:03 CET 2015


Dobrý den

> Dobrý den,
>
> je to už nějaký pátek, kdy jsem vyráběl e-book z LaTeXu, takže možná už jsou
> dnes k dispozici lepší nástroje. Osvědčilo se mi následující:
>
> Pro převod do HTML tex4ht. Dost jsem tenkrát bojoval s dokumentací a
> parametry dohledával jen obtížně. Nakonec jsem použil
>
> htlatex soubor.tex "html,charset=utf-8,fn-in" " -cunihtf -utf8" "-p"
>
> a neptejte se mě, co to znamená ;-)

htlatex volá 3 programy, latex, tex4ht (konvertor z dvi do výstupních
formátů) a t4ht (na konverzi obrázků, volání externích programů a
generování css). každý z těchto programů má vlastní parametry, ty jsou
v dvojitých uvozovkách.

první parametr za jménem kompilovaného souboru jsou volby pro
`tex4ht.sty`, v podstatě je to ekvivalent toho, kdybyste měl v TeXovém
souboru:

     \usepackage[html,charset=utf-8]{tex4ht}

`charset=utf-8` nastaví element `<meta>`:

     <meta http-equiv="content-type" content="text/html; charset=utf-8">

takže se dokument v kódování utf-8 korektně zobrazí v prohlížeči.

druhý parametr jsou volby pro program `tex4ht`, tady je to trošku složitější:

pro každý podporovaný font existuje soubor s příponou .htf, kde každý
řádek odpovídá jedné pozici v .tfm souboru. každý řádek obsahuje
hexadecimální unicode kód pro znak na dané pozici. Pokud bychom
nepoužili žádné volby pro `tex4ht`, dostali bychom soubor, kde znaky,
které nejsou v kódování Latin1, jsou kódovány jako xml entity,
například:

       k&#x016F;&#x0148; úp&#x011B;l &#x010F;ábelsk

pokud bychom použili jenom volbu `utf8`, tak entity budou nahrazeny
znaky kódovanými v utf8, ale znaky s diakritikou, které byly
konvertovány přímo do Latin1, budou špatně:

      kůň ?pěl ď?belsk

volba `-cunihtf` zabrání konverzi na Latin1 a text bude konečně správně:

      kůň úpěl ďábelsk

mimochodem, tex4ebook a make4ht (další podobný skript) mají volbu
`-u`, která je ekvivalentní tomuto dlouhému zápisu

>
> tex4ht si generuje i obrázky. Parametry pro převod jsem měnil přímo v
> tex4ht.env, konkrétně jsem měnil rozlišení na 150 DPI a odstranil
> -transparency.

tex4ebook i make4ht podporují build soubory, kde se dá nakonfigurovat
například konverze obrázků:

https://github.com/michal-h21/make4ht#image-conversion

a trošku komplikovanější příklad:

http://tex.stackexchange.com/a/228943/2891
>
> Ve výstupu jsem rozkládal ligatury, aby se ve čtečce dalo najít třeba slovo
> "definice". To jsem dělal pěkně po staru sedem:
>
> sed -e /____/d -e s/fl/fl/g -e s/fi/fi/g -e s/ff/ff/g -e s/ffi/ffi/g soubor.html
>> vysledek.html

to je možné řešit pomocí filtrů v build souboru, konkrétně filtr fixligatures:

https://github.com/michal-h21/make4ht#filters

Zdravím,
Michal Hoftich




More information about the csTeX mailing list