% Tento soubor je naps�n v k�dov�n� UNIX ISO8859-2.
% Pou��v�te-li ve sv�m syst�mu jin� k�dov�n� �e�tiny, nejprve p�ek�dujte
% a zru�te tvrzen� z prvn�ho ��dku.
%
% Zpracujte form�tem csplain
%
% P�smo "slabikar" je voln� ���eno ve zdrojov� podob� slabikar.mf. 
% Pokud provedete v souboru slabikar.mf jakoukoli zm�nu, mus�te tento 
% soubor nazvat jinak. P�smo slabikar je mo�n� za�adit do TeXov�ch
% instalac� za p�edpokladu, �e za�ad�te v�echny soubory z
%
% ftp://math.feld.cvut.cz/pub/olsak/slabikar
% 
% v nezm�n�n� podob�.
% Autor METAFONTov� implemetace p�sma: Petr Ol��k, (C) 1997
%
% P�ed zpracov�n�m tohoto uk�zkov�ho souboru instalujte p�smo do sv�ho
% TeXov�ho syst�mu takto:
%   1. Soubor slabikar.tfm instalujte mezi ostatn� soubory *.tfm
%   2. Soubor slabikar.mf  instalujte mezi ostatn� soubory *.mf
% Va�e TeXovsk� ovlada�e dvi mus� um�t generovat bitov� mapy *.pk podle
% pot�eby z METAFONTov�ch zdroj�.

\font\pis = slabikar at1cm
\font\Pis = slabikar at25mm
\font\pisnormal = slabikar
\def\slabikar{\baselineskip=1cm \pis}
\def\Slabikar{\baselineskip=2.5cm \Pis}

\def\uv#1{\clqq#1\crqq}
\def\titul #1\par{{\bf#1}\par\nobreak\medskip}
\def\sub #1\par{\bigskip\noindent{\bf#1}\par\nobreak\medskip}

