
\hsize11cm
\vsize16cm
\emergencystretch=1em
\widowpenalty=10000
\raggedbottom

\font\mflogo=logo10  % font pro METAFONT logo

\chyph
\hyphenation{nej-prve ne-u-pra-vo-va-n�}

\def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $}
\def\LaTeX{L\kern-.36em\raise.5ex\hbox{\sevenrm A}\kern-.12em\TeX}
\def\AMS{$\cal A\kern-.166em\lower.5ex\hbox{$\cal M$}\kern-.075em S$}
\def\mf{{\mflogo META}\-{\mflogo FONT}}

\def \uv#1{\vbox to0pt{\kern-.33ex\hbox{''}\vss}\kern-.1ex#1\kern-.1ex``}

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

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

\def\title#1\par{\noindent{\bf#1}\vskip2\bigskipamount}
\def\sub#1\par{\bigskip\noindent{\bf#1}\par\nobreak\medskip}


\title �vaha o~fontech v~\CS\TeX u
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

P�i rozhovorech s~nejr�zn�j��mi p��znivci \TeX u~o~nov� instalaci \CS\TeX 
u~se �asto zavede �e� na ot�zku font�, jejich n�zv�, k�dov�n� a mechanism�, 
s~jak�mi \CS\TeX\ s~t�mito fonty pracuje. Mysl�m si, �e to je z�le�itost velice
d�le�it� a proto jsem se rozhodl uv�st �ten��e do \uv{z�kulis�}, v~n�m�
nov� koncepce font� vznikala a zm�nit mnoh� pro a proti, se kter�mi jsme se
pot�kali p�i rozhodov�n� o~tom, jak to ud�lat.

S�m nepat��m mezi ty tv�rce \CS\TeX u, kte�� v~ot�zce font� prosazovali
jednozna�n� jednu ur�itou my�lenku -- v�t�inou jsem se p�i t�chto diskus�ch
zdr�el hlasov�n�, proto�e jsem se nepova�oval v~t�to v�ci za odborn�ka,
kter� m� znalosti o~tom, jak se to d�l� v~jin�ch zem�ch. Nev�m tedy, co je
v~t�to oblasti nejlep��. T�m samoz�ejm� nechci ze sebe sm�st ve�kerou vinu
za nedostatky, kter� CS fonty maj�. Na druh� stran� si mysl�m, �e bych mohl
pr�v� proto podat mo�n� nejobjektivn�j�� pohled na v�c. P�itom asi pohled
dostate�n� zasv�cen�, proto�e jsem \uv{byl p�i tom}, tj. z��astnil jsem se
v�ech sch�zek, na nich� nov� instalace vznikala.

\sub P�vodn� verze
%%%%%%%%%%%%%%%%%%

Mnoh�ho �ten��e zaj�maj� p�edev��m zm�ny, kter� s~sebou p�echod z~p�vodn�
instalace na novou p�in���. Pod�vejme se na to podrobn�ji z~technick�ho
hlediska. Za�neme t�m, jak to bylo za��zeno v~p�vodn�m \CS\TeX u.
Pomineme �pln� prav�kou verzi, kde

\smallskip\noindent
"jedin\'y mo\v{z}n\'y zp\accent23usob,"\hfil\break
"jak n\v{e}co napsat \v{c}esky"

\smallskip\noindent
vypadal takto. Prvn�m kr��kem k~pohodln�j��mu psan� bylo vytvo�en�
preprocesoru, kter� text napsan� nap��klad v~k�dov�n� Kamenick�ch
konvertoval do textu obsahuj�c�ho p��slu�n� "\accent23" a podobn� klenoty a
takto p�edpracovan� soubor se teprve nab�zel ke �ten� \TeX em. Ani toto
�e�en� nebylo pro n�rodn� jazyk dosta�uj�c�, proto�e neumo��ovalo
implementovat vzory d�len� slov.

