[cstex] 26 tisic radku kodu misto jednoho \hrule

Petr Olsak petr at olsak.net
Tue May 6 19:05:55 CEST 2014


Vážení TeXisté,

chtěl bych se s Vámi podělit o jeden zážitek. Zahlídnul jsem LaTeXovou 
úpravu mé šablony CTUStyle, viz http://petr.olsak.net/ctustyle.html která 
je charakteristická tím, že obsahuje sem tam nějaký modrý obdélník. Ta 
LaTeXová úprava řešila vytvoření obdélníku zavedením a použitím makra 
tikz. To mě opravdu dostalo. Místo jediného \hrule zavádět celé tikz! 
Spočítal jsem si, že tikz pro ten obdélník potřebovalo natáhnout dohromady 
59 externích souborů s celkem 26 540 řádky.

Problém je v tom, že LaTeX zakrývá před uživateli elementární logiku TeXu 
včetně jeho základních stavebních kamenů, jakým je například \hrule. Když 
pak uživatel na internetu pátrá, jak v LaTeXu vytvořit plný obdélník, 
dostane odpověď: použij tikz. A na podobných zvrácenostech stojí skoro 
veškerý software, na kterém pracujeme. Pomalu se přestávám divit, proč 
kompilace libreoffice trvá více než hodinu, zatímco docela komplikovaný 
program, kterému jsem vtělil složitou logiku, zvládne kompilátor přeložit 
zhruba za sekundu. S tímto extrémním plýtváním se setkáváme v případě 
softwaru na každém kroku.

Přitom v případě LaTeXu by stačilo málo: nezakrývat elementární stavební 
kameny, ze kterých je to poskládané. Když by pak uživatel položil dotaz na 
internetu, jak udělat plný obdélník, dostal by správnou odpověď: \hrule.

I to je důvod, proč nabízím k použití OPmac. Například zmíněná šablona 
CTUStyle načítá tři soubory (ctustyle.tex, opmac.tex a ams-math.tex) s 
celkem 3 tisíci řádky. Na druhé straně obdobná LaTeXová šablona načítá 80 
tisíc řádků kódu v 88 externích souborech a umí toho méně. Když k tomu 
přidá uživatel například tikz na vytvoření jednoho \hrule, potřebuje 
šablona nakonec více než 100 tisíc řádků kódu a 147 souborů, než začne 
vůbec pracovat. Takto by se, dle mého názoru, věci dělat neměly.

Zdravím

Petr Olšák


More information about the csTeX mailing list