\documentclass[twoside,titlepage,fleqn]{oss-2010}
\pdfoutput=1
% Pokial je to mozne, pouzivajte format 'pdfcslatex', 
% pdfcslatex subor.tex

% vsetky obrazky (vektorove vo formate PDF) ulozte do adresara 'figures'
% Obrazky z formatu .eps mozno do pdf konvertovat prikazom
% epstopdf obrazok.eps
%(epstopdf je sucastou texlive)
%
% Pouzivame vlastny styl LaTeXu 'oss-2010', prosim tieto
% nastavenia nemente !! 
%
\usepackage[utf8]{inputenc}
\usepackage{cite,wrapfig,url,mathptmx,czech} % czech % Stříž zásah
%\usepackage{fancyheadings}
\usepackage{fancyhdr}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{comment}
\usepackage{listings}
\usepackage{multicol}
\usepackage{dcolumn}
\usepackage[final]{showkeys}%color%notref%notcite%final
%\definecolor{refkey}{gray}{.4}
%\definecolor{labelkey}{gray}{.4}
%%
\usepackage[pdftex]{graphicx}
\DeclareGraphicsExtensions{.pdf,.eps,.png,.jpg,.mps}
\graphicspath{{figures/}}
%%
%% tlač !!!
\usepackage[pdftex,unicode,bookmarks=false]{hyperref}
%%
\def\rskip{\mskip.8\thinmuskip}%
\def\lskip{\mskip-.8\thinmuskip}%

\def\mx#1{\ensuremath{\boldsymbol #1}}%
\def\dmx#1{\ensuremath{\rskip\dot{\lskip\boldsymbol #1}}}
\def\ddmx#1{\ensuremath{\rskip\ddot{\lskip\boldsymbol #1}}}
\newcommand{\diag}{\mathop{\rm diag}\nolimits}

\def\tmx#1{\ensuremath{\rskip\tilde{\lskip\boldsymbol #1}}}

% redefinicia povodneho nastavenia, ako maju byt cislovane jednotlive
% vztahy.
% Ak to nie je nutne, prosim toto nastavenie nemente
\newtheorem{theorem}{\bf Theorem}[section]
\newtheorem{lemma}[theorem]{\bf Lemma}
\newtheorem{remark}[theorem]{\bf Remark}
\newtheorem{poznamka}[theorem]{\bf Poznámka}
\newtheorem{definition}[theorem]{\bf Definition}
\newtheorem{example}[theorem]{\bf Example}
\newtheorem{priklad}[theorem]{\bf Príklad}
\newtheorem{corollary}[theorem]{\bf Corollary}
\newenvironment{proof}{\par\medskip\noindent{\bf Proof.}}
 {\par\medskip}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Opakování symbolů binárních operací a relací při zalomení řádku
%% Autor: Josef Tkadlec tkadlec@fel.cvut.cz
\relpenalty =10000     % aby se nelámalo v jiných než ošetřených
\binoppenalty =10000
\exhyphenpenalty =1000 % aby spíše nouzově (implicitně je 50)
                       % "lokálně" lze zakázat {...}
\def\neq {\mathrel{\not=}}  % aby nedocházelo k lámání \not=/=
\let\ne=\neq
\def\OpakujPrikaz #1#2{\let #2=#1
  \def #1{#2\nobreak\discretionary{}{\hbox{$#2$}}{}}}
\def\OpakujZnak #1#2{\mathchardef #2=\mathcode`#1
  \activedef #1{#2\nobreak\discretionary{}{\hbox{$#2$}}{}}
  \uccode`\~=0 \mathcode`#1="8000 }