Zastavme se a� u~osmibitov� verze \TeX{}u a u~docela ned�vn� verze \CS\TeX u,
kter� byla je�t� p�ed rokem ���en� na��m sdru�en�m a kter� u� velmi dob�e
umo��ovala po�izovat �esk� a slovensk� dokumenty. Mattes�v em\TeX\
je schopen pomoc� tzv. {\tt tcp} tabulek ��dit �innost preprocesoru, kter� je
p��mo zabudovan� do \TeX u. Tyto tabulky se na��taj� jednou prov�dy p�i
vytv��en� form�t�. Byly vytvo�eny tak, aby byl em\TeX\ schopen ��st
nap��klad zdrojov� text v~\uv{Kameni�tin�} a p�itom vnit�n� pracoval
v~pon�kud jin�m k�dov�n� -- v~p��pad� p�vodn� verze \CS\TeX{}u �lo
o~k�dov�n� \uv{skoro} podle Corku (o~tomto k�dov�n� se rozep��u za chv�li,
proto�e kolem n�ho se to v�echno to��). T�m star� verze vytvo�ila soubor
{\tt dvi}, kter� v~sob� obsahoval odvol�vky na akcentovan� p�smena (��kejme
mu pracovn� osmibitov� {\tt dvi} soubor). P�itom tyto odvol�vky nem�ly sv�j
prot�j�ek v~bitmap�ch ({\tt pk}), tak�e se uveden� soubor {\tt dvi} nedal
pou��t p��mo pro zpracov�n� ovlada�i. Proto Old�ich Ulrych vytvo�il
konverzn� rutinu {\tt dvi2dvi}, kter� z~osmibitov�ho {\tt dvi} souboru
ud�lala jin� a del�� soubor stejn�ho jm�na, kde v�echny odkazy na
akcentovan� p�smena byly nahrazeny �adou DVI-p��kaz� stejn�ch, jako
kdyby byl pou�it p��kaz "\accent". Tato rutina byla za�azena do d�vky hned
za vol�n� \TeX u~a \uv{pr�m�rn�} u�ivatel o~jej� �innosti nic nemusel
v�d�t. V�sledkem byl nakonec sedmibitov� {\tt dvi} soubor, kter� se dal
zpracovat jak�mikoli ovlada�i, pracuj�c�mi s~Computer Modern fonty. To byla
velik� p�ednost z~hlediska kompatibility.

Toto �e�en� m�lo ale i nedostatky. P�edev��m h��ek v~CM fontech jako samostatn�
znak, kter� se p��kazem "\accent" posazuje nad p�smena, v�bec neodpov�d�
�esk�m typografick�m p�edstav�m a nav�c jej \TeX\ umis�uje na geometrickou
osu p�smene a nikoli podle \uv{v�tvarn�ho citu}. Tak� zde nebyla dodr�ena
Knuthova z�sada o~nem�nnosti CM font�. Soubory {\tt tfm} se toti� jmenovaly
CM a p�itom byly osmibitov� -- tedy \TeX\ byl schopen nap��klad font zaveden�
jako

\smallskip
"\font\titul=cmbx10 scaled\magstep4"

\smallskip\noindent
zpracovat i s~h��ky a ��rkami! Pro u�ivatele \AMS\TeX u~a plainu, kde se
bez p��kazu "\font" nelze obej�t, to bylo pohodln� �e�en�. Ov�em
tito u�ivatel� si mo�n� neuv�domovali, �e pak jejich zdrojov� texty nejsou
mezin�rodn� p�enositeln�, proto�e standardn� instalace \TeX{}u s~CM fonty m�
spr�vn� na v�skyt akcentovan�ho znaku v~takto zaveden�m fontu reagovat
v~{\tt log}u zpr�vou

\smallskip
{\tt Missing character .. in font..}

\smallskip\noindent
a znak zcela ignorovat. Je sice pravda, �e �esk� texty asi nikdo nebude
cht�t m�t mezin�rodn� p�enositeln�, ale nezasahovat do CM font� je
po�adavek samotn�ho autora \TeX u~a CM font� a m� k~tomu asi dobr� d�vody.
Ze star� verze si tedy u�ivatel� osvojili ur�it� zlozvyk v~pou��v�n�
p��kazu "\font", jeho� odnau�en� bude �init zna�n� pot��e. J� s�m pat��m
mezi takov� u�ivatele.

Je t�eba si uv�domit, �e tato v�c {\it v�bec nesouvis� se zvolen�m typem
k�dov�n� fontu\/}, tak�e kritici pou�it�ho k�dov�n�, kte�� argumentuj�, �e
nen� mo�no pou��t p��kaz "\font" \uv{p�irozen�m zp�sobem}, jsou vedle jak
ta jedle.


\sub Mechanismus pr�ce s~fonty v~nov� verzi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Uve�me nejprve z�kladn� c�le, kter� byly kladeny na nov� vytvo�enou
instalaci. Jsou t�i:

\begitems
* 100\% kompatibilita s~CM sv�tem
* Za�adit osmibitov� bitmapy font�
* Nem�t bitmapu ��dn� abecedy zbyte�n� dvakr�t, tj. �et�it diskovou kapacitu
\enditems

