
\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