\chardef\\=`\\
\def\,{\thinspace}

\font\mflogo=logo10
\def\mf{{\mflogo META}\-{\mflogo FONT}}

\chyph

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


\titul Uk�zka a popis u�it� p�sma slabikar.

P�smo {\tt slabikar} je t�eba instalovat do \TeX{}ov�ho
syst�mu. Soubory {\tt slabikar.tfm} a {\tt slabikar.mf} za�a�te na
obvykl� m�sta a nastavte sv� {\tt dvi} ovlada�e tak, aby automaticky
vyvolaly program \mf, pokud pot�ebuj� novou bitovou mapu {\tt*pk}.
Pak m��ete nov� p�smo
pou��t jednodu�e. Do sv�ho {\tt *.tex} souboru t�eba
napi�te:

\begtt
\font\pis = slabikar at1cm
\pis \baselineskip = 1cm
\obeylines
A~--- p�smeno pro tebe,
and�l let� do nebe,
And�lka mu �t�st� p��la
a ��te�kem zam�vala,
aby neul�t
a vr�til se zp�t.
\end
\endtt

Na v�stupu pak dostanete:

{\slabikar
\obeylines
A~--- p�smeno pro tebe,
and�l let� do nebe,
And�lka mu �t�st� p��la
a ��te�kem zam�vala,
aby neul�t
a vr�til se zp�t.
}

\sub Principy p�sma

Odpov�� na ot�zku, jak je p�smo ud�l�no, �e jednotliv� p�smena na sebe
p�esn� navazuj�, jsem za�adil do �l�nku {\it Psan� p�smo ze slabik��e},
kter� jsem poskytl pro Zpravodaj CSTUGu~4/97.
Zde budu stru�n�: ka�d� slovo m� vp�edu (vlevo) automaticky p�ipojenou
\uv{n�b�hovou ��rku} a na konci (vpravo) \uv{dotahovou ��rku}. Je vyu�ito
tzv.~\uv{hrani�n�ch znak�} v~\TeX{}u a \uv{zobecn�n�ch ligatur}.

\sub Velikosti p�sma

P�irozen� velikost p�sma (tzv.~\uv{design size}) je 25\,pt.
Tato velikost vych�z� z~n�sleduj�c� p�smov� osnovy:

\medskip

\vbox{\offinterlineskip \bigskip
\def\rightbox#1{\vbox to0pt{\vss
   \hbox to\hsize{\hrulefill\ #1\strut}\kern-3.5pt}}
\rightbox{horn� akcentov� dota�nice, 18\,pt}
\vskip4mm
\rightbox{verz�lkov� dota�nice, 14\,pt}
\vskip7mm
\rightbox{st�edn� v��ka p�sma, 7\,pt}
\vskip7mm
\vbox to 0pt{\vss\hbox{\Pis\ �i�ky}\vskip-7mm\kern.15pt}
\rightbox{��a��}
\vskip7mm
\rightbox{spodn� dota�nice, $-7$\,pt}
}
\bigskip

P�irozen� velikost p�sma je m��ena od spodn� dota�nice k~horn� akcentov�
dota�nici. To d�v� zm�n�n�ch 25\,pt. Zavedeme-li font pomoc� kl��ov�ho
slova {\tt scaled} nebo {\tt at}, pak p�smo geometricky zv�t�ujeme nebo
zmen�ujeme a velikost p�sma m��e b�t jin�. Z~obr�zku vid�me, �e pokud
vol�me velikost {\tt \\baselineskip} stejnou nebo v�t��, ne� velikost
p�sma, pak se p�i nulov�m {\tt \\lineskiplimit} nemus�me b�t rozhozen�
��dkov�n�. V~uk�zce ver�ov�nky na p�smeno~A byla volena
velikost p�sma 1cm a {\tt \\baselineskip} m�la rovn� tuto hodnotu. Pro
psan� p�smo je toto zv�t�en� na 1 centimetr velmi vhodn�.

N�sleduj�c� �daje se vztahuj� k~p�irozen� velikosti p�sma, tj. 25\,pt.
Z�kladn� velikost mezislovn� mezery je~3\,pt, hodnota rozta�en� je
2,5\,pt a hodnota sta�en� je 1\,pt.
Dodate�n� velikost mezery pro {\tt\\spacefactor}$\geq2\,000$ je 2,5\,pt.
Jednotka {\tt ex} je 7\,pt a jednotka
{\tt em} je 20\,pt. ���ka ka�d� ��slice je 8\,pt.

Vid�me, �e mezislovn� mezera je v~pom�ru k~velikosti p�sma pom�rn�
mal�. Mezi slovy psan�mi mal�mi psac�mi p�smeny je tato mezera
vyhovuj�c�. Podstatn� m�n� vyhovuj�c� se m��e zd�t p�ed velk�m p�smenem,
p�edev��m jako mezera mezi v�tami. Proto doporu�uji nastavit:

\begtt
\sfcode`?=2000  \sfcode`!=2000
\endtt
\noindent
aby byla mezi v�tami pou�ita dodate�n� mezislovn� mezera.

Sklon p�sma je nastaven na 0,3 jednotky na jednotku v��ky.
Italick� korekce znak� jsou nulov�, s~v�jimkou velk�ch p�smen 
F, O, P, S, �, T, �, V~a W.


\sub Poml�ky a uvozovky.

V~p�smu je prost�ednictv�m ligatur zachov�na obvykl� \TeX{}ovsk� konvence
pro sazbu poml�ek. Samotn� \uv{{\tt -}} vede na spojovn�k, kter� je kreslen
pon�kud n��e, ne� st�edn� v��ka p�sma. Dvojice \uv{{\tt--}} vytvo��
kr�tkou poml�ku, kter� se hod� pro spojen� ve v�znamu \uv{a�} mezi ��sly.
Je kreslena p�esn� na st�edn� v��ku p�sma. Tato poml�ka jev v~p�smu
toto�n� se znakem \uv{m�nus}. Ve stejn� v��ce je i dlouh� poml�ka, kterou
dostaneme z�pisem \uv{{\tt ---}}.

Dv� ��rky za sebou p�ech�zej� na levou �eskou uvozovku a dva lev� apostrofy
vedou na pravou uvozovku. Je proto mo�n� dvoj� zp�sob z�pisu uvozovek:

\begtt
Uvozovky ,,takov�`` nebo tak� \uv{takov�}.
\endtt

Druh� zp�sob pou�it� uvozovek vych�z� z~p�edpokladu, �e je makro {\tt\\uv}
definov�no nap��klad takto:

\begtt
\chardef\clqq=254  \chardef\crqq=255
\def\uv#1{\clqq#1\crqq}
\endtt

Takov� definice b�v� v~�esk�ch stylech nebo form�tech obvykl�.


\sub Matematika, nebo sp��e po�ty

V~p�smu jsou implementov�ny ��slice a n�kter� po�etn� zna�ky pro s��t�n�,
n�soben� a rovnost a nerovnosti. Takov� po�etn� �kony d�laj� ��ci v~prvn�ch
a druh�ch t��d�ch. Kdy� jsem j� chodil do �koly, ��kali jsme tomuto
po��n�n� \uv{po�ty}, dnes se to vzne�en� naz�v� \uv{matematika}.

Znaky \uv{plus}, \uv{rovn� se}, kulat� z�vorky, hranat� z�vorky a znaky
\uv{je v�t��} a \uv{je men��} jsou ve fontu na pozic�ch podle ASCII, tak�e
je m��eme s�zet p��mo bez p�echodu do matematick�ho m�du:

\begtt
5 + 7 = 12,\quad  (1 + 2) < (2 + 2)
\endtt

Mezery kolem oper�tor� doporu�uji pou��vat. Po zpracov�n� dost�v�me:
\bigskip
{\slabikar 5 + 7 = 12,\quad  (1 + 2) < (2 + 2)}
\bigskip

Znak \uv{m�nus} nen� na ASCII pozici znaku \uv{{\tt-}}. Jak bylo �e�eno
v~p�edchoz�m odstavci, je na t�to pozici je spojovn�k. Proto�e je ale
kr�tk� poml�ka zcela shodn� se znakem \uv{m�nus}, je mo�no tuto operaci
s�zet pomoc� \uv{{\tt--}}, nap��klad \hbox{\tt 5 -- 7 = --2}.
Znak \uv{m�nus} od spojovn�ku nerozli�uj� jenom ignoranti.

Pod�v�me-li se na pozice a kresby dal��ch znak�, kter� lze pou��t pro
\uv{po�ty}, zjist�me, �e m��e vyhovovat n�sleduj�c� definice:

\begtt
\chardef\*=23
\def\.{\raise1ex\hbox{\kern.1em.}}  \def\:{\raise.5ex\hbox{:}}
2 \* (3 + 5) = 16, \quad (15 -- 3) \: 3 = 4, \quad 2 \. (3 + 5) = 16.
\endtt

{\slabikar
\chardef\*=23
\def\.{\raise1ex\hbox{\kern.1em.}}  \def\:{\raise.5ex\hbox{:}}
2 \* (3 + 5) = 16, \quad (15 -- 3) \: 3 = 4, \quad  2 \. (3 + 5) = 16.
}
\bigskip

Kdybychom nutn� cht�li s�zet po�ty v~matematick�m m�du, pak by bylo pot�eba
nastavit n�sleduj�c� hodnoty. Doporu�uji takov� nastaven� prov�st lok�ln� a
nav�c se na konci skupiny postarat o~obnoven� p�vodn� hodnoty
{\tt\\fontdimen6\\textfont2}. Tento registr toti� nen� lok�ln�.

\begtt
\mathcode`+="202B     \mathcode`-="2015
\mathcode`=="303D     \mathcode`<="303C    \mathcode`>="303E
\mathchardef\*="2017  \def\:{\mathop{\raise.5ex\hbox{\pis:}}}
\def\.{\mathop{\raise1ex\hbox{\pis\kern.1em.}}} \let\cdot=\.
\mathcode`(="4028     \mathcode`)="5029
\textfont0=\pis
\fontdimen6\textfont2=\fontdimen6\textfont0
$ 1-3=-1,  \quad   2\*(2+2)=8 $
\endtt
{\slabikar
\mathcode`+="202B     \mathcode`-="2015
\mathcode`=="303D     \mathcode`<="303C    \mathcode`>="303E
\mathchardef\*="2017  \def\:{\mathop{\raise.5ex\hbox{:}}}
\mathcode`(="4028     \mathcode`)="5029
\textfont0=\pis
\fontdimen6\textfont2=\fontdimen6\textfont0
$ 1-3=-1,  \quad   2\*(2+2)=8 $
}
\bigskip

