
\hsize=30pc                       % 30 pica
\vsize=46pc                       % 46 ��dk� po 12pt (zhruba)
\raggedbottom                     % Vynechat dole na str�nce p��p. m�sto

\chyph

%% Parametry sazby %%
\emergencystretch=2em                   % Dodate�n� rozta�itelnost
\parindent=14pt                         % Odstavcov� zar�ka
\widowpenalty=10000 \clubpenalty=10000  % Absolutn� z�kaz vdov a sirotk�
\lineskip=0pt                           % Velk� boxy se budou dot�kat
\bigskipamount=12pt \medskipamount=6pt  % Nevkl�dat deformovateln� v�pl�ky
\smallskipamount=3pt

\def\,{\thinspace}  \def\.{\kern.1em }
\def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $}
\let\smallA=\sevenrm
\def\La{L\kern-.36em\raise.5ex\hbox{\smallA A}\kern-.12em}
\def\LaTeX{\La\TeX}
\def\twoe{$2_{\textstyle\varepsilon}$}

% uvozovky
\def\clqq{\char254 }
\def\crqq{{\edef\iSF{\spacefactor\the\spacefactor}\char255 \iSF\relax}}
\def\uv{\bgroup\aftergroup\closequotes\leavevmode\clqq\let\next=}
\def\closequotes{\unskip\crqq\relax}

\def\begitems{\medskip\bgroup\catcode`\*=13 \narrower}
\def\enditems{\par\egroup\medskip}
{\catcode`\*=13 \gdef*{\par\noindent\llap{$\bullet$\ }\ignorespaces}}