\def\activedef #1{\uccode`\~=`#1 \uppercase{\def~}}
\OpakujPrikaz {\neq }{\neqORI}  \let \ne=\neq
%\OpakujPrikaz {\leq }{\leqORI}  \let \le=\leq
%\OpakujPrikaz {\geq }{\geqORI}  \let \ge=\geq
\OpakujPrikaz {\leqq}{\leqqORI}  \let \le=\leqq \let \leq=\leqq
\OpakujPrikaz {\geqq}{\geqqORI} \let \ge=\geqq  \let \geq=\geqq
\OpakujPrikaz {\cup }{\cupORI}
\OpakujPrikaz {\cap }{\capORI}
\OpakujPrikaz {\times }{\timesORI}
\OpakujPrikaz {\cdot }{\cdotORI}
\OpakujPrikaz {\ldots }{\ldotsORI}
\OpakujZnak <{\lessORI}
\OpakujZnak >{\greaterORI}
\OpakujZnak +{\plusORI}
\AtBeginDocument {\OpakujZnak ={\eqORI} \OpakujZnak -{\minusORI}}
% Opakovani dalsich symbolu lze nadefinovat podobne.
% Aby fungovalo to \leqq a \geqq (nerovnost s rovnitkem, ne jen s
% jednou carkou), je treba pouzit
%\usepackage{amsfonts}
%\DeclareMathSymbol{\leqq}         {\mathrel}{AMSa}{"35}
%\DeclareMathSymbol{\geqq}         {\mathrel}{AMSa}{"3D}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%          CAST URCENA PRE VLASTNE DEFINICIE  AUTOROV
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% redefinicia vyhradeneho slova References
% pre clanok v cestine pouzite nasledujucu redefiniciu
% \renewcommand{\refname}{Literatura}
%\renewcommand{\refname}{Literatúra}
%\renewcommand{\figurename}{Obr\'azok}
%\renewcommand{\tablename}{Tabu\v{l}ka}

\setcounter{section}{0}
\setcounter{table}{0}
\setcounter{figure}{0}
\setcounter{equation}{0}

% Ak je to potrebné doplňte
\def\Qtiplot{\textsf{QtiPlot}}
\def\Kpl{\textsf{Kpl}}
%\def\ud{\mathrm{d}} % operator derivacie
%\def\mbf#1{\mbox{\boldmath$#1$}}
%\def\mbfs#1{\mbox{\scriptsize\boldmath$#1$}}


% Stříž vlastní
\usepackage{csbulacronym} % \XeTeX, \XeLaTeX
%\usepackage{keystroke}
\def\enter{
\begin{picture}(0,0)(0,0)
\global\setbox2=\hbox{\convertMPtoPDF{testy/enter/enter.1}{1}{1}}
\put(0,0.5){\copy2}
\end{picture}
}

\def\soubor#1{\textsc{#1}}
\def\format#1{\textsc{#1}}
\def\balicek#1{\textsf{#1}}
%\parindent=0pt
\usepackage{verbatim}
\usepackage{shapepar}
\overfullrule=3pt
\widowpenalty=10000
\clubpenalty=10000
\usepackage{afterpage}

\newdimen\majdelka \majdelka=\textwidth%
\advance\majdelka by -4pt%

\font\mamatika=cmmib10 at 10pt %cmbsy10 
\DeclareRobustCommand\CSTUG{\leavevmode{${\mamatika C}$}\kern-.2em \lower .67ex\hbox{${\mamatika S}$}\kern-.145em TUG} 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\begin{center}
{\noindent\sf\bfseries\Large Otvorený softvér vo vzdelávaní,
výskume a~v~IT riešeniach \\[2mm] Žilina 1.-4. júla 2010} 
% Zásah Stříže by byl - na \,--\,
\end{center}

\vspace{20mm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%           TU ZACINA VAS PRISPEVOK...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{center}
{\bf \large OD NUL A~OBČASNÝCH JEDNIČEK KE GENEROVANÝM\\KNIHÁM FONTÍKŮ A~KANDŽÍKŮ}
\end{center}


\begin{center}
{\bf\small STŘÍŽ, Pavel, (CZ)}
\end{center}
% pre Cesku republiku pouzivajte prosim CZ
% pre Slovensku republiku pouzivajte prosim SK

%\vspace{6mm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%           TU ZACINA  TEXT CLANKU
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{6mm}

%\hspace{5mm}
\noindent\hfil
\parbox[t]{.9\textwidth}{\fontsize{10pt}{0.17in}
\selectfont\noindent{\bf Abstrakt.}
Článek je náhledem do světa generovaných knih náhledů písem. Ať už písem s~rozsahem 128 či 256 znaků (nespisovně sedmi- a~osmibiťáky) nebo písem a~jejich glyfů používaných v~sazbě ČJKV (čínština, japonština, korejština, vietnamština; nespisovně šestnáctibiťáky). Smyslem článku není poukázat na všechny nuance téměř ročního projektu, spíš má čtenáři zamotat hlavu tím, cože to v~tom \TeX u, jeho přátelích a~ve svobodném software, lze všechno připravit. Čtyři vygenerované knihy vydal \href{http://www.striz.cz/}{nakladatel Martin Stříž}.
}

\vskip24pt
\section{Úvod aneb o~jednom snu}

Když jsem byl žák končící povinnou školní docházku (začátek devadesátých let minulého století), tak jsme jako děcka řádili na osmibiťácích. Záhy přichází osobní počítače s~mikroprocesorem, operačním systémem DOS a~chvíli na to s~grafickým uživatelským rozhraním. Tehdy to byl Microsoft Windows 3.11. Éra šestnáctibiťáků. Zde jsem se poprvé setkal s~editorem T602, %Microsoft Wordem, 
AmiPro a~Mapou znaků. Srdíčko žáka zaplesalo, že by bylo hezké vidět všechny znaky z~nabízených písem. Po dvaceti letech se sen stal skutečností, viz další strana.

\newdimen\docistit \docistit=-4pt

\afterpage{%
%design 1--3
{\fboxsep=0pt \fboxrule=2pt%
\noindent%
\hfil
\setbox4=\hbox{%
\fbox{\includegraphics[viewport=28 16.5 725.5 577, clip, angle=90, height=0.42\textheight]{testy/design/design-kniha1.pdf}}%
\ \ 
\fbox{\includegraphics[viewport=29 24 727 575.5, clip, angle=90, height=0.42\textheight]{testy/design/design-kniha2.pdf}}%
}%
\advance\docistit by \wd4%
\unhcopy4\smallskip%

\noindent\hfil
\fbox{\includegraphics[viewport=25 19 1084 828, clip, width=\docistit]{testy/design/design-kniha3.pdf}}
}% Fbox, lokální skupina.
\vfill

\hfil Tři designy z~prvním tří knih. Výsledek %autorských 
snah a~řady příjemných experimentů.
\newpage
}

Autorský záměr bylo vypsat všechny glyfy (kresby znaků) z~vybraných písem, odstranění opakujících se znaků, optimalizovat rozložení do obdélníku, a~samozřejmě, vše automatizovaně s~vektorovými výstupy. Navíc s~nějakou zajímavou úvodní stránkou a~rejstříkem.


\section{\TeX}

Typografický systém \TeX\ je v~mnoha ohledech komplexní nástroj. Je to dílo z~pohledu typografie, programování, matematiky i~možnosti automatizace. Základem práce u~písem jsou formáty \format{pfb} (kresba znaků) a~\format{tfm} (metriky). Po instalaci \TeX ové distribuce (např. pomocí \href{http://www.tug.org/texlive/}{\TeX~Live}) je řada písem  připravená k~ostrému použití. Zde naše bádání začneme.

\subsection{Výpis znaku}
\newdimen\kus \kus=4pt
\def\muj{\\[\kus]}

Vezměme si písmeno >>P<< od slova Pavel. To můžeme zapsat přímo z~klávesnice. Také můžeme využít informaci o~pozici znaku v~písmu, konkrétně >>P<< je $80_{10}$. Přeloženo do lidské řeči: v~ASCII tabulce najdeme písmeno >>P<< na pozici 80, což je číslo zapsané v~desítkové soustavě. Relativně snadno můžeme získat osmičkovou a~šestnáctkovou reprezentaci takového znaku. V~\TeX u použijeme příkaz \verb.\char. či stříškovou (bohužel ne střížkovou) konvenci.\muj
\verb.\char'120 \char80 \char"50 ^^50.\muj%\mbox{}\hfil
Získáváme: \char'120 \char80 \char"50 ^^50. Pokud tedy nevíme jak nebo neumíme vygenerovat znaky přímo, můžeme použít tuto zkratku. Při použití cyklu místo konstanty, nyní hodnota $80_{10}$, použijeme proměnnou, jak si ukážeme na této a~další straně.%v~kapitole~\ref{vypis}.

\subsection{Výpis všech znaků či glyfů}

Dáme si první náročnější úkol. Budeme chtít vypsat všechny dostupné znaky používaného písma v~\TeX u. Vezmeme si například \TeX ové písmo \verb.csr10.. Rychlý náhled v~podobě tabulky v~\soubor{pdf} získáme makrem \verb.testfont., tedy zapsáním:\muj %\\[-3pt]
\verb.pdftex testfont.\enter\\%\mbox{}\hfil
\verb.csr10.\enter\verb,           ,\\
\verb.\table\bye.\enter\verb,      ,\muj
Ze začátku je to nezvyk, ale budeme-li chvíli výstup zkoumat, najdeme tam osmičkovou i~šestnáctkovou reprezentaci znaků. Také vidíme, že maximum je 256 znaků. Nevidíme ani kerningy. Jedná se o~přibližování a~oddalování párů znaků, k~tomu je potřeba zobrazit například souvislý text. Také není těžké si představit, že při tisících fontů (to je průměrná galerie) by byl při tisku náhled jednoho písma na stránku extrémně finančně náročný. Zkusíme si proto vlastní výpis.

\subsection{Definovaný výpis}
\label{vypis}

Výhodou definovaného výpisu je, že máme plnou kontrolou nad rozsahem vypisovaných znaků. Lze si přizpůsobit velikost písma, řádkový proklad, případně si navrhnout dosti specifický design. Můžeme si kontrolovaně vypisovat páry znaků kvůli kerningu. Na ukázku zvolíme netradiční vektorové písmo s~japonskou slabičnou abecedou hiragana.\\[-15pt]
\verbatiminput{zdrojak-vypis}

Výstupem získáváme:\\
\input zdrojak-vypis

Můžeme si před či za glyfem vypsat jeho číselnou reprezentaci užitím \verb.\the\citac.. V~té chvíli však zjistíme, že u~většiny písem není všech 256 pozic obsazených. To při jisté jednotě zobrazování činí nemalé potíže. Jednou máme před sebou základní sadu 26 znaků, vedle toho písma s~diakritickými a~speciálními znaky, jednou s~a~jednou bez číslic atd. 

Naši ukázku si rozšíříme. Abychom nemuseli měnit rozsah ručně (u~hiragany by byl vhodný od 1 po 83), lze si změřit a~otestovat délku nebo výšku znaku. Pokud je délka nulová, čítač a~neexistující glyf se nezobrazí.\\[-15pt]
\verbatiminput{zdrojak-vypis-b}

Výstupem dostáváme %automaticky 
očíslovaný seznam glyfů katakany bez prázdných pozic.

{\parindent=0pt
\input{zdrojak-vypis-b}
}

Nyní vidíme, že kdybychom chtěli zajistit design do cca definovaného poměru obdélníku pro více písem, tak to není triviální úloha. První čtyři řádky jsou v~pořádku, pátý je příliš krátký. Jedna z~možností je postupné zvětšování/zmenšování velikosti písma, např. metodou půlení intervalu, ovšem i~tak zůstává nevýhodou nedotažení posledního řádku. 
%Vrátíme se k této situaci v kapitole~\ref{zaplnenistrany}.



\subsection{Prezentování písem}

Grafici a~designéři si prezentují svá písma nejrůznějšími způsoby. Zde je několik náhledů na \href{http://moorstation.org/typoasis/designers/klein/}{Kleinova písma}. Jedná se o~\format{ttf} \href{http://moorstation.org/typoasis/designers/klein04/deco02/pc/DoubleFaces.zip}{DoubleFaces}, \href{http://moorstation.org/typoasis/designers/klein04/deco/pc/RodGauApes.zip}{RodGauApes Initials} a~\href{http://moorstation.org/typoasis/designers/klein04/deco02/pc/FilledABC.zip}{FilledABC} z~roku 2004. U~prvního zmíněného náhledu je potřeba podotknout, že \href{http://moorstation.org/typoasis/tbp/talks/manfred/intro.htm}{Manfred Klein} byl mezi úplně prvními, kteří začali vyvíjet 3D~písma, chceme-li písma s~3D~efekty.

\noindent
\href{http://moorstation.org/typoasis/designers/klein04/deco02/doublefaces.htm}{\includegraphics[height=3cm]{testy/klein/DoubleFaces.PNG}}
\hfill
\href{http://moorstation.org/typoasis/designers/klein04/deco/rodgau_apes.htm}{\includegraphics[height=3cm]{testy/klein/rodgau_apes.PNG}}
\hfill
\href{http://moorstation.org/typoasis/designers/klein04/deco02/filled_abc.htm}{\includegraphics[height=3cm]{testy/klein/FilledABC.PNG}}
%\smallskip


\subsection{Pangram}

Řada písmolijen prezentuje svá písma za použití pangramů (kontrola existence znaků, náhled písma při různých velikostech) a~souvislých textů (pohled na ligatury a~kerning párů).
\verbatiminput{zdrojak-pan}
\input zdrojak-pan

Nastavit specifickou velikost písma a~řádkového prokladu lze příkazem \verb.\fontsize., konkrétně např. \verb,\fontsize{13.5}{15}\selectfont,. Jedná se o~body (pt).

Ukážeme si výpis pangramu se změnou velikosti písma s/bez změny řádkového prokladu. Nejjednodušší ukázka se změnou velikosti písma je:

\verbatiminput{zdrojak-pan-a}

\noindent
Výstupem získáváme:
{\parindent=0pt
\input zdrojak-pan-a }
\bigskip

\noindent
Následuje ukázka se zásahem do řádkového prokladu:
\verbatiminput{zdrojak-pan-b}

\noindent
Výstupem dostáváme:
\medskip

{\parindent=0pt
\input zdrojak-pan-b }

\subsection{Balíček \textsf{shapepar}}

Pokud chceme vysázet výpis znaků do definovaného obdélníku, můžeme použít \TeX ový balíček \href{http://ctan.org/tex-archive/macros/latex/contrib/shapepar/}{\textsf{shapepar}}. Do preambule přidáme \verb,\usepackage{shapepar},, \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/shapepar/shapepar.pdf}{dokumentaci} nejrychleji získáme zapsáním v~příkazové řádce: \verb,texdoc shapepar,\enter\kern\wd2\kern-2pt.
\verbatiminput{zdrojak-shapepar}

\noindent
Výstupem získáváme všechny znaky (a~srdíčko navíc) písma \verb.wncyr10. ve třech verzích:

{\parindent=0pt
\input zdrojak-shapepar }

Zjistit automatizovaně zalomení řádků je zdánlivě náročný úkol. Autor použil přístup, že si výsledné \textsc{pdf} převedl na text a~z~něj potřebné detaily zjistil. Speciální znaky byly opět převedeny na \TeX ové sekvence s~příkazem \verb,\char,. 

\noindent
\verb,pdftotext -nopgbrk -raw -eol unix vstup.pdf vystup.txt,\enter

Řešení zdánlivě nejtěžšího problému, jak zajistit zaplnění celého definovaného obdélníku, spočívalo jen v~nalezení největší velikosti písma. Stačilo kontrolovat, zda-li je výstupní \textsc{pdf} na jedné straně, nebo již přeteklo na dvě strany. Mezi každým znakem se nastaví příkaz, který pruží. Tím se zajistí optimální rozložení po délce. Podobně se nechají pružit řádkové proklady. V~běžné sazečské praxi se používají příkaz \verb,\hfill, a~\verb,\vfill,. Výstupní \textsc{pdf} lze ořezat o~ochranný prostor nástrojem \verb.pdfcrop. nebo zjištěním bounding boxu, např. přes \href{http://pages.cs.wisc.edu/~ghost/}{GhostScript}. 
Ukázky zdrojových kódů jsou bohužel nad rámec tohoto článku.


\subsection{Rotace}

Praktickým problémem především u~rozsáhlých písmových projektů Manfreda Kleina byla jiná situace. Byly to opakující se kresby a~kresby otočené zrcadlením. U~náhledů totiž stačí jedna vizuální varianta a~uvolněný prostor lze využít na zvětšení písma. Připomeneme, že rotace a~zrcadlení nejsou již náročné operace na úrovni \TeX u samotného. Následující kód zpracuje znak >>Ž<< z~příjmení Stříž a~>>y<< kvůli testování hloubky znaků, to vše za pomoci balíčku \href{http://ftp.cvut.cz/tex-archive/macros/latex/required/graphics/grfguide.pdf}{\textsf{graphicx}} (dokumentaci lze získat opět přes \verb,texdoc graphicx,\enter\kern\wd2\kern-2pt):
\verbatiminput{zdrojak-rotace}

Existuje nespočet možností rotace, ale s~těmito třemi se lze setkat u~písem na úrovni \mbox{\format{ttf/otf}} nejčastěji. Zásadní je samozřejmě zrcadlové překlopení (2.\,možnost). Ukázky jsou následující:
%\medskip
%
\input zdrojak-rotace
.
Občas bylo možné se setkat i~s~inverzí, zešikmením a~dalšími transformacemi kreseb znaků.

\subsection{Identita a~podobnost znaků}

V~našem projektu bylo možné vyřadit stejné nebo velmi podobné znaky. To by \TeX\ uměl (především \href{http://www.luatex.org/}{Lua\TeX}), ale není to triviální problém. Na vyhledávání duplicitních a~otočených kreseb lze použít program FontForge, \url{http://fontforge.sourceforge.net/}.
%Znaky otočené nebo překlopené jsme ponechali, ale ukážeme si, jak by to bylo možné technicky vyřešit a vyřadit je. Situace je tedy taková, že máme vypsat všechny znaky písma tak, aby duplicity a stejné kresby znaků nebyly zahrnuty. 
%My si ukážeme srovnání glyfů (vyřazení duplicit) a srovnání originálu s jeho obrazem (vyřazení zrcadlového otočení).
% a jednoduchou automatizaci na úrovni jazyka FontForge.

FontForge je poměrně unikátní projekt, který umí pracovat s~písmy v~\href{http://fontforge.sourceforge.net/editexample.html}{grafickém režimu}, 
\href{http://fontforge.sourceforge.net/scripting.html}{dávkově} i~jako \href{http://fontforge.sourceforge.net/python.html}{knihovna Pythonu}. Má svůj vlastní \href{http://fontforge.sourceforge.net/scripting-alpha.html}{programovací jazyk} a~automatizovat s~ním operace s~písmy není výrazný problém.

V~článku nám na ukázky již prostor nezůstal, proto autor srdečně zve na přednášku na konferenci 
\href{http://ulabserv.fri.uniza.sk/ocs/index.php/OSSConf/OC2010}{OSSConf2010} (začátek července), a~také na \href{http://meeting.contextgarden.net/2010/}{čtvrté setkání \ConTeXt istů} a~konferenci \href{http://striz9.fame.utb.cz/texperience/}{\TeX perience~2010} (září; %Česká republika;
\href{http://brejlov.cz/}{mlýn Brejlov u~Prahy}; konference jsou pod záštitou Ministerstva školství, mládeže a~tělovýchovy České republiky). Akce společně organizují \href{http://www.cstug.cz/}{\CSTUG} a~\href{http://web.fame.utb.cz/}{FaME UTB ve Zlíně}.




\section{Zajímavosti kolem knih}

%\begin{figure}%[!hb]
\newdimen\mavyska \mavyska=3.3cm
\noindent
\hyperlink{uvodnilisty}{%
\raisebox{\mavyska}[0pt][0pt]{%
{\fboxrule=2pt \fboxsep=0pt%
\fbox{%
\includegraphics[angle=270, trim=20 20 40 20, clip, totalheight=\mavyska]{testy/uvodnilist/uvodnilist.pdf}%
}}}}
\hfill
\hyperlink{rejstrik}{%
{\fboxrule=2pt \fboxsep=0pt%
\fbox{%
\includegraphics[trim=0 1 3 1, clip, height=\mavyska]{testy/uvodnilist/rejstrik.pdf}%
}}}
\hfill
\hyperlink{xetex}{%
{\fboxrule=2pt \fboxsep=0pt%
\fbox{%
\includegraphics[page=5,trim=30 35 30 30,clip, height=\mavyska]{testy/uvodnilist/orezani.pdf}%
}}}
%\end{figure}

\hypertarget{uvodnilisty}{}%
\subsection{Úvodní listy}

S~úvodními listy jsme si ,,vyhráli``. Svět typografie má rád hladkost a~uhlazenost, matematici a~statistici mají rádi naopak náhodu a~chaos. Jak to spojit dohromady?

Vyzkoušeli jsme tuto cestu. Sazba náhodně volených znaků byla klasicky v~řádcích, ale jednotlivé znaky byly náhodně otáčeny a~posouvány tam či zpět z~aktuální pozice. Výsledkem se podařilo rozumné rozložení šedi na papíru se zahrnutým efektem náhodnosti.

Ukážeme si jeden z~možných principů, jak z~dostupné sady znaků zkontrolovaných a~vypsaných FontForgem náhodně (s~vracením i~bez vracení) vybírat. Zdrojový kód jednoduché ukázky může vypadat takto:
% prezentován na straně~\pageref{vybirej}.

%\begin{figure}[!bht]
\label{vybirej}
\verbatiminput{testy/uvodnilisty/d.sh}
%\end{figure}

Prezentovaný princip je prostý. 

V textovém souboru máme výpisy znaků, vždy jeden na každém řádku (písmeno nebo to může být příkaz). Spočteme celkový počet řádků takového souboru a~z~něj volíme řádek. Poté buď následuje zásah do souboru v~podobě vymazání voleného řádku (výběr bez navracení), nebo nikoliv (výběr s~vracením).


\hypertarget{rejstrik}{}%
\subsection{Rejstřík}

Tohle byla jedna ze zapeklitějších situací, které autor na sebe ušil, ale i~to se podařilo vyřešit. Charakteristické je, že u~každého písma je několik znaků písmem vysázených (Baf!), ty charakterizují malá písmena (>>af<<; mohlo by být i~>>á<<, zástupce diakritických znaků), verzálky (>>B<<) a~zástupce speciálních znaků (>>!<<). Takto čtenář hned vidí, co lze v~písmu přibližně očekávat. Ještě obecnější by bylo >>Báf2$\times$<<, kde je i~číslice a~matematický symbol. Inspirace vznikla z~rejstříku prezentovaného v~závěru \href{http://ftp.cstug.cz/pub/tex/CTAN/info/symbols/comprehensive/symbols-a4.pdf}{dokumentace} \verb,texdoc symbols,\enter\kern\wd2\kern-2pt.

Další charakteristiky rejstříku jsou, že je generovaný strana po straně kvůli velkému počtu písem v~každé knize, poté jsou strany spojeny při kompletaci. Každá strana začíná třídícím znakem. Kapitoly knihy jsou odlišeny řezem písma čísla stránky.

U~kandžíků jsou rejstříky navíc předgenerovány za pomoci nástroje Bash.



\subsection{Kompletace}%

U~PostScriptových souborů se používaly nástroje \verb,psselect, a~\verb,psbook,. U~zpracování \soubor{pdf} lze použít \LaTeX ový balíček \href{http://ftp.cvut.cz/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf}{\balicek{pdfpages}}. Máme-li například \soubor{pdf} o~osmi stranách, můžeme jej přesázet na dvě strany v~režimu $2\times2$ takto:
\verbatiminput{testy/pdfpages/vystup}

Výhodou zůstává, že se lze vrátit zpátky do sazby vkládané stránky nepovinným parametrem \verb,pagecommand,. V~ukázce si znak procenta (komentování řádku) z~pátého řádku přesuňte na začátek řádku čtvrtého.


\hypertarget{xetex}{}%
\subsection{\XeTeX}

Písma pro tři knihy fontíků byla získána konverzí do \soubor{tfm} (soubor metrik) a~\soubor{pfb} (kresba glyfů) nástroji \verb.afm2tfm.. V~rámci testů byly využity nástroje \verb,tftopl,, \verb.pltotf. a~\verb.vptovf.. Samozřejmě nástroje Bash, Sed, Cat či Tr byly na denním pořádku, především u~zpracování \verb.kanjidic. Jima Breena, \url{http://www.csse.monash.edu.au/~jwb/kanjidic.html}.


Jakmile jsme čelili více než 256 znakům v~jednom písmu, vyzkoušeli jsme \href{http://www.tug.org/xetex/}{\XeTeX}. Ten umí přímou práci s~kódováním \format{utf}-8. Umí zobrazit jeden znak několika způsoby, viz článek pravděpodobně v~\href{http://www.openmagazin.cz/}{openMagazinu} 5/2010. 

Můžeme pracovat s~názvem glyfu, včetně názvu \verb,.notdef, a~glyfů s~indexem nula. Takto lze zjistit počet definovaných glyfů přes různá písma a~dle toho upravit sazbu. V~navrženém rozvržení nevypadalo hezky, když byly například přítomny tři kandžíky v~celém okraji.

Rozmístění objektů bylo zrealizováno prostředím \verb.picture. a~načtení více než devíti parametrů v~jednom \TeX ovém příkazu bylo zrealizováno standardně přes vnořování příkazů. Jeden z~následovníků \TeX u, tzv. \href{http://www.luatex.org/}{Lua\TeX}, umí tuto možnost ještě elegantněji, ale o~tomto rozšíření \TeX u snad až někdy jindy.


\begin{figure}[t]%
\noindent%
{\fboxrule=2pt \fboxsep=0pt%
\fbox{\makebox[\majdelka][c]{%
\includegraphics[viewport=49 664.75 448 794,clip,width=0.75\textwidth]{testy/design/kandzi.pdf}
}}}%
\end{figure}




\subsection{Další zajímavosti}

Za zmínku stojí několik maličkostí.

\begin{itemize}
\itemsep-3pt
\item První kniha obsahuje 703, druhá 2632 a~třetí 2741 různých písem a~jejich řezů.
\item Na stahování dostupných písem z~Internetu byl na všechny možné i~nemožné způsoby použit program \verb,wget,.
\item Bitmapou byla vložena jen písma, která byla záměrně autorsky vytvořena tak, aby přesáhla technické možnosti písmových formátů.
\item Při výrobě knih se zpracovávají \format{ttf}, \format{otf}, \format{pfb} i~\format{dfont} formáty v~jednom konverzním běhu díky programu \href{http://fontforge.sourceforge.net/}{FontForge}. 
\item V~knize kandžíků bylo představeno 68 znaků a~znamének latinky, 197 speciální glyfů spolu s~hiraganou a~katakanou a~6376 kandžíků.
\item Jako doplněk poslední knihy vznikla postupnými výběry a~natažením \href{http://en.wikipedia.org/wiki/File:2230_Basic_Kanji.svg}{2230 kandžíků} přes balíček \balicek{pdfpages} metrová housenka. 
\item Na tisk byly předány \format{pdf} ve velikostech 3~\format{mb} (housenka), 101~\format{mb} (kandžíci), 179~\format{mb} (fontíci~1), 255~\format{mb} (fontíci~2) a~706~\format{mb} (fontíci~3).
\item Váha knih je 1,6~kg (kandžíci), 2,2~kg (fontíci~1), 2,3~kg (fontíci~2) a~3,7~kg (fontíci~3).
\end{itemize}


\section{Závěrem snění do budoucna}

Na knihy by snad mohly navázat další dva díly, opět s~trochu jiným designem. První představující projekt \href{http://www.ceskefonty.cz/}{\texttt{www.ceskefonty.cz}} s~různými transformacemi písem a~druhý díl s~náhledy 10.000 písem a~jejich řezů galerie \href{http://www.ultimatefontdownload.com/}{\texttt{www.ultimatefontdownload.com}}, která je dostupná za cenově přijatelných 19,99~\format{usd}. 

Lze se těšit na knihu čínských znaků, kterých je víc než sto tisíc? Možná, možná až bude \format{utf}-16 na denním pořádku.

Autor se s~vámi rozloučí náhledem na jedno z~Kleinových písem, kde je vidět, že pomocné a~pracovní nákresy (většinou nad rozsahem úvodních 256 znaků) musely být z~náhledů odstraněny. Spodní obrázek je zvětšenina znaku~>>A<< ze zmíněného písma z~horního obrázku na další straně. %~\pageref{zaver}.


\begin{figure}[p]
\label{zaver}

\centering
\includegraphics[width=0.8\textwidth]{testy/klein/fontlab.PNG}
\smallskip

\begin{minipage}{0.8\textwidth}
\centering
Náhled na písmo \href{http://moorstation.org/typoasis/designers/klein04/deco/rodgau_apes.htm}{RodGauApes Initials} od \href{http://moorstation.org/typoasis/designers/klein/index.htm}{Manfreda Kleina}, 2004. \\První reakce autora článku byla: ,,Sakra! Co je to tam za fleky?``
\end{minipage}
\vspace{5mm}

\includegraphics[width=0.8\textwidth]{testy/klein/ps_view.PNG}
\smallskip

\begin{minipage}{0.7\textwidth}
\centering
Oblíbený náhled autora v~programu \href{http://sourceforge.net/projects/psview/}{PS\_View} při výrazném\\zvětšení (nyní $26{,}8\times$). Glyf U\raisebox{0.05em}{+}0061 v~plné kráse.
\end{minipage}
\end{figure}


\vspace{5mm}
\noindent {\bf Kontaktní adresa} \vskip12pt
%\medskip

\noindent \textbf{Ing. Pavel STŘÍŽ, Ph.D.}\\
Ústav statistiky a~kvantitativních metod\\
Fakulta managementu a~ekonomiky\\
Univerzita Tomáše Bati ve Zlíně\\
Mostní 5139, CZ-760\,01 Zlín\\
\url{striz@fame.utb.cz}

\end{document}