Bohu�el, p�smo nen� p�ipraveno k~sazb� rovnic (k~sazb� alfabetick�ch
prom�nn�ch) v~matematick�m m�du. To znamen�, �e nelze o�ek�vat uspokojiv�
v�sledek po zaveden� {\tt\\textfont1=\\pis}, tak�e to ani nezkou�ejte.
P�smena toti� nejsou v~matematick�m m�du obklopena hrani�n�mi znaky, tak�e
vych�zej� jako ne�pln�. Uspokojiv�m �e�en�m by bylo vytvo�it samostatn�
font pro matematickou kurz�vu psan�ho p�sma.

Jednoduch� rovnice ale m��eme s�zet v~textov�m m�du:

\begtt
2 \. (x + 3) = 10, \quad x + 3 = 5, \quad  x = 2.
\endtt
{\slabikar
\def\.{\raise1ex\hbox{\kern.1em.}}
2 \. (x + 3) = 10, \quad x + 3 = 5, \quad x = 2.
}
\bigskip
\noindent
nebo v~matematick�m m�du, ale ka�dou prom�nnou mus�me vlo�it do samostatn�ho
boxu:

\begtt
\def\p#1{\hbox{\pis#1}}
$ 2 \. (\p x + 3) = 10, \quad \p x + 3 = 5, \quad  \p x = 2. $
\endtt

