Srovnani

Stepan Kasal KASAL at ksvi.mff.cuni.cz
Thu Oct 26 22:19:26 CET 1995


Dobry den,
> Chtel bych se proto zeptat nekoho, kdo ma vetsi zkusenosti jak
> s TeXem, tak s nejakym 'WYSIWYG', co je lepsi.
pokusim se o srovnani -- trochu jinym smerem, nez pan Studeny.

Je to hrozne dlouhe, tak si na to prosim udelejte chvilku casu.
Nejste-li vedeckeho zalozeni, tak to radeji zahodte, normalni lide
by se tim mozna prokousavali jen tezko.
    Na druhou stranu si domyslive troufam tvrdit, ze tento clanek
muze byt zajimavym i pro lidi, kteri jiz TeX znaji.

> Vzhledem k zamereni konference predpokladam hlavne chvalu TeXu :-)

Musim priznat, ze jsem nikdy s wysiwygovym editorem nic nesazel,
ale snad tusim, jake jsou asi moznosti tohoto tybu software.

Ale TeX znam dobre, takze pokud budu uprimny, tak Vam mohu prozradit i
negativni zkusenosti, jake s nim mam.        ;-)

> ale vazne: kdy ma smysl pouzit TeX a kdy treba AmiPro nebo Word

Strucne receno:
 - TeX neni se stavajicimi nadstavbami vhodny pro sazeni novin, jako
   jsou treba Lidovky.
 + Je vhodny na napsani diplomky nebo vedeckych clanku/knih, kde se
   sice obtekaji obrazky, ale preci jen je v textu mene obtekanych
   obrazku nez odstavcu.  (Uz slysim, jak rikate, ze TeX je na tom
   spatne s importovanim obrazku. Nebudu se poustet do diskuse, ale
   reknu aspon, ze slusne vektorove obrazky (encapsulated PostScript
   -- epsf, jestli se nemylim, tak i barevne epsf) importovat umi.
   A dodam, ze to neni otazka TeXu, ale spise okolnich podpurnych
   programku.  TeX jenom vynecha bile misto, protoze tam nejsou zadna
   pismenka, a poznaci, ze "tady bude obrazek".
 + Je vhodny pro sazeni beletrie, tj. hladkeho textu v jednom,
   pripadne vice sloupcich, ale delka radky nejsou nesmyslne kratke
   (jako jsou v novinach).  Prave u beletrie je soucasti estetickeho
   dojmu rovnomerna "s~edost" stranky, viz asi o 50 radek dale. TeX
   umi nejen "zakazat" vdovy a sirotky (parchanty), ale umi je i
   "znevyhodnovat" pomoci tzv. penalt (ty se vsak nemohou projevit
   pri pevnem radkovem rejstriku, kdy je zlom stranky predem dan).
   Podobne se muze starat o slova rozdelena mezi dvema strankami
   (resp. lichou a sudou).
 - U komplikovaneho textu, kde je mnoho vzorcu a obrazku pres celou
   sirku stranky, je obtizne udrzet tzv. radkovy rejstrik.  Nastesti
   se prave u tohoto tybu textu vetsinou nevyzaduje.
 - TeX neumi osetrit tzv. reky.  Ale znate nekdo software, ktery to
   umi?  Reky musi odhalit oko (mirne) zkuseneho sazece, a ja jsem
   s takovymto stavem momentalne spokojen.
 - Je mirny zmatek se sazenim tabulek -- existuje mnoho maker, ktera
   jsou chytra, ale tezko se v te dzungli hleda to, co clovek
   potrebuje.
 + Na druhou stranu jsem se snazil ve Wordu 6.0 zmenit sirky sloupcu
   tabulky, ktera byla dlouha pres dve stranky a bylo to dost tezke,
   porad se to cele rozpadavalo,... Navic byla odezva tak pomala, ze
   WYS (after 10-30 seconds) IWYG :-(  A 486 se 16MBRAM snad neni tak
   hrozny stroj.  (Nebo tehdy jeste mel dokonce 20MB RAM?)

Podrobnejsi popis charakteru TeXu:

TeX byl navrzen Donaldem Knuthem, ktery je (byl?) profesorem "computer
science" na Stanford University.  To znamena, ze se nesmiril
s hloupymi resenimi.  Z toho plynou dve vlastnosti TeXu: Jsou mnohe
veci, ktere TeX neumi, nebot na ne Prof. Knuth pri navrhovani
nemyslel (jako treba ty noviny), ale (1) veci, ktere se TeX pokousi
resit, resi spravne. (2) Jsou situace, kdy Vam TeX odpovi "to nejde",
misto toho, aby to udelal spatne. (To je seriozni vedecky pristup.)
Treti vlstnosti TeXu (3) je to, ze umi perfektne sazet matematicke
vzorce.

Tyto tri body bych rad ilustroval na prikladech.  Vezmu to odzadu:
priklad k bodu (3) je na konci v dodatcich, ted nebudu zdrzovat.

(2) -- obcas vidite v novinach (bohuzel i v knihach) takovouhle radku
    blabla                 bla                       blabla,
s obrovskymi mezerami.  To by TeX neudelal, on by rekl, ze dany
odstavec neumi vysadit.  (V konkretnim odstavci to mohu TeXu povolit,
ale vim, ze delam kompromis, protoze uz nemam jinou moznost.  Ta jina
moznost je treba zmenit formulaci nebo zmenit cleneni na odstavce.)
To ani nemluvim o pripadu, kdy je na radku jedno
             s    l    o    v    i    c    k    o,
protoze "to tak vyslo".  Mezera mezi pismeny se menit proste nesmi.
    Komercni wysiwyg programy maji tendenci vytvaret "virtualni
blaho", tj. nezatezovat uzivatele s tim, ze existuji problemy a
radeji je vyresit po svem, byt zcela spatne.

    Hned vsak uvidime, ze TeX se do takovychto neresitelnych situaci
dostava mene casto, nez vetsina sazecich programu.

bod (1):  Je holy nesmysl lamat odstavec do radek tak, ze nejprve
vytvorim prvni radek, pak druhy, atd...  Je totiz mozne, ze tim,
jakou ze dvou stejne dobrych variant zvolim v jednom radku, ovlivnim
to, zda nasledujici radek vubec pujde nejak rozumne vysadit.  Proto
je spravny postup hledat optimalni rozdeleni na radky pro cely
odstavec, ne postupovat "po radkach".  Pokud vim, tak se tato
jednoducha myslenka mezi komercnimi systemy vyskytuje stale jen
zridka.  Tim se TeX jednak vyhyba neresitelnym situacim a jednak
vybira z mnoha "jaks-taks korektnich" situaci tu nejhezci.  Vysledek
je, ze stranka pusobi homogenne, rovnomerne (typografove tusim mluvi
o terminu sedost).  TeX dokonce bere v uvahu i takove veci, ze by
nemel vysadit bezprostredne po sobe dve radky, kde v jedne jsou
mezery mezi pismeny hodne stazene a v druhe hodne velke ("rozpalene").
    Dalsi vec jsou tzv. ligatury, slitky (napr. "dvojpismeno" fi
vypada tak, ze horni ocasek pismene f je protazen az k tecce.  V
jakesi knize jsem se docetl, ze s nastupem pocitacove typografie
slitky vymizely.  Nevim jake programy za to mohou, ale TeX je umi,
protoze v tradicni "horke" sazbe by byl sazec vyhozen, kdyby na ne
kaslal.
    Pozoruhodny je i TeXovsky algoritmus na deleni slov, viz nize.

> a jake je vlastne rozsireni TeXu na svete?

Je rozsiren predevsim v akademickem svete.  Je ale tezke naucit
sekretarku nebo managera pouzivat TeX.  Takovi lide by totiz museli
byt pouhymi uzivateli a potrebovali by nekoho, kdo by jim delal
"carodeje" ("wizard").  PC (osobni pocitace) jsou zalozeny na ideji,
ze pocitace mohou existovat bez toho, aby byl v dosahu nekdo, kdo
tomu opravdu rozumi (tzv. systemak).  Podobne wysiwyg systemy jsou
zalozeny na tom, ze clovek nemusi rozumet typografii, aby mohl vysadit

Ale vetsina matematickych clanku je dnes psana v TeXu, troufam si
tvrdit.  Mnohe matematicke publikace (American Mathematical Society,
tusim Addison-Wesley, nebo jak se to pise, CMUC (tj. Matematicke
vydobytky Univ. Karlovy), Pokroky cs. matem., fyz. a chemie) se
sazeji v TeXu.

Z vyse uvedeneho je myslim jasne, proc se na TeX orientuje prave tato
cast spolecnosti. reknu to jeste jinymi slovy:

Predstavme si, ze mame vytvorit soubor, ktery obsahuje cisla od jedne
do 120.  Jeden by to napsal rucne, druhy si napise kratky program.
Nevylucuji, ze ten prvni bude driv hotov, je to dokonce temer jiste.
Jsou tu vsak dve ale:
1) pokud se zjisti, ze to mela byt suda cisla do 240, bude pak ten
   druhy urcite hotov rychleji.
2) Pokud by ten druhy clovek mel vypisovat cisla rucne, byla by to
   pro nej prace mene zajimava a tedy vice vysilujici.
Nemusim snad dodavat, ze prave lide druheho typu jaou zrali pro TeX.
Radeji si dlouho zajimave hraji s programovanim maker, nez by vsechno
delali "konkretne", "na miste", "ad hoc", proste tahali mysi.
Oni (my) radeji programuji, nez otrocky pracuji.

Utesovat se jen tim, ze treba budu tu knihu sazet jeste jednou,
tentokrate do jineho zrcadla, je pofiderni.  Pravy duvod je v tom,
ze druhy zpusob prace neotupuje lidske mysleni.  Coz ovsem zpetne
ovlivnuje kvalitu vysledku prace takoveho cloveka s otupenym myslenim.

Viz tez uvaha o abstrakci v dodatcich.

> Zacal jsem se o TeX zajimat, kdyz mi ho do nebe vychvalil jeden
> spoluzak, co v nem psal diplomku. Ja jsem to psal v AmiPro a rekl
> bych, ze rozdil ve vysledku nestal za rec (ja jsem mel hezci obrazky
> :-) ).

