[cstex] Čeština v MiKTeXu 2.7

Zdenek Wagner zdenek.wagner at gmail.com
Mon Jan 7 11:53:02 CET 2008


7.1.08, Petr Olsak <petr at olsak.net>:
>
> On Mon, 7 Jan 2008, Zdenek Wagner wrote:
>
> > 7.1.08, Derek Pilous <Derek.Pilous at seznam.cz>:
> > > Dobrý den,
> > >
> > >   jsem začátečník a mám praktický dotaz: platí stále (tj. i v MiKTeXu
> > > ...
> > > návodu nerozumím a rozhodně nehodlám provádět takové bizarnosti, jako
> > > instalovat perl). Předem děkuji.
> > >
> > Instalační skript je psán v perlu
> > proto, aby fungoval ve všech operačních systémech ...
> > Lze to samozřejmě udělat bez perlu ...,
> > ale myslím si, že ten je pro začátečníka ještě méně stravitelné.
>
> Vážení,
>
> dovolím si malou úvahu na dané téma. Pod pojmem "instalace" si představuji
> umístění potřebných souborů na stanovené místo do adresářové struktury a
> případně úprava konfigurace systému, aby dokázal nově nakopírované soubory
> správně používat. K prvnímu kroku existuje už desítky let program /bin/cp
> a k druhému kroku lze použít /usr/bin/vi nebo něco podobného. K tomu
> stačí, by k instalačnímu balíku byl popis, kde je jasně řečeno, jak to
> funguje, kam co nakopírovat a jaké údaje změnit v konfiguraci systému.
> Pozn.: připouštím, že kromě /bin/cp se hodí také /bin/tar kombinovaný
> např. s /usr/bin/gunzip, aby bylo možné kopírovat celé stromy adresářů a
> souborů na cílové místo a případně pracovat s komprimovanými instalačními
> balíky.
>
Ono je to poněkud složitější. Babel se distribuuje jako hromada
souborů *.dtx a *.ins (což má podobnou funkci jako Makefile) a z nich
se generují *.ldf, *.sty a language dat pomocí docstrip.tex a
dokumentace. Pak se *.ldf a *.sty překopírují na místa, kde je chce
LaTeX (a babelizovaný plain, pokud ho někdo používá) a language.dat na
místo, které se prohledává při generování formátů. Má to ale 4 úskalí:

1. V návodu P. Tesaříka je nutno některé soubory nahradit a něco je
dodáváno jako změna, která se do souborů vnese programem patch. Ten je
v každém Unixu, ale ve Windows není (v OS/2 je standardně s tímto
názvem dodáván program s poněkud jinou funkcí, je to binární patch
používaný na update systému). Pro OS/2 existují GNU utility, pro
Windows je vše obsaženo v Cygwinu, ale obávám se, že ten, kdo nechce
instalovat Perl, nebude chtít ani instalovat Cygwin. Naštěstí se i od
P. Tesaříka dají stáhnout už patchnuté soubory.

2. Současné distribuce používají TDS, ale kořen stromu je jinde a v
konfiguraci lze leccos změnit, např. z příchodem XeTeXu se struktura
místy zjemnila. Aby člověk věděl, kam má soubory umístit, musí si
přečíst specifikaci TDS a podívat se do svého konfiguračního souboru.

3. Vzory dělení nejsou součástí babelu, ale instalují se z jiných
balíčků. Při instalaci TeXu si uživatel vybere jazyky a vše se
nainstaluje. Soubor language.dat získaný od P. Tesaříka však obvykle
obsahuje jazyky, k nimž uživatel nemá vzory dělení (protože je
nepotřebuje), což způsobí chyby při generování formátu.

4. P. Tesařík dělal nové moduly v době, kdy ještě nebyl v distribucích
XeTeX, takže není pamatováno na rozchozeni v XeLaTeXu a dokonce postup
z jeho návodu v TL2007 havaruje. Totéž se může stát v novém MikTeXu, v
němž už je též XeTeX.

Řešení:
1. Ve vlastním babelu nedochází k tak závažným změnám, spíše se mění
*.dtx pro některé jazyky. Není tedy problém, když vygeneruji *.ldf a
*.sty pro češtinu a slovenštinu ze své verze babelu.

2. Na umístění souborů se lze v TL a v teTeXu zeptat programem
kpsewhich, v MikTeXu programem findtexmf, v ostatních distribucích se
to musí odhadnout z kožene stromu TEXMF, který musí uživatel znát.