\sub O�et�en� v�jimek

P�smo je navr�eno tak, aby znaky automaticky napojovaly v~\uv{b�n�m}
textu. Budeme-li cht�t vys�zet n�co m�n� obvykl�ho, mus�me prov�st ru�n�
korekce. Nap��klad text {\tt olsak@math.feld.cvut.cz} nevych�z� dob�e:

\bigskip
{\slabikar
olsak@math.feld.cvut.cz
}
\bigskip

Je to proto, �e znaky \uv{zavin��} a \uv{te�ka} se b�n� nevyskytuj� uvnit�
slova. Okoln� p�smena pak nejsou spr�vn� dota�ena. Dotahy pro tato p�smena
zajist�me nap��klad vlo�en�m nulov�ho kernu pomoc� italick� korekce:
{\tt olsak\\/@\\/math.\\/feld.\\/cvut.\\/cz}:

\bigskip
{\slabikar
olsak\/@\/math.\/feld.\/cvut.\/cz
}
\bigskip

Metriky velk�ch p�smen jsou navr�eny tak, aby na n� mohla p��mo nav�zat
p�smena mal�. Ve zkratk�ch to pak nemus� dopadnout nejl�pe. Mnohdy pom��e
p�idat italickou korekci. Srovnejte:

\bigskip {\tt CSTUG:}  {\pis\ CSTUG}, \qquad
{\tt CS\\/T\\/UG:}  {\pis\ CS\/T\/UG}.
\bigskip

Pro �plnost uv�d�m doporu�enou definici loga \TeX{} pro toto p�smo:

\bigskip
{\tt\\def\\TeX\char`{T\\lower.7ex\\hbox{E}\\kern-.17emX\char`}\ \\TeX:}
\quad {\pis \def\TeX{T\lower.7ex\hbox{E}\kern-.17emX} \TeX}


\sub Seznam v�ech znak�

Rozlo�en� znak� vych�z� z~ASCII a akcentovan� p�smena z~ISO8859-2.

Na pozic�ch 1--7 jsou n�kter� speci�ln� spojovac� a dotahov� ��rky.
Na pozic�ch 10--18 jsou n�kter� alternativn� p�smena mal� abecedy pro ��ely
optick�ho vyrovn�n� n�kter�ch dvojic.

Pozice 21 je \uv{m�nus} alias krat�� poml�ka, pozice 22 obsahuje dlouhou
poml�ku a pozice 23 k���ek pro znak n�soben�:
\bigskip
{\pis -- --- \char23}
\bigskip

