[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