Rozdil ve vysledku zavisi predevsim na cloveku, zadny system nemuze
udelat to, co zkazim vlastni hlouposti.  Muze mi pouze nehazet klacky
pod nohy (priklad viz nize).

> Dekuji za kazdou odpoved

Bylo mi potesenim i cti,
zatim se loucim, ale pro zvlast dychtive nasleduji jeste dodatky,
ktere jsem vam v prubehu textu nasliboval.
                                                     Stepan Kasal

DODATKY

[A] ....................................... O matematickych vzorcich
(3) -- zde se projevuje sila toho, cemu se rika "markup language",
to jest psani pokynu do textoveho souboru misto wysiwyg-systemu.
Kazdy matematik se nauci psat $ \frac{1}{\sin x} $, aby dostal
      1
    -----
    sin x
bojim se vsak, ze kazdy wysiwyg system by nechaval prilis mnoho
prostoru pro zapomenute mezery, ktere posunou cosi nekam jinam.
A prumerny matematik by tu mezeru prehledl.  Kdezto zapsat vyraz
v nejake podivne notaci, to matematik pochopi.
    Veskere mezerovani ve vyrazech si TeX dela podle svych pravidel,
ktera jsou opravdu dobra, napr. $a_i$ (tj. a s indexem i) vypada
jinak samo o sobe, nez ve vyrazu $\frac{a_i}{\sin x}$ (to je zlomek,
viz vyse) -- to a_i nad zlomkovou carou ma ten index nepatrne vyse,
nez kdyby stalo samostatne.