K~dispozici byly osmibitov� fonty Petra Nov�ka, kter� vych�zely z~CM font�,
ale nav�c obsahovaly dal�� znaky odpov�daj�c� p�smen�m s~pevn�mi akcenty,
pou��van�mi v~�esk� a slovensk� sazb�. \mf ov� zdrojov� texty t�chto font�
dal Petr Nov�k pln� k~dispozici \CS TUGu a to byl vlastn� hlavn� impuls
k~vytvo�en� na�� nov� instalace. Ne� se tyto fonty dostaly do nov�ho
bal�ku, byly v�razn� upraveny L��ou Lhotkou a p�edev��m Karlem Hor�kem.

Osmibitov� fonty jsme nazvali shodn� jako CM fonty, ov�em s~tou v�jimkou,
�e m�sto prvn�ch dvou p�smen {\tt cm} jsou pou�ita p�smena {\tt cs}.
V~instalaci jsou na �rovni metrik vedle sebe ob� skupiny font�, jak CM, tak
CS. Najdete zde tedy jak soubor {\tt cmr10.tfm}, tak {\tt csr10.tfm}.
Pouze pro matematick� fonty alternativa CS neexistuje. CM metriky jsou
nyn� {\it origin�ln�\/} Knuthovy metriky nikterak neupravovan�. CS metriky
obsahuj� i akcentovan� znaky a p�itom v~\uv{doln�} polovin� tabulky (to je
ta ��st s~k�dy men��mi ne� 128) se CS fonty shoduj� s~CM fonty.

Form�t, kter� se automaticky generuje v~\CS\TeX{}u p�i inicializaci m�
p�edponu CS, tedy nap�. {\tt csplain, cslatex} apod. P�i inicializaci
"csplain"u a "csamstex"u je na chv�li p�edefinov�n primitivn�
p��kaz "\font" (viz soubory "csplain.ini", "csamstex.ini" a "csfonts.tex").
T�m p�dem v�echny form�tem definovan� p��kazy pro pr�ci s~fonty (nap�.
"\bf", "\it" apod.) automaticky pracuj� s~fonty CS m�sto CM font�.
Proto�e na konci inicializace je p��kazu "\font" vr�cen p�vodn� v�znam
(ned�lalo by to dobrotu, kdyby tomu tak nebylo), je nutno pro zaveden�
u�ivatelsk�ho fontu pou��t {\it v�slovn�\/} CS font, tedy nap��klad

\smallskip
"\font\titul=csbx10 scaled\magstep4"

\smallskip
Form�ty \LaTeX{}u a \AMS\LaTeX{}u jsou �e�eny trochu jinak. Zde nen� p��kaz
"\font" v�bec v~pr�b�hu inicializace p�edefinov�n, ale jsou na�teny
pozm�n�n� defini�n� soubory pro fonty (viz soubory "makefmt.bat",
"lfontscs.tex", "fontdef.cs" a dal��). V�sledn� efekt je stejn�: nap��e-li
u�ivatel \LaTeX{}u t�eba p��kaz "\huge\bf", zavede se a pou�ije se m�sto
fontu CM font CS. Takov� u�ivatel se nemus� o~nic starat, proto�e v�t�inou
nemus� pracovat explicite s~p��kazem "\font".

V�sledek po zpracov�n� \TeX em tedy obsahuje v~{\tt dvi} souboru odkazy na
akcentovan� p�smena ve fontech s~ozna�en�m CS. Ovlada�e nyn� pracuj� 
s~osmibitov�mi bitmapami CS font� a nemaj� ��dn� probl�m. Nepou��v� se
��dn� postprocesor.

Co se stane, zpracov�v�me-li CS form�tem anglick� dokument?
Pokud v~n�m je pou�it p��kaz "\font", pak ur�it� se j�m zav�d� CM font a
nikoli CS. Ve v�sledn�m {\tt dvi} souboru pak m�me jak�si \uv{mix}.
Texty zpracovan� implicitn�mi p��kazy z~form�tu ("\bf", "\rm" atd.) jsou
vys�zeny v~CS fontech a explicite definovan� p��kazy zp�sob� sazbu v~CM
fontech. Nyn� z�le�� na tom, co s~takov�m {\tt dvi} souborem chceme d�lat.
Zpracujeme-li jej na na�� instalaci, pak ovlada�e budou ��st pouze
osmibitov� bitmapy CS a pou�ij� z~nich jen doln� polovinu tabulky. Naraz�
li na po�adavek sazby v~CM fontu, ovlada� m�sto toho na�te odpov�daj�c� CS
font, jak prav� substitu�n� tabulka (viz "subst.drv"). Tak�e se zpracov�n�m
pomoc� Mattesov�ch ovlada�� znovu nejsou ��dn� probl�my. Nav�c nem�me
bitmapu ��dn� abecedy v~instalaci zbyte�n� dvakr�t.