Pozice 33 a� 47 obsahuj� b�n� ASCII znaky:
\bigskip
{\pis ! \ \char34\ \ \# \ \$ \ \% \ \& \ ' \ ( \ ) \ * \ + \ , \ - \ . \ /}
\bigskip

Na pozic�ch 48 a� 57 jsou ��slice:
\bigskip
{\pis 0 1 2 3 4 5 6 7 8 9}
\bigskip

Dal�� znaky n�sleduj� na pozic�ch 58 a� 64 podle ASCII sady:
\bigskip
{\pis : \ ; \ < \ = \ > \ ? \ @}
\bigskip

Pozice 65 a� 90 jsou vyhrazeny p�smen�m velk� abecedy:
\bigskip
{\pis A~B C D E F\/ G H I~J K~L M N O\/ P\/ Q R S\/ T\/ U~V\/ W\/ X Y Z}
\bigskip

N�sleduje kr�tk� �sek b�n�ch ASCII znak� na pozic�ch 91 a� 96:
\bigskip
{\pis [ \ \char92\ \ ] \ \char94\ \ \char95\ \ `}
\bigskip

V~prostoru pro mal� p�smena na pozic�ch 98 a� 122 najdete fragmenty t�chto
p�smen, kter� samy o~sob� vypadaj� dosti nezvykle, ale jsou vhodn� pro
napojov�n� uvnit� slov:
\bigskip
{\pis abcdefghijklmnopqrstuvwxyz}
\bigskip

N�sleduj� z�v�re�n� �ty�i znaky ASCII tabulky na pozic�ch 123 a� 126:
\bigskip
{\pis \char123\ \ | \ \char125\ \ \char126}
\bigskip

Akcentovan� p�smena �esk� abecedy jsou um�st�na podle ISO8859-2.
Akcentovan� znaky ostatn�ch abeced chyb�j�. P�smo (zat�m) neobsahuje ani
znaky slovensk� abecedy, kter� v~�esk� abeced� nejsou zastoupeny.

Na pozici 141 je znak promile a na posledn�ch dvou pozic�ch 254 a 255 jsou
znaky pro uvozovky:
\bigskip
{\pis \char141\ \ \char254\ \ \char255}
\bigskip

Ostatn� pozice ve fontu nejsou obsazeny.


\sub Z�v�rem


Hotov� p�smo zve�ej�uji v~\mf{}ov�m zdroji na Internetu
k~voln�mu pou�it�. Najdete je na obvykl�m m�st�:

\bigskip
{\tt ftp://math.feld.cvut.cz/pub/olsak/slabikar}.
\bigskip


\pisnormal \baselineskip=23pt \lineskiplimit=-10pt
\def\TeX{T\lower.7ex\hbox{E}\kern-.17emX}
\righthyphenmin=2  \emergencystretch=2em
\hbadness=2900

Toto p�smo je pot�eba br�t sp�� jako p��klad, co v�echno \TeX{} dovede.
Nep�edpokl�d�m velk� nasazen� tohoto p�sma pro sazbu p���t�ch
slabik���. Dokonce takovou v�c ani nedoporu�uji.

V�echny uk�zky ve slabik��i a v~p�sank�ch, kter� jsem m�l mo�nost vid�t,
jsou ps�ny lidskou rukou a ne strojem. Samoz�ejm� smek�m p�ed kaligrafem,
kter� ty uk�zky vytvo�il. �lov�k m� na prvn� pohled dojem, �e to je
\uv{jak kdy� tiskne}. Fu�oval jsem tak� do kaligrafick�ho �emesla, a proto
dob�e v�m, �e pokud p�smo neobsahuje ��dn� ozdobn� prvky, mus� to napsat
skute�n� profesion�l. Ka�d� chybi�ka, kter� by se t�eba skryla za ozdobn�m
prvkem, je toti� vid�t.

D�le�it� ale je, �e p�smo v~dne�n�m slabik��i bylo skute�n� naps�no jen
\uv{jak} kdy� tiskne a nikoli ti�t�no doopravdy. P�smu tak nesch�z�
lidsk� rozm�r, kter� ten prv��k podv�dom� z~toho p�sma asi c�t�. Kdyby se
pro sazbu uk�zek pou�il stroj (t�eba�e \TeX), p�smo by tento rozm�r
ztratilo. Takov� p�smo by bylo chladn�, studen�, st�le stejn�, bez v�razu,
tedy vlastn� mrtv�. Nep�eji ��dn�m prv��k�m, aby se n�kdy v~budoucnu
s~takov�m chladn�m p�smem setkali. Pokud by snad n�koho napadlo m�m
Metafontov�m p�smem tisknout p�sanky nebo slabik��e, budu prvn�, kdo bude
proti. Rad�ji se nab�dnu jako kaligraf, kter� po�adovan� uk�zky
nap��e rukou.

\medskip
\hfill Petr Ol��k


\end