[B] .................................................. O deleni slov
TeX v sobe nema zabudovany slovnik (na to by pocitace v dobe jeho
vzniku ani nemely pamet, resp. cas), ale ma v sobe zabudovany vzorky
(vetsina ma delku 2-5 pismen), ktere mu umoznuji uhodnout, jak slovo
rozdelit, i bez slovniku.  To ma tu vyhodu, ze TeX uhodne, jak delit
slovo, i kdyz si ho prave vymyslim.  Priklad: porucim TeXu
  \showhyphens{zblabune}    % s diakritikou -- "z~blabune~"
  \showhyphens{slapadelko}  % "s~lapade'lko"
  \showhyphens{Gandalf}
  \showhyphens{holeneklan}  % bez diakritickych znamenek
a dozvim se, ze by delil sla-padelko, Gan-dalf (jedina moznost, jinde
by TeX nedelil), zbyla dve slova by nedelil vubec.  Coz mi nepripada
zas moc spatne.  A to jsem si ta slova ted vymyslel a rovnou sjel,
neprovadel jsem "ladeni dat".  (Slovo gandalf uz existuje, ale ze by
bylo pouzito pri generovani vzorku pro ceske deleni, o tom pochybuji.

[C] ....................................... O hazeni klacku pod nohy
Pokud nektere systemy nemaji tvrde (nedelitelne) mezery, tak je velice
tezke uhlidat vsechny neslabicne predlozky (napsat "v
lese" je chyba nejen typograficka, ale dokonce gramaticka; v TeXu
napisi "v~lese" a mam jistotu, ze se vysadi misto ~ mezera, ale
ze se v ni nerozdeli radek).  Pokud ovsem ten system sazi tvrdou
mezeru mensi nez ostatni (protoze ji treba neumi roztahnout, pokud je
nutno radek rozpalit), jsou tvrde mezery nepouzitelne a je to jako by
nebyly.

Anebo -- videli jste nekdy v novinach rozdelene slovo, i kdyz obe
casti byly v jedne radce.  Tezko rozhodnout, zda je to vina sazeciho
programu, nebo osoby, ktera jej obsluhuje -- ale jedno z toho by se
melo vymenit. (Mozna opet jeden dokaz, proc zalezi hlavne na cloveku.)

[D] .................................................... O abstrakci
Pokud pouzivam vhodnym zpusobem makrojazyk TeXu, je TeXt prolozen
pouze "logickymi" formatovacimi prikazy, ktere pouze urcuji charakter
te ktere casti textu (veta, dukaz, poznamka pod carou).  Konkretni
chovani techto entit se urcuje v jakemsi "programu" a lze je tudiz
zmenit najednou pro vsechny entity stejneho typu.
    Ovsem fakt, ze je TeX koncipovan jako makrojazyk souvisi s tim,
ze i kdekoliv uvnitr textu mohu pouzivat primitivni formatovaci
prikazy, jako posun doprava, vynechani mista mezi radky ci vynechani
cele stranky.  Ale mohu take "presazovat" veci, aby se tiskly pres
sebe, atd.
    To vypada "neciste", jako "zaplatovani ad hoc", ale konec koncu
preci jen sazime jednu knihu, neni to tak docela obecne programovani.
Totiz:
    Setkal jsem se s markup jazykem (BookMaster firmy IBM), ktery
pouzival dusledne pouze logicke znackovani a cely mnohakilovy manual
cloveka nenaucil napsat makro, ani jak vydat explicitni formatovaci
prikaz -- leda snad napsat si vlastni knihovnu maker podle jine
mnohakilove knihy :-(.  To vedlo jednak k tomu, ze autori manualu
znasilnovali prikazy, ktere meli k dispozici, aby si nahradili
prikazy nizke urovne, a jednak k tomu, ze stale kopirovali urcite
slozite useky textu (tzv. "get files"), aby do nich vyplnovali udaje
jako do formularu, protoze nemeli makra.  Netreba dodavat, ze co "get
file", to nekolik drsne znasilnenych prikazu...
    Phil Taylor rekl na sve nedavne prednasce v Brne, ze se ptal
Knutha, jestli kdyby psal TeX ted, jestli by ho zase udelal jako
makrojazyk, jestli by treba nepouzil nejaky funkcionalni jazyk, resp.
nejaky klon LISPu.  Knuth rekl, ze by to udelal stejne.  Kazdopadne
si myslim, ze fakt, ze se definice maker a text mohou michat, ma cosi
do sebe, alespon ve svetle zkusenosti popsane v tomto dodatku.

             UFF, to uz je pro dnesek opravdu vsechno.

Pokud jste to cele procetli (bez preskakovani), tak gratuluji.

     Ale ted uz dobrou noc   ..................   Stepan




More information about the csTeX mailing list