\catcode`\"=13
\def"{\hbox\bgroup\let"=\egroup\setverb\tt}
\def\setverb{\def\do##1{\catcode`##1=12}\dospecials\obeyspaces}
\def\begtt{\medskip\bgroup
   \setverb
   \catcode`\"=12\catcode`\~=13 \obeylines
   \startverb}
{\catcode`\|=0 \catcode`\\=12
  |gdef|startverb#1\endtt{|tt#1|egroup|medskip}}

\catcode`\<=13 \def<#1>{$\langle\hbox{\it#1\/}\rangle$}

\def\sub #1\par{\bigskip\hbox{}\nobreak\vskip-\medskipamount
   \hbox{\let\smallA=\sevenbf \bf #1}\nobreak\medskip}
\let\titul=\sub


\titul Pro� nerad pou��v�m \LaTeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

V~tomto �l�ne�ku bych cht�l uv�st n�kolik v�c�, kter� se mi na koncepci
\LaTeX{}u nel�b� a vysv�tlit, pro� jsem z�stal u~plainu. Nechci t�mto
�l�nkem vyvol�vat nepokoje v~�ad�ch \CS{}TUGu. V��m si samoz�ejm� lid�,
kte�� perfektn� rozum�j� \LaTeX{}u a tento �l�nek nechce nijak zneva�ovat
jejich pr�ci.

\LaTeX{} je nadstavba postaven� nad form�tovac�m programem \TeX. Podle m�ho
n�zoru hlavn� c�le \LaTeX{}u jsou n�sleduj�c�:

\begitems
* Odst�nit pom�rn� slo�itou problematiku \TeX{}u od koncov�ho u�ivatele.
* Vytvo�it vlastn� jazyk vstupn�ch text�.
* Umo�nit form�tovat jednoduch� dokumenty podle p�edzpracovan�ch styl�.
* Umo�nit snadnou v�m�nu dokument� a jejich nov� p�eform�tov�n�.
\enditems

T�chto c�l� bylo dosa�eno jen ��ste�n�. Pokus�m se dok�zat, �e �pln�
dosa�en� stanoven�ch c�l� nen� mo�n� z~principi�ln�ch d�vod� a �e brzdou
v~t�to v�ci je, p�ekvapiv�, samotn� \TeX.


\sub Nedostate�nost jazyka \TeX{}u

\TeX{} nebyl stvo�en se z�m�rem, aby se nad n�m d�laly univerz�ln�
nadstavby na �rovni jeho jazyka maker. Rozhodn� nelze tyto nadstavby
prezentovat ve�ejnosti jako uzav�en� syst�my. Na to nen� programovac�
jazyk \TeX{}u stav�n�. Proto nech�pu, pro� se o~to auto�i r�zn�ch
vylep�en� \LaTeX{}u neust�le sna��.

M��ete argumentovat, �e v�dy mus� existovat hranice, pod n�� nemus�m
zkoumat, jak syst�m funguje, m�m-li si zachovat du�evn� zdrav�. Nap��klad
p�i jak�koli �innosti s~po��ta�em pot�ebujeme ur�itou m�ru abstrakce.
Programujeme-li t�eba datab�zovou aplikaci, zaj�maj� n�s element�rn�
n�stroje v�vojov�ho prost�ed� a nezab�v�me se t�m, jak putuj� elektrony po
polovodi��ch centr�ln�ho procesoru.

Pro tento zp�sob odst�n�n� probl�mu byla na ka�d�m stupni abstrakce
vytvo�ena v~po��ta�ov�ch v�d�ch dobr� koncepce, kter� odst�n�n�
umo�n�. Mus�me si ale p�iznat, �e \TeX{} takovou dobrou koncepci nenab�z�.
Nelze pomoc� jeho makrojazyka vytvo�it novou �rove� pr�ce, p�i
kter� nen� pot�eba vracet se k~vestav�n�m vlastnostem \TeX{}u.
Z~toho pramen� v�t�ina probl�m� \LaTeX{}u (jak uvid�me jednotliv� d�le).
Z�kladn� chybou \LaTeX{}u tedy je, �e si stanovil c�le, pro kter� nebyly
vytvo�eny podm�nky v~\TeX{}u samotn�m.

Uvedeme p��klad. V~b�n�ch programovac�ch jazyc�ch m��e program�tor
element�rn�mi prost�edky o�et�it v�echny neo�ek�van� situace programu.
V�ichni v�me, �e dobr� program by m�l m�t o�et�eny v�echny alternativy
vstupu a pova�ujeme za ostudu, kdy� program havaruje se syst�movou chybou.
Makrojazyk \TeX{}u ale nem� pot�ebn� n�stroje na o�et�en� v�ech z�vad na
�rovni \uv{\LaTeX{} error} (srovnej: chyba o�et�en� programem). Chyba �asto
vyjde najevo a� po �innosti vnit�n�ch algoritm� \TeX{}u a projev� se jako
\uv{\TeX{} error} (srovnej: syst�mov� chyba programu).

Pokud by se autor makra sna�il v�e o�et�it na �rovni sv�ho makra, byl by
vznikl� k�d z~90\,\% o~tom, jak o�et�it u�ivatelsk� v�st�elky a ve zbyl�ch
10\,\% o~vlastn� sazb�. To je mysl�m zbyte�n� investice jednak lidsk�ho
potenci�lu (m�m na mysli lidi, kte�� takov� makra d�laj� a jin�, kte��
jejich v�tvory musej� ��st) a jednak strojov�ho potenci�lu (m�m na mysli
strojov� �as a pam� po��ta��).


\sub Snaha \LaTeX{}u o~odst�n�n� slo�itosti \TeX{}u

Jedn�m z~c�l� \LaTeX{}u bylo umo�nit nepou�en�mu u�ivateli pou��vat \TeX{},
ani� by musel pronikat do slo�itost� tohoto programu. Nakonec ale sami
\LaTeX{}ov� odborn�ci p�izn�vaj�, �e bez \TeX{}booku to prost� nejde. Tak�e
snaha o~odst�n�n� problematiky \TeX{}u je vlastn� zbyte�n�.

P�edstavte si, �e si n�jak� u�ivatel p�e�te \LaTeX{}ovou p��ru�ku a
nabyde dojmu, �e mu bude sta�it rozum�t problematice sazby na �rovni t�to
p��ru�ky. Pak se jednou p�eklepne t�eba p�i sestavov�n� tabulky a na
termin�lu na n�j \TeX{} k�i��: {\tt Extra alignment tab has been
changed to "\cr"}. U�ivatel za�ne znovu listovat ve sv� p��ru�ce a zjist�,
�e tam o~��dn�m "\cr" nen� jedin� zm�nka. M� pak t�i mo�nosti: (1)~Zm��kne
Enter a podobn� se zachov� i u~dal��ch chyb. Pomysl� si, �e ten \LaTeX{} je
n�co tajemn�ho a mystick�ho. (2)~Propadne zoufalstv� a jde od toho. Dojde
k~z�v�ru, �e je lep�� z�stat u~Wordu. V�dy� sta�� vz�t tabulku v~Excelu a
jednodu�e ji p�em�stit do Wordu a jak�pak smolen� se s~n�jak�m podez�el�m
"\cr". (3)~Po��d� si \TeX{}book a po intenzivn�m studiu nakonec
�ekne: \uv{aha}. V~tuto chv�li ale u� nepot�ebuje, aby mu \LaTeX{} zakr�val
slo�itost \TeX{}u.

Nebudu podrobn� popisovat zoufal� v�raz v~o��ch ka�d�ho za��naj�c�ho
u�ivatele \LaTeX{}u, kdy� po pou�it� "\vspace" tak, �e nad zna�kou ani pod
n� nen� pr�zdn� ��dek, dostane ne�ekan� v�sledek. Ve sv� p��ru�ce nem�
��dnou zm�nku o~tom, co to je "\vadjust", tak�e mu p�ipad� chov�n�
"\vspace" jako tajupln�. Podobn� zoufale se u�ivatel� d�vaj� na obrazovku
sv�ho po��ta�e, pokud jim uplavou plovouc� objekty (tabulky a obr�zky)
�pln� jinam, ne� p�edpokl�dali. P�itom oni cht�li jen pou��t zna�ku
"\caption" a to je p�inutilo definovat objekt v~prost�ed�, v~n�m� m��e
uplavat na jinou str�nku.


\sub Utajen� skute�nost�

Utajen� n�kter�ch d�le�it�ch vlastnost� \TeX{}u v~\LaTeX{}ov�ch p��ru�k�ch
v~nejv�t�� m��e souvis� s~p�edchoz�m bodem o~snaze odst�nit slo�itost.
Ov�em n�kter� chyb�j�c� informace jsou t�ko od�vodniteln�. Za v�echny
uvedu jen dva p��klady.

\LaTeX{}ov� u�ivatel se nikde nedo�te o~makru
"\choose", kter� je element�rn� zkratkou pou�it� primitivu
"\atopwithdelims" a vytv��� binomick� koeficienty. M��eme sice v~\LaTeX{}u
napsat

\begtt
\left(\begin{array}{c} n\\ k\end{array}\right)
\endtt

\noindent
ale lid� aspo� s~nepatrnou m�rou vkusu tu��, �e to je
podivn� sn��ka \TeX{}ov�ch primitiv� ("\left", "\right")
kombinovan� s~\LaTeX{}ov�m monstrem "array".

Druh�m p��kladem je chyb�j�c� zm�nka o~primitivu "\eqno" a "\leqno" pro
zna�kov�n� rovnic. Skute�n�, v~cel�m \La{}mportovi to nenajdete a v~jin�ch
p��ru�k�ch taky ne. Auto�i t�chto p��ru�ek z�ejm� �ili v~dom�n�, �e jejich
�ten��i si za v�ech okolnost� vysta�� s~automatick�m zna�kov�n�m rovnic,
kter� jim poskytuje \LaTeX. Ov�em chyba l�vky. Z��astnil jsem se jednoho
\LaTeX{}ov�ho kurzu, kde �e�ili probl�m, jak dostat na okraj rovnice
konkr�tn� zna�ku, nep�id�lenou ��dn�m automatem. Nap��klad zna�ku (P).
�e�en� tohoto �kolu bylo impozantn�. Nejprve se vys�zela rovnice, pak se
pomoc� z�porn�ho "\vspace" vycouvalo zp�t na �rove� rovnice, d�le se
pou�ilo "\begin{flushright}", napsala se zna�ka a kone�n� se to uzav�elo
pomoc�  "\end{flushright}". To asi nepot�ebuje dal��ho koment��e.


\sub Nerozli�ov�n� mezi \LaTeX{}em a \TeX{}em

Skoro v~��dn� \LaTeX{}ov� p��ru�ce se nedozv�me p�esnou souvislost mezi
\LaTeX{}em a \TeX{}em. Ob�as v~n�kter� najdeme mlhav� p�irovn�n� 
rozeb�raj�c� vztah z�vodn�ho vozu s~pohodln�m rodinn�m kor�bem, ale
vylo�en� technick�ch souvislost� pova�uj� asi auto�i p��ru�ek za
slo�it�.

Z~uveden�ch d�vod� se v~\LaTeX{}ov�ch p��ru�k�ch nerozli�uje mezi
vlastnostmi \TeX{}u a \LaTeX{}u. Pro jednoduchost se v�ude mluv�
o~\LaTeX{}u. Nap��klad \LaTeX{} form�tuje odstavce, \LaTeX{} rozd�l� text
na v�ce str�nek. V�me, �e to nen� pravda. Kdy� pak n�kte�� \LaTeX{}ov�
u�ivatel� p�ijdou na to, �e krom� \LaTeX{}u existuje je�t� n�jak� podivn�
\TeX, jsou obvykle zmateni. Sv� zmaten� d�vaj� �asto najevo novotvarem
(\La)\TeX.


\sub Vlastn� jazyk vstupn�ch text�

\LaTeX{} se pokusil definovat vlastn� jazyk pro zna�kov�n� vstupn�ch text�.
Snaha byla, aby zna�ky podl�haly pokud mo�no jednotn�m princip�m a byly pro
u�ivatele pochopiteln�. Jazyk m� tak� pomoci u�ivateli vyhnout se r�zn�m
syntaktick�m �skal�m jazyka \TeX{}u.

Srovnejme zp�soby z�pisu, kter� zhruba(!!) znamenaj� tot�:

$$\vbox{
\let\par=\cr \obeylines \halign{#\hfil\qquad &#\hfil
\qquad\TeX    &  \qquad\LaTeX{}
"\hsize=30pc" &  "\setlength{\textwidth}{30pc}"
"\vskip1cm"   &  "\vspace{1cm}"
"{a\over b}"  &  "\frac{a}{b}"
"\hbox{abc}"  &  "\mbox{abc}"
"\vbox{...}"  &  "\minipage{...}" nebo "\parbox{...}"
}}$$

Bohu�el (nebo bohud�k?), v~\LaTeX{}u je mo�no ps�t i n�kter� p��m�
\TeX{}ov� konstrukce. To je dal�� ned�slednost v~odst�n�n� problematiky
\TeX{}u p�ed \LaTeX{}ov�m u�ivatelem. Jakmile to \LaTeX{}ov� u�ivatel
zjist�, za�ne v�t�inou m�chat oba dva zp�soby z�pisu: \TeX{}ov� i
\LaTeX{}ov�. To dokazuje, �e snaha o~vytvo�en� lep��ho, p�ehledn�j��ho, a
p�itom stejn� mocn�ho jazyka, se zcela nepovedla.

\TeX{} n�m nap��klad hl�s� "Overfull \hbox" a \LaTeX{} jako makro nem�
prost�edky toto hl�en� zm�nit na "Overfull \mbox". Z�znam o sazb� je tedy
\LaTeX{}ov�mu u�ivateli p�edkl�d�n pomoc� \TeX{}ov�ho a nikoli
\LaTeX{}ov�ho slovn�ku. Pova�uji to za maten� neboh�ch u�ivatel�.


\sub Strukturovan� zna�kov�n�

Pod t�mto pojmem rozum�m zna�ky, kter�
�len� dokument do struktury (nap��klad kapitola, cit�t, pozn�mka) a
nezab�vaj� se typografi� dokumentu (zda pou��t "\medskip" nebo "\bigskip" a
jak� zav�st do sazby font).

\LaTeX{}ov� zast�nci zd�raz�uj�, �e koncepce vstupn�ho jazyka \LaTeX{}u
vede u�ivatele ke strukturovan�mu zna�kov�n�. To nen� pravda.

U�ivatele, kter� teprve za��n� pracovat s~\TeX{}em nebo s~jak�mkoli jin�m
s�zec�m syst�mem, velmi t�ko p�esv�d��me o~v�hod�ch strukturovan�ho
zna�kov�n�. Chce to dlouhodobou praxi, ne� �lov�k na v�hody tohoto zp�sobu
zna�kov�n� p�ijde. V�t�ina lid� se rozhodne po��dit prvn� dokument proto,
aby jednotliv� jeho ��sti vypadaly p�esn� tak a tak. Nasad� si tak klapky
na o�i, kter� se t�ko sund�vaj�.

M� zku�enosti s~dokumenty r�zn�ch autor� ukazuj�, �e v~pou��v�n�
strukturovan�ho zna�kov�n� nen� rozd�lu mezi u�ivateli plainu a \LaTeX{}u.
Sp�� bych �ekl, �e dlouhodob� praxe vede ke strukturovan�mu zna�kov�n� bez
z�vislosti na tom, jak�mi prost�edky je text po��zen.

Domn�v�m se tak�, �e �lov�k sn�ze dosp�je ke koncepci strukturovan�ho
zna�kov�n�, pokud m� vzhled dokumentu absolutn� pod kontrolou sv�ch
vlastn�ch maker. Pou��vat zna�ky vymezuj�c� strukturu dokumentu a nev�d�t,
co se {\it p�esn�\/} stane v~dob�, kdy m� bude zaj�mat vzhled dokumentu,
m��e b�t pro u�ivatele, kter� je zodpov�dn� i za typografii dokumentu,
frustruj�c�.

Idea strukturovan�ho zna�kov�n� se nejl�pe projev� p�i d�lb� pr�ce: p�sa�ka
a saze�. Pokud saze� chce postavit sazbu dokumentu na plainu, dohodne se
s~p�sa�kou na n�kter�ch zna�k�ch definuj�c�ch strukturu dokumentu. Jestli�e
chce p�sa�ka pr�b�n� vid�t, jak dokument vypad�, daj� se n�kter� zna�ky
narychlo nadefinovat (nap��klad "\let\zna�ka=\relax"). P�i vlastn�m
zpracov�n� dokumentu pak saze� definuje jednotliv� zna�ky podle po�adavk�
na typografii dokumentu. Vzhled knihy mu vznik� rovnou pod rukama a p�ed
o�ima.

Pokud saze� p�i n�vrhu zna�ek vych�z� z~plainu, m� p�sa�ka v�t�inou
podstatn� m�n� pr�ce. Saze� toti� m��e s~v�hodou vyu��t mocn� n�stroj
v~podob� separ�tor� parametr� v~makrech \TeX{}u, kter� nen� v~\LaTeX{}u pro
pot�eby u�ivatele vyu�it. Ve smluven�ch zna�k�ch je pak daleko ni��� v�skyt
ku�erav�ch z�vorek a dal��ch droblinek, kter� nejsou zcela pot�eba.
Nap��klad pro n�zev kapitoly se ti dva mohou dohodnout na:

\begtt
\kap N�zev kapitoly
<pr�zdn� ��dek>
\endtt

Je to jednak p�ehledn�j�� a jednak to vy�aduje od p�sa�ky m�n� n�mahy, ne�
kdyby postupovala podle \LaTeX{}u.


\sub Ide�ln� d�lba pr�ce

V~p�edchoz� �vaze jsme nazna�ili ide�ln� d�lbu pr�ce. Autor nebo p�sa�ka
po��d� text se zna�kami podle pokyn� saze�e. Saze�, kter� se nau�� \TeX{},
pak s�m dopln� makra podle pokyn� typografa. Domn�v�m se, �e to byl p�vodn�
z�m�r autora programu \TeX.

\LaTeX{} se sna�� uvedenou d�lbu pr�ce obej�t. Autor pr� m��e napsat text
podle jednoduch� p��ru�ky k~\LaTeX{}u a saze�em se st�v� samotn� \LaTeX{}.
Proto�e sch�z� lidsk� faktor mezi autorem a kone�n�m vzhledem dokumentu,
trp� t�m �asto autor i dokument.

Z~jedn� strany d�v� \LaTeX{} autorovi najevo, �e typografii zvl�dne automat
s�m a dob�e (co� v�bec nen� pravda) a z~druh� strany nakonec nut� autora
z�skat znalosti, kter� by p�i lidsk� d�lb� pr�ce nebyly pro n�j pot�ebn�.
Pokud m� autor realizovat p�esn� po�adavky typografa, mus� proniknout nejen
do problematiky \TeX{}u, ale t� do problematiky slo�it�ch maker \LaTeX{}u,
ve kter�m p�vodn� sv�j dokument napsal. T�m se z~autora st�v� jak�si
polyhistor. Autor na po��tku po�izov�n� sv�ho dokumentu ur�it� netu�il, �e
na n�j budou nakonec kladeny tak vysok� po�adavky.


\sub P�edzpracovan� styly

Mezi zast�nci \LaTeX{}u se m��e roz���it klamn� vize, �e v�echny po�adavky
na sazbu, kter� kdy budou pot�ebovat, zvl�dnou v�b�rem vhodn�ho stylu.
V�bec tedy nen� pot�eba rozum�t \TeX{}u, sta�� zjistit, jak� styl pou��t,
napsat jeho n�zev do hlavi�ky a m�me vystar�no.

Cht�l bych zd�raznit, �e z�kladn� styly v~\LaTeX{}u jsou po
typografick� str�nce pom�rn� dost nevhodn�. P�edev��m jde o~volbu velikost�
nadpis� a jejich um�st�n� v~sazb�. Rovn� existence pru�n�ch
vertik�ln�ch v�pl�k� je ve v�t�in� p��pad� naprosto nep��pustn�. Zbavit se
jich je pr�ce pom�rn� zdlouhav� a ve sv�m d�sledku znamen� p�epsat si aspo�
"\output" rutinu podle vlastn� koncepce. Jestli�e to ale ud�l�me a
provedeme to dob�e, jsme na nejlep�� cest� vytvo�it si vlastn� makro,
kter� nazveme nap��klad M\raise.5ex\hbox{u}j\TeX{} nebo jinak. \LaTeX{}
jako takov� u� nepot�ebujeme.

Sv�mi z�kladn�mi styly d�l� nav�c \LaTeX{} \TeX{}u negativn� reklamu.
Dovedu si p�edstavit, �e kup��kladu n�jak� nakladatel projev� nez�vazn�
z�jem o~\TeX{} a ud�l� povrchn� pr�zkum v�ci. P�itom jako prvn� naraz� na
\LaTeX{} a prefabrikovan� dokumenty jednoho typu. M��e se st�t, �e pr�zkum
na t�to �rovni skon�� a nakladatel o~\TeX{} p�estane m�t dal�� z�jem.

Dal��m probl�mem \LaTeX{}u je sn�enlivost styl� r�zn�ch v�robc� mezi
sebou. Toto nen� mo�n� element�rn�mi prost�edky \TeX{}u nikdy uspokojiv�
vy�e�it. V�dy budou existovat detaily, ve kter�ch se mohou n�kter� styly
vz�jemn� poh�dat. P�itom v�sledn� efekt a p��padn� chybov� hl�en� je velmi
�asto dosti daleko od podstaty v�ci a n�prava se t�ko hled�. Odstran�n�
takov�ch chyb pak vy�aduje nejen perfektn� znalost \TeX{}booku, ale t�
d�kladnou znalost k�d� jednotliv�ch styl� a k�du samotn�ho \LaTeX{}u.
A~p�edev��m notnou d�vku trp�livosti. Dosp�jete postupn� k~z�v�ru, �e na
�rovni plainu byste se stejn�mi znalostmi a s~podstatn� men��m �sil�m
vytvo�ili makro, kter� ve�ker� typografick� po�adavky �e�� tak�. D�le�it�
je efektivita pr�ce. Hled�n� tajemn�ch chyb ve stylech a bloud�n� po k�dech
styl� a k�du vlastn�ho makra \LaTeX{}u mi nep�ipad� p��li� efektivn�.

V�dy budou existovat po�adavky, kter� nep�jdou vy�e�it pouze zaveden�m
dal��ho stylu do \LaTeX{}u. Pak se u�ivatel mus� rozhodnout modifikovat
styl nebo si probl�m vy�e�it s�m.


\sub Slo�itost maker \LaTeX{}u

V�t�ina styl� mus� b�t aspo� ��ste�n� schopna pracovat univerz�ln�
v~r�zn�ch podm�nk�ch. Maj� proto o�et�eno plno v�c�, kter� by autor makra
\uv{na m�ru} nikdy ned�lal. K�d takov�ch styl� se pak st�v� zbyte�n�
slo�it� a nep�ehledn�. P��kladem takov�ho nep�ehledn�ho a zbyte�n�
slo�it�ho k�du (proto�e chce b�t univerz�ln�) je samotn� j�dro \LaTeX{}u.
Nav�c, jak plyne z~nedostate�nosti makrojazyka \TeX{}u, je
po�adavek na univerz�lnost \LaTeX{}u principi�ln� t�ko dosa�iteln�.

Ve v�t�in� p��pad� slo�itost \LaTeX{}u ve sv�m dokumentu u�ivatel�
v~pln� ���i nevyu�ij�. Ur�it� plno maker \LaTeX{}u z�st�v� p�i sazb�
dokumentu v~ne�innosti. Ta makra, kter� n�co �inn�, by mohla stejnou pr�ci
vykon�vat efektivn�ji a jednodu�eji. To snese p�irovn�n� o~d�lov� kouli
proti mou�e. P�itom si ta moucha pohodln� ulet�, proto�e ne� se tam ta
d�lov� koule p�ival�, to chv�li trv�.

Zkuste se nam�tkou zeptat n�jak�ho \LaTeX{}isty, kter�mi cestami se ub�r�
napsan� \uv{{\tt �}} ve vstupn�m k�du dokumentu, ne� se dopracuje
k~v�stupn�mu p�smenu \uv{�} v~{\tt dvi}. Baz�rujte na naprosto p�esn�m popisu
expanze v�ech maker, kter� jsou p�i t�to �innosti pou�ity. V�t�ina lid� v�m
na tuto ot�zku nebude schopna d�t odpov��. Ona toti� ta odpov�� v�bec nen�
jednoduch�. Dal jsem si tu pr�ci a jeden p�lden jsem v~k�du \LaTeX{}u tuto
cestu hledal. Kdy� jsem zjistil jak�mi z�kout�mi a skulinami tato cesti�ka
vede, zhrozil jsem se a za�al jsem v�n� pochybovat, jak to m��e v�bec
stabiln� fungovat. V�c je z�visl� na velk�m mno�stv� dal��ch okolnost�,
tak�e v~��dn� chv�li nem�me absolutn� jistotu, zda \uv{{\tt �}} povede v�dy
na \uv{�}. Z�konit� to mus� zlobit p�i pou�it� primitivu "\uppercase". Proto
\LaTeX{} tento primitiv dost nep�ehledn� p�edefinov�v�. �lov�k si pak nen�
jist� v�bec ni��m.

Kdy� pou�iji v�ci, o~kter�ch v�m do posledn�ho �roubu, jak funguj�
v~\TeX{}u samotn�m, nebudu m�t nikdy jistotu, co to ud�l� v~\TeX{}u
zavirovan�m \LaTeX{}em. Tato nejistota m� od \LaTeX{}u pom�rn�
zna�n� odrazuje.

K~ve�ejn�mu pou�it� jsem nap��klad nab�dl makro na ��rov�
k�dy EAN. Ob�as mi n�jak� u�ivatel nap��e, �e to nefunguje, a p�itom to
pou�il v~\LaTeX{}u. Odpov�d�m stru�n�: \uv{Pou�ijte (cs)plain, za \LaTeX{} j�
neru��m. Pokud to n�hodou funguje v~\LaTeX{}u, pova�ujte to za z�zrak.
Stejn� si nebudete jist�, zda to za p�l roku v~tom \LaTeX{}u je�t� bude
fungovat.} Um�te si p�edstavit, jak mi povstaly vlasy hr�zou na hlav�, kdy�
mi jeden dobr�k ze zahrani�� ozn�mil, �e z~m�ho makra {\tt ean.tex}
vytvo�il odr�du {\tt ean.cls}\.!


\sub P�enositelnost dokument�

Je pot�eba odli�it dva typy p�enosu dokument�. V~prvn� �ad� se
budeme pt�t po p�enositelnosti textu dokumentu v�etn� struktury,
ale bez p�esn�ch specifikac� form�tu sazby. P��jemce pak dokument form�tuje
podle sv�ch po�adavk�. V�sledek m��e vypadat docela jinak, ne� jak
dokument vid�l na obrazovce autor. Takov� zp�sob p�enosu se pou��v�
nap��klad p�i sestavov�n� sborn�k�. V~druh�m typu p�enosu budeme cht�t
p�en�st zcela v�rn� nejen text dokumentu, ale i form�t sazby. Po�adavkem
je, aby p��jemce vid�l na obrazovce tot�, co autor.

\LaTeX{} je pom�rn� dob�e koncipov�n pro prvn� typ p�enosu. Sv�m jazykem
toti� deklaruje jednotn� zp�sob zna�kov�n� dokument�, kter� by se mohl
s~trochou nads�zky nazvat mezin�rodn�m standardem. Praxe ale ukazuje, �e
nic nen� tak r��ov�, jak se na prvn� pohled zd�. U� jste n�kdy
vytv��eli sborn�k p��sp�vk� rozli�n�ch autor�\.? Uvedu p��klad ze sv�
zku�enosti: 50\,\% p��sp�vk� p�i�lo ve Wordu �i n��em podobn�m. Po tro�e
konverzn� pr�ce je vyu�iteln� v�t�inou jen hol� text. 40\,\% p��sp�vk�
p�i�lo v~r�zn�ch verz�ch \LaTeX{}u.
Posledn�ch 10\,\% p�i�lo v~plainu nebo jako hol� ASCII text. Nakonec se
uk�zalo, �e s~t�mito p��sp�vky bylo nejm�n� pr�ce.

\LaTeX{} jako standardn� jazyk pro zna�kov�n� struktury dokumentu n�m
p��li� nepomohl. P��sp�vky v~\LaTeX{}u toti� byly \uv{ka�d� pes jin� ves}.
To je d�no jednak r�zn�mi verzemi sou�asn�ho \LaTeX{}u a jednak
neschopnost� v�t�iny p�isp�vatel� odd�lit strukturu dokumentu od sazby.
V~jejich p��sp�vc�ch se to hem�ilo zna�kami jako "\vspace{5mm}",
"\clearpage", "\\", "{\Large Nadpis}" atd.
Aby to k~n��emu bylo, museli by v�ichni p�isp�vatel� p�istoupit na spole�n�
zp�sob zna�kov�n�. Nesta�� ��ci, �e je to \LaTeX. Je pot�eba vyjmenovat
v�echny povolen� zna�ky vymezuj�c� strukturu a pro jistotu uv�st t� v�echny
obraty, kter� jsou pro kone�nou typografii sborn�ku nevhodn�. Ukazuje se,
�e t�ch p�r obrat�, kter� z�st�vaj� povoleny, lze zpracovat jednoduch�m
makrem. A�koli tyto obraty vypadaj� \LaTeX{}ovsky, nen� nakonec nutno
pou��t \LaTeX.

Pokud jde o~p�enositelnost dokument� v�etn� form�tu, je na tom \LaTeX{}
dost �patn�. P�edev��m r�zn� verze \LaTeX{}u mohou v�st k~r�zn�m v�sledk�m.
Rovn� koncepce styl� v~tuto chv�li nar�� na probl�my.
V�t�ina u�ivatel� \LaTeX{}u toti� implicitn� p�edpokl�d�,
�e p��jemce jeho dokumentu m� povinnost m�t instalov�ny v�echny stylov�
soubory, kter� jsou v~jeho dokumentu pou�ity.
M�n� znal� u�ivatel� se nav�c chovaj� k~z�hlav� sv�ho dokumentu
jako k~n�jak�mu tabu, kter� n�kde obkreslili a n�kdo pou�en�j�� jim do toho
dopsal vol�n� n�jak�ch nov�ch styl�. V�sledkem �asto je, �e zaslan�
dokument pou��v� v~z�hlav� dvacet r�zn�ch styl�, p�i�em� se nakonec uk�e, �e
jsou pot�eba jen t�i. P�i obdr�en� takov�ho dokumentu je proto nejprve
nutn� minimalizovat po�et pou�it�ch styl�, d�le zv�it, zda kv�li jednomu
efektu v~dokumentu m� cenu toulat se po Internetu a sh�n�t styly, kter�
je�t� v~na�� instalaci \TeX{}u nem�me. Mnohdy je jednodu��� chyby zp�soben�
nezaveden�m stylu prost� p�esko�it, v�dy� ono to n�jak dopadne. Pak p�ijde
velk� p�ekvapen�: ono to dopadlo v�t�inou uspokojiv�. Pro� tam ten
styl vlastn� byl\.?

Na druh� stran� u�ivatel� plainu dob�e v�d�, jak� makra jsou v~zas�lan�m
dokumentu pot�eba. Vych�zej� z~toho, �e p��jemce bude m�t standardn� a
v~jednotliv�ch verz�ch skoro nem�nn� plain nebo csplain. V�echny definice,
kter� roz�i�uj� uveden� form�ty, pak p�ibal� naprosto v�dom� do sv�ho
dokumentu. Dokumenty pak jsou bezprobl�mov� p�enositeln�. Schopnost p�esn�
rozli�ovat mezi j�drem form�tu a nadstavbou je p�edev��m vlastnost�
u�ivatel� plainu, proto�e jsou sami nuceni tomu po��dn�ji rozum�t.

Uvedu jeden kuri�zn� p��klad. N�vrh stanov \CS{}TUGu byl naps�n v~plainu a
bylo jej tedy mo�n� vystavit na s�ti tak jak je. Bez obav, �e bude m�t
p��jemce p�i zpracov�n� probl�my. Na druh� stran� volebn� kandid�tka byla
naps�na v~\LaTeX{}u a na s�ti jsme ji v~podob� zdrojov�ho textu nevid�li.
V�te pro�\.? Autor tohoto dokumentu pou�il pro �tvere�ky na zak���kov�n�
zvolen�ch jmen speci�ln� font. To ov�em v~\LaTeX{}u znamen�, �e je pot�eba
m�t spr�vnou verzi souboru {\tt fd} pro tento font a plno dal��ch
z�le�itost�. Jinak to nebude fungovat. Autor kandid�tky m� proto explicitn�
po��dal, abych z~d�vod� komplikac� s~p�enositelnost� dokument ve zdrojov�
podob� nevystavoval. J� s�m jsem p�l hodiny pracoval na tom, ne� jsem byl
schopen kandid�tku bezprobl�mov� vytisknout. Z~Internetu jsem musel
p�it�hnout pou�it� styly, {\tt fd} toho fontu a font samotn�. Kdybych
tu�il, �e se jedn� o~p�ihloupl� �tvere�ky, m�l bych pro n� makro postaven�
na primitivech "\hbox", "\vbox", "\vrule" a "\hrule" ud�l�no b�hem p�r
vte�in. A~dokument by byl p�enositeln�.


\sub Nest�lost verz� \LaTeX{}u

To je kapitola sama pro sebe. Div�m se, �e pohyb verz� a zmatek, kter�
kolem toho vznikl, neodradil u�ivatele od pou��v�n� \LaTeX{}u. V�ichni
u�ivatel� \LaTeX{}u \twoe{} jsou vlastn� pokusn�mi kr�l�ky a jsou
z��astn�ni na velk�m projektu, kter� sm��uje snad n�kdy k~\LaTeX{}u~3.

Jako pom�rn� velk� podraz v��i u�ivatel�m pova�uji moment, kdy se pojmem
\LaTeX{} za�alo naz�vat n�co, co se od p�vodn�ho a hojn� pou��van�ho makra
tohoto jm�na (\LaTeX{}~2.09) pom�rn� z�sadn� li��. Jak� terminologick�
chaos vznikl po tomto drav�m n�stupu \LaTeX{}u \twoe, to jist� ka�d� �ten��
dob�e v�. Kdy� nyn� �eknu slovo \LaTeX{}, nikdo nev�, co t�m m�m na mysli.

Ka�d� p�lrok p�ich�z� na sv�t nov� verze \LaTeX{}u \twoe, kter� je
s~p�edchoz� slu�iteln� jen na u�ivatelsk� �rovni. Pokud ov�em u�ivatel
p�es�hne sv�mi znalostmi b�n� p��ru�ky k~\LaTeX{}u
a tyto znalosti pou�ije a podep�e je
vlastnostmi konkr�tn�ho j�dra \LaTeX{}u, m� za p�l roku sm�lu.

Mnoz� z~n�s byli sv�dky neslu�itelnosti r�zn�ch verz� po�e�t�n� \LaTeX{}u
s~r�zn�mi verzemi j�dra \LaTeX{}u \twoe. Tak� v�me, �e tyto probl�my
vych�zely najevo na naprosto neo�ek�van�ch m�stech (nap��klad pou�it� makra
"\ldots"). To samo o~sob� dokumentuje obt��nou kontrolu nad slo�it�mi makry
\LaTeX{}u a nesnadnou implementaci n�rodn� nadstavby k~\LaTeX{}u.

P�lro�n� zm�ny verz� \LaTeX{}u mus� udr�ovat u�ivatele i administr�tory
syst�m� v~neust�l� pozornosti. To je �morn� a vy�erp�vaj�c�. P�izn�v�m se,
�e j�, jako administr�tor syst�mu pro na�i katedru, tuto rychlost pohybu
nesta��m sledovat a docela m� unavuje.

\sub Jednor�zov� investice do vzd�l�n�

Nau�it se rozum�t vestav�n�m algoritm�m \TeX{}u a spr�vn�mu pou�it�
primitiv� nebo maker plainu je �innost, kterou sta�� ud�lat jednou pro
v�dy. Naopak, v~p��pad� styl� \LaTeX{}u �lov�k mus� b�t neust�le ve st�ehu
a mus� se postupn� st�t pochoduj�c�m slovn�kem na styly, aby dok�zal ke
konkr�tn�mu ��elu vybrat a spr�vn� pou��t ten spr�vn� styl t� jedin�
spr�vn� verze. P�izn�v�m, �e to p�esahuje kapacitu m�ho mozkov�ho
potenci�lu, a proto z�st�v�m p�i zemi: pouze se znalostmi algoritm�
\TeX{}u, jeho primitiv� a maker plainu. Tyto v�ci nejsou v~pohybu, tak�e se
nemus�m u�it ka�d� rok n�co nov�ho.


\sub Z�v�r

\TeX{} je koncipov�n jako otev�en� syst�m. Kdo m� chu� a s�lu si osvojit
jeho detaily, m� v~rukou mocn� n�stroj na vytv��en� nadstaveb podle sv�ch
p�edstav. Nen� podle m�ho n�zoru f�rov� vnucovat u�ivatel�m \uv{jedinou
spr�vnou nadstavbu} a v~p��ru�k�ch tvrdit, �e p�i jej�m pou�it� nebudou
muset v�d�t, co to je \TeX{}. \LaTeX{} se t�m sna�� zast�e�it otev�en�
z�klad uzav�enou nadstavbou, ��m� neguje v�hody z�kladu. Proto�e je toto
zast�e�en� nav�c d�rav� z~d�vod� nedostate�nosti samotn�ho z�kladu, utrp�
t�m nakonec oba. Jednak z�klad a jednak nadstavba. A~to je �koda.

Domn�v�m se, �e kdyby se v�ce �sil� v�novalo v�klad�m a vysv�tlov�n�
princip� samotn�ho \TeX{}u, bylo by to jen ku prosp�chu v�ci. Udr�ovat
neust�le p�ehled o~vlastnostech k�du \LaTeX{}u a v�ech jeho sou�asn�ch
styl� a verz� je podle m�ho n�zoru daleko n�ro�n�j��, ne� se jednou pro
v�dy sezn�mit se samotn�m \TeX{}em.

\end