Chceme-li na�e \uv{mixovan�} {\tt dvi} poslat do ciziny, mus�me jej nejprve
transformovat programem {\tt dviout}, kter� zkontroluje, zda v~cel�m
dokumentu nen� jedin� odkaz na akcentovan� p�smeno a p�ejmenuje v~{\tt dvi}
souboru v�echny CS fonty na odpov�daj�c� CM fonty a uprav� kontroln�
sou�ty. Takto zpracovan� {\tt dvi} soubor je shodn� se souborem, kter� by
mohl b�t teoreticky vytvo�en jinde standardn�m form�tem pracuj�c�m pouze 
s~CM fonty. Nikdo nepozn�, �e jsme pro vytvo�en� tohoto souboru pou�ili n��
lok�ln� form�t s~p�edponou CS. T�m je dosa�ena 100\% kompatibilita s~CM
sv�tem.

Druh� v�c, kterou m��e cht�t u�ivatel ud�lat s~\uv{mixovan�m} {\tt dvi}
souborem je jeho transformace do PostScriptov�ho popisu str�nek pomoc�
programu {\tt dvips}. Tento program v~na�� instalaci tak� pracuje pouze
s~CS bitmapami, ale bohu�el nem� schopnost na��tat substitu�n� tabulky, jak
tomu bylo u~em\TeX-ovlada��. Proto je do d�vky za�azen p�ed vol�n� programu
{\tt dvips} konvertor {\tt dviout}, kter� tentokr�t pracuje obr�cen�:
v�echny CM n�zvy v~{\tt dvi} souboru p�ep��e CS n�zvy (viz soubor
"others.bat").

Je vid�t, �e uveden�mi mechanismy jsme dos�hli t�� vyt��en�ch c�l�, kter�
jsou zm�n�ny na za��tku tohoto odstavce.


\sub K�dov�n� font�
%%%%%%%%%%%%%%%%%%%

V�imn�te si, �e jsem se zat�m nezm�nil o~k�dov�n� CS font�. Cht�l jsem, aby
bylo patrn�, �e v�echny v��e zm�n�n� probl�my jsou {\it nez�visl�\/} na
volb� k�dov�n� horn� poloviny tabulky, tak�e k~tomu, abychom splnili
zm�n�n� t�i c�le, jsme mohli zvolit jak�koli k�dov�n� font�, nap��klad
Pi�vejcovo k�dov�n�. Na druh� stran� ��dn� super skv�l� k�dov�n� by ��dn�
v��e zm�n�n� probl�m neumo�nilo �e�it elegantn�ji.

P�ipome�me si, �e {\it vnit�n�\/} k�dov�n� \TeX{}u (a tedy k�dov�n� font�)
nen� v~em\TeX{}u z�visl� na {\it vstupn�m\/} k�dov�n� zdrojov�ch text�,
proto�e mezi t�mito dv�ma sv�ty stoj� {\tt tpc} tabulka preprocesoru, kter�
je zabudovan� v~em\TeX u. Podle t�to tabulky se tedy konvertuje k�dov�n�
vstupn�ho textu (Kameni�t�, PC~Latin2, Koi8 �i jin�) do p�edem dan�ho
vnit�n�ho k�dov�n�. V~instalaci \CS\TeX u~umo��ujeme p�i inicializaci
form�tu vybrat ze t�� {\tt tcp} tabulek, kter� odpov�daj� t�em nejb��n�j��m
vstupn�m k�dov�n�m na PC stroj�ch. Nen� p�itom probl�m vyrobit {\tt tcp}
tabulku pro jin� k�dov�n�. Po zpracov�n� preprocesorem se tedy st�v�
{\it vstupn�\/} k�dov�n� nepodstatn�m pro na�e dal�� �vahy, tak�e se j�m
d�le nebudeme zab�vat.

P�vodn� Nov�kovy fonty byly v~Koi8. Je z�ejm�, �e toto k�dov�n� nen�
p��li� perspektivn� a proto je tak� vylou��me z~na�ich �vah. Nav�c
L��a s~Karlem za�adili do \mf ov�ch text� jak�si \uv{meta-k�dov�n�}, tak�e
zm�na rozlo�en� znak� je z�le�itost� celkem komfortn�ho editov�n� {\it
jedin�ho\/} souboru.