3. Nedodává se hotový language.dat, ale upraví se stávající. V
podstatě se udělá jeho modifikovaná kopie, která se vkládá do
adresáře, kam smí zapisovat obyčejný uživatel a který se prohledává
dříve (alespoň v TL je to tak uděláno, MikteXová implementace TDS je
chudší a konfigurace se dá upravovat jen klikacím nástrojem MikTeX
Options).

4. Proti návodu P. Tesaříka je udělána drobná úprava.

Člověk si to tedy stále může udělat ručně, ale návod ke knihovně
KPATHSEA je dlouhý, návod k programu findtexmf je na www.miktex.org,
ale také si člověk musí dost nastudovat. A stejně musí znát TDS, aby
věděl, na co se má pomocí těchto programů zeptat. Specifikace TDS je
taky dlouhá, ale člověk ji nemusí znát celou. Musí však vědět, kterou
část má znát. Začátečník to nejspíš neví.

Když jsem přemýšlel, jak to udělat automaticky, dospěl jsem k závěru,
že nejvhodnější je Perl, a to z těchto důvodů:

a) je ve všech unixech i v Mac OS, texisté v OS/2 jej musí mít také,
dodává se v TL pro Windows

b) ActivePerl pro Windows se dá nainstalovat snadno

c) bash je sice v Linuxu a texisté v OS/2 jej mají také, ale pro
Windows je pravděpodobně jen v Cygwinu, jehož instalace je obtížnější
než instalace perlu

d) pro Windows by jako vhodný skriptovací jazyk byl nejspíš Visual
Basic, ale neznám klon tohoto jazyka pro unixy, OS/2 ani Mac, takže by
se stejně musely dělat 2 skripty.

e) pro úpravu language.dat je užitečný awk, ale pro uživatele Windows
by to znamenalo instalaci dalšího GNU nástroje. Naštěstí to lze snadno
naprogramovat v perlu

Není tedy pravda, že v případě babelu není dokumentováno, co kam
patří. Pokud si to člověk chce instalovat ručně nakopírováním do
adresářů, najde dokumentaci buď ve své TeXové distribuci, nebo na
CTAN. A pokud by někdo chtěl napsat instalační skript modulů P.
Tesaříka specificky pro Windows, aby se to obešlo bez Perlu, nikdo mu
v tom nebrání. Já ovšem Visual Basic ani jiné microsoftí speciality
neznám a jako neuživatel Windows se je nebudu učit.

> Bohužel, tvůrci software jsou toho názoru, že nebudou uživatele obtěžovat
> informacemi o tom, jak jejich produkt spolupracuje se systémem, a nebudou
> jej zdržovat popisem toho, kam co nakopírovat a jak přizpůsobit systém.
> Místo toho udělají tzv. "instalační program", který často spustí grafickou
> šaškárnu a neprozradí nic. Mě např. naskakují pupínky, když mám instalovat
> nějaký software a ono to chce grafické prostředí, ono to chce javu, perl a
> další obludnosti jen proto, aby to na pozadí nakonec udělalo /bin/cp
> případně /bin/tar, přičemž nikde není řečeno, jak tuto práci udělat
> manuálně. Nastávají pak problémy s právy, neb jen root může provést
> /bin/cp někam do systému, ale root např. ke svému provozu nepotřebuje
> grafiku, javu a další věci. Je pak často potřeba instalovat další věci jen
> proto, aby se dala spustit grafická šaškárna při instalaci, upgradovat
> jiný software kvůli grafické šaškárně atd. Přitom /bin/cp a /bin/tar jsou
> organickou součástí každého rozumného operačního systému.
>
Také jsem radši, když pro instalaci stačí "make install" nebo
"./install" a stačí to, co je v systému automaticky.

> Svět spěje k obecnému pohodlí za cenu obecné nevědomosti. Schopnost
> techniků vyjádřit se, jak jejich produkty fungují, je mizivá. Na to jednou
> dojedeme... Můj postesk nepatří jen ke konkrétním věcem týkajícím se TeXu,
> ale všeobecně. Když například otevřu návod k jakémukoli výrobku spotřební
> elektroniky, nestačím se divit, jak koncentrovaně se dá o výrobku mlžit.
>
> Zdravím
>
> Petr Olšák
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>


-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz


More information about the csTeX mailing list