Prvn�m kandid�tem na vhodn� vnit�n� k�dov�n� \TeX{}u by se mohlo jevit
k�dov�n� podle Corku. Tento standard byl smluven na sch�zce p�edstavitel�
u�ivatel� \TeX u~pro latinkou p���c� zem� v~Evrop�. Na z�klad� tohoto
k�dov�n� vznikly tzv. DC fonty, kter� nab�zej� sjednocen� toho, co
pot�ebuj� Evropsk� zem�. Najdete tam t�eba \aa, \c c, \`u, \^E nebo \~n.
Samoz�ejm� tam najdete i akcentovan� p�smena, pou��van� u~n�s.

D�le�it�m a nezanedbateln�m argumentem pro standard podle Corku je
skute�nost, �e se podle tohoto standardu a na z�klad� existence DC font�
za��naj� ���it nejr�zn�j�� makra, kter� s~t�mito fonty pracuj�.
Taky vzory d�len� slov pro evropsk� jazyky se z�ejm� budou ���it
v~k�dov�n� Cork. D�le je t�eba si uv�domit, �e nelze m�chat r�zn� k�dov�n�
v~\TeX u. Tj. �e bych t�eba p�ep�nal mezi DC fontem a CS fontem a p�itom
by se samo p�epnulo i k�dov�n�. To lze �e�it jenom virtu�ln�m popisem
fontu. Vnit�n� k�dov�n� \TeX u~je jedin�. Poznamenejme ale, �e p�ep�n�n�
mezi CS a DC fonty je dosti nesmysln� po�adavek, proto�e z~hlediska sazby
�esk�ch nebo slovensk�ch text� oba fonty nab�zej� stejn� mo�nosti. DC fonty
maj� znateln� hor�� typografickou kvalitu, ale zato obsahuj� n�kter�
\uv{zahrani�n�} symboly, kter� ov�em v~p��pad� pot�eby lze poskl�dat i 
z~diakritiky CM fontu (viz \~n).

Bohu�el standard z~Corku m� jednu podstatnou nev�hodu: diktuje, jak m�
vypadat rozlo�en� znak� v~doln� polovin� tabulky. P�itom se na mnoh�ch
m�stech li�� od CM standardu! Nap��klad tam, kde v~CM fontu najdeme �eck�
p�smena (pozice nula, jedna, dv�, \dots) jsou v~DC fontech um�st�na r�zn�
interpunk�n� znam�nka.

Pokud bychom tedy cht�li pou��t \uv{�ist� Cork} (jako je tomu v~DC
fontech), museli bychom v~CS fontech zas�hnout do doln� poloviny tabulky,
��m� ov�em nelze splnit po�adavek o~nejv��e jedn� bitmap� pro ka�dou
abecedu. Museli bychom toti� m�t vedle sebe i origin�ln� CM fonty u� t�eba
jen kv�li tomu, abychom nep�i�li o~�eck� p�smena. Vyznava�i DC font� si
tedy pln� disk nejen neu�ite�n�mi znaky, kter� skoro nikdy nepou�ij� a
kter� se daj� poskl�dat pomoc� diakritiky z~CM fontu, ale nav�c mus� m�t CM
fonty extra zvl���. Tento n�por na diskovou kapacitu pr�m�rn�ho u�ivatele,
kter� po��d� o~instala�n� diskety \CS\TeX{}u na�e sdru�en�, jsme necht�li
p�ipustit.

Mohli jsme tedy z�stat u~\uv{polovi�n�ho Corku}, tj. pou��t sm��en�
k�dov�n� Cork-CM tak, jako tomu bylo i u~p�edchoz� verze \CS\TeX u.
Toto �e�en� taky zvolili na�i pol�t� kolegov�. Zde bychom se ale museli
samostatn� rozhodnout, kam um�stit n�kter� interpunk�n� znam�nka, kter�
podle Corku koliduj� s~CM. Taky bychom asi neobsadili v�echny pozice ve
fontu, ale jen ty, kter� obsahuj� znaky pou��van� v~�esk� a slovensk�
sazb�. Tento p��stup mohl b�t jist�m kompromisem, kter� by ale nakonec
stejn� nic ne�e�il. Z�ejm� by toto polovi�n� �e�en� ani neumo�nilo snadno
pou��t makra vyvinut� pro DC fonty. Vyhovovalo by pouze u�ivatel�m, kte��
si n�jak vylep�ili p�vodn� instalaci, odstranili postprocesor {\tt dvi2dvi}
a na tomto star�m sm��en�m k�dov�n� za�ali d�le stav�t (nap�. si sestavili
virtu�ln� popisy k~m�n� dostupn�m font�m, nebo si vytvo�ili n�kter� makra
z�visl� na k�dov�n�).

Do na�ich �vah vstoupil dal�� argument, kter� se jmenuje ISO~Latin2.
Je to obecn� norma pro \uv{zpracov�n� dat, textov� aplikace a v�m�nu
informac� v~alb�n�tin�, �e�tin�, angli�tin�, n�m�in�, ma�ar�tin�, pol�tin�,
rumun�tin�, srbochorvat�tin�, sloven�tin� a slovin�tin�}.
Norma ISO m� vekou v�hu zvl��t� mezi po��ta�ov�mi odborn�ky, kte�� se
neomezili jen na hra�i�ky typu DOS a WINDOWS. Nap��klad v~UNIXo\-v�m sv�t�
je jedinou alternativou (tam nepanuje takov� d�ungle, jako na PC). Je�t�
informace pro ty, co n�co v�d� o~k�dov�n� Latin2 na PC: ISO je n�co jin�ho.
A�koli jde sp�� o~definici roz���en� ASCII k�du pro horn� polovinu tabulky
ne� o~k�dov�n� fontu (tj. nehledejte tam ligatury, samostatn� akcenty
apod.), uk�zalo se, �e pokud se p�izp�sob�me tomuto k�dov�n�, maj� UNIXov�
administr�to�i uleh�enou pr�ci s~instalac� �e�tiny v~\TeX u. Jde toti�
o~to, �e standardn� Knuth�v \TeX, kter� je mo�n� instalovat pod UNIXem nen�
em\TeX. Tedy nen� vybaven zabudovan�m preprocesorem a mechanismem {\tt tpc}
tabulek. T�m p�dem mus� b�t vstupn� k�dov�n� textu shodn� s~vnit�n�m
k�dov�n�m \TeX{}u (pokud nechceme programovat filtry, kter� by z~d�vodu
zp�tn�ho v�stupu chyb na termin�l a do {\tt log}u musely b�t oboustrann�).
Jak u� bylo �e�eno, ISO~Latin2 je p�itom standard pro k�dov�n� �esk�ch
text� na v�konn�ch syst�mech a zd� se, �e zde nap��klad brat�i Kameni�t�
neproraz�. Pro� tedy neud�lat CS fonty v~tomto k�dov�n�? UNIXov�
administr�to�i nebudou muset programovat ani filtry, ani nebudou muset
sestavovat virtu�ln� popisy font�. Sta�� jim, kdy� pou�ij� na�e CS fonty.

Tak se nakonec stalo, �e CS fonty jsou v~horn� polovin� tabulky
podmno�inou ISO~Latin2. Jsou toti� vybr�ny jen n�kter� pozice, kter�
odpov�daj� p�smen�m z~�e�tiny a sloven�tiny. Jedn� se zhruba o~pades�t
pozic; zbyl�ch 80 z�stalo neobsazeno. Z~m�ho laick�ho pohledu je toto
�e�en� asi stejn� dobr� i �patn�, jako pou�it� \uv{polovi�n�ho Corku}. Jsou
lid�, kte�� se p�ikl�n�j� sp�� k~jedn� �i druh� variant�, ale zat�m ��dn�
n�zor nep�eva�uje. To z�ejm� uk��e a� �as. Rozhodn� ale CS fonty jsou t�mto
rozhodnut�m jednou prov�dy v�zan� k~tomuto k�dov�n� a instalace \CS\TeX{}u
je na nich nyn� zalo�ena. Pokud se uk��e n�kdy v~budoucnu vhodn� pou��t
jin� k�dov�n�, bude se muset zm�nit n�zev font�. Bude-li toto zaru�eno, pak
m��e u~n�s vzniknout solidn� p�enositelnost �esk� sazby na �rovni {\tt dvi}
soubor�. Nezd� se mi nere�ln�, aby nap��klad n�kter� firmy vlastn�c�
osvitovou jednotku nab�zely osvit z~{\tt dvi} souboru. \mf ov�n� bitmap by
pak mohla �e�it firma sama, proto�e pouze ona p�esn� v�, jak� rozli�en� je
t�eba pou��t. Z�kazn�k by se o~to nemusel starat. Pouze by muselo b�t
�e�eno, v~jak�m standardu je {\tt dvi} soubor p�ipraven. Zda se jedn� o~CM,
CS nebo DC fonty. Proto upozor�uji v�echny r�paly, kte�� cht�j� m�nit \mf
ov� zdroje CS font�, �e a�koli je zm�na rozlo�en� velmi snadn�, ned�lejte
to. Rozlo�en� fontu, jeho� v�pis byl ostatn� p�ilo�en ke ka�d� instala�n�
krabici \CS\TeX u, se m�nit nesm�.

P�izn�v�me, �e nov� �e�en� nen� zdaleka ide�ln�. Cht�li jsme jen uk�zat, �e
v~tuto chv�li z�ejm� ��dn� �e�en� nebude ide�ln�. Kdyby se p�nov� v~Corku
dohodli jen trochu rozumn�ji (nepo�adovali zm�nu v~rozlo�en� doln� poloviny
tabulky), vypadala by dnes situace podstatn� jinak. Z~dne�n�ho hlediska se
jev�, �e tehdy mohlo b�t v�hodn�j��, kdyby se tito p�nov� v�bec nedohodli.
Vytvo�it rozumn� standard lze toti� pouze v~p��pad�, �e zde nefiguruje
��dn� �patn� standard, na n�m� u� ��st \TeX ovsk� obce za�ala stav�t.


\sub Co d�lat?
%%%%%%%%%%%%%%

Z�v�rem bych cht�l upozornit na n�kter� bol�stky nov�ho \CS\TeX u~a p�i t�
p��le�itosti nab�dnout aktivn�m a �ikovn�m koleg�m mo�nost se
program�torsky realizovat.

Prvn� v�c se m��e zd�t celkem jednoduch�, ale zd�n� klame. Jde o~makro
"csfonts.tex", kter� redefinuje primitiv "\font" tak, �e pokud nap��eme

\smallskip
"\font\muj=cmcokoli"

\smallskip\noindent
bude to interpretov�no jako

\smallskip
"\font\muj=cscokoli".

\smallskip\noindent
p�i�em� tato zm�na v�znamu prob�hne pouze tehdy, jestli�e {\tt cmcokoli}
nen� matematick� font. V~tomto �l�nku jsem se zm�nil, �e jsem takov� makro
pou�il p�i generov�n� CS form�t�, ale �e jej nedoporu�uji pou��vat glob�ln�
i v~dokumentu. Znamen� to, �e makro nen� dokonal�. Zn�m t�i chyby zm�n�n�ho
makra, kter� zp�sobuj�, �e nelze ponechat redefinovan� p��kaz "\font" bez
mo�n�ch koliz�. Za prv�, d�lka n�zvu fontu se mus� skl�dat aspo� ze �ty�
p�smen, jinak makro zp�sob� chybu. Za druh�, primitiv "\font" nevy�aduje
povinn� pou�it� znaku {\tt=} p�ed n�zvem fontu, zat�mco redefinovan�
"\font" ano. Za t�et�, primitiv "\font" m� druhotn� v�znam v~konstrukci
"\the\font", p�i�em� p�i pou�it� makra tento v�znam ztr�c�. �ikovn�
makro-program�tor by mo�n� mohl tyto probl�my vy�e�it. M�m ale dojem, �e to
je natolik komplikovan�, �e to nestoj� za to a �e se budeme muset v�ichni
zlozvyk s~pou��v�n�m p��kazu "\font" odnau�it. Nebo snad n�koho napad�
n�jak� snadn� a elegantn� �e�en�, kter� by nebylo v~rozporu s~po�adavkem
autora CM font�?

Dal�� v�c� je probl�m p�enosu n�rodn�ho textu na za��zen�, kter� nen�
vybaveno CS fonty. Ur�it� by mnoh� u�ivatel r�d vyu�il mo�nosti poslat
t�eba �esk� text do zahrani�� v~souboru {\tt dvi} v~CM standardu, tj.
ve form�tu zpracovateln�m na jak�koli instalaci \TeX u~ov�em za
cenu ni��� typografick� kvality proveden� h��k� a ��rek. To toti�
v~p�edchoz� verzi \CS\TeX{}u �lo. Tam byla tato ni��� typografick� kvalita
h��k� jedinou mo�nou alternativou. V~nov� verzi nelze zat�m tohoto n�vratu
k~CM dos�hnout. D� se sice p�ed zpracov�n�m \TeX em pou��t program {\tt
cstocs}, kter� ztransformuje v�echny v�skyty akcentovan�ch znak� do
kontroln�ch \TeX-sekvenc�, ale pak p�estane fungovat d�l�c� algoritmus
\TeX{}u pro �esk� (p��padn� slovensk�) jazyk! Pou�it� {\tt cstocs} je tedy mo�n�
(a~nutn�) pouze v~p��pad� anglick�ho dokumentu, kde figuruje jen n�kolik
m�lo �esk�ch slov (nap��klad jm�na autor�, citace apod.).

Co tedy ud�lat pro mo�nost zas�lat pln� �esk�/slovensk� texty v~{\tt dvi}
souboru v~CM standardu do ciziny? Zd� se mi pon�kud velk� luxus kv�li tomu
uchov�vat starou verzi \CS\TeX u, kter� nav�c pracuje naprosto odli�n�m
zp�sobem. Cht�lo by to pro tyto ��ely ud�lat n�co podobn�ho, jako byl
v~p�vodn� verzi konvertor {\tt dvi2dvi}. Olin se ov�em k~tomuto programu u�
nechce vracet. Jeho verze byla toti� v�cem�n� dost komplikovan�. M�la ve
sv�m {\tt exe} k�du pevn� stanovenou mno�inu font�, se kterou um�la
pracovat. Tabulku akc�, co m� s~dan�m p�smenem dan�ho fontu d�lat, se
program {\tt dvi2dvi} \uv{nau�il} od \TeX u~v~okam�iku sv� kompilace
(v~Turbo Pascalu). Matn� si vzpom�n�m, �e tato kompilace byla natolik
komplikovan� (v~r�zn�ch f�z�ch kompilace bylo nutno vyvolat \TeX\ na r�zn�
soubory a pak pokra�ovat), �e jsem kdysi snahu nau�it program {\tt dvi2dvi}
pracovat s~nov�m fontem nakonec vzdal. Nabyl jsem dojmu, �e to m��e
pochopit jen autor programu.

Ide�ln� by bylo, kdyby existoval takov� konvertor, kter� by obsahoval
n�kter� algoritmy \TeX u~p��mo v~sob� a nemusel se pro ka�d� nov� font
znova u�it, co m� d�lat. Jedn� se v�t�inou o~algoritmy, kter� se spust�
primitivem "\accent". Na�el by se n�kdo, kdo by se odv��il do toho pustit?

Dal�� v�c, kter� by byla obecn� u�ite�n�, je podpora nejb��n�j��ch
Post\-Scripto\-v�ch font� v~�esk�m jazyce. Ur�it� by nebylo od v�ci, kdyby
\CS TUG mohl nab�zet virtu�ln� popisy t�chto font� ({\tt VPL} -- virtual
property list) k~ve�ejn�mu pou�it� v~\TeX u. Je sice pravda, �e se jedn�
o~komer�n� fonty, ale ty nejb��n�j�� z~nich jsou sou��st� vpodstat� ka�d�ho
Post\-Scripto\-v�ho za��zen� (v�etn� WINDOWS) a po�adavky na jejich pou�it�
v~\TeX{}u budou ur�it� st�le �ast�j��. Nav�c tyto popisy, kter� se nutn�
op�raj� o~vnit�n� k�dov�n� \TeX{}u, upevn� pozici ISO~Latin2 v~na�ich
luz�ch.

Nakonec jedna program�torsky mo�n� atraktivn� z�le�itost, ale nikterak
nesouvisej�c� s~fonty. Mo�n� u� tak� existuje v~\uv{public domain},
jen o~tom nev�m. Jde o~to, �e by se \CS\TeX\ stal atraktivn�j��m pro
za��naj�c� u�ivatele, kdyby byl vybaven inteligentn�m hypertextov�m helpem.
P�edstavme si, �e m�me konfigurovateln� editor, kde lze nakonfigurovat
funk�n� kl�vesu tak, �e se na jej� stisknut� vyvol� p��kaz DOSu a nav�c se
do tohoto p��kazu obkresl� slovo, na n�m� stoj� kurzor. Nap��klad QEdit to
um� a \CS Ed pravd�podobn� taky. Jde tedy o~to z�skat program, kter� nab�z�
po vyvol�n� z~��dky DOSu n�pov�du ke slovu, kter� je na ��dce DOSu uveden�
jako parametr. Ide�ln� by bylo, kdyby byl program schopen naj�t i slova
p��buzn� a byl vybaven siln�mi hypertextov�mi mo�nostmi. Samoz�ejmost� je
�ten� text v~komprimovan� podob� a s~rychl�m p��stupem, proto�e takov�
\LaTeX book �i \TeX book zabere jist� dosti m�sta i ve form� n�pov�d. Taky
mo�nost snadn�ho vytv��en� a dopl�ov�n� n�pov�d je nutn�.

Rozhodn� by se na�ly i dal�� nevy�e�en� probl�my, co by se dalo d�lat.
M�te-li do n��eho chu�, doporu�uji nejprve kontaktovat v�bor \CS TUGu.
Podm�nkou by toti� v~ka�d�m p��pad� m�la b�t mo�nost za�azen� softwaru do
\uv{public domain}. Ur�it� nebude \CS TUG kupovat komer�n� v�robky
s~komer�n�mi chybami a za komer�n� ceny. Takov� v�c je v~p��kr�m rozporu
s~my�lenkou samotn�ho \TeX u.

\bye

