\chyph % pouzijte csplain \mag=\magstephalf \csaccents \raggedbottom \hsize=30pc % 30 pica \vsize=46pc % 46 řádků po 12pt (zhruba) \hoffset=.8cm \emergencystretch=4em \parindent=12pt \widowpenalty=10000 \clubpenalty=10000 \exhyphenpenalty=10000 \newcount\subnum \newcount\subsubnum \newwrite\fileref \newread\testin \newcount\numlink \newif\iflinecolor \linecolorfalse \def\beglink#1{} \def\endlink{} \def\aimlink#1{} \def\urllink#1{{\tt#1}} \def\zalozka#1{} \def\subtitle #1 | #2\par{\subsubnum=0 \advance\subnum by1 \bigskip\noindent{\llap{\raise15pt\hbox{\zalozka{#2}}\kapfont\the\subnum. }% \kapfont #1}% \writetoc\refsub{\ifnum\subnum=0 \else\the\subnum. \fi#1}% \par\nobreak\medskip} \def\subsub#1| #2\par{\advance\subsubnum by1 \bigskip\noindent{\llap{\raise15pt\hbox{\zalozka{ \space#2}}% \bf\the\subnum.\the\subsubnum\space}% \bf\let\CS=\bCS \let\AMS=\bAMS \let\LaTeX=\bLaTeX #1}% \writetoc\refsubsub{\the\subnum.\the\subsubnum\space #1}% \par\nobreak\medskip} \def\writetoc #1#2{{\noexpandcs\xdef\act{% \write\fileref{\noexpand\noexpand\noexpand#1{% \noexpand\the\noexpand\pageno}{#2}}}}\act} \def\url#1{{\tt #1}} \def\delejobsah{\bgroup \subnum=-1 \noindent {\kapfont Obsah} \bigskip \softinput \jobname.ref \immediate\openout\fileref\jobname.ref \egroup \vfil\break} \def\softinput #1 {\let\next=\relax \openin\testin=#1 \ifeof\testin \message{VAROVÃNÃ: pro vytvoÅ™enà obsahu TeXujte jeÅ¡tÄ› jednou.}% \else \closein\testin \def\next{\input #1 }\fi \next} \def\tocfill{\leaders\hbox{ . }\hfill} \def\refsub#1#2{\advance\subnum by1 \line{#2\unskip\tocfill\space#1}} \def\refsubsub#1#2{\advance\subnum by1 \line{\indent#2\unskip\tocfill\space#1}} \def\noexpandcs{\let\csplain=\relax \let\cslatex=\relax \let\CSfont=\relax \let\tt=\relax \let\AMS=\relax \let\TeX=\relax \let\LaTeX=\relax \let~=\relax \let\mf=\relax} \output={\noexpandcs \plainoutput} \font\mflogo=logo10 % METAFONT logo \font\boldsy=cmbsy10 % TuÄné \CS, \AMS. \font\titulfontinternal=csb10 scaled\magstep4 \font\titulboldsy=cmbsy10 scaled\magstep4 \def\titulfont{\titulfontinternal \let\CS=\bCS \let\boldsy=\titulboldsy} \font\kapfontinternal=csbx12 \font\kapboldsy=cmbsy10 at12pt \font\kaptt=cstt12 \def\kapfont{\kapfontinternal \let\CS=\bCS \let\boldsy=\kapboldsy \let\tt=\kaptt \let\sevenbf=\tenbf \let\LaTeX=\bLaTeX} \def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $} \def\bCS{{\boldsy C\kern-.1667em\lower.5ex\hbox{S}\kern-.04em}} \def\CSTeX{\CS\TeX} \def\CSTUG{\CS TUG} \def\CSfont{\CS\kern.1em font} \def\csplain{\CS\kern.1em plain} \def\mf{{\mflogo META}\-{\mflogo FONT}} \def\mp{{\mflogo META}\-{\mflogo POST}} \def\LaTeX{L\kern-.36em\raise.5ex\hbox{\sevenrm A}\kern-.12em\TeX} \def\twoe{$2_{\textstyle\varepsilon}$} \def\LaTeXe{\LaTeX\thinspace\twoe} \def\bLaTeX{L\kern-.3em\raise.5ex\hbox{\sevenbf A}\kern-.12em\TeX} \def\cslatex{\CS\LaTeX} \def\twoe{$2_{\textstyle\varepsilon}$} \def\LaTeXe{\LaTeX\thinspace\twoe} \def\AMS{$\cal A\kern-.166em\lower.5ex\hbox{$\cal M$}\kern-.075em S$} \def\bAMS{{\boldsy A\kern-.166em\lower.5ex\hbox{M}\kern-.075em S}} \def\ps{Post\-Script} \let\copyleft=\copyright %% Definice verbatim prostÅ™edà %% !verb. \catcode`\"=13 \def"{\hbox\bgroup\let"=\egroup\setverb\tt} \def\setverb{\def\do##1{\catcode`##1=12}\dospecials\obeyspaces} \def\begtt{\medskip\bgroup \nobreak\setverb \parskip=0pt %\parindent=0pt \def\par{\endgraf\penalty500 } \catcode`\"=12 \obeylines \startverb} {\catcode`\|=0 \catcode`\\=12 |gdef|startverb#1\endtt{% |tt#1|nobreak|egroup|penalty0|medskip|scannexttoken}} {\obeyspaces\gdef {\ }} \long\def\scannexttoken#1{\ifx#1\par\else\noindent#1\fi} %% ProstÅ™edà s puntÃkatými nebo ÄÃslovanými položkami %% \def\begitems{\medskip\bgroup\catcode`\*=13 \narrower} \def\enditems{\par\egroup\medskip} {\catcode`\*=13 \gdef*{\par\noindent\llap{$\bullet$\ }\ignorespaces} \gdef\numerate{% \numerate napsat tÄ›snÄ› za \begitems \def*{\par\advance\itemnum by1\noindent \llap{\bf\the\itemnum. }\ignorespaces}}} \newcount\bibnum \def\cit#1{\expandafter\ifx \csname b:#1\endcsname \relax \message{Warning: The bibitem #1 is not defined}[??#1]% \else [\csname b:#1\endcsname]\fi} \def\bib #1 {\smallskip\advance\bibnum by1 \immediate\write\fileref{\noexpand\bibref{#1}{\the\bibnum}} \noindent \llap{[\the\bibnum]\enspace}\ignorespaces} \def\bibref #1#2{\expandafter\gdef \csname b:#1\endcsname{#2}} \def\reference{\subtitle Reference | REFERENCE\par} \let\Red=\relax \let\Black=\relax \def\startcolor#1{} \def\stopcolor#1{} \def\newstart{\startcolor{Red}} \def\newstop{\stopcolor{Black}} \def\startcc#1#2{} \def\stopcc#1#2{} \def\new#1{\leavevmode\newstart#1\newstop} \def\newAbox#1{\Red\hbox{#1}\Black} \def\skrt#1{\let\barva=\Red \dimen0=\maxdimen \leavevmode \skrtslovo #1 {} } \def\skrtrule{\vrule height2.8pt depth-2.5pt} \def\skrtslovo #1 {\def\tmp{#1}\ifx\tmp\empty \else \ifdim\dimen0=\maxdimen \else \linecolortrue\barva \leaders\skrtrule\hskip \fontdimen2\the\font plus\fontdimen3\the\font minus\fontdimen4\the\font \Black\linecolorfalse \fi \setbox0=\hbox{#1}\dimen0=\wd0% \rlap{\box0}% {\linecolortrue\barva\skrtrule width\dimen0\Black\linecolorfalse}% \expandafter\skrtslovo\fi} \def\setbrackets{\catcode`!=0 \catcode`\[=1 \catcode`\]=2 } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Makra pro pdfTeX %%%%%%%%%%%%%%%%%%%%%%% \ifx\pdfoutput\undefined\else %%%% pdfTeX is used %%%%%%%%%% \ifnum\pdfoutput>0 \pdfhorigin=3mm \pdfvorigin=10mm \pdfpagewidth=14.5cm \pdfpageheight=22cm \ifx\pdfannotlink\undefined %%% Backward compatibility \let\pdfannotlink=\pdfstartlink \fi \def\beglink#1{% % ZaÄátek textu odkazu, #1 je klÃÄ odkazu \Green \pdfannotlink height9pt depth3pt attr{/Border[0 0 0]} goto name{#1}\relax} \def\endlink{\pdfendlink\Black} \def\aimlink#1{% % MÃsto cÃle odkazu, #1 je klÃÄ odkazu \expandafter\ifx \csname aim:#1\endcsname \relax \expandafter\gdef \csname aim:#1\endcsname {}% \vbox to0pt{\vss\hbox{\pdfdest name{#1} fith}\kern15pt}% \fi } \def\zalozka#1{\global\advance\numlink by1 \pdfdest num\numlink fith\relax {\let~=\space\pdfoutline goto num\numlink {#1}}} \def\pdfsetcmykcolor#1{\special{PDF:#1 \iflinecolor K\else k\fi}} \def\Red{\pdfsetcmykcolor{0.1 0.9 0.9 0.3}} \def\Black{\pdfsetcmykcolor{0 0 0 1}} \def\Green{\pdfsetcmykcolor{0.9 0.1 0.9 .3}} \def\Blue{\pdfsetcmykcolor{0.9 0.9 0.1 0}} \def\Orange{\pdfsetcmykcolor{0 0.7 1 .5}} \footline={\hss\Black\tenrm\folio\hss} \headline={\hss \csname cc:\the\pageno\endcsname} \edef\footnoterule{\noexpand\Black\footnoterule} \csname newcount\endcsname\ccnum \def\startcc#1#2{\def\ccval{#1}\ccnum=#2 } \def\stopcc#1#2{\loop \ifnum\ccnum<#2 \advance\ccnum by1 \expandafter\xdef\csname cc:\the\ccnum\endcsname {\noexpand\csname\ccval\noexpand\endcsname}\repeat} \def\startcolor#1{\csname#1\endcsname \write\fileref{\string\startcc{#1}{\the\pageno}}} \def\stopcolor#1{\csname#1\endcsname \write\fileref{\string\stopcc{#1}{\the\pageno}}} \pdfcompresslevel=9 \pdfinfo{/Author (Petr Olsak) /CreationDate (September 2002) /ModDate (\the\year-\the\month-\the\day) /Creator (TeX) /Producer (pdfTeX) /Title (CSTeX Manual) /Subject (Documentation) /Keywords (TeX, Czech+Sloavk localisation) } \pdfcatalog{/PageMode /UseOutlines}\relax \fi\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%% Konec maker PDFTeXu %%%%% %%%%%%%%%%%%%%%%%%%%%%% Titulni strana %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {\nopagenumbers \vglue 5cm \centerline{\titulfont Manuál k \CS\TeX{}u} \vskip 2cm \centerline{\titulfont Petr Olšák} \vfill \hrule \bigskip \noindent \hfil HnÄ›vanice, Morávka, Praha -- léto 2002, \newAbox{podzim 2012} \vfil\break Autor \TeX{}u je profesor Donald Knuth. \bigskip \TeX{} je ochranná známka American Mathematical Society. \bigskip Ostatnà v manuálu použité názvy programových produktů, firem apod. mohou být ochrannými známkami nebo registrovanými ochrannými známkami pÅ™ÃsluÅ¡ných vlastnÃků. \vfill Tento text je volnÄ› Å¡ÃÅ™en spoleÄnÄ› s~balÃkem \CSTeX. Jedná se o~referenÄnà manuál k tomuto balÃku. Text je k~dispozici ve formátech "tex" (\csplain), PostScript a PDF. Výchozà adresa textu je \url{ftp://math.feld.cvut.cz/pub/cstex/doc}. Text můžete tisknout a jinak použÃvat pro soukromé úÄely. V~nezmÄ›nÄ›ném stavu v elektronické podobÄ› jej můžete také distribuovat bez dalÅ¡Ãho omezenÃ. Nenà dovoleno tento text zveÅ™ejňovat v~pozmÄ›nÄ›ném stavu a publikovat jej v~papÃrové podobÄ› bez pÅ™edchozà dohody s~autorem. \bigskip This document is free distributed as a part of the \CSTeX{} package. It is a reference manual of the \CSTeX. It is available in formats "tex" (\csplain), PostScript and PDF. The base URL of it is \url{ftp://math.feld.cvut.cz/pub/cstex/doc}. You can print this document or use it in another way only as an individual end-user. If you don't do any change in this document then you can distribute it in electronical form without any limitation. It is not permitted to distribute this document in changed versions or to publish it in hardcopy form without previous agreement with the author. \bigskip This original is written in Czech language. The translation into other languages are welcome. \vfill Verze textu 15. 5. 2003 \leavevmode\newAbox{Verze textu 30. 11. 2012} \bigskip \copyleft{} RNDr. Petr Olšák, 2002\newAbox{, 2012} \bigskip %\leavevmode\newAbox{\bf UpozornÄ›nÃ: tato verze textu je provizornÃ.} %\leavevmode\newAbox{\bf BÄ›hem nÄ›kolika týdnů se jeÅ¡tÄ› bude mÄ›nit.} \break } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \delejobsah \subtitle Úvod | ÚVOD %%%%%%%%%%%%%%%%%%%%% \new{Po skoro deseti letech se k tomuto textu vracÃm, abych jej aktualizoval. VeÅ¡keré zmÄ›ny jsou vyznaÄeny touto barvou. ÄŒerný text je naopak původnà z roku 2003. NabÃzÃm Ätenáři dva bonbónky v jednom: podrobnou technickou dokumentaci i pohled do historie.} V~tomto manuálu se pokusÃm vyÄerpávajÃcÃm způsobem popsat vlastnosti \CSTeX{}u. Z~tohoto důvodu to asi nebude jednoduché Ätenà pro \TeX{}ové zaÄáteÄnÃky. TÄ›m doporuÄuji nejprve pÅ™eÄÃst~\cit{prvni}. \CSTeX{} je sada \TeX{}ových maker, fontů, vzorů dÄ›lenà slov a doplňujÃcÃho software pro podporu Äeské a slovenské sazby v~\TeX{}u. Je vytvoÅ™en tak, aby mohl být použit na libovolné \TeX{}ové distribuci na libovolném operaÄnÃm systému. DÅ™Ãve byla slovem \CSTeX{} oznaÄována také kompletnà em\TeX{}ová distribuce doplnÄ›ná o~zmÃnÄ›ná makra, fonty a vzory dÄ›lenÃ. To bylo v~roce 1993, kdy sdruženà \CSTUG{} rozesÃlalo pod tÃmto názvem em\TeX{}ovou distribuci na disketách svým Älenům. V~té dobÄ› vÄ›tÅ¡ina Älenů použÃvala DOS, takže em\TeX{} pro DOS byl pro nÄ› vyhovujÃcÃ. V~dneÅ¡nà dobÄ› uživatelé pracujà s~nejrůznÄ›jÅ¡Ãmi operaÄnÃmi systémy a s~různými distribucemi \TeX{}u pro tyto systémy. Z~toho důvodu se v~tomto manuálu pÅ™idržÃme jen užšÃho významu slova \CSTeX, definovaného v~pÅ™edchozÃm odstavci. \CSTeX{} sestává ze \skrt{tÅ™Ã} \new{dvou} základnÃch pilÃřů: \CSfont{}y, \csplain{} \skrt{a \CS\LaTeX}. \CSfont{}y jsou konzervativnÃm rozÅ¡ÃÅ™enÃm Knuthových Computer Modern fontů, \csplain{} je konzervativnÃm rozÅ¡ÃÅ™enÃm Knuthova formátu plain a koneÄnÄ› \cslatex{} \skrt{je} \new{byl} jistou modifikacà běžnÄ› použÃvaného formátu \LaTeX. Tyto \skrt{tÅ™i} pilÃÅ™e jsou podrobnÄ› dokumentovány v~následujÃcÃch kapitolách. K~tÄ›mto pilÃřům \CSTeX{}u je jeÅ¡tÄ› pÅ™ipojena podpora použità základnÃch 35 PostScriptových fontů v~ÄeÅ¡tinÄ› a slovenÅ¡tinÄ› prostÅ™ednictvÃm virtuálnÃch fontů. Základnà balÃÄky \CSTeX{}u pÅ™Ãstupné na Internetu majà následujÃcà názvy: {\setbrackets \begtt csfonts.tar.gz ... CSfonty -- Metafontové soubory a metriky. csplain.tar.gz ... Makra pro formát CSplain a vzory dÄ›lenà slov. cslatex.tar.gz ... Makra pro formát CSLaTeX. !newAbox[-- zastaralé] cspsfonts.tar.gz ... Virtuálnà fonty základnÃch 35 PostScriptových fontů v~kódovánà podle CSfontů. \endtt \par} Pokud nÄ›kdo Å™ekne, že má na své distribuci \TeX{}u instalován \CSTeX, pak to znamená, že má urÄitÄ› instalovány tyto ÄtyÅ™i balÃky. KromÄ› toho k~\CSTeX{}u Å™adÃme i následujÃcà doplňujÃcà software, který už nemusejà mÃt vÅ¡ichni uživatelé \CSTeX{}u instalován: {\setbrackets \begtt csfonts-t1.tar.gz .. Varianta CSfontů ve formátu PostScript Type1. enctex.tar.gz ... Makra a návod na modifikaci tex.ch souboru !skrt[na] !skrt[zahrnutà podpory pÅ™Ãmého pÅ™Ãstupu k vektorům] !skrt[xord/xchr prostÅ™ednictvÃm primitivů.] !new[pro vÃcebytové pÅ™ekódovánà v input procesoru.] cstrip.tar.gz ... Test funkcionality formátu CSplain. csindex-19980713.tar.gz ... Zdrojové soubory v~jazyce C programu csindex, který je modifikacà programu makeindex se zahrnutou podporou Äeského a slovenského Å™azenÃ. vlna.tar.gz ... Zdrojové soubory v~jazyce C a v~jazyce cweb programu vlna na automatické doplňovánà vlnek za neslabiÄné pÅ™edložky. \endtt \par} Na Internetu naleznete vÅ¡echny uvedené balÃky na \begtt ftp://math.feld.cvut.cz/pub/cstex/base \endtt Základnà balÃÄky a {\tt csfonts-t1.tar.gz} obsahujà adresářovou strukturu podle TDS (\TeX{} directory standard), takže pokud vaÅ¡e distribuce \TeX{}u použÃvá tento standard, pak rozbalenà balÃÄků nad adresářem {\tt texmf} povede automaticky k~zaÅ™azenà vÅ¡ech souborů na správná mÃsta v~{\tt texmf} stromu. StarÅ¡Ã verze uvedených balÃků najdete na \begtt ftp://math.feld.cvut.cz/pub/cstex/base/old \endtt Dokumentaci k~\CSTeX{}u (vÄetnÄ› tohoto manuálu) najdete na \begtt ftp://math.feld.cvut.cz/pub/cstex/doc \endtt Adresář "ftp://math.feld.cvut.cz/pub/cstex/"\new{{\tt old/}} obsahuje kromÄ› zmÃnÄ›ných vÄ›cà kompletnà distribuci em\TeX{}u s~podporou \CSTeX{}u (v~podadresáři {\tt emtex}), minimalizovanou distribuci em\TeX{}u+\CSTeX{}u pro pouhé tÅ™i instalaÄnà diskety (v~podadresáři {\tt minitex}), návody a software na instalaci web2c \TeX{}u (v~podadresáři {\tt web2c}) a RPM balÃky te\TeX{}u podporujÃcà \CSTeX{} pro různé distribuce Linuxu (v~podadresáři {\tt tetex-rpm}). Tyto podadresáře vznikaly postupnÄ› v~poslednà dekádÄ› minulého tisÃciletà podle potÅ™eby a zájmu o~uvedené distribuce \TeX{}u. Podle toho, jak rostla a klesala popularita jednotlivých distribucÃ, jsou tyto podadresáře aktualizovány (nebo spÃÅ¡e neaktualizovány). Na druhé stranÄ› mohou vzniknout dalÅ¡Ã adresáře s~balÃÄky dalÅ¡Ãch distribucà \TeX{}u obsahujÃcÃch \CSTeX{}~-- staÄÃ, když je nÄ›kdo udÄ›lá a poÅ¡le o~tom informaci na mou elektronickou adresu. Mohu tÅ™eba založit podadresář {\tt miktex-zip} analogicky k~adresáři {\tt tetex-rpm}, pokud se to nÄ›komu bude hodit a pokud ty archivy samozÅ™ejmÄ› udÄ›lá. \subtitle \CSfont{}y | CSFONTY %%%%%%%%%%%%%%%%%%%% \CSfont{}y jsou konzervativnÃm rozÅ¡ÃÅ™enÃm CM fontů Donalda Knutha. TÃm je mÃnÄ›no, že každý \CSfont{} má svůj protÄ›jÅ¡ek v~nÄ›jakém CM fontu, pÅ™iÄemž se naprosto shoduje v~kódovánÃ, tvarech a Å¡ÃÅ™kách znaků na prvnÃch 128 pozicÃch (kódy 0~až~127), tj. na vÅ¡ech pozicÃch, které jsou tÃmto CM fontem použity. \CSfont{} tedy pouze doplňuje dalÅ¡Ã znaky do pozic s~kódem vÄ›tÅ¡Ãm než 127. Tam jsou umÃstÄ›ny znaky Äeské a slovenské abecedy podle kódovánà ISO~8859-2. NÄ›které pozice stále zůstávajà neobsazeny. NÞe uvádÃm tabulku \CSfont{}u. Druhý znak na pozicÃch 0B~až 0F se vyskytuje namÃsto prvnÃho znaku ve fontech bez ligatur typu fi ({\tt csr5}, {\tt cstt*} a {\tt cssltt*}), druhý znak na pozicÃch~20, 3C, 3E, 5C, 5F a 7B~až~7D najdeme ve strojopisných fontech ({\tt cstt*} a {\tt cslstt*}) a koneÄnÄ› libra mÃsto dolaru na pozici~24 se vyskytuje v kurzÃvách ({\tt csti*}). Tyto nejednoznaÄnosti v~kódovánà majà samozÅ™ejmÄ› i původnà CM fonty. %------------------------------------------------------------ \newcount\colnum \newcount\linenum \newcount\posnum \def\tabfont #1{\posnum=0 \vbox\bgroup \offinterlineskip #1 \line{\hfil {\tt \space\space\space}\vrule depth.4em \loop \ifnum\colnum<16 \hbox to.055\hsize{\hfil\tentt\hex\colnum\hfil}\vrule \advance\colnum by1 \repeat }% end of \line \loop \ifnum\linenum<16 \hrule \line{\hfil{\tentt \hex\linenum x }% \vrule height 1.0em depth .4em\tabline} \advance\linenum by1 \repeat \hrule \egroup } \def\tabline{ \colnum=0 \loop \ifnum\colnum<16 \tabitem \advance\colnum by1 \repeat } \def\tabitem{\hbox to.055\hsize{\hfil\char\posnum\altchar\hfil}% \vrule\global\advance\posnum by1} \def\altchar{\ifcase\posnum \or\or\or\or\or\or\or\or\or\or\or\a\or\a\or\a\or\a\or\a\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \a\or\or\or\or\kern2pt{\it\$}\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\a\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\or\a\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\a\or\a\or\a\or\or\or \fi} \def\a{\kern2pt{\tt\char\posnum}} \def\hex#1{\ifcase#1\relax 0\or1\or2\or3\or4\or5\or6\or7\or8\or 9\or A\or B\or C\or D\or E\or F\fi} \bigskip \tabfont {\font\f=csr10 \font\it=csti10 \font\tt=cstt10 \f} \bigskip %---------------------------------------------------------------- Následuje seznam vÅ¡ech CM fontů. Pokud nenà vpravo uveden alternativnà název \CSfont{}u, jedná se o~matematický font, který nemá v~\CSfont{}ech alternativu. Také ji nepotÅ™ebuje. \begtt CM font CSfont ------------------------------------------------------------------ cmr17, 12, 10, 9, 8, 7, 6, 5 csr17, 12, 10, 9, 8, 7, 6, 5 cmbx12, 10, 9, 8, 7, 6, 5 csbx12, 10, 9, 8, 7, 6, 5 cmsl12, 10, 9, 8 cssl12, 10, 9, 8 cmtt12, 10, 9, 8 cstt12, 10, 9, 8 cmsltt10, cmvtt10 cssltt10, csvtt10 cmss17, 12, 10, 9, 8 csss17, 12, 10, 9, 8 cmssi17, 12, 10, 9, 8 csssi17, 12, 10, 9, 8 cmssdc10, cmssbx10 csssdc10, csssbx10 cmssqi8, cmssq8 csssqi8, csssq8 cmdunh10, cmbxsl10, cmb10 csdunh10, csbxsl10, csb10 cmff10, cmfib10 csff10, csfib10 ------------------------------------------------------------------ cmti12, 10, 9, 8, 7 csti12, 10, 9, 8, 7 cmbxti10, cmitt10 csbxti10, csitt10 cmu10, cmfi10 csu10, csfi10 ------------------------------------------------------------------ cmcsc10, cmtcsc10 cscsc10, cstcsc10 ------------------------------------------------------------------ cminch10 csinch10 ------------------------------------------------------------------ cmmi12, 10, 9, 8, 7, 6, 5 cmmib10 ------------------------------------------------------------------ cmtex10, 9, 8 ------------------------------------------------------------------ cmsy10, 9, 8, 7, 6, 5 cmbsy10 ------------------------------------------------------------------ cmex10 ------------------------------------------------------------------ \endtt Mezi soubory metrik \CSfont{}ů navÃc najdeme metriky vytvoÅ™ené Sauterovou extrapolacÃ, které nemajà pÅ™Ãmou obdobu mezi CM fonty: \begtt CSfont ------------------------------------------------------------------ csb17, 12, 9, 8, 7, 6, 5 csbxsl12, 5, 6, 7, 8, 9 csbxti17, 12 cscsc17, 12 csdunh17, 12, 5, 6, 7, 8, 9 csfib12, 10, 9 csitt12, 17, 8, 9 cssl17, 5, 6, 7 cssltt12, 8, 9 csssbx12, 17, 9 cstcs12, 17 csti17 csu12, 17, 7, 8, 9 csvtt12, 8, 9 ------------------------------------------------------------------ \endtt \mf{}ová makra pro Sauterovu extrapolaci jsou souÄástà balÃÄku s~\CSfont{}y {\tt csfonts.tar.gz}. Princip této extrapolace je napÅ™Ãklad popsán v~\cit{tst}. \new{Fonty vytvoÅ™ené Sauterovou extrapolacà nedoporuÄujeme použÃvat, protože nemajà svou implementaci pomocà PostScriptového fontu. Do výstupnÃho PDF se pÅ™i použità takového fontu zavede bitmapový výstup z \mf{}u, což může vést ke komplikacÃm.} \subsub OdliÅ¡nosti od CM fontů | Odlisnosti od CMfontu %----------------------------- Nelze tvrdit, že text použÃvajÃcà jen znaky z~pozic 0--127 bude 100\% shodnÄ› zpracován pÅ™i použità CM fontů i \CSfont{}ů. OdliÅ¡nosti existujÃ, ale jsou tak nepatrné, že je velmi malá prvadÄ›podobnost, že by pÅ™i běžném užÃvánà byla pozorovatelná rozdÃlnost. NicménÄ› pÅ™esto zde vÅ¡echny odliÅ¡nosti uvádÃm vÄetnÄ› komentářů. Uvedené hodnoty jsou pÅ™Ãkladem pÅ™i srovnánà fontu "csr10" s~"cmr10". \medskip{\bf 1. Kerningové páry} Mezi teÄkami ("..") je v "csr10" implicitnà kern, aby bylo možno sázet elipsu. Kern~$0,011111$pt. V cmr10 nenÃ. Dvojice "ka" -- "csr10": $-0,0027777$pt, "cmr10": $-0,0055555$pt. Dvojice "P." a "P," -- "csr10": $-0,0027777$pt, "cmr10" nenÃ. Dvojice "F.", "F,", "V.", "V,", "W." a "W," -- "csr10": $-0,0055555$pt, "cmr10" nenÃ. Dvojice "Av" a "Aw" -- "csr10": $-0,011111$pt, "cmr10" nenÃ. \medskip{\bf 2. Ligatury} Dvojice "<<" vede v csr10 na francouzské uvozovky, kód 158, v cmr10 nenÃ. Dvojice ">>" vede v csr10 na francouzské uvozovky, kód 159, v cmr10 nenÃ. \medskip{\bf 3. Výšky znaků} Formát "tfm" je omezen na maximálnÄ› 16 různých výšek znaků v~jednom fontu. V~"cmr10" je obsazeno vÅ¡ech 16 různých výšek. PÅ™itom v~"csr10" pÅ™icházejà dalÅ¡Ã výšky znaků dané akcentovanými znaky. Proto \mf{} provedl v~"csr10" jistá zaokrouhlenÃ, která způsobà odliÅ¡nost výšek od výšek v~"cmr10" maximálnÄ› o~0,007779pt. Jedná se o~tyto znaky: \begitems * $\Gamma$ až $\Omega$, \AE, \OE{} a vÅ¡echny kapitálky: v~"csr10" jsou menÅ¡Ã o~0,00773pt. * NadržÃtko (kód 22), nadpuntÃk (kód 95) a pÅ™ehláska (kód 127): v~"csr10" vÄ›tÅ¡Ã o~0,007779pt. * PÃsmena i, j jsou v~"csr10" vÄ›tÅ¡Ã o~0,007779pt. * Znak plus (+) je v~"csr10" menÅ¡Ã o~0,007778pt. \enditems RozdÃlnost výšek nenà kritická, protože pÅ™i sazbÄ› se vÄ›tÅ¡inou berou v~úvahu jen Å¡ÃÅ™ky znaků. Pouze výjimeÄnÄ› promluvà do sazby i výška (vÄ›tÅ¡inou když objekt v~řádku je vÄ›tÅ¡Ã než "\baselineskip"). \subsub Struktura \mf{}ových zdrojových souborů \CSfont{}ů | %--------------------------------------------------------- Struktura METAFONTovych zdrojovych souboru CSfontu \mf{} Äte nejprve soubor, který má stejné jméno, jako je jméno generovaného fontu, a má pÅ™Ãponu {\tt mf}. NapÅ™Ãklad {\tt csr10.mf}. Takovému souboru Å™Ãkáme hlavnà soubor generovánà fontu. V~\CSfont{}ech je takových hlavnÃch souborů celkem 121. VÅ¡echny majà stejný dvouřádkový obsah: \begtt input cscode use_driver; \endtt V~souboru {\tt cscode.mf} se naÄtou jména a kódy akcentovaných znaků (jsou uspořádány podle ISO~8859-2) a definuje se "use_driver" v~závislosti na jménu hlavnÃho souboru tak, že se naÄte odpovÃdajÃcà hlavnà soubor CM fontů (tj. odpojà se pÅ™edpona "cs" a pÅ™ipojà pÅ™edpona "cm"). V~pÅ™ÃpadÄ› fontu "csr10" se tedy naÄte v~tuto chvÃli soubor~{\tt cmr10.mf}. NavÃc je v~souboru {\tt cscode.mf} pÅ™edefinováno {\tt generate} (v~CM fontech má význam {\tt input}) tak, že poslednà řádek {\tt cmr10.mf} s~textem \begtt generate roman \endtt % neprovede {\tt input roman.mf}, ale provede {\tt input kmroman.mf}. DalÅ¡Ã průbÄ›h výpoÄtu je tedy zase v~režii \CSfont{}ů. KromÄ› souboru {\tt kmroman.mf} jako alternativy k~souboru {\tt roman.mf} z~CM fontů najdeme analogické alternativy s~názvy {\tt kmtextit.mf}, {\tt kmcsc.mf}, {\tt kmtexset.mf} a {\tt kmtitle.mf}. Z~uvedených souborů se postupnÄ› naÄÃtajà soubory generujÃcà tvary jednotlivých znaků. Jedná o~vÅ¡echny odpovÃdajÃcà soubory z~CM fontů a navÃc soubory uvedené v~následujÃcà tabulce. \begitems * {\tt csaccent.mf} definuje makra pro akcenty, * {\tt csacutl.mf} generuje á, é, Ã, ó, \'r, ú, ý, * {\tt csacutu.mf} generuje Ã, É, Ã, \'L, Ó, \'R, Ú, Ã, * {\tt cshachel.mf} generuje Ä, Ä›, ň, Å™, Å¡, ž, * {\tt cshacheu.mf} generuje ÄŒ, ÄŽ, Äš, Ň, Ř, Å , Ť, Ž, * {\tt csotherl.mf} generuje \^o, ů, \`a, \'l, \v t, \v d, \v l, \"a, \"o, \"u, * {\tt csotheru.mf} generuje \^O, Å®, \`A, \v L, \"A, \"O, \"U, * {\tt csadded.mf} generuje \clqq\kern2pt, \crqq, >>, <<, \promile, \ogonek{}, * {\tt cshyph.mf} generuje alternativnà hyphenchar. \enditems V~souboru {\tt kmroman.mf} a jemu podobných souborech jsou jeÅ¡tÄ› zapsány kernové páry a údaje pro tabulku ligatur. V~tomto souboru Äinnost \mf{}u konÄà pÅ™Ãkazem {\tt bye}. \subsub Alternativnà hyphenchar | Alternativni hyphenchar %------------------------------ Na pozici 156 je v~\CSfont{}ech spojovnÃk s~úplnÄ› stejnou kresbou a metrikou, jako na pozici~45. NastavÃme-li "\hyphenchar\beznyfont=156", budeme mÃt zaruÄeno, že ve slovech \uv{je-li} nebude \TeX{} dÄ›lit slovo. Bez tohoto nastavenà by \TeX{} rozdÄ›lil \uv{je-/li}, což nenà v~souladu s~požadavky na Äeskou sazbu. Mnoho dalÅ¡Ãch způsobů Å™eÅ¡enà tohoto problému najdeme v~\cit{tbn}. DalÅ¡Ã aplikacà znaku 156 je modifikace jeho metriky tak, aby kresba pÅ™esahovala pÅ™es Å¡ÃÅ™ku znaku výraznÄ› doprava. Pak nastavenÃm "\hyphenchar\beznyfont=156" dosáhneme tzv.~visÃcà interpunkce, viz napÅ™Ãklad~\cit{texbook} nebo~\cit{tbn}. V~poslednà dobÄ› se visÃcà interpunkce stává módnà záležitostÃ, protože to umà i nejnovÄ›jÅ¡Ã verze programu Adobe InDesign. Metriku \CSfont{}u můžete pro vlastnà potÅ™eby modifikovat napÅ™Ãklad programy tftopl a pltotf. Takto modifikovanou metriku ovÅ¡em nesmÃte distribuovat pod stejným názvem, jaký má původnà metrika \CSfont{}u. \subsub Anabáze UNIXových hard-linků | Anabase UNIXovych hard-linku %----------------------------------- Jak jsme uvedli v pÅ™edchozà sekci, hlavnà \mf{}ové soubory \CSfont{}ů majà jednu zvláštnost: aÄkoli zde existuje 121 různÄ› nazvaných souborů, vÅ¡echny obsahujà stejný dvouřádkový text. Rozhodl jsem se tÄ›ch 121 stejných různÄ› nazvaných souborů implementovat pro úsporu inodů v~UNIXu jako hard linky. Takto jsem fonty zabalil do balÃÄku {\tt csfonts.tar.gz} a dal k~dispozici internetové veÅ™ejnosti. Pokud je systém, na který se balÃÄek {\tt csfonts.tar.gz} instaluje, rovněž UNIXo\-vého typu, pak program {\tt tar} vytvořà v~cÃlovém adresáři 121 hard linků a je vÅ¡e v~pořádku. Systém uÅ¡etÅ™il 120 inodů, které nemusel alokovat. Jestliže ale cÃlový systém nepracuje s~hard linky, mohou nastat potÞe. OsobnÄ› se ale domnÃvám, že pokud tento systém provozuje nÄ›jakou implementaci programu {\tt tar}, mÄ›la by se tato implementace s~problémem hard linků vyrovnat napÅ™Ãklad tak, že mÃsto hard linků vytvořà pÅ™i extrahovánà archivu stejné soubory. Proto považuji stÞnosti uživatelů MS Windows na podivnost archivu {\tt csfonts.tar.gz} za neopodstatnÄ›né. Tito uživatelé si stěžujÃ, že se jim rozbalà z~tÄ›ch 121 souborů jen jeden, pÅ™iÄemž použÃvajà jakýsi "Wintar". OdpovÃdám: nechÅ¥ si tito uživatelé stěžujà u~svého dodavatele implementace programu {\tt tar}. OdmÃtám kvůli Windowsovým uživatelům balit \CSfont{}y jinak a opustit tak možnost Å¡etÅ™enà inodů na UNIXových systémech. NavÃc se mi doneslo, že Windowsovà uživatelé majà možnost použÃt jiné implementace programu {\tt tar}, které popsanou chybu neobsahujÃ, a skuteÄnÄ› na Windowsovém filesystému založà 121 různých souborů se stejným obsahem. \subsub Virtuálnà fonty pÅ™idané do balÃÄku \CSfont{}ů | %---------------------------------------------------- Virtualni fonty pridane do balicku CSfontu V~balÃÄku {\tt csfonts.tar.gz} jsou pÅ™Ãtomny dvÄ› skupiny virtuálnÃch fontů. Jedny mapujà \CSfont{}y na CM fonty a druhé mapujà CM fonty na \CSfont{}y. V~tomto odstavci vysvÄ›tlÃm důvody existence obou skupin a způsob jejich použitÃ. Až donedávna bylo potÅ™eba pÅ™i prohlÞenà "dvi" souborů programem "xdvi" (a~jemu podobnými programy) poÄkat, až se pomocà \mf{}u a programu "gftopk" vygenerujà potÅ™ebné bitmapy fontů, a teprve pak jsme je vidÄ›li v~prohlÞeÄi. Teprve od roku 2002 má program "xdvi" schopnost pÅ™Ãmo zobrazovat Type1 verze fontů, ale popisované virtuálnà fonty vznikly v~dobÄ›, kdy tomu tak nebylo a kdy \CSfont{}y jeÅ¡tÄ› nemÄ›ly svou Type1 variantu. Pokud jsme tehdy nemuseli Äekat na generovánà nových fontů \mf{}em, pak jen proto, že už byly fonty vygenerovány dÅ™Ãve a zůstaly uloženy na disku v~podobÄ› {\tt pk} souborů. Za této situace bylo výhodné udržovat na disku co nejménÄ› {\tt pk} souborů. Protože uživatel \CSTeX{}u obvykle použÃvá \CSfont{}y, dá se pÅ™edpokládat, že jejich {\tt pk} soubory má na disku v~hojném množstvÃ. Když pak jednou za Äas potÅ™ebuje takový uživatel prohlédnout {\tt dvi} soubor odkazujÃcà na CM fonty, pak je pÅ™eci zbyteÄné pro nÄ› generovat nové bitmapy, když \CSfont{}y jsou nadmnožinou CM fontů a bitmapy \CSfont{}ů pravdÄ›podobnÄ› na disku už vygenerované jsou. StaÄà pro zobrazenà znaků CM fontů Äerpat z~bitmap \CSfont{}ů. PrávÄ› k~tomu úÄelu sloužà prvnà skupina virtuálnÃch fontů oznaÄovaná jako cm2cs. Po rozbalenà {\tt csfonts.tar.gz} je tato skupina virtuálnÃch fontů uložena do adresáře {\tt fonts/vf/public} a je tedy aktivnÃ. Každý "dvi"-ovladaÄ, který potÅ™ebuje vykreslit znak z~CM fontu, pak použije tyto virtuálnà fonty, které jej nasmÄ›rujà na \CSfont{}y. Takže "dvi"-ovladaÄ bude tyto znaky nakonec Äerpat z~\CSfont{}ů. K~žádnému zkreslenà informace pÅ™itom nedocházÃ, protože vÅ¡echny znaky CM fontů jsou v~odpovÃdajÃcÃch \CSfont{}ech na stejných pozicÃch a vypadajà úplnÄ› stejnÄ›. Pokud \CSfont{}y vůbec nepoužÃváte (nebo jen obÄas), bude pro vás asi výhodné virtuálnà fonty cm2cs z~adresáře {\tt fonts/vf/public} odstranit. StejnÄ› tak se nehodà mÃt tyto virtuálnà fonty aktivnà v~mezinárodnÃch \TeX{}ových distribucÃch, kde vÄ›tÅ¡ina uživatelů \CSfont{}y nikdy nepoužije. Tito uživatelé by asi byli velmi pÅ™ekvapeni, že pÅ™i prohlÞenà {\tt dvi} souboru se standardnÃmi CM fonty jim distribuce generuje na disk bitmapy jakýchsi \CSfont{}ů. Druhá skupina virtuálnÃch fontů s~oznaÄenÃm cs2cm nenà po rozbalenà balÃÄku s~\CSfont{}y aktivnÃ, protože nenà v~adresáři {\tt fonts/vf}, ale v~adresáři {\tt fonts/vf-cnv}, který dvi-ovladaÄe s~obvyklou konfiguracà neprocházejÃ. Tuto skupinu virtuálnÃch fontů použijeme v~pÅ™ÃpadÄ›, že jsme vytvoÅ™ili v~\CSTeX{}u dokument odkazujÃcà na \CSfont{}y, a nynà jej chceme ve formátovaném tvaru (jako soubor {\tt dvi}) poslat napÅ™Ãklad do zahraniÄÃ. PÅ™itom pÅ™edpokládáme, že pÅ™Ãjemce nebude mÃt ve své \TeX{}ové distribuci \CSfont{}y. Virtuálnà fonty cs2cm mapujà vÅ¡echny znaky \CSfont{}ů na odpovÃdajÃcà znaky z~CM fontů. Pokud znak v~CM fontech neexistuje, virtuálnà font jej nahradà kompozitem (napÅ™Ãklad pÃsmeno+háÄek). Pokud tedy aplikujeme napÅ™Ãklad program "dvicopy" s~tÄ›mito virtuálnÃmi fonty, dostáváme nový {\tt dvi} soubor, který už odkazuje jen na CM fonty, a akcentovaná pÃsmena jsou v~tomto {\tt dvi} souboru nahrazena kompozity. Takový "dvi" soubor můžeme poslat do zahraniÄà a máme jistotu, že bude zpracovatelný na libovolné \TeX{}ové distribuci, protože každá distribuce obsahuje CM fonty. Kvalita sazby se ovÅ¡em zhorÅ¡Ã, protože akcenty (coby samostatné znaky) jsou v~CM fontech takové ponÄ›kud nedomrlé, zatÃmco v~\CSfont{}ech jsou kresleny spoleÄnÄ› s~pÃsmenem s~velikou péÄÃ. Informace v~dokumentu ovÅ¡em nenà uvedenou modifikacà {\tt dvi} souboru vůbec zmÄ›nÄ›na. Výjimkou je pÅ™Ãpad výskytu jednoho z tÄ›chto ÄtyÅ™ znaků: promile, ogonek (ocásek pod polské a), levá a pravá francouzská uvozovka. Tyto znaky nelze nijak pomocà CM fontů nahradit. Pokud dokument nÄ›který z~tÄ›chto znaků obsahuje, pak program "dvicopy" ohlásà \uv{{\tt---missing character packet}} a ponechá mÃsto tÄ›chto znaků prázdná mÃsta. Ve web2c distribuci \TeX{}u v UNIXu můžete pro uvedenou konverzi "dvi" souboru z~\CSfont{}ů na CM~fonty použÃt pÅ™Ãkaz: \begtt VFFONTS=\$TEXMF/fonts/vf-cnv// dvicopy vstup.dvi vystup.dvi \endtt Poznamenejme, že v~žádném pÅ™ÃpadÄ› nesmà "dvi" ovladaÄ najÃt souÄasnÄ› virtuálnà fonty cm2cs i cs2cm. V~takovém pÅ™ÃpadÄ› dojde k~havárii, neboÅ¥ odkazy ve virtuálnÃch fontech se dostanou do nekoneÄného cyklu. \subsub Historie a budoucnost \CSfont{}ů | Historie a budoucnost CSfontu %------------------------------------ Tvary akcentů \CSfont{}ů byly vytvoÅ™eny a implementovány v~jazyce \mf{}u Petrem Novákem ve spolupráci s~Äeskými typografy nÄ›kdy na zaÄátku 90.~let. Autor pÅ™enechal \CSfont{}y \CSTUG{}u, který s~nimi může libovolnÄ› nakládat. \mf{}ový kód byl pak v~letech 1992--1993 dále upraven Karlem Horákem. Karel se inspiroval z~\mf{}ových zdrojů pro fonty vytvoÅ™ené v~Polsku. Zapracoval tam možnost nastavenà kódovánà fontu a vytvoÅ™il makra umožňujÃcà mÃt vÅ¡echny hlavnà {\tt mf} soubory se stejným dvouřádkovým obsahem. Na schůzce tvůrců \CSTeX{}u na FEL v~roce 1993 bylo rozhodnuto, že \CSfont{}y budou mÃt kódovánà podle ISO~8859-2. PozdÄ›ji, pÅ™i implementaci \CSTeX{}u do UNIXo\-vých distribucà nepodporujÃcÃch zmÄ›ny xord/xchr vektorů, se ukázalo, že to bylo velmi prozÃravé rozhodnutÃ. V~roce 1993 jsem pÅ™evzal údržbu \CSfont{}ů do svých rukou. UdÄ›lal jsem jen velmi drobné zmÄ›ny. Poslednà 28.~9.~1996: PÃsmeno ÄŒ a dalÅ¡Ã akcentované kapitálky mÄ›ly pÅ™ed tÃmto datem vÄ›tÅ¡Ã výšku než kresba o~1,2pt. Opravil jsem. Také jsem tehdy odstranil nevhodné záporné kerny: TÄ›, TÅ™, T\"o, T\"u, T\"a, T\`a (analogicky pro Ť, Y, Ã). VÄ›, VÅ™, V\"o, V\"u (analogicky pro F, W) a redukoval jsem pÅ™ÃliÅ¡né záporné kerny: Té, Tó, Tů, TÅ•, Tá, Tú (analogicky pro Ť, Y, Ã). Pak jsem vývoj \CSfont{}ů zmrazil podobným způsobem, jako Knuth pÅ™estal mÄ›nit CM~fonty. PrioritnÃm požadavkem je, aby dokument opÃrajÃcà se o~\CSfont{}y byl od roku 1996 formátován naprosto stejnÄ› dnes i kdykoli v~budoucnu. Aby byl tento požadavek splnÄ›n, nenà tedy možné zasáhnout do rozmÄ›rů znaků, kernů a ligaturnÃch tabulek. V~roce 1996 jsem do \CSfont{}ů pÅ™idal virtuálnà fonty podporujÃcà náhradu Computer Modern fonty a naopak. V~roce 1998 se podaÅ™ilo dohodnout s~autorem te\TeX{}u Thomassem Esserem, aby zaÅ™adil do své distribuce \CSfont{}y a celý \CSTeX. Od této chvÃle jsou distribuce odvozené z~te\TeX{}u implicitnÄ› vybaveny \CSfont{}y. V~roce 1998 jsem také pro potÅ™eby výstupu do formátu PDF vytvoÅ™il variantu \CSfont{}ů, tentokrát ve formátu PostScript Type1. VyÅ¡el jsem z~BaKoMa Type1 implementace CM~fontů a vytvoÅ™il jsem si program {\tt t1accent}, který k~pÃsmenkům pÅ™idával akcenty podle vzorových PostScriptových tahů generovaných z~původnÃch \CSfont{}ů \mp{}em. Na mnoha mÃstech jsem byl nucen pÅ™istoupit k~mikrotypografickým kompromisům~-- v~drobnostech se kresby nÄ›kterých znaků \CSfont{}ů z~Type1 liÅ¡Ã od svých originálnÃch \mf{}ových protÄ›jÅ¡ků. Proto jsem distribuci Type1 \CSfont{}ů oznaÄil jako \uv{alpha} a do komentáře jsem dal důrazné varovánÃ, že tyto fonty je možné použÃvat na vlastnà riziko. Z~toho důvodu jsem také ponechal implicitnà konfiguraci programu "dvips" tak, aby program použÃval léty osvÄ›dÄený výstup z~\mf{}u, tedy bitmapy formátu "pk". Type1 \CSfont{}y byly původnÄ› konfigurovány jen pro pdf\TeX. Rozhodnutà ponechat "dvips" pracovat implicitnÄ› s~bitmapami naráželo na problémy. Neustále dokola se uživaté ptali, jak je možné, že výstup z~pdf\TeX{}u je dobrý, ale pÅ™i cestÄ› dvips~-- pstopdf dostávajà roztÅ™esená pÃsmenka. Protože jsem byl uondán velmi Äastým odpovÃdánÃm na tuto otázku, ani jsem se nakonec nezlobil, když v~roce 2001 autor te\TeX{}u rozhodl, že bude \CSfont{}y pro "dvips" implicitnÄ› konfigurovat ve verzi Type1. Asi ty mikrotypografické kompromisy ani tak moc nevadÃ, zatÃmco roztÅ™esená pÃsmenka v~PDF způsobovala oheň na stÅ™eÅ¡e. V~souÄasné dobÄ› existujà volnÄ› dostupné nástroje, jako napÅ™Ãklad "textrace" opÃrajÃcà se o~"autotrace". Tyto nástroje umožnà pÅ™evést \mf{}ový font do Type1 \uv{obtahovánÃm bitmap} skoro automaticky. VyzkouÅ¡el jsem to na \CSfont{}ech a s~výsledkem jsem nebyl vůbec spokojen: výsledné {\tt pfb} soubory byly asi pÄ›tkrát vÄ›tÅ¡Ã než ty moje \uv{ruÄnÄ›} vyrobené. Proto jsem zatÃm alpha verzi Type1 formátu \CSfont{}ů z~roku 1998 neopustil. Do budoucna bych velmi rád do \CSfont{}ů pÅ™idal znak euro a paragraf. Taková zmÄ›na by byla zpÄ›tnÄ› kompatibilnÃ, takže bych se jà nebránil. \mf{}ové zdroje pro paragraf ověřené na vÅ¡ech \CSfont{}ech už nÄ›kolik let mám, ale nezveÅ™ejnil jsem je. \mf{}ové zdroje znaku euro by se snadno daly pÅ™evzÃt z~jiného \mf{}ového fontu. NejvÄ›tÅ¡Ã potÞ je ovÅ¡em v~tom, že s~uvedenÃm nové verze \CSfont{}ů dnes nestaÄà zveÅ™ejnit jen \mf{}ové zdroje a metriky, ale je tÅ™eba mÃt okamžitÄ› s~tÃm konzistentnà Type1 varianty fontů. Do manuálnà práce na nové verzi Type1 varianty \CSfont{}ů se mi ale moc nechce. Je to nevdÄ›Äná a rozsáhlá práce: {\tt pfb} souborů je v~balÃÄku 57 a každý je tÅ™eba disassemblovat, v~editoru pÅ™idat nové znaky a znovu pÅ™evést na {\tt pfb}. PÅ™itom s~automatickými nástroji, jak jsem uvedl pÅ™ed chvÃlÃ, nejsem spokojen. \subtitle {\tt cspsfonts.tar.gz} -- 35 základnÃch PostScriptových fontů | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CSPSFONTS - 35 ZAKLADNICH FONTU Každý \ps{}ový RIP musà být vybaven aspoň 35 základnÃmi fonty ze sady \uv{base~35}. Sada mimo jiné obsahuje sedm rodin textových fontů, každá rodina obsahuje ÄtyÅ™i fonty (základnÃ, kurzÃva, tuÄný a tuÄná kurzÃva, \new{Helvetica navÃc ÄtyÅ™i zúžené varianty}). Strojopis se obvykle kombinuje z~rodiny Courier. Pro tyto fonty je vytvoÅ™ena podpora ve formÄ› metrik v~kódovánà \CSfont{}ů a virtuálnÃch fontů, které tyto metriky mapujà na skuteÄné fonty, kódované samozÅ™ejmÄ› úplnÄ› jinak. Tato podpora je v~balÃÄku {\tt cspsfonts.tar.gz}, který je povinnou souÄástà \CSTeX{}u. Kódovánà tÄ›chto metrik je inspirováno kódovánÃm \CSfont{}ů, ale chybà matematické znaky ze zaÄátku tabulky a znaky, které v běžných \ps{}ových fontech nenajdeme (napÅ™. pozice 20: Å¡krtátko polského l). Na druhé stranÄ› jsou pÅ™idány znaky s~kódy 80--86 (hexadecimálnÄ›) a nÄ›které dalÅ¡Ã (napÅ™. kompletnà polské \L{} a~\l). Viz následujÃcà tabulku fontu "ptmr8z", implementujÃcà pÃsmo Times-Roman pro \CSTeX. Fonty rodiny Courier majà kódovánà inspirováno \CSfont{}em "cstt10", takže se na pozicÃch 3C, 3E, 5C, 5F a 7B až 7D znaky ponÄ›kud liÅ¡Ã. Toto kódovánà je oznaÄeno "8u" na rozdÃl od kódovánà ostatnÃch PostScriptových fontů z balÃÄku "cspsfonts.tar.gz", které je nazváno "8z". Tuto nejednotnost kódovánà známe už u~\CSfont{}ů a prapůvodnÄ› existuje u~Computer Modern fontů. Znak vlevo na zmÃnÄ›ných pozicÃch odpovÃdá kódovánà "8z" a znak vpravo kódovánà "8u". Na ostatnÃch pozicÃch je kódovánà "8z" a "8u" shodné. \def\tabitem{\hbox to.055\hsize{\hfil \if|\testchar|\char\posnum\fi \if A\testchar \newAbox{\char\posnum}\fi \altchar\hfil}% \vrule\global\advance\posnum by1} \def\altchar{\ifcase\posnum \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\a\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\or\a\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\a\or\a\or\a\or\or\or \fi} \def\testchar{\ifcase\posnum \or.\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or \or\or\or\or\or\or A\or.\or A\or A\or A\or.\or.\or\or A\or A\or .\or.\or.\or.\or.\or.\or.\or.\or\or.\or A\or A\or\or\or\or\or .\or A\or.\or\or\or\or.\or\or.\or\or.\or\or.\or.\or\or.\or .\or A\or.\or\or.\or\or.\or.\or\or\or.\or\or.\or.\or\or.\or \or\or\or.\or\or\or.\or\or\or\or.\or\or\or\or\or\or .\or.\or\or\or\or.\or\or.\or\or\or\or.\or\or\or.\or.\or \or\or\or.\or\or\or.\or\or\or\or.\or\or\or\or\or\or .\or.\or\or\or\or.\or\or.\or\or\or\or.\or\or\or\or\or \fi} \bigskip \tabfont {\font\f=ptmr8z \font\tt=pcrr8u \f} \bigskip {\bf UpozornÄ›nÃ:} Ve výše uvedené tabulce jsou prázdná mÃsta, na kterých mohou být umÃstÄ›ny nedokumentované znaky. Když si vytisknete napÅ™Ãklad skuteÄnou tabulku fontu "ptmr8z", zjistÃte, že tomu tak skuteÄnÄ› je. Pokud chcete mÃt dokument zpracovatelný i v budoucÃch verzÃch \CSTeX{}u, nemůžete se o tyto nedokumentované znaky opÃrat. Tyto znaky byly obsazeny v rámci soukromé iniciativy Zdeňka Wagnera, který potÅ™eboval použÃt font pro vÃce jazyků. Bohužel umÃstil nÄ›které znaky na pozice, které nejsou pro budoucà rozÅ¡ÃÅ™enà fontů vhodné. Každý si může do volných pozic doplnit co potÅ™ebuje, ovÅ¡em s tÃm rizikem, že jeho dokumenty využÃvajÃcà tyto pozice nemusejà být kompatibilnà s~\CSTeX{}em. Sada metrik balÃÄku "cspsfonts.tar.gz" zahrnuje následujÃcà fonty: {\setbrackets \catcode`/=13 \def/#1/{\skrt{#1}} \begtt Metrika /odkazuje na/ OdpovÃdajÃcà PostScriptový font ----------------------------------------------------------- pagk8z /rpagk/ AvantGarde-Book pagko8z /rpagko/ AvantGarde-BookOblique pagd8z /rpagd/ AvantGarde-Demi pagdo8z /rpagdo/ AvantGarde-DemiOblique pagkc8z * /rpagk/ AvantGarde-Book Caps & Small Caps pagdc8z * /rpagd/ AvantGarde-Demi Caps & Small Caps pbkl8z /rpbkl/ Bookman-Light pbkli8z /rpbkli/ Bookman-LightItalic pbkd8z /rpbkd/ Bookman-Demi pbkdi8z /rpbkdi/ Bookman-DemiItalic pbklc8z * /rpbkl/ Bookman-Light Caps & Small Caps pbkdc8z * /rpbkd/ Bookman-Demi Caps & Small Caps pcrr8u /rpcrr/ Courier pcrro8u /rpcrro/ Courier-Oblique pcrb8u /rpcrb/ Courier-Bold pcrbo8u /rpcrbo/ Courier-BoldOblique pcrrc8u * /rpcrr/ Courier Caps & Small Caps pcrbc8u * /rpcrb/ Courier-Bold Caps & Small Caps phvr8z /rphvr/ Helvetica phvro8z /rphvro/ Helvetica-Oblique phvb8z /rphvb/ Helvetica-Bold phvbo8z /rphvbo/ Helvetica-BoldOblique phvrc8z * /rphvr/ Helvetica Caps & Small Caps phvbc8z * /rphvb/ Helvetica-Bold Caps & Small Caps phvrn8z !skrt[*] /rphvrrn/ Helvetica-Narrow phvron8z !skrt[*] /rphvron/ Helvetica-Narrow-Oblique phvbn8z !skrt[*] /rphvbrn/ Helvetica-Narrow-Bold phvbon8z !skrt[*] /rphvbon/ Helvetica-Narrow-BoldOblique phvrnc8z * /rphvrrn/ Helvetica-Narrow Caps & Small Caps phvbnc8z * /rphvbrn/ Helvetica-Narrow-Bold Narrow C & Small C pncr8z /rpncr/ NewCenturySchlbk-Roman pncri8z /rpncri/ NewCenturySchlbk-Italic pncb8z /rpncb/ NewCenturySchlbk-Bold pncbi8z /rpncbi/ NewCenturySchlbk-BoldItalic pncrc8z * /rpncr/ NewCenturySchlbk-Roman Caps & Small Caps pncbc8z * /rpncb/ NewCenturySchlbk-Bold Caps & Small Caps pplr8z /rpplr/ Palatino-Roman pplri8z /rpplri/ Palatino-Italic pplb8z /rpplb/ Palatino-Bold pplbi8z /rpplbi/ Palatino-BoldItalic pplrc8z * /rpplr/ Palatino-Roman Caps & Small Caps pplbc8z * /rpplb/ Palatino-Bold Caps & Small Caps ptmr8z /rptmr/ Times-Roman ptmri8z /rptmri/ Times-Italic ptmb8z /rptmb/ Times-Bold ptmbi8z /rptmbi/ Times-BoldItalic ptmrc8z * /rptmr/ Times-Roman Caps & Small Caps ptmbc8z * /rptmb/ Times-Bold Caps & Small Caps pzcmi8z /rpzcmi/ ZapfChancery-MediumItalic \endtt \par} V tabulce jsou hvÄ›zdiÄkou oznaÄeny ty metriky, které neodkazujà \new{pÅ™Ãmo} na speciálnà \ps{}ový font, ale jsou implementovány pomocà virtuálnÃho fontu (Caps \& Small Caps). \skrt{Nebo se jedná o~Narrow varianty fontu Helvetica, které jsou konfigurovány v "psfonts.map" pomocà \ps{}ové transformace.} ÄŒeské a slovenské znaky \skrt{jsou} \new{byly} ve fontech "8z" a "8u" implementovány jako kompozity (tj. virtuálnà font je posklád\skrt{á}\new{al} ze samostatného akcentu a základnÃho pÃsmene). \new{Tento pÅ™Ãstup pÅ™inášel problémy: ve výsledném PDF nebylo možno vyhledávat Äeský text a nebylo možno pÅ™enést text clipboardem do jiné aplikace. Proto jsem v roce 2012 zveÅ™ejnil novou verzi fontů, které odkazujà pÅ™Ãmo na PostScriptový font, který pÅ™ekódovávajà pomocà {\tt /Encoding} vektoru. Bývalý argument, že nemáme jistotu, zda ve fontu naÅ¡e akcentované znaky jsou, už dávno neplatÃ.} % \skrt{Použité segmenty jsou pÅ™Ãtomny v~každém PostScriptovém fontu. Proto virtuálnà fonty po sestavenà kompozitů odkazujà na metriky fontů (s pÃsmenem "r" na zaÄátku), které jsou již kódovány podle StandardEncoding. Fonty v~PostScriptovém RIPu tedy nepotÅ™ebujeme mÃt poÄeÅ¡tÄ›ny ani poslovenÅ¡tÄ›ny a také nepotÅ™ebujeme mÄ›nit Encoding vektor tÄ›chto fontů na úrovni \ps{}u.} Program {\tt dvips} je obvykle konfigurován tak, že do výstupnÃho \ps{}ového kódu nezavádà žádný z~fontů \uv{base~35} a ponechá tam jenom odkaz. Starost o~font pÅ™enechá \ps{}ovému RIPu. PostScriptové fonty z~\uv{base35} tedy principiálnÄ› nenà nutné pro provoz v \TeX{}u instalovat na disk a nejsou tedy ani obsaženy v~balÃÄku "cspsfonts.tar.gz". \new{Programu {\tt dvips} je doporuÄeno nabÃdnout mapovacà soubor {\tt cs-a35-nodownload.map}.} \new{Program {\tt pdftex} je naopak konfigurován tak, že do výstupnÃho PDF vkládá vÅ¡echny použité fonty. Pokud je použit Adobe font z~\uv{base35}, je za nÄ›j pÅ™ipravena a zavedena náhrada z~dÃlny URW, která je pÅ™Ãtomna v běžných \TeX{}ových distribucÃch. Programu {\tt pdftex} je tedy potÅ™eba nabÃdnout jiný mapovacà soubor {\tt cs-a35-urwdownload.map}.} Pokud \skrt{si chcete prohlÞet} \new{jste si prohlÞeli} {\tt dvi} soubor odkazujÃcà na fonty z~\uv{base~35} napÅ™Ãklad starÅ¡Ã verzà programu {\tt xdvi}, pak tento program potÅ™eb\skrt{uje}\new{oval} (alespoň na pÅ™echodnou dobu) bitové mapy tÄ›chto fontů. Pokud bitové mapy v~instalaci jeÅ¡tÄ› \skrt{neexistujÃ} \new{nebyly}, program zavol\skrt{á}\new{al} skript {\tt mktexpk}, který pro vytvoÅ™enà rastru vol\skrt{á}\new{al} dále Ghostscript. To je implementace \ps{}ového RIPu, která musà obsahovat fonty z~\uv{base~35}.% \footnote*{Z licenÄnÃch důvodů Ghostscript neobsahuje originálnà fonty od Adobe, ale jen jejich hodnÄ› dobré náhražky od firmy URW. RozdÃl vÄ›tÅ¡inou pouhým okem nerozeznáte.} Odtud se fonty konvertujà do bitových map {\tt pk} a odtud je nakonec použije program {\tt xdvi}. Poznamenejme jeÅ¡tÄ›, že novÄ›jÅ¡Ã verze programu {\tt xdvi} obsahujà tzv.~modul "t1lib", dÃky nÄ›muž {\tt xdvi} umà pÅ™Ãmo ÄÃst PostScriptové fonty a vykreslovat je na obrazovku. Nenà tedy potÅ™eba vůbec vyrábÄ›t {\tt pk} bitmapy fontů, ani na pÅ™echodnou dobu. Náhražky fontů od firmy URW z~\uv{base~35} jsou proto v~novÄ›jÅ¡Ãch distribucÃch \TeX{}u pÅ™Ãmo instalovány a nespoléhá se v~tomto pÅ™ÃpadÄ› na Ghostscript. NemusÃte pak ani spoléhat na pÅ™Ãtomnost fontů v PostScriptovém RIPu v tiskárnÄ›. NovÄ›jÅ¡Ã verze web2c \TeX{}u nabÃzejà pro takový pÅ™Ãpad možnost použÃt u~programu "dvips" pÅ™epÃnaÄ "-Pdownload"\new{{\tt35}}. \subsub Historie a budoucnost balÃÄku {\tt cspsfonts.tar.gz} | %----------------------------------------------------------- Historie a budoucnost balicku cspsfonts BalÃÄek "cspsfonts.tar.gz" má ménÄ› bohatou historii než \CSfont{}y. Tento balÃÄek zaÄal vznikat v~zářà roku 1994. Tehdy jsem zjistil, že popisy kompozitů v~"AFM" metrice pomocà řádků "CC" jsou správnÄ› pÅ™evádÄ›ny programem "afm2tfm" na odpovÃdajÃcà kompozity ve vytvářeném virtuálnÃm fontu. Problém byl jen v tom, že originálnà "AFM" metriky od Adobe neobsahovaly popisy vÅ¡ech kompozitů potÅ™ebných pro Äeský a slovenský jazyk. Z toho důvodu jsem si vytvoÅ™il program "a2ac"~\cit{a2ac}, který na základÄ› pÅ™ehledné tabulky kompozity do "AFM" metrik doplnil a souÄasnÄ› doplnil kerningové informace pro novÄ› vytvářené znaky. Za použità tohoto programu pak vznikla sada metrik a virtuálnÃch fontů s~pÃsmenem "c" na zaÄátku (napÅ™. "cptmr"). \new{ÄŒeské a slovenské znaky mÄ›ly plovoucà akcenty.} V roce 1996 pak uveÅ™ejnil pan Wagner nové metriky generované stejným způsobem, ovÅ¡em opravil nÄ›kolik estetických nedostatků a navÃc metriky nazval podle doporuÄenà Karla Berryho ("8z" a "8t" na konci). Od té doby jsou v balÃÄku "cspsfonts.tar.gz" obsaženy metriky pana Wagnera. \skrt{KoneÄnÄ› v} \new{V} roce 1999 jsem musel po konzultaci s~Karlem Berrym metriky pro rodinu Courier pÅ™ejmenovat z původnÃho "*8t" na nynÄ›jÅ¡Ã "*8u", protože názvy s~"8t" na konci nám kolidovaly s~názvy stejných fontů v~kódovánà podle Corku. To je zatÃm poslednà zmÄ›na v tomto balÃÄku. Chyst\skrt{ám} \new{al jsem} doplnÄ›nà balÃÄku {\tt cspsfonts.tar.gz} o~nové metriky kódované jako "8z", které mapujà dalÅ¡Ã běžnÄ› použÃvané \ps{}ové fonty. Jako prvnà na Å™adÄ› se nabÃzà pÅ™idánà metrik "8z" pro volnÄ› Å¡ÃÅ™enou rodinu fontů Charter pÃsmolijny BitStream. \newstart V roce 2012 jsem pÅ™idal do merik fontů z tohoto balÃÄku znak Euro a dalÅ¡Ã znaky (viz vybarvené znaky v tabulce). Bohužel po letech už nebyly k dispozici zdroje, ze kterých metriky generoval kdysi pan Wagner. Zejména nebyl k dohledánà správný soubor {\tt xl2.enc}. V metrikách tedy bylo plno nedokumentovatelných slotů, o kterých jsem těžko mohl soudit, co byly zaÄ. Takové sloty považuji za chybu. Proto jsem ustoupil od zpÄ›tné kompatibility a pÅ™egeneroval vÅ¡echny metriky kompletnÄ› znovu. Je možné že sazba tÄ›mito fonty nÄ›kdy výjde mÃrnÄ› jinak než kdysi, ale aspoň máme metriky, které pÅ™esnÄ› korespondujà souboru {\tt xl2.enc}. Protože se mi nepodaÅ™ilo dohledat AFM metriky fontů pÅ™Ãmo od adobe takové, které obsahujà znak {rcaron}, fonty jsem vygeneroval z metrik URW. GenerujÃcà skript je obsahem balÃÄku. Z balÃÄku {\tt cspsfonts.tar.gz} jsem pÅ™emÃstil soubory {\tt ctimes.tex} atd. do balÃÄku {\tt csplain.tar.gz}, kam jsem pÅ™idal dalÅ¡Ã podobné soubory. \newstop \subtitle Formát \csplain{} | FORMAT CSPLAIN %%%%%%%%%%%%%%%%%%%%%%%%%%% \new{Formát \csplain{} má svou stránku na {\tt http://petr.olsak.net/csplain.html}. Je tam ponÄ›kud struÄnÄ›ji Å™eÄeno vÃceménÄ› totéž, jako zde.} PopÃÅ¡u \skrt{jenom} \new{zejména} odliÅ¡nosti formátu \csplain{} (povel {\tt csplain}) od Knuthova formátu plain (povel {\tt tex}), popsaného v~\TeX{}booku~\cit{texbook}. \subsub PÅ™ekódovánà v~input procesoru \TeX{}u | Prekodovani v input procesoru TeXu %-------------------------------------------- \skrt{Vstupnà text pro formát \csplain{} se pÅ™edpokládá 8bitový.} Kódovánà ÄeÅ¡tiny nebo slovenÅ¡tiny vstupnÃho textu je takové, jaké běžnÄ› použÃváte v~systému, kde je váš \TeX{} instalován. O~tomto kódovánà budeme nadále mluvit jako o~{\it vstupnÃm kódovánÃ}. Ze vstupnÃho kódovánà je tÅ™eba text pÅ™ekódovat do {\it vnitÅ™nÃho kódovánÃ}, se kterým internÄ› pracuje \TeX. Toto vnitÅ™nà kódovánà je v~\csplain{}u implicitnÄ› nastaveno na ISO-8859-2 nezávisle na operaÄnÃm systému. V~tomto kódovánà musà být pÅ™ipraveny fonty použité v~dokumentu. \CSfont{}y a fonty zavádÄ›né pomocà "\input ctimes", "\input cbookman" atd. tuto vlastnost majÃ. PÅ™ekódovánà textu \skrt{do vnitÅ™nÃho kódovánà můžete udÄ›lat ruÄnÄ› pÅ™ed spuÅ¡tÄ›nÃm \TeX{}u (to moc nedoporuÄuji) nebo} je \skrt{tato konverze} implementován\skrt{a}\new{o} do input procesoru samotného \TeX{}u. Jak je to udÄ›láno závisà na použité distribuci \TeX{}u. NejběžnÄ›jÅ¡Ã metody nastavenà input procesoru budou zmÃnÄ›ny nÞe. Problém vztahu vstupnÃho a vnitÅ™nÃho kódovánà ilustruji na pÅ™ÃkladÄ›. NechÅ¥ je ve vstupnÃm souboru napsáno "\char174=Ž". Po zpracovánà \csplain{}em musÃm na výstupu dostat: Ž=Ž. TÃmto pÅ™Ãkladem jsem naznaÄil dvÄ› vÄ›ci. Za prvé: nÄ›která makra mohou být závislá na zvoleném vnitÅ™nÃm kódovánà \TeX{}u (zde makro "\char174", které má vytisknout pÃsmeno Ž). Pokud použiju v~systému povel {\tt csplain} bez doplňujÃcÃch maker, pak pÅ™edpokládám, že kód 174 znamená pÃsmeno~Ž. Za druhé: pokud vpravo od rovnÃtka vidÃm v~editoru, kterým zpracovávám vstupnà dokument, pÃsmeno~Ž, pak se tento znak musà dostat do vnitÅ™nÃch Äástà \TeX{}u pod kódem 174, aÄkoli v~tom editoru je tÅ™eba kódován úplnÄ› jinak. Konverze by mÄ›la být implementována (závisle na použitém vstupnÃm kódovánÃ) v~input procesoru \TeX{}u. Důležité je, že to ve svém editoru {\it vidÃm jako Ž\/} a oÄekávám na základÄ› této vizuálnà informace jednotné chovánà \csplain{}u na vÅ¡ech systémech, kde existujà editory, kterými se mohu do zdrojového textu podÃvat a vidÄ›t~Ž (aÄkoli různé operaÄnà systémy mohou toto~Ž kódovat různÄ›). \new{Pokud se zdrojový soubor \csplain{}u pÅ™enášà mezi systémy s různým kódovánÃm, pak pÅ™edpokládáme, že pÅ™Ãjemce se na soubor podÃvá ve svém editoru a když uvidà rozsypaný Äaj, nejprve si obdržený soubor opravÃ}. \new{Jak bylo Å™eÄeno, konverze mezi vstupnÃm kódovánÃm a vnitÅ™nÃm kódovánÃm probÃhá na úrovni input procesoru \TeX{}u. To} \skrt{Konverzi do jednotného vnitÅ™nÃho kódovánÃ} je možné realizovat v~různých distribucÃch \TeX{}u různÄ›. ProÄtÄ›te si dokumentaci k~použité distribuci. V~em\TeX{}u se pro tyto úÄely použÃvá tzv.~TCP tabulka zavádÄ›ná pÅ™i inicializaci formátu. Ve velmi starých web2c distribucÃch \TeX{}u (léta 1992--1997) můžete najÃt tzv.~Å karvadovu záplatu, která nastavovala kódovánà podle promÄ›nné prostÅ™edà systému. PozdÄ›ji se pro pÅ™ekódovánà použÃval enc\TeX (rok 1997), který nastavoval xord/xchr vektor input procesoru \TeX{}u pomocà pÅ™idaných primitivů (viz~\cit{enctex} a \cit{putovani}). \skrt{Dnes} \new{JeÅ¡tÄ› pozdÄ›ji} (po roce 1998) se v~distribucÃch web2c, te\TeX{}, \TeX{}live a odvozených použÃvajà tzv.~TCX tabulky, které se vyvolajà z~pÅ™Ãkazového řádku pomocà pÅ™epÃnaÄe "-translate-file" nebo "-default-translate-file". \new{Dnes doporuÄuji se k enc\TeX{}u vrátit, protože jeho souÄasná verze nabÃzà (na rozdÃl od TCX tabulek) novou možnost: konverzi vÃcebytového kódovánà na vnitÅ™nà jednobytové, takže zvládne vstup kódovaný v UTF-8. Toto kódovánà je od roku 2012 doporuÄeno jako implicitnà vstupnà kódovánà \csplain{}u.} Se správným nastavenÃm pÅ™ekódovacà tabulky úzce souvisà schopnost \TeX{}u zapisovat pÅ™Ãmo znaky použité abecedy \skrt{8bitový text} do logů a do "\write" souborů \new{zpÄ›tnÄ› ve vstupnÃm kódovánÃ.} \skrt{(tam musà být text zpÄ›tnÄ› konvertován do vstupnÃho kódovánÃ).} \TeX{} implicitnÄ› pro výstup do tÄ›chto souborů použÃvá pro znaky s~kódem vÄ›tÅ¡Ãm než 127 hexadecimálnà pÅ™epis uvozený dvÄ›ma znaky "^". To je pro \csplain{} nepÅ™Ãpustné, a proto je nutné v~\TeX{}u rozÅ¡ÃÅ™it tzv.~tabulku znaků povolených pro tisk do logů a pracovnÃch souborů. Ta je ve web2c distribuci rozÅ¡ÃÅ™ena automaticky zavedenÃm~TCX tabulky: znaky, které jsou v~této tabulce zmÃnÄ›ny, se stávajà povolenými pro tisk. To vysvÄ›tluje nutnost použÃvánà tabulky "il2-cs.tcx" v~UNIXových distribucÃch, pÅ™estože tabulka pouze deklaruje pÅ™ekódovánà \uv{jedna ku jedné}. \new{Detekuje-li \csplain{} pÅ™i generovánà formátu aktivovaný enc\TeX, nastavà se tisknutelnost znaků s kódem vÄ›tÅ¡Ãm než 127 automaticky}. VÄ›nujte prosÃm pÅ™i implementaci \csplain{}u do jiných \TeX{}ových distribucà zvýšenou pozornost právÄ› problémům pÅ™ekódovánà v~input procesoru a problému množiny povolených znaků pro tisk do logů a pracovnÃch souborů. Pokud se chcete pÅ™esvÄ›dÄit o~správnosti implementace \csplain{}u, vyzkouÅ¡ejte test cstrip (viz~\cit{cstrip}). \subsub Inicializace formátu | Inicializace formatu %--------------------------- Pokud se vám podaÅ™ilo \csplain{}em zpracovat tento dokument, pak máte formát \csplain{} již inicializovaný a můžete smÄ›le tuto sekci pÅ™eskoÄit. Pokud použÃváte \skrt{nejnovÄ›jÅ¡Ã verzi} \TeX{}live, pak staÄà napsat na pÅ™Ãkazový řádek {\tt csplain dokument} a \new{použije se pÅ™edgenerovaný formát, nebo se} \skrt{pokud tak ÄinÃte poprvé,} formát \skrt{se} automaticky vytvoÅ™Ã. Také můžete inicializovat formát \csplain{} pomocà nástroje {\tt texconfig} napÅ™Ãklad tak, že odstranÃte komentářové znaky u~slova {\tt csplain} v~souboru {\tt texmf/web2c/fmtutil.cnf} a spustÃte "texconfig init". NásledujÃcà text popisuje možnost vytvoÅ™enà formátu \uv{ruÄnÄ›}. \newstart \csplain{} v \TeX{}live se vstupnÃm kódovánÃm UTF-8 vygenerujete za použità enc\TeX{}u (pÅ™epÃnaÄ {\tt-enc}) z pÅ™Ãkazové řádky takto: {\font\tt=cstt9 \begtt pdfetex -ini -enc "\let\enc=u \input csplain.ini" \endtt \par} Takto vygenerovaný formát implicitnÄ› vystupuje do DVI. Dále pdf\csplain{} vygenerujete z pÅ™Ãkazové řádky: {\font\tt=cstt9 \begtt pdfetex -jobname=pdfcsplain -ini -enc "\let\enc=u \input csplain.ini" \endtt \par} PozorovánÃ: tÄ›snÄ› pÅ™ed "\dump" je ve výpisu a v~log souboru napsáno toto hlášenÃ: {\tt jobname=pdfcsplain, PDF output initialised.} Takže nynà je implicitnÄ› nastaven výstup do PDF. Soubory {\tt csplain.fmt} a {\tt pdfcsplain.fmt} je tÅ™eba umÃstit nÄ›kam, kde je \TeX{}ová distribuce najde. MÃsto použità výše uvedených pÅ™Ãkazů se můžete pokusit editovat konfiguraÄnà soubor v~\TeX{}ové distribuci a spustit generovánà formátu prostÅ™edky, které k tomu úÄelu nabÃzà distribuce. SpuÅ¡tÄ›nà \csplain{}u (resp. pdf\csplain{}u) provedete jednÃm z pÅ™Ãkazů \begtt pdfetex -fmt=csplain.fmt dokument csplain dokument pdfetex -fmt=pdfcsplain.fmt dokument pdfcsplain dokument \endtt Druhý a Ätvrtý řádek obsahuje typické zkratky implementované různým způsobem v~závislosti na operaÄnÃm systému a \TeX{}ové distribuci. DalÅ¡Ã možnostà je vygenerovat csplain s jednobytovým vstupnÃm kódovánÃm pomocà tcx tabulek. To se dÄ›lá pÅ™epÃnaÄem "-translate-file", za kterým následuje název použité tcx tabulky. Zbylý text v této sekci vÄ›tÅ¡inou dokresluje situaci pÅ™ed deseti a vÃce lety. \newstop PÅ™Ãkazem {\tt initex} oznaÄuji v tomto textu spuÅ¡tÄ›nà \TeX{}u v~inicializaÄnÃm módu, kdy \TeX{} dokáže naÄÃtat tabulky vzorů dÄ›lenà pro různé jazyky a ukládat nabyté vÄ›domosti pÅ™Ãkazem "\dump" do binárnÃch souborů, tzv. formátů. DÅ™Ãve na to existoval zvláštnà program ini\TeX, dnes se Äasto použÃvá nÄ›jaký pÅ™epÃnaÄ: {\tt tex -ini}, {\tt tex /i} atd. Formát \csplain{} (soubor {\tt csplain.fmt}) vygenerujete jednoduÅ¡e: \begtt initex csplain.ini \endtt PoužÃvat jej pak můžete pomocà pÅ™Ãkazu \begtt tex &csplain dokument \endtt V~UNIXu musÃte použÃt "tex \&csplain dokument", aby se znak "&" neinterpretoval na úrovni shellu. Nezapomeňte ale nastavit správnou pÅ™ekódovacà \new{tcx} tabulku způsobem obvyklým v~použité \TeX{}ové distribuci. NÞe uvádÃm nÄ›kolik pÅ™Ãkladů. \begitems \parindent=0pt * {\bf te\TeX{}, \TeX{}Live, vstupnà kódovánà ISO-8859-2}: \skrt{inicializace: {\tt tex -ini csplain.ini}} \skrt{obsah skriptu {\tt csplain}:}\hfil\break\null\hfil \skrt{{\tt tex -fmt=csplain -default-translate-file=il2-cs \char`\$@}} \newstart inicializace: "tex -ini -translate-file=il2-cs csplain.ini" instalace povelu {\tt csplain}:\quad "ln -s tex csplain" \newstop spuÅ¡tÄ›nà \csplain{}u: "csplain dokument" \medskip * {\bf te\TeX{}, \TeX{}Live, vstupnà kódovánà podle Kamenických} (hypotetický pÅ™Ãklad): inicializace: "tex -ini csplain.ini" obsah skriptu {\tt csplain}:\hfil\break\null\hfil "tex -fmt=csplain -default-translate-file=kam-cs $@" spuÅ¡tÄ›nà \csplain{}u: "csplain dokument" \medskip * {\bf web2c\TeX{} s~enc\TeX{}em, vstupnà kódovánà ISO-8859-2}: inicializace: "tex -ini csplain.ini" instalace povelu {\tt csplain}:\quad "ln -s tex csplain" spuÅ¡tÄ›nà \csplain{}u: "csplain dokument" \medskip * {\bf web2\TeX{} s~enc\TeX{}em, vstupnà kódovánà podle Kamenických}: inicializace: {\tt tex -ini \newAbox{-enc}} "'\let\enc=k \input csplain.ini'" instalace povelu {\tt csplain}:\quad "ln -s tex csplain" spuÅ¡tÄ›nà \csplain{}u: "csplain dokument" \medskip * {\bf em\TeX{}, vstupnà kódovánà podle Kamenických}: inicializace: "htex386 /i /8 /mt26000 /Ckamenic.tcp csplain.ini" obsah dávky {\tt csplain.bat}:\hfil\break\null\hfil "htex386 /mt26000 &csplain %1 %2 %3 %4 %5 %6 %7" \enditems ZastavÃm se na chvÃli u~em\TeX{}u. Parametr {\tt /mt} zde zvÄ›tÅ¡uje prostor pro ukládánà vzorů dÄ›lenà slov tak, aby se do formátu veÅ¡lo celkem pÄ›t vzorů dÄ›lenÃ: anglické vzory dÄ›lenà a dále Äeské i slovenské vzory dÄ›lenà obÄ› v~kódovánà ISO-8859-2 a Cork% \footnote*{Možnost zapnout kódovánà Cork jako alternativnà vnitÅ™nà kódovánà \csplain{}u je implementována od verze "<Feb 2000>". PodrobnÄ›ji se o~tom zmiňuji v~sekci~4.5.}. Paměť pro vzory dÄ›lenà v~\TeX{}u se skládá ze dvou ÄástÃ. Prvnà je nastavována internà \TeX{}ovou promÄ›nnou trie\_size (ta koresponduje s~pÅ™epÃnaÄem {\tt/mt}) a druhá promÄ›nnou trie\_op\_size (viz~\cit{tbn}, str.~301). Bohužel, hodnota trie\_op\_size nenà v~em\TeX{}u mÄ›nitelná a je ve verzÃch "tex.exe" a "tex386.exe" nastavena na malou hodnotu: pÄ›t vzorů dÄ›lenà slov se tam nevejde. Proto jsem v~pÅ™Ãkladu použil "htex386.exe", ve kterém je trie\_op\_size nastavena na dostateÄnÄ› velkou hodnotu. Pokud chcete v~em\TeX{}u použÃt "tex.exe" nebo "tex386.exe", pak musÃte generovat formát \csplain{} jen se tÅ™emi vzory dÄ›lenà -- vylouÄit alternativnà kódovánà Cork. Toho lze dosáhnout jednak tÃm, že použijete verzi \csplain{}u starÅ¡Ã než "<Feb. 2000>", nebo tak, že potlaÄÃte opakované volánà vzorů dÄ›lenà pro Cork pomocà "\let\Cork=\relax" takto: \begtt tex /i/8/mt17000/Ckamenic.tcp \let\Cork=\relax \input csplain.ini \endtt Poznamenejme, že potlaÄit naÄÃtánà vzorů dÄ›lenà v~alternativnÃm kódovánà (Cork) lze pomocà "\let\Cork=\relax" ve vÅ¡ech distribucÃch \TeX{}u. Nejedná se tedy jen o~em\TeX{}ovou záležitost. NicménÄ› v~ostatnÃch mÄ› dostupných distribucÃch nejsou problémy s~výchozà hodnotou pamÄ›ti \TeX{}u pro vzory dÄ›lenà a je možno naÄÃst bez nutnosti cokoli nastavovat vÅ¡ech pÄ›t vzorů dÄ›lenÃ. \subsub Výchozà nastavenà v~\csplain{}u | Vychozi nastaveni v CSplainu %-------------------------------------- Aby byla zachována co nejvÄ›tÅ¡Ã kompatibilita s~mezinárodnÃm formátem plain a aby se necÃtili ÄŒeÅ¡i nebo Slováci vzájemnÄ› utlaÄováni, jsou pÅ™i startu \csplain{}u inicializovány americké vzory dÄ›lenà slov a zapnuto vÄ›tÅ¡Ã mezerovánà za teÄkami (tzv.~"\nonfrenchspacing"). Pro pÅ™epnutà na Äeské vzory dÄ›lenà slov použijte povel "\chyph" a do slovenÅ¡tiny pÅ™epnete pomocà "\shyph". Oba povely navÃc zapnou stejnomÄ›rné mezerovánà i za teÄkou (tzv.~"\frenchspacing"). Takové mezerovánà je v~Äeské a slovenské sazbÄ› obvyklejÅ¡Ã. ZpÄ›t na americké vzory dÄ›lenà a vÄ›tÅ¡Ã mezerovánà za teÄkou pÅ™ejdete pomocà povelu "\ehyph". PÅ™Ãklad: Chceme-li v~\csplain{}u zpracovat Äeský dokument, staÄà na zaÄátku dokumentu uvést "\chyph": \begtt \chyph Tady už bude vÅ¡e fungovat Äesky. \bye \endtt \newstart PÅ™epÃnaÄe "\chyph", resp. "\shyph", resp. "\ehyph" je možné v dokumentu použÃvat kdekoli (napÅ™Ãklad i uvnitÅ™ odstavce) na oddÄ›lenà Äástà dokumentu, které podléhajà Äeským resp. slovenským resp. anglickým pravidlům dÄ›lené slov. PÅ™Ãkazy pro akcenty "\v", "\^", "\`", "\'", "\v", {\tt\char`\\\char`\"} majà implicitnÄ› původnà význam z~plainu, tj. pracujà s primitivem "\accent", který sestavuje znak z akcentu a základu. To menusà být žádoucÃ, protože pak nefunguje dÄ›lenà slov. PÅ™Ãkazem "\csaccents" se uvedené pÅ™Ãkazy pÅ™edefinujà tak, že expandujà pÅ™Ãmo na akcentované znaky jako celek. ZaÄne fungovat dÄ›lenà slov v pÅ™Ãpadech, kdy jsou slova napsána "takov\'ym podivn\'ym zp\r usobem".~ NovÄ› je po "\csaccents" definován pÅ™Ãkaz "\r" pro akcent kroužku. KoneÄnÄ› se správnÄ› vysázejà i sekvence "\v d" nebo "\'i", které původnÄ› Äinily potÞe. \newstop \skrt{{\bf UpozornÄ›nÃ:} nedoporuÄuji v~dokumentech pro \csplain{} použÃvat styl {\tt czech.sty} resp. {\tt slovak.sty}. TÃm se totiž dokument zcela zbyteÄnÄ› stává závislým na externÃm balÃku maker, který nenà pÅ™ÃliÅ¡ stabilnÃ. Pokud k~tomu nemáte vážné důvody, styl {\it nepoužÃvejte}. Styl je vyvÃjen spÃÅ¡e pro uživatele \LaTeX{}u, zatÃmco uživatel \csplain{}u si vystaÄà s~povely {\tt\char`\\chyph} a {\char`\\shyph}. V~budoucnu pÅ™estÄ›huji tyto styly z~archivnÃho souboru {\tt csplain.tar.gz} (kam nepatřà a jsou tam jen z~historických důvodů) do archivu {\tt cslatex.tar.gz}.} RozmÄ›r tiskového zrcadla (výška a Å¡ÃÅ™ka textu) je implicitnÄ› nastaven tak, aby vÅ¡echny ÄtyÅ™i okraje mÄ›ly velikost 1~palec na papÃru formátu A4. To je významný rozdÃl oproti nastavenà ve formátu plain, kde se sice také pÅ™edpokládajà okraje 1~in, ale na papÃru US-letter. NÞe uvádÃm tabulku nastavenà rozmÄ›rů zrcadla v~\csplain{}u a pro srovnánà tytéž parametry v~originálnÃm plainu: \begtt CSplain plain ----------------------------------------------------- \hsize = 159.2mm \hsize = 6.5in (165.1mm) \vsize = 239.2mm \vsize = 8.9in (226.06mm) \hoffset = 0mm \hoffset = 0in \voffset = 0mm \voffset = 0in \endtt \newstart KromÄ› znaků anglické abecedy jsou v \csplain{}u za pÃsmena považovány i vÅ¡echny akcentované znaky Äeské a slovenské abecedy, takže i tyto znaky majà nastaven "\catcode=11" a dále majà nastaveny odpovÃdajÃcà "\lccode" a "\uccode". \newstop Výchozà fonty zavedené do formátu \csplain{} jsou \CSfont{}y. Pro matematiku jsou zavedeny původnà Computer Modern fonty. Na rozdÃl od plainu formát \csplain{} nezavádà do pamÄ›ti pÅ™i inicializaci desÃtky dalÅ¡Ãch fontů oznaÄených jako "\preloaded", protože dalÅ¡Ã fonty se dajà zavést povelem "\font" až v~dobÄ› potÅ™eby. Na starodávných strojÃch bylo možná užiteÄné zavést fonty \uv{do rezervy} už pÅ™i inicializaci formátu, aby pak pÅ™Ãkaz "\font" použitý v~dokumentu moc nezdržoval. PÅ™i dneÅ¡nÃch rychlostech poÄÃtaÄů je toto opatÅ™enà zcela zbyteÄné, a proto v~\csplain{}u nepoužité. Matematická sazba funguje v~\csplain{}u zcela stejnÄ›, jako v~originálnÃm plainu. Je to dÃky tomu, že implicitnÄ› zavedené \CSfont{}y jsou konzervativnÃm rozÅ¡ÃÅ™enÃm Computer Modern fontů. PÅ™i zavádÄ›nà jiných fontů do dokumentu je potÅ™eba poÄÃtat pÅ™i matematické sazbÄ› s~nÄ›kterými obtÞemi (viz následujÃcà dvÄ› sekce). \newstart \subsub Makro {\tt opmac.tex} | %---------------------------- Makro opmac.tex Makro {\tt opmac.tex} je od konce roku 2012 souÄástà balÃÄku \csplain{}u. NapÃÅ¡ete-li do záhlavà dokumentu \begtt \chyph \input opmac \endtt % pak máte k dispozici dalÅ¡Ã makra, která Å™eÅ¡Ã následujÃcà vÄ›ci: automatickou tvorbu obsahu, ÄÃslovánÃ, kapitoly, sekce, křÞové reference, verbatim prostÅ™edÃ, vkládánà obrázků, bibtexové odkazy. Tuto sadu svých maker dávám k dispozici s tÃm, že jsem si vÄ›dom, že makra neÅ™eÅ¡Ã vÅ¡echno a ve vÅ¡ech souvislostech, nicménÄ› kladu důraz na jednoduchost a srozumitelnost maker. PÅ™edpokládám, že si je uživatelé pÅ™edefinujà k obrazu svému, nicménÄ› usnadnÃm zaÄÃnajÃcÃmu uživateli prvnà kroky smÄ›rem k \csplain{}u. WWW stránka nabÃzejÃcà OPmac je {\tt http://petr.olsak.net/opmac.html}. Uživatelká dokumentace k makrům je v souboru {\tt opmac-u.pdf} a technická dokumentace v souboru {\tt opmac-d.pdf}. \newstop \subsub Použità \ps{}ových fontů v~\csplain{}u | %------------------------------------------ Pouziti PostScriptovych fontu v CSplainu SouÄástà \CSTeX{}u v~balÃÄku {\tt cspsfonts.tar.gz} jsou kromÄ› metrik také soubory, které pÅ™edefinujà textové fonty z~výchozÃch \CSfont{}ů na fonty nÄ›které rodiny z~\uv{base~35}. Jak jsme již uvedli v pÅ™edchozà kapitole, fonty z balÃÄku {\tt cspsfonts.tar.gz} jsou kódovány v~ISO-8859-2, tedy v~souladu s~vnitÅ™nÃm kódovánÃm použitým v~\csplain{}u. NÞe je tabulka souborů, které zavádÄ›jà \ps{}ové fonty do \TeX{}u primitivem "\font": \begtt soubor Rodina fontů -------------------------------- cavantga.tex Avantgarde Book cbookman.tex Bookman chelvet.tex Helvetica cncent.tex New Century cpalatin.tex Palatino ctimes.tex Times Roman \endtt % Chcete-li napÅ™Ãklad pÅ™epnout do pÃsma Bookman, staÄà napsat na zaÄátek dokumentu: \begtt \input cbookman \endtt Pokud sami pracujete s~primitivem "\font" napÅ™Ãklad pro zavedenà vÄ›tÅ¡Ãch velikostà fontů u nadpisů, doporuÄuji použÃt následujÃcà konstrukci: \begtt \font\titulfont=\fontname\tenbf\space scaled \magstep2 \endtt % Tato konstrukce nenà závislá na konkrétnÃm fontu, takže když pozdÄ›ji zmÄ›nÃte pÅ™ed takovou konstrukcà "\input bookman" napÅ™Ãklad na "\input cpalatin", zmÄ›nà se automaticky i font pro nadpisy. \newstart Uvedené soubory {\tt cavantga.tex}, \dots, {\tt ctimes.tex} zavádÄ›jà ÄtyÅ™i běžné varianty textových fontů "\tenrm", "\tenit", "\tenbf", "\tenbi" a k nim pátou variantu "\tentt" implicitnÄ› ve velikosti 10pt. Uživatel mÃsto pÅ™Ãmého použità uvedených pÅ™epÃnaÄů použÃvá obvykle makra "\rm", "\it", "\bf", "\bi", "\tt". Je možné tyto jednou zavedené fonty kdykoli pozdÄ›ji zmÄ›nit do jiné velikosti. NapÅ™Ãklad po "\def\sizespec{at12pt}\resizeall" bude vÅ¡ech pÄ›t variant fontů pÅ™ipraveno ve velikosti 12pt. IndividuálnÄ› lze zmÄ›nit velikost každému fontu zvlášť pÅ™Ãkazem "\resizefont" jehož parametr je fontový pÅ™epÃnaÄ (nikoli makro). PÅ™epÃnaÄ zmÄ›nà velikost svého fontu podle makra "\sizespec". Pozor: makra "\resizefont" a "\resizeall" sice zmÄ›nà velikosti fontů odpovÃdajÃcÃm pÅ™epÃnaÄům, ale nenastavà aktuálnà sazbu novým fontem, takže bez následného použità pÅ™epÃnaÄe nevidÃte výsledek. Je tedy nutno napÅ™Ãklad psát: "\def\sizespec{at12pt}\resizeall\tenrm". ZmÄ›na velikosti fontů má lokálnà platnost, takže tÅ™eba makro pro sazbu titulu může vypadat takto: {\font\tt=cstt9 \begtt \def\titul#1{\centerline{\def\sizespec{at20pt}\resizefont\tenbf\tenbf#1}} \endtt \par} Makro "\resizeall" lze rozÅ¡iÅ™ovat o dalÅ¡Ã fontové pÅ™epÃnaÄe mimo uvedených pÄ›t. O toto rozÅ¡ÃÅ™enà se postará makro "\regfont <pÅ™epÃnaÄ>". Po použità tohoto makra je "<pÅ™epÃnaÄ>" tzv. \uv{registrovaný}, takže bude mÄ›nit velikost svého fontu po spuÅ¡tÄ›nà makra "\resizeall". Fontové soubory {\tt cavantga.tex}, \dots, {\tt ctimes.tex} nastavujà obvykle jen základnÃch pÄ›t variant a žádné nové pÅ™epÃnaÄe neregistrujÃ. ZavádÃ-li ale fontový soubor fonty i pro dalÅ¡Ã varianty, mÄ›l by použÃt "\regfont". Fontové soubory {\tt cavantga.tex}, \dots, {\tt ctimes.tex} automaticky naÄtou dalÅ¡Ã soubor maker {\tt tx-math.tex}. Tato makra zavedou do matematické sazby TXfonty. Ty jsou vizuálnÄ› kompatibilnà s Times\-Roman a mnoha dalÅ¡Ãmi fonty. Po zavedenà makra "tx-math.tex" jsou k dispozici stovky pÅ™Ãkazů pro jednotlivé znaky matematické sazby (nadmnožina znaků z AMS\TeX{}u) a dále jsou (kromÄ› pÅ™epÃnaÄe "\cal" z plain\TeX{}u) k dispozici následujÃcà pÅ™epÃnaÄe matematických abeced: \begtt \frak % matematická fraktura \script % skript mnohem zakroucenÄ›jÅ¡Ã než \cal \bbchar % pÃsmena kreslená dvÄ›ma tahy \bf % bold sans-serif pÃsmo \bi % bold slanted sans-serif pÃsmo, nÄ›kdo tÃm znaÄà vektory \endtt Kompletnà soubor matematických fontů je makrem "tx-math.tex" zaveden ve velikosti 10/7/5pt (základnÃ/indexová/indexindexová velikost). OvÅ¡em tuto implicitnà volbu je možné kdykoli v dokumentu zmÄ›nit pomocà (napÅ™Ãklad): \begtt \setmathsizes[12/8.4/6]\normalmath \endtt PÅ™Ãkaz "\normalmath" pozmÄ›nà vÅ¡echny matematické fonty do potÅ™ebných nových velikostà deklarovaných pomocà "\setmathsizes". PÅ™Ãkaz "\boldmath" dÄ›lá totéž, ale pÅ™ipravà mÃsto \uv{normálnÃch} fontů jejich tuÄné varianty. Tento pÅ™Ãkaz se hodà použÃt do maker s nadpisy. ZmÄ›ny fontů majà lokálnà platnost. KromÄ› "tx-math.tex" je k dispozici analogické makro "ams-math.tex", které ponechává v matematické sazbÄ› \CS{}fonty a pÅ™idává k nim kompletnà sadu \AMS{} fontů. Toto makro nabÃzà pro práci s fonty (volba matematické abecedy, zmÄ›na velikostà a duktu) stejné pÅ™Ãkazy jako makro "tx-math.tex". ObÄ› makra navÃc nabÃzejà dva pÅ™epÃnaÄe, které mÄ›nà chovánà promÄ›nných, ÄÃslic a fontů pro sazbu $\sin$, $\cos$, $\lim$, atd.: \begtt \itvariables % promÄ›nné a \rm z aktuálnÃho textového fontu \mitvariables % promÄ›né ze speiálnÃho fontu, \rm taky. \endtt Volba "\itvariables" je implicitnà v "tx-math.tex", protože se pÅ™edpokládá, že \uv{kolem} je textový font se kterým by mÄ›ly být promÄ›nné v matematice v souladu. Naopak v "ams-math.tex" je implicitnà "\mitvrariables", aby se využilo mÃrnÄ› modifikované kurzÃvy vyvinuté speciálnÄ› pro matematickou sazbu v Computer Modern. \uv{Kolem} se totiž pÅ™edpokládá běžný text v \CS{}fontech nebo ve vizuálnÄ› kompatibilnÃch fontech. KromÄ› souborů {\tt cavantga.tex}, \dots, {\tt ctimes.tex} jsou v balÃÄku \csplain{}u pÅ™ipraveny dalÅ¡Ã obdobné, jejichž názvy vÄ›tÄinou zaÄÃnajà na {\tt cs-}. NapÅ™Ãklad {\tt cs-antt.tex} zavádà fonty Antykwy Toru\'nske. PÅ™ehled o vÅ¡ech takových souborech by se mÄ›l objevit na terminálu po {\tt\char`\\input cs-all}. Toto makro nevykoná nic, jen vypÃÅ¡e seznam dostupných fontových souborů. IniciativÄ› k pÅ™idánà dalÅ¡Ãch fontových souborů se meze nekladou. \newstop \skrt{% Po zavedenà rodiny \ps{}ových fontů je potÅ™eba dát pozor na matematickou sazbu. Jedná se o~veÅ¡kerou sazbu realizovanou ve zdrojovém textu mezi dolary. Ta i po zmÄ›nÄ› textových fontů pracuje s~původnÃmi \CSfont{}y a Computer Modern fonty. JedinÄ› tak je dosaženo, že realizace vÅ¡ech matematických symbolů z~plainu zůstává zachována. % NapÃÅ¡ete-li po zavedenà nového textového fontu v~textu napÅ™Ãklad ÄÃslovku 2 bez použità dolarů, dostanete dvojku z~nového fontu. Použijete-li ale "$2$", na výstupu bude dvojka z~\CSfont{}ů. Toto mÃchánà fontů nenà estetické. Chcete-li se mu aspoň ÄásteÄnÄ› vyhnout, použijte po zavedenà rodiny fontů povel {\tt\char`\\setsimplemath}, napÅ™Ãklad:} {\catcode`/=0 \catcode`[=1 \catcode`]=2 \begtt /skrt[\input cbookman \setsimplemath] \endtt \relax}% \skrt{PÅ™Ãkaz zavede i pro fonty, které \TeX{} použÃvá pÅ™i sazbÄ› mezi dolary (\TeX{}ová rodina 0 a 1), odkazy na novÄ› použité \ps{}ové fonty. Tento pÅ™Ãkaz je ale potÅ™eba použÃt s~velkou opatrnostÃ, protože bude fungovat zÅ™ejmÄ› jen jednoduchá matematika. NapÅ™Ãklad Å™ecké symboly, které použité rodiny fontů neobsahujÃ, nenávratnÄ› ztratÃte. NavÃc matematické symboly a natahovacà závorky (\TeX{}ová rodina 2 a 3) zůstávajà i nadále v~Computer Modern, takže se mÃchánà typů fontů zcela nevyhnete.} \skrt{Pokud chcete použÃvat složitÄ›jÅ¡Ã matematickou sazbu kombinovanou s~Post-}\break\skrt{Scriptovými fonty, pak máte dvÄ› možnosti:} \skrt{1. Nastavit {\tt\char`\\mathcode} vÅ¡ech matematických symbolů tak, aby byly použity napÅ™Ãklad znaky z~PostScriptového fontu Symbol. Matematické znaky z~tohoto fontu jsou navrženy jako doplnÄ›k k~fontu Times Roman, ale hodà se i k~jiným PostScriptovým fontům. Bohužel, natahovacà závorky a velké operátory (jedna ze specialit \TeX{}u) v~tomto fontu nejsou, takže tyto objekty je nutné ponechat v~Computer Modern. Abyste nemuseli {\tt\char`\\mathcode} pracnÄ› nastavovat, doporuÄuji použÃt makro OFS~\cit{OFS}.} \skrt{2. Zakoupit nÄ›jaký komerÄnà matematický font vÄetnÄ› natahovacÃch závorek. Vhodný je napÅ™Ãklad MathTimes firmy Y\&Y. Pro Å¡Å¥astné majitele této sady fontů je v~\csplain{}u distribuován soubor {\tt cmt.tex}, takže pokud na zaÄátku dokumentu uvedete} {\setbrackets \begtt !skrt[\input ctimes] !skrt[\input cmt] \endtt % \relax}\skrt{pak budete mÃt i matematickou sazbu v~\uv{Times-Roman stylu} se vÅ¡Ãm vÅ¡udy vÄetnÄ› Å™eckých symbolů a natahovacÃch závorek. Jen nÄ›které drobnosti (napÅ™Ãklad skákavé ÄÃslice v~plainu dosažené pomocà "\fam=1") musÃte udÄ›lat jinak. PÅ™eÄtÄ›te si manuál k~zakoupené sadÄ› fontů. } \skrt{Matematické fonty v~\uv{Times-Roman stylu} se dajà kombinovat i s~mnoha textovými \ps{}ovými fonty dynamické antikvy s~dostaÄujÃcÃm estetickým výsledkem. PodstatnÄ› horÅ¡Ã je kombinovat dynamickou antikvu textového \ps{}ového fontu se statickou antikvou Computer Modern. To je důvod, proÄ se nákup sady fontů MathTime vyplatÃ.} {\hbadness=4000\par} \new{Pokud chcete použÃvat rozsáhlé množstvà fontů sofistikovaným způsobem v matematické i textové sazbÄ›, můžete použÃt balÃÄek OFS~\cit{OFS}.} \newstart \subsub UTF-8 kódovaný \csplain{} | UTF-8 kodovany csplain %-------------------------------- Od roku 2012 je doporuÄeno implicitnÄ› generovat \csplain{} se vstupnÃm kódovánÃm UTF-8 pomocà enc\TeX{}u. Každý znak mimo ASCII je v UTF-8 kódován dvÄ›ma nebo vÃce byty. Tato sekce pojednává o vlastnostech takto generovaného formátu. Poznáte jej podle toho, že do logu a na terminál napÃÅ¡e: \begtt The utf8->iso8859-2 re-encoding of Czech+Slovak alphabet activated by encTeX \endtt Vygenerovaný formát zaruÄà správné zpracovánà ASCII znaků. Dále je pÅ™i výchozÃm nastavenà zaruÄeno správné zpracovánà jen znaků Äeské a slovenské abecedy, tedy znaků: \medskip {\spaceskip=2pt à á Ä ä ÄŒ Ä ÄŽ Ä Ã‰ é Äš Ä› à à Ĺ ĺ Ľ ľ Ň ň Ó ó Ö ö Ô ô Å” Å• Ř Å™ Å Å¡ Ť Å¥ Ú ú Å® ů Ãœ ü à ý Ž ž }\medskip Tyto znaky jsou z UTF-8 kódu mapovány na internà jeden byte podle kódovánà \CS{}fontů. Dále jsou implicitnÄ› mapovány UTF-8 kódy vÅ¡ech znaků, které majà svou Å™Ãdicà sekvenci definovanou v plainu nebo v \csplain{}u. Jsou to tyto znaky: {\catcode`/=13 \def/#1/{{\rm \csname#1\endcsname}} \begtt plain: \ss /ss/ \l /l/ \L /L/ \ae /ae/ \oe /oe/ \AE /AE/ \OE /OE/ \o /o/ \O /O/ \i /i/ \j /j/ \aa /aa/ \AA /AA/ \S /S/ \P /P/ \copyright /copyright/ \dots /dots/ \dag /dag/ \ddag /ddag/ csplain: \clqq /clqq/ \crqq /crqq/ \flqq /flqq/ \frqq /frqq/ \promile /promile/ \endtt \par} Pokud je na vstupu jakýkoli jiný UTF-8 kód, implicitnÄ› je nemá \csplain{} mapován, takže se vypÃÅ¡e na terminál a do logu následujÃcà varovánÃ: \begtt WARNING: unknown UTF-8 code: `X = ^^xx^^xx' (line: ??) \endtt % a do tiskového výstupu se vložà na dané mÃsto Äerný ÄtvereÄek. Uživatel si musà takový znak dodefinovat. NapÅ™Ãklad po hlášenÃ: {\catcode`!=0 \begtt WARNING: unknown UTF-8 code: `!~N = ^^c3^^91' (line: 42) \endtt \relax}% si uživatel do záhlavà dokumentu napÅ™Ãklad doplnà definici: \begtt \mubyte\Ntilde ^^c3^^91\endmubyte % UTF-8 kód mapován na \Ntilde \def\Ntilde{{\~N}} % sekvence \Ntilde definována \endtt % Po této úpravÄ› se pÅ™i zpracovánà dokumentu už varovánà neobjevà a vstupnà kód se zpracuje jako Å™Ãdicà sekvence "\Ntilde", která expanduje na "\~N", takže v tiskovém výstupu se objevÃ~\~N. Pokud se Å™Ãdicà sekvence mapovaná pomocà "\mubyte" objevà v argumentu "\write" souboru, nebude expandovat, ale promÄ›nà se pÅ™i zápisu do souboru zpÄ›tnÄ› do odpovÃdajÃcÃho UTF-8 kódu. BÄ›hem "\write" a pÅ™i zápisu do logu se také zpÄ›t na UTF-8 kódy proměňujà internà byte, které byly mapovány. ImplicitnÄ› tedy jsou to znaky Äeské a slovenské abecedy vyjmenované výše. Ostatnà nemapované internà byte s kódem vÄ›tÅ¡Ãm jak 127 se pÅ™episujà podle dvouzobákové konvence napÅ™.~takto:~"^^ad". Jestliže do deklarace dokumentu napÃÅ¡ete "\xprncodes=1", budou se ostatnà nemapované byty vypisovat pÅ™Ãmo. PÅ™Ãkazy "\mubytein", "\mubyte" a "\endmubyte" jsou souÄástà enc\TeX{}u a jsou popsány v jeho dokumentaci. StruÄnÄ› Å™eÄeno "\mubytein=0" vypÃná pÅ™echodnÄ› použità kódovacà tabulky a "\mubyte token string\endmubyte" zaÅ™adà do kódovacà tabulky dalšà údaj: "string" bude na vstupu pÅ™eveden na internà "token" v~\TeX{}u a pÅ™i Äinnosti "\write" bude "token" zpÄ›tnÄ› pÅ™eveden na "string". PÅ™i použità jiných fontů pomocà "\input ctimes" (atd., viz sekci 4.5) je zavolán soubor "chars-8z.tex", který mapuje dalÅ¡Ã UTF-8 kódy na Å™Ãdicà sekvence, jež jsou pomocà "\chardef" propojeny se znakem fontu. Jsou to tyto znaky: {\font\f=ptmr8z \catcode`/=13 \def/#1/{{\f\char#1}} \begtt \euro /134/ \trademark /136/ \registered /138/ \ellipsis /128/ \textbullet /131/ \sterling /132/ \currency /164/ \endtt \par} Soubor "chars-8z.tex" navÃc pÅ™edefinovává makra plainu "\P", "\S", "\dag", "\ddag", "\copyright", "\lslash", "\Lslash" pomocà "\chardef", aby tyto Å™Ãdicà sekvence vedly pÅ™Ãmo na znak ve fontu. V balÃÄku {\tt enctex.tar.gz} (a podruhé i v {\tt csplain.tar.gz}) jsou pÅ™ipraveny soubory, které mapujà UTF-8 kódy celých bloků UNICODE tabulky na Å™Ãdicà sekvence a definujà jejich výchozà chovánÃ. Můžete použÃt: \begtt \input utf8lat1 % Latin-1 Supplement U+0080--U+00FF \input utf8lata % Latin Extended-A U+0100--U+017F \endtt % a možná v budoucnu i dalÅ¡Ã. Po zavedenà tÄ›chto souborů se novÄ› deklarované UTF-8 kódy mapujà na Å™Ãdicà sekvenci, napÅ™. \"e se mapuje na "\edieresis" a tato sekvence expanduje na pÅ™ÃsluÅ¡né sestavenà akcentu, v tomto pÅ™ÃkladÄ› na {\tt\char`\\\char`\"e}. Na internà byte zůstávajà mapovány jen znaky Äeské a slovenské abecedy. Pokud ale {\it pÅ™ed zavedenÃm tÄ›chto souborů\/} použijete "\input t1code" (pÅ™echod na internà kódovánà T1, tj. podle Corku), pak se na internà byte mapujà také vÅ¡echny znaky definované v T1 kódovánÃ. Pro novÄ› mapované Å™Ãdicà sekvence jsou použity definice ze souborů {\tt utf8lat*.tex} jen tehdy, pokud tyto Å™Ãdicà sekvence nejsou definovány dÅ™Ãve. Pokud pÅ™edložÃte \csplain{}u (generovaném pro UTF-8 kodovánà vstupu) dokument kódovaný jinak, než v UTF-8, skoro jistÄ› se doÄkáte chybového hlášenÃ: {\font\tt=cstt9 \begtt ! UTF-8 INPUT IS CORRUPTED ! May be you are using another input encoding. \endtt \par} Je ovÅ¡em možné snadno pÅ™ejÃt do módu, pÅ™i nÄ›mž UTF-8 kódovaný \csplain{} pracuje stejnÄ› jako \csplain{} s kódovánÃm ISO-8859-2. StaÄà na zaÄátek dokumentu napsat: \begtt \mubytein=0 \mubyteout=0 \mubytelog=0 \xprncodes=1 \endtt % Tuto práci vykoná také soubor "utf8off.tex", tj. staÄà napsat "\input utf8off". Tento soubor navÃc definuje makro "\clearmubyte", které vymaže data deklarovaná pomocà "\mubyte...\endmubyte". Je dokonce možné mÃt na vstupu pÅ™i sazbÄ› jediného dokumentu různé soubory různÄ› kódované. Nenà nutné pÅ™i pÅ™echodu z jednoho kódovánà pÅ™epÃnat na druhé. StaÄà na zaÄátek dokumentu napsat: \begtt \input mixcodes \endtt a od této chvÃle je možné na vstupu stÅ™Ãdat texty kódované dle UTF-8, ISO-8859-2 nebo CP1250 dle libosti. VÅ¡echny výstupy pomocà "\write" jsou kódovány podle UTF-8 a jsou tedy opÄ›t pÅ™ipraveny k naÄtenÃ. V pÅ™edchozÃm odstavci nenà zcela pÅ™esná formulace \uv{stÅ™Ãdat kódovánà dle libosti}. Platà to jen pro Äeský text. Slovákům nefunguje \frqq\v l\flqq{} v~CP1250. Pokud jim to vadÃ, napÃÅ¡ou "\shyph" pÅ™ed volánÃm "\input mixcodes". Pak ale zase nefunguje \frqq ž\flqq{} v~ISO-8859-2. Tyto dva znaky jsou v uvedených dvou kódovánÃch ponÄ›kud v~konfliktu. UTF-8 vstup ale funguje bez problémů. \newstop \subsub Použità fontů kódovaných podle Corku (T1 kódovánÃ) nebo v Unicode | %-------------------------------------------------------------------- Pouziti fontu kodovanych podle Corku nebo v Unicode Od verze \csplain{}u "<Feb. 2000>" naÄÃtá tento formát pÅ™i inicializaci tabulky vzorů dÄ›lenà nejen v~ISO-8859-2, ale též v~kódovánà podle Corku (tzv.~T1 kódovánÃ). Tyto tabulky \uv{ÄekajÃ} na pÅ™Ãpad, kdy uživatel bude chtÃt použÃt ve svém dokumentu fonty, jejichž metriky jsou kódované v~T1. Může se totiž stát, že uživatel nebude chtÃt pÅ™ipravovat metriky a virtuálnà fonty pro novÄ› zakoupené \skrt{\ps{}ové} fonty ruÄnÄ› (pomocà programů "a2ac" a "afm2tfm" nebo pomocà "fontinst"), ale bude chtÃt využÃt již hotové metriky nabÃzené v~\TeX{}ových archivech. Tyto hotové metriky jsou ale vÄ›tÅ¡inou v~T1 kódovánÃ. \newstart Od verze \csplain{}u "<Nov. 2012>" naÄÃtá tento formát pÅ™i své inicializaci tabulky vzorů dÄ›lenà také v UNICODE, pokud detekuje, že je použit \TeX{}ový program, který internÄ› dovede pracovat v UNICODE. Takovým \TeX{}ovým programem může být Lua\TeX{}, Xe\TeX{} nebo Omega. \newstop Upozorňuji na urÄitá omezenà použità \csplain{}u s~T1 kódovanými fonty: \begitems * VÅ¡echny fonty v~celém dokumentu musejà být kódovány jednotnÄ› v~ISO-8859-2 nebo v~T1 \new{nebo v UNICODE}. V~dokumentu nelze fonty \skrt{obou}\new{tÄ›chto} kódovánà jednoduÅ¡e mÃchat. * \csplain{} {\it implicitnÄ›} nastavuje vnitÅ™nà kódovánà do ISO-8859-2. ZmÄ›nÃte-li tuto vlastnost, pak použitý povel v~systému se už nesmà nazývat {\tt csplain}. * ZmÄ›nit vnitÅ™nà kódovánà \TeX{}u pÅ™Ãkazem "%&" na prvnÃm řádku dokumentu je možné ve web2c distribucÃch \TeX{}u a odvozených. V~jiných instalacÃch nemusà být tato vlastnost možná. Proto je tÅ™eba poÄÃtat s~tÃm, že dokument opÃrajÃcà se o~tento pÅ™Ãkaz nemusà být zcela pÅ™enositelný na jiné implementace \TeX{}u. \enditems PÅ™epnutà na vnitÅ™nà kódovánà podle Corku udÄ›láte pÅ™Ãkazem "\input t1code". \newstart PÅ™epnutà na kódovánà UNICODE provedete pomocà "\input ucode". Toto by mÄ›l být prvnà pÅ™Ãkaz v dokumentu, pak teprve následuje "\chyph" nebo "\input opmac" nebo naÄÃtánà fontových souborů. \newstop \skrt{KromÄ› toho,} \new{Nemáte-li UTF-kódovaný csplain,} \skrt{se} musÃte \new{se} postarat o~to, aby se vstupnà kódovánà správnÄ› konvertovalo na vnitÅ™nà kódovánà \TeX{}u. NapÅ™Ãklad ve web2c distribuci použijete volbu "-translate-file". PÅ™Ãklad použità T1 kódovaného fontu: \begtt %&csplain -translate-file=il2-t1 \input t1code %% NÄ›které definice závislé na kódovánà \chyph %% PÅ™Ãkaz nynà zapne tabulku 15 mÃsto tabulky 5 \font\f=ptmr8t %% Zavedenà T1 kódovaného fontu Times-Roman \f Tady je Äeský text zpracovaný uvnitÅ™ \TeX{}u v kódovánà T1 vÄetnÄ› použità správné tabulky pro dÄ›lenà slov. \end \endtt Takto pÅ™ipravený soubor \TeX{}ujte na web2c instalaci nikoli povelem {\tt csplain}, ale radÄ›ji povelem {\tt tex}, tedy: \begtt tex dokument \endtt Program {\tt tex} z~web2c implementace se podÃvá do prvnÃho řádku dokumentu a pokud tam najde dvojici "%&", zavede formát a TCX tabulku (která pozměňuje xord/xchr vektor) podle toho, co je za touto dvojicà napsáno. Pokud byste použili skript {\tt csplain} obsahujÃcà pÅ™epÃnaÄ "-translate-file=il2-cs", nebude to fungovat, protože pÅ™epÃnaÄ na pÅ™Ãkazovém řádku má vyÅ¡Å¡Ã prioritu než v~dokumentu. V~novÄ›jÅ¡Ãch implemetacÃch pÅ™Ãkazu {\tt csplain} je použit skript, který obsahuje pÅ™epÃnaÄ "-default-translate-file=il2-cs". Ten má prioritu nižšÃ, takže pak lze pÅ™i zpracovánà dokumentu s~konstrukcà "%&" použÃt i pÅ™Ãkaz {\tt csplain}. Do distribuce \csplain{}u jsou zaÅ™azeny soubory {\tt dcfonts.tex}, {\tt ecfonts.tex} \skrt{a pro inspiraci též {\tt ttimes.tex}}. Pokud na zaÄátku dokumentu napÅ™Ãklad napÃÅ¡ete: \begtt %&csplain -translate-file=il2-t1 \input ecfonts \chyph \endtt \noindent pÅ™evádÃte celou sazbu do EC fontů kódovaných podle Corku. V~zavádÄ›ném souboru "ecfonts.tex" je proveden "\input t1code", takže se o~to pÅ™Ãmo v~dokumentu už nenà potÅ™eba starat. \skrt{PÅ™i zavádÄ›nà \ps{}ových fontů (napÅ™Ãklad použitÃm {\tt ttimes.tex}) nastávajà stejné problémy s~matematickou sazbou, jako pÅ™i použità \ps{}ových fontů kódovaných v~ISO-8859-2. Tyto problémy jsou popsány v~pÅ™edchozà sekci.} \newstart Pokud dáte "\input t1code" pÅ™ed "\input ctimes", (nebo "\input cavantga", atd.), budou požadované fonty zavedeny v T1 kódovánÃ. Takže k sazbÄ› Bookmanem v T1 kódovánà staÄà v UTF-8 kódovaném \csplain{}u napsat: \begtt \input t1code \input cbookan \endtt Bohužel T1 kódované fonty jsou generovány programem fontinst, který má ve svých konfiguraÄnÃch souborech chybu pro pÃsmena Å¥ a Ä. Tato pÃsmena jediná nejsou v tÄ›chto fontech realizovaná jako pÅ™Ãmé znaky a jsou poskládána z komponent naprosto odstraÅ¡ujÃcÃm způsobem. Kdo opravà tuto chybu ve fontinstu, nechÅ¥ o tom, prosÃm, reportuje na pÅ™ÃsluÅ¡ných mÃstech, aby mohli správci distribucà pÅ™egenerovat {\tt 8t}~metriky. Pokud dáte v 16bitovém \TeX{}u (tj. Xe\TeX, Lua\TeX{} nebo v nÄ›Äem podobném) "\input ucode" pÅ™ed "\chyph" a "\input lmfonts", bude ÄeÅ¡tina uvnitÅ™ \TeX{}u zpracována v Unicode a tiÅ¡tÄ›na Latin Modern Unicode fonty. Jiné soubory pro Ätenà fontů zatÃm pro 16bitový \TeX{} upraveny nejsou. \subsub Vzory dÄ›lenà slov v různých jazycÃch a kódovánÃch | %------------------------------------------------------ Vzory deleni slov v ruznych jazycich a kodovanich ImplicitnÄ› naÄÃtá \csplain{} pÅ™i generovánà formátu následujÃcà vzory dÄ›lenÃ: \begitems * "\enPatt=0" ... (implicitnà vzor z plain\TeX{}u) v ASCII kódovánà * "\csILtwo=5" ... ÄeÅ¡tina v ISO-8859-2 * "\skILtwo=6" ... slovenÅ¡tina v ISO-8859-2 * "\csCork=15" ... ÄeÅ¡tina v T1 kódovánà * "\skCork=16" ... slovenÅ¡tina v T1 kódovánà * "\csUnicode=115" ... ÄeÅ¡tina v Unicode (jen, pokud je detekován Xe\TeX, Lua\TeX, nebo jiný 16bitový \TeX) * "\skUnicode=116" ... slovenÅ¡tina v Unicode (jen, pokud je detekován Xe\TeX, Lua\TeX, nebo jiný 16bitový \TeX) \enditems Jednotlivé vzory dÄ›lenà se v dokumentu zapÃnajà pomocà "\uslang", "\cslang" a "\sklang". PÅ™Ãkaz "\uslang" zapne také "\nonfrenchspacing" a ostatnà zapÃnajà "\frenchspacing". Jsou zachovány staré názvy tÄ›chto pÅ™epÃnaÄů: "\ehyph=\uslang", "\chyph=\cslang" a "\shyph=\sklang". PÅ™echod k novým názvům s aspoň dvÄ›ma pÃsmenky pro jazyk je důsledkem nové možnosti v \csplain{}u použÃt 54 různých jazyků. V roce 2012 byl zcela pÅ™epracován soubor "hyphen.lan", který je použit \csplain{}em pro Ätenà vzorů dÄ›lenà slov. Na řádcÃch 48 až 160 tohoto souboru jsou za dvojteÄkami skryty jazyky a kódovánà zhruba ve tvaru: \begtt \let\csCork=y % Czech \let\skCork=y % Slovak :\let\deCork=y % German :\let\frCork=y % French :\let\plCork=y % Polish :\let\cyCork=y % Welsh :\let\daCork=y % Danish ... :\let\saUnicode=y % Sanskrit :\let\ruUnicode=y % Russian :\let\ukUnicode=y % Ukrainian :\let\hyUnicode=y % Armenian :\let\asUnicode=y % Assamese \endtt StaÄà si vybrat jazyky, odstranit pÅ™ÃsluÅ¡nou dvojteÄku a znovu vygenerovat formát \csplain{}. Nebo můžete pÅ™idat vzor bez zásahu do souboru "hyphen.lan" vhodnÄ› zvolenou zprávou na pÅ™Ãkazovém řádku pÅ™i generovánà formátu. NapÅ™Ãklad:\par\nobreak {\font\tt=cstt9 \begtt pdftex -ini -enc "\let\plCork=y \let\enc=u \input csplain.ini" nebo pdftex -ini -enc "\let\allpatterns=y \let\enc=u \input csplain.ini" \endtt } Jakmile je naÄten vzor dÄ›lenà pro nový jazyk, je automaticky pÅ™ipraven k tomu odpovÃdajÃcà pÅ™epÃnaÄ, tedy napÅ™Ãklad "\delang" po naÄtenà "\deCork". Seznam vÅ¡ech naÄtených vzorů dÄ›lenà je v makru "\pattlist". Na zaÄátku zpracovánà dokumentu jsou inicializovány vzory dÄ›lenà "\..ILtwo". Vzory dÄ›lenà typu "\..Cork" budou fungovat až po "\input t1code" a vzory dÄ›lenà "\..Unicode" budou fungovat až po "\input ucode". Pozor: \csplain{} neÅ™eÅ¡Ã správné nastavenà "\lccode" a "\uccode" v~16bitovém \TeX{}u v rozsahu vÄ›tÅ¡Ãm, než jsou znaky z Äeské a slovenské abecedy. Takže pÅ™i použità exotických jazyků si uživatel musà nastavit k tomu správná "\lccode". \csplain{} definuje pro každý jazyk s naÄtenými vzory dÄ›lenà makro "\lan:<ÄÃslo>" jako "<zkratku jazyka>", napÅ™Ãklad "\lan:5" stejnÄ› jako "\lan:15" expandujà na "cs". Programátor maker toho může využÃt. Programátor maker dále může využÃt toho, že makra "\cslang", "\delang" atd. volajà makro "\initlanguage{<zkratka jazyka>}". Toto makro implicitnÄ› neudÄ›lá nic, ale programátor maker si je může pÅ™edefinovat dle svého. Protože je "\initlanguage" zavolán tÄ›snÄ› za "\language=<ÄÃslo>" v~kontextu: \begtt \..lang -> \language=<ÄÃslo>\relax \initlanguage{<znaÄka>}\frenchspacing \lefthyphenmin=<lhm>\righthyphenmin=<rhm>% \message{<text>} \endtt % je možné, aby programátor maker odebral dalÅ¡Ã inteligenci maker "\..lang" a pÅ™evzal je do vlastnÃvch rukou. TÅ™eba definuje: \begtt \def\initlanguage #1#2#3\message#4{#3\csname lg:#1\endcsname} \endtt Toto Å™eÅ¡enà pÅ™ebÃrá z makra "\..lang" jen nastavenà registrů "\lefthyphenmin" a "\righthyphenmin", ale ruÅ¡Ã implicitnà "\message" i nastavenà "\frenchspacing". MÃsto toho se pÅ™edpokládá, že budou definována makra "\lg:<znaÄka>", ve kterých budou tyto vÄ›ci (a možná mnoho dalÅ¡Ãch jako tÅ™eba nastavenà implicitnÃho fontu) Å™eÅ¡eny pro každý jazyk individuálnÄ›. PÅ™epÃnánà mezi kódovánÃmi funguje pomocà "\corklangs" ... "\cslang" (nynà je aktivnà vzor dÄ›lenà "\csCork") a dále tÅ™eba ... "\iltwolangs" ... "\cslang" (nynà je aktivnà vzor dÄ›lenà "\csILtwo"). Makra "\iltwolangs", "\corklangs", a "\unicodelangs" jsou spuÅ¡tÄ›na pÅ™i "\input il2code", "\input t1code" a "\input ucode", takže uživatel to nemusà řeÅ¡it. Je potÅ™eba si uvÄ›domit, že 8bitovým \TeX{}em sice můžete vynutit naÄtenà Unicodových vzorů dÄ›lenà slov, ale bude vám to málo platné, tedy k niÄemu. Dále je potÅ™eba vÄ›dÄ›t, že v 16bitovém \TeX{}u můžete naÄÃst vzory dÄ›lenà "\..ILtwo" a "\..Cork" korektnÄ› jen pro ÄeÅ¡tinu a slovenÅ¡tinu, protože dalÅ¡Ã vzory dÄ›lenà jsou Äteny pomocà triku s aktivnÃmi znaky, který dekóduje 8bitový vstup. NicménÄ› typicky v~16bitovém \TeX{}u nenà inicializován 8bitový vstup, takže se to poláme. \newstop \subsub Nové Å™Ãdicà sekvence \csplain{}u oproti Knuthovu plainu | %----------------------------------------------------------- Nove ridici sekvence CSplainu \bgroup \leftskip=\parindent \parindent=0pt \hbox{\skrt{\tt\char`\\austrian}} \skrt{Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro rakouskou nÄ›mÄinu (hodnota 2). Vzory dÄ›lenà pro tento jazyk implicitnÄ› nejsou zavedeny.} \newstart "\bi" PÅ™ejde na tuÄnou krurzÃvu. PÅ™Ãkaz doplňuje sadu pÅ™Ãkazů "\rm", "\it" a "\bf" definovanou v plain\TeX{}u. \newstop "\cmaccents"\nobreak Nastavà řÃdicà sekvence "\^", "\`", "\'", "\v" a "\"{\tt\char`\"} tak, aby fungovaly stejnÄ›, jako v~originálnÃm plainu (použità primitivu "\accent"). Sekvence "\r" je nedefinována. Toto je defaultnà nastavenÃ. Pokud slovo obsahuje akcentovaný znak zapsaný nÄ›kterou z~tÄ›chto sekvencÃ, pak pro nÄ› nefunguje automatické dÄ›lenÃ. "\cmaccentsmesage" Způsobà výpis informace do logu a na terminál o~použità pÅ™Ãkazu "\cmaccents". Pokud vás tato zpráva obtěžuje, nastavte "\let\cmaccentsmesage=\relax" pÅ™ed vyvolánÃm pÅ™Ãkazu "\cmaccents". \newstart "\corklangs" Inicializace vzorů dÄ›lenà podle T1 kódovánà (Cork). \newstop "\csaccents"\nobreak Nastavà řÃdicà sekvence "\^", "\`", "\'", "\v", "\"{\tt\char`\"} a "\r" tak, aby expandovaly na odpovÃdajÃcà 8bitové reprezentace znaků podle ISO-8859-2 (po "\input t1code" pak expandujà na kódovánà podle Corku). Sekvence "\r u" expanduje na ů. Pokud slovo obsahuje akcentovaný znak zapsaný nÄ›kterou z~tÄ›chto sekvencÃ, pak pro nÄ› funguje i automatické dÄ›lenà slov. "\csaccentsmesage" Způsobà výpis informace do logu a na terminál o~použità pÅ™Ãkazu "\csaccents". Pokud vás tato zpráva obtěžuje, nastavte "\let\csaccentsmesage=\relax" pÅ™ed vyvolánÃm pÅ™Ãkazu "\csaccents". "\clqq" Vytiskne levé Äeské uvozovky (\clqq). "\crqq" Vytiskne pravé Äeské uvozovky (\crqq). \hbox{"\chyph" \new{=\skrt{{\tt\char`\\czlang}}={\tt\char`\\cslang}}} Aktivuje tabulku dÄ›lenà slov podle registru "\czech" a nastavà stejnomÄ›rné mezerovánà za teÄkami (tzv.~"\frenchspacing"). \new{Dále nastavuje {\tt\char`\\lefthyphenmin=2} a {\tt\char`\\righthyphenmin=3}. Druhý registr lze zmÄ›nit na dvojku, vzory dÄ›lenà jsou na to pÅ™ipraveny.} "\czech" \nobreak Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro ÄeÅ¡tinu (hodnota "\iltwoczech" nebo "\toneczech" podle toho, zda nebylo nebo bylo použito "\input t1code"). \hbox{"\ehyph" \new{={\tt\char`\\enlang}}}\nobreak Aktivuje tabulku dÄ›lenà slov podle registru "\enPatt" a nastavà vÄ›tÅ¡Ã mezerovánà za teÄkami (tzv.~"\nonfrenchspacing"). Toto nastavenà je výchozÃ. \hbox{\skrt{\tt\char`\\english}} \nobreak \skrt{Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro britskou angliÄtinu (hodnota 4). Vzory dÄ›lenà pro tento jazyk implicitnÄ› nejsou zavedeny.} "\enPatt" Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro americkou angliÄtinu (hodnota 0). "\extrahyphenchar" Alternativnà znak spojovnÃku (-). Kód 156. Po "\input t1code" nenà toto makro definováno. "\extrahyphens"\nobreak Nastavà rozdÄ›lovacà znak pro běžné textové fonty na "\extrahyphenchar". DefaultnÄ› je v~plainu jako rozdÄ›lovacà znak nastaven znak minus (ASCI~45), což může Äinit v~Äeském textu komplikace. \TeX{} totiž v~pÅ™ÃpadÄ› rozdÄ›lovacÃho znaku pÅ™Ãmo ve vstupnÃm textu může dÄ›lit tak, že znak neopakuje na dalÅ¡Ãm řádku. Po "\extrahyphens" bude mÃt dÄ›licà znak kód 156, což je kód, který se na vstupu nevyskytuje. Máme tÃm zaruÄeno, že ve slovech \uv{je-li} nebude \TeX{} dÄ›lit vůbec. Jinou aplikacà je použità speciálnà metriky nebo dokonce speciálnÃho tvaru pro "\extrahyphenchar". "\flqq" Levé francouzské uvozovky (\flqq), které se v~ÄeÅ¡tinÄ› a nÄ›mÄinÄ› použÃvajà vpravo. "\frqq" Pravé francouzské uvozovky (\frqq), které se v~ÄeÅ¡tinÄ› a nÄ›mÄinÄ› použÃvajà vlevo, tedy \frqq takto\flqq. \hbox{\skrt{\tt\char`\\french}} \skrt{Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro francouzÅ¡tinu (hodnota 3). Vzory dÄ›lenà pro tento jazyk implicitnÄ› nejsou zavedeny.} \hbox{\skrt{\tt\char`\\german}} \skrt{Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro nÄ›mÄinu (hodnota 1). Vzory dÄ›lenà pro tento jazyk implicitnÄ› nejsou zavedeny.} \hbox{"\iltwoczech"\new{=\skrt{{\tt\char`\\czILtwo}}={\tt\char`\\csILtwo}}} Konstanta 5 rezervovaná pro ÄÃslo tabulky vzorů dÄ›lenà slov pro ÄeÅ¡tinu pÅ™i kódovánà fontů podle ISO-8859-2. \newstart "\iltwolangs" Inicializace vzorů dÄ›lenà podle ISO-8859-2 (implicitnÃ).\newstop \hbox{"\iltwoslovak"\new{={\tt\char`\\skILtwo}}} Konstanta 6 rezervovaná pro ÄÃslo tabulky vzorů dÄ›lenà slov pro slovenÅ¡tinu pÅ™i kódovánà fontů podle ISO-8859-2. "\ogonek" Vytvořà polský akcent pod pÃsmenem: \ogonek a. \newstart "\pattlist" Seznam vÅ¡ech naÄtených vzorů dÄ›lenÃ. \newstop "\promile" Vytiskne znak \promile. \newstart "\regfont <pÅ™epÃnaÄ>" Provede registraci fontového pÅ™epÃnaÄe. Tedy pÅ™idá do existujÃcÃho makra "\resizefontall" dalÅ¡Ã dva tokeny: "\resizefont <pÅ™epÃnaÄ>". "\resizeall" Provede "\resizefont" podle aktulánÄ› nastaveného "\sizespec" na sekvence "\tenrm", "\tenit", "\tenbf", "\tenbi" a "\tentt" a pÅ™ÃpadnÄ› dalÅ¡Ã registované fontové pÅ™epÃnaÄe. PÅ™Ãklad:\hfil\break "\def\sizespec{at12pt}\resizeall \tenrm"\hfil\break "Nastavená \it velikost 12pt \bf funguje \bi vÅ¡ude." "\resizefont <pÅ™epÃnaÄ>"\nobreak Argumentem musà být fontový "<pÅ™epÃnaÄ>", tj. sekvence dÅ™Ãve deklarovaná pomocà "\font". Tento "<pÅ™epÃnaÄ>" pozmÄ›nà po Äinnosti pÅ™Ãkazu "\resizefont" svůj význam: odkazuje na stejný font ale ve velikosti nastavené podle obsahu makra "\sizespec". NaÅ™Ãklad: "\def\sizespec{at14pt}\resizefont\tenbf". Od této chvÃle je "\tenbf" tuÄný font (stejný, jako byl původnà "\tenbf") ve velikosti 14pt. ZmÄ›na významu je lokálnÃ. "\resizefontskipat"\nobreak Pomocné makro pro "\resizefont". \newstop \hbox{"\shyph"\new{={\tt\char`\\sklang}}} Aktivuje tabulku dÄ›lenà slov podle registru "\slovak" a nastavà stejnomÄ›rné mezerovánà za teÄkami (tzv.~"\frenchspacing"). \newstart "\sizespec" Makro spolupracujÃcà s pÅ™Ãkazem "\resizefont". Makro "\sizespec" je buÄ prázdné, nebo obsahuje \uv{{\tt at<dimen>}}, nebo \uv{{\tt scaled<number>}}. Nezapomeňte na klÃÄová slova {\tt at} resp. {\tt scaled}. \newstop "\slovak" Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro slovenÅ¡tinu (hodnota "\iltwoslovak" nebo "\toneslovak" podle toho, zda nebylo nebo bylo použito "\input t1code"). \newstart "\tenbi" Font-selector definovaný jako "\font\tenbi=csbxti10". Je totiž užiteÄné mÃt preloadovanou fontovou ÄtveÅ™ici "\tenrm", "\tenit", "\tenbf" a "\tenbi". \newstop \hbox{"\toneczech"\new{={\tt\char`\\csCork}}} Konstanta 15 rezervovaná pro ÄÃslo tabulky vzorů dÄ›lenà slov pro ÄeÅ¡tinu pÅ™i kódovánà fontů podle Corku. \hbox{"\toneslovak"\new{={\tt\char`\\skCork}}} Konstanta 16 rezervovaná pro ÄÃslo tabulky vzorů dÄ›lenà slov pro slovenÅ¡tinu pÅ™i kódovánà fontů podle Corku. \newstart "\unicodelangs" Inicializace vzorů dÄ›lenà v Unicode.\newstop \hbox{\skrt{\tt\char`\\USenglish}} \skrt{Registr rezervovaný pro ÄÃslo tabulky vzorů dÄ›lenà slov pro americkou angliÄtinu (hodnota 0).} "\uv"\nobreak Makro pro uvozovky. PoužÃvá se "\uv{takto}". Makro je definováno tak, aby se uvnitÅ™ jeho argumentu dala použÃt verbatim konstrukce. To ale způsobÃ, že je potlaÄen kerning pÅ™ed pravou uvozovkou. Pokud nepoužÃváte verbatim konstrukce v~argumentu uvozovek, doporuÄuji makro pÅ™edefinovat jednoduÅ¡e na: \begtt \long\def\uv#1{\clqq#1\crqq}. \endtt {\bf Poznámka:} \csplain{} nedefinuje makro pro ,jednoduché` uvozovky, protože \CSfont{}y neobsahujà pro tyto uvozovky speciálnà znaky. Můžete ale mÃsto nich použÃt Äárku a apostrof tÅ™eba takto: \begtt \long\def\singleuv#1{,#1`} \endtt \par\egroup \newstart PÅ™i generovánà UTF-8 \csplain{}u se použije enc\TeX, který pÅ™idává primitivy "\mubyte", "\endmubyte", "\mubytein", "\mubyteout", "\mubytelog", "\specialout", "\noconvert", "\xordcode", "\xchrcode" a "\xprncode". BÄ›hem generovánà je naÄten soubor {\tt utf8unkn.tex}, který mapuje neznámé kódy na "\warntwobytes" a "\warnthreebytes" a tyto sekvence definuje jako makra. Dále definuje makra "\badutfinput", "\missingutfchar" a "\xprncodes".{\hbadness=4000\par} \newstop \bigskip \skrt{{\bf PÅ™idánà vzorů dÄ›lenà slov dalÅ¡Ãch jazyků}} \par\nobreak\bigskip \skrt{\csplain{} implicitnÄ› naÄÃtá jen anglické vzory dÄ›lenà (US) a Äeské a slovenské. Od verze {\tt <Feb. 2000>} navÃc naÄÃtá Äeské a slovenské vzory dÄ›lenà nejen v~kódovánà ISO-8859-2, ale i v~kódovánà podle Corku. Anglické vzory dÄ›lenà jsou implicitnÄ› aktivnà a pÅ™epÃnáme na nÄ› pomocà {\tt\char`\\ehyph}. ÄŒeské vzory dÄ›lenà se zapÃnajà pomocà {\tt\char`\\chyph} a slovenské pomocà {\tt\char`\\shyph}.} \skrt{Pokud potÅ™ebujete pÅ™idat dalÅ¡Ã jazyk, pak pÅ™ed generovánÃm formátu \csplain{} editujte soubor {\tt hyphen.lan}. Tam najdete pÅ™Ãklady doplnÄ›nà vzorů dÄ›lenà nÄ›mÄiny nebo francouzÅ¡tiny (staÄà odkomentovat odpovÃdajÃcà řádky). Podle tÄ›chto pÅ™Ãkladů můžete analogicky zaÅ™adit potÅ™ebný dalÅ¡Ã jazyk. Nezapomeňte v~souboru {\tt hyphen.lan} také definovat pÅ™epÃnaÄ na nové vzory dÄ›lenÃ. Pro nÄ›mÄinu definujeme napÅ™Ãklad pÅ™epÃnaÄ {\tt ghyph} takto:} {\hbadness=3000\par} {\catcode`!=\active \def!#1!{\skrt{#1}} \begtt !\def\ghyph{\language=\german! !\lccode`\'=`\'! !\frenchspacing! !\lefthyphenmin=2! !\righthyphenmin=2 }! \endtt } \skrt{Nakonec pÅ™egenerujte formát způsobem popsaným v~sekci 4.2.} \skrt{Vzory dÄ›lenà západoevropských jazyků jsou vÄ›tÅ¡inou kódovány podle ISO-8859-1, pÅ™iÄemž kódovánà Cork je nadmnožinou tohoto kódovánÃ. Je tedy možné pÅ™epnout pomocà {\tt\char`\\input t1code} na zaÄátku dokumentu do Corku, použÃt fonty kódované podle Corku a pak pÅ™epÃnat mezi ÄeÅ¡tinou a tÅ™eba nÄ›mÄinou stÅ™ÃdavÄ› pomocà pÅ™epÃnaÄů {\tt\char`\\chyph} a {\tt\char`\\ghyph}.}{\hbadness=6500 \par} \skrt{Vzory dÄ›lenà exotických jazyků jsou kódovány ve svém specifickém kódovánÃ, ke kterému musÃme sehnat font stejnÄ› kódovaný. Po pÅ™epnutà do nového jazyka musÃme pÅ™epnout i na tento font. Dále je nutno Å™eÅ¡it otázku možné kolize vstupnÃho kódovánà ÄeÅ¡tiny/slovenÅ¡tiny se vstupnÃm kódovánÃm pro nový jazyk. Je proto bezpeÄnÄ›jÅ¡Ã si pro speciálnà znaky jazyka udÄ›lat makra, která expandujà na znak podle kódovánà fontu, a psát vstupnà text pomocà tÄ›chto maker.} \subsub \csplain{} a \AMS\TeX | CSplain a AMSTeX %------------------------- \AMS\TeX{} můžete použÃvat v~plainu i \csplain{}u bez nutnosti generovat kvůli tomu formátový soubor. Máte-li dokument v~\AMS\TeX{}u, napiÅ¡te jednoduÅ¡e na jeho zaÄátek: \begtt \input amstex \endtt % a dále můžete dokument zpracovat pÅ™Ãkazem \csplain{}. \subsub pdf\TeX{} + \csplain{} = pdf\csplain{} | %--------------------------------------- pdfTeX + CSplain = pdfCSplain Pokud vygenerujete formát \csplain{} pdf\TeX{}em, je potÅ™eba jej nazvat jinak, aby byl odliÅ¡en od formátu \csplain{} pro originálnà \TeX{}. Proto je v~\CSTeX{}u zvoleno jméno "pdfcsplain.fmt". Dále je potÅ™eba pÅ™ipravit pÅ™Ãkaz "pdfcsplain", který spustà pdf\TeX{} s~formátem "pdfcsplain.fmt" a zajistà pÅ™Ãpadné pÅ™ekódovánà na úrovni input procesoru pdf\TeX{}u stejnÄ›, jako do dÄ›lá pÅ™Ãkaz "csplain". Pokud uživatel nepoužil ve svých makrech konstrukce mÄ›nÃcà sazbu pÅ™i použità pdf\TeX{}u, mÄ›l by dostat pÅ™Ãkazem "pdfcsplain" naprosto stejný výstup jako pÅ™i použità pÅ™Ãkazu "csplain". Pouze s~tÃm rozdÃlem, že výstup nebude v~"dvi" souboru, ale v~"pdf". Ve web2c \TeX{}u a odvozených distribucÃch lze generovat formát pÅ™Ãkazem \begtt pdftex -ini -fmt pdfcsplain csplain.ini \endtt % a pÅ™Ãkaz "pdfcsplain" v~UNIXu implementovat jako skript s~obsahem \begtt pdftex -fmt pdfcsplain -default-translate-file=il2-cs $@ \endtt Toto je pouze pÅ™Ãklad implementace. Na jiných operaÄnÃch systémech a jiných \TeX{}ových distribucÃch se situace může trochu liÅ¡it. Poznamenejme, že v~te\TeX{}u a odvozených distribucÃch vÄ›tÅ¡inou staÄà napsat "pdfcsplain dokument", a pokud jste "pdfcsplain" jeÅ¡tÄ› nepoužili, vygeneruje se automaticky. \subsub Historie a budoucnost \csplain{}u | Historie a budoucnost CSplainu %------------------------------------- \csplain{} vznikl v~roce 1992 jako jednoduché a minimálnà rozÅ¡ÃÅ™enà Knuthova \hbox{plainu} použÃvajÃcà \CSfont{}y a akceptujÃcà 8bitový vstup. Jeho vytvoÅ™enà bylo motivováno zaÅ™azenÃm do em\TeX{}ové distribuce, která se pÅ™ipravovala k~rozesÃlánà Älenům \CS{}TUGu. \csplain{} se opÃral a stále opÃrá o~starÅ¡Ã makra {\tt hyphen.lan} a {\tt plaina4.tex}, která už mÄ›l Olin Ulrych vytvoÅ™ena dÅ™Ãve. \csplain{} v~dobÄ› svého vzniku naÄÃtal Äeské vzory dÄ›lenÃ, které vytvoÅ™il LáÄa Lhotka heuristicky bez použità slovnÃků a programu "patgen". Já jsem pro \csplain{} vytvoÅ™il {\tt csplain.ini} a makro {\tt csfonts.tex}, umožňujÃcà pÅ™i generovánà formátu ÄÃst pÅ™Ãmo Knuthovo makro {\tt plain.tex}, a pÅ™itom natáhnout mÃsto CMfontů \CSfont{}y. V~roce 1994 byly vzory dÄ›lenà slov Ládi Lhotky vymÄ›nÄ›ny za nové Äeské vzory dÄ›lenà od Pavla Å eveÄka, který na to použil slovnÃk a "patgen". V~rámci své firmy tyto vzory dÄ›lenà prodává komerÄnÃm firmám pro potÅ™eby DTP programů, jako byly Ventura, PageMaker nebo Quark. Dnes jsou tyto vzory dÄ›lenà také napÅ™Ãklad ve Wordu. Aby Pavel Å eveÄek odliÅ¡il volnÄ› Å¡ÃÅ™ené vzory dÄ›lenà pro \CSTUG{} od komerÄnÄ› Å¡ÃÅ™ených, volnÄ› Å¡ÃÅ™ené vzory dÄ›lenà mÃrnÄ› modifikoval. Tvrdà se, že běžný uživatel nepozná rozdÃl v~kvalitÄ› vzorů dÄ›lenà komerÄnÃch a volnÄ› Å¡ÃÅ™ených. Å eveÄkovy vzory dÄ›lenà slov jsou výraznÄ› kvalitnÄ›jÅ¡Ã než původnà Lhotkovy, a proto jsme u~tÄ›chto vzorů dÄ›lenà zůstali. OpuÅ¡tÄ›nÃm Lhotkových vzorů dÄ›lenà doÅ¡lo k~poslednà zmÄ›nÄ› v~\csplain{}u, která může způsobit zpÄ›tnou nekompatibilitu: tj. dokumenty vytvoÅ™ené v~\csplain{}u pÅ™ed rokem 1994 mohly dopadnout jinak než dnes, protože nÄ›která slova mohla být rozdÄ›lena jinak. Od této doby je \csplain{} fixován a stabilnà podobnÄ›, jako Knuthův plain. Protože jsem autorem názvu \csplain{}, souborů {\tt csplain.ini}, "csfonts.tex" a množstvà dokumentace k~\csplain{}u a protože jej od jeho vzniku udržuji, rozhodl jsem se pÅ™ÃsnÄ› dbát na zpÄ›tnou kompatibilitu. ZmÄ›ny do \csplain{}u dÄ›lám jen takové, které jsou opravdu nezbytné. To se stává jednou za nÄ›kolik let (viz historické poznámky v~{\tt csplain.ini}). ZmÄ›ny dÄ›lám tak, že pouze pÅ™idám dalÅ¡Ã nejnutnÄ›jÅ¡Ã makra, ale stávajÃcà makra a jejich význam nechávám nezmÄ›nÄ›na. Uživatelům \csplain{}u ruÄÃm, že jejich dokumenty napsané v~\csplain{}u a opÃrajÃcà se o~nemÄ›nné fonty (napÅ™. \CSfont{}y nebo base 35 PostScriptové fonty, metriky z~\CSTeX{}u), budou i v~budoucnu \csplain{}em formátovány naprosto stejnÄ›, jako dnes. Abych mohl takovou záruku uživatelům poskytnout, nenà \csplain{} zveÅ™ejnÄ›n pod GNU GPL, ale jedná se o~licenci velmi podobnou KnuthovÄ›. PÅ™esné znÄ›nà licence je uvedeno na konci souboru {\tt csplain.ini}. Zhruba Å™eÄeno, jedná se o~\uv{patent na název}. \csplain{} můžete svobodnÄ› distribuovat, použÃvat a mÄ›nit, ale pokud jej zmÄ›nÃte, nesmÃte jej dále distribuovat pod názvem \csplain{}. ZmÄ›ny v~\csplain{}u může dÄ›lat jen tzv.~\uv{souÄasný administrátor \CSTeX{}u}, což jsem zatÃm stále já. Pokud bych v~budoucnu toto bÅ™ÃmÄ› nÄ›komu pÅ™edal, pak urÄitÄ› jen takovému ÄlovÄ›ku, který má na budoucnost \csplain{}u stejný názor jako já. \csplain{} i nadále považuji za minimálnà rozÅ¡ÃÅ™enà Knuthova plainu a nikdy do nÄ›j nepÅ™idám žádné složitÄ›jÅ¡Ã makro vylepÅ¡ujÃcà uživatelský komfort (jako napÅ™Ãklad eplain). Zastávám názor, že uživatel plainu a \csplain{}u chce mÃt vÅ¡echna makra pod svou vlastnà kontrolou a radÄ›ji si je udÄ›lá sám, než aby spoléhal na hotová, ale ménÄ› stabilnÃ, Å™eÅ¡enÃ. Uživatel plainu/\csplain{}u si vytvářà vlastnà stále znovu použÃvaná makra, která mu musà fungovat ve vÅ¡ech i budoucÃch verzÃch \csplain{}u. Proto se snažÃm \csplain{} pokud možno nemÄ›nit. Lákavá je napÅ™Ãklad zmÄ›na definice uvozovek v~\csplain{}u jednoduÅ¡e na \begtt \long\def\uv#1{\clqq#1\crqq} \endtt aby fungoval automatický kerning s~obÄ›ma stranami uvozovek. Tuto zmÄ›nu ale nikdy v~\csplain{}u neudÄ›lám, protože nenà zpÄ›tnÄ› kompatibilnà se stávajÃcÃm Å™eÅ¡enÃm. RadÄ›ji budu psát do omrzenà do dokumentace, že taková jednoduchá definice je asi lepÅ¡Ã, než ta z~\csplain{}u, a že si ji každý může zaÅ™adit do svých maker. ZmÄ›nu v~\csplain{}u z~"<Feb. 2000>" považuji za asi nejvÄ›tÅ¡Ã, kterou jsem byl ochoten udÄ›lat. K~zaÅ™azenà alternativnÃho kódovánà Cork (které samozÅ™ejmÄ› nenà a nikdy nebude v~\csplain{}u implicitnÃ), mÄ› motivovala skuteÄnost, že se kolem mÄ› pohybovalo mnoho uživatelů plainu, kteřà rádi použÃvajà fonty v~tomto alternativnÃm kódovánÃ. Svým krokem jsem jim umožnil použÃvat \csplain{}, takže si nemusejà vytvářet své vlastnà formáty. \subtitle Formát \cslatex{} | FORMAT CSLATEX %%%%%%%%%%%%%%%%%%%%%%%% \newstart Významnà uživatelé \LaTeX{}u sice v elektronické konferenci v roce 2012 pÅ™iznali, že už \cslatex{} dávno nepoužÃvajÃ, nicménÄ› se stále pÅ™imlouvajÃ, aby v \CS\TeX{}u zůstal. Nebude ale dále rozvÃjen a vÅ¡em uživatelům je kladeno silné doporuÄenÃ, aby pÅ™eÅ¡li na \uv{normálnÃ} \LaTeX. Navrhoval jsem \cslatex{} zruÅ¡it úplnÄ› (aby to lidi nepletlo), ale nebyl jsem vyslyÅ¡en. Od roku 2012 napÃÅ¡e \cslatex{} pÅ™i každém spuÅ¡tÄ›nà na terminál a do logu toto: \begtt **** WARNING ******* CSLaTeX is obsolete, don't use it please. **** You can use ``normal'' LaTeX+Babel or XeLaTeX+polyglossia. \endtt Pokud použijete \LaTeX{}, pak záhlavà dokumentu může vypadat tÅ™eba takto: \begtt \documentclass[a4paper,12pt,twoside]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[czech]{babel} \endtt PÅ™i použità Xe\LaTeX{}u s balÃÄkem {\tt polyglossia} může záhlavà dokumentu být napÅ™Ãklad takové: \begtt \documentclass[a4paper,12pt,twoside]{article} \usepackage{polyglossia} \setdefaultlanguage{czech} \usepackage{fontspec} \usepackage{xunicode} \endtt NásledujÃcà text až do konce kapitoly bych mohl celý Å¡krtnout, ale nechám jej beze zmÄ›ny. ÄŒtenář to možná ocenà jako materiál ke studiu historie \CS\TeX{}u. \newstop \subsub Různé \LaTeX{}y | Ruzne LaTeXy %---------------------- Do roku 1992 byl \LaTeX{} udržován Leslie Lamportem. Naposledy mÄ›l jeho \LaTeX{} verzi 2.09. Typické pro tento \uv{starý} \LaTeX{} bylo použità pÅ™Ãkazu "\documentstyle" namÃsto "\documentclass" v~záhlavà dokumentu. Tato vÄ›tev \LaTeX{}u nenà dále udržována a podporována. Dnes pÅ™evzali iniciativu nad \LaTeX{}em NÄ›mci Frank Mittelbach a Rainer Sch\"opf a nazvali jej \LaTeXe. Každý půlrok vytvářejà novou verzi (vÄ›tÅ¡inou obsahujÃcà jen opravy pÅ™edchozà verze) a názvem dávajà najevo, že se jedná o~pÅ™edchůdce \LaTeX{}u~3, na nÄ›mž už deset let pracujÃ. Dokument napsaný pro \LaTeXe{} poznáme vesmÄ›s podle toho, že zaÄÃná pÅ™Ãkazem "\documentclass" mÃsto "\documentstyle". \LaTeXe{} ovÅ¡em také akceptuje pÅ™Ãkaz "\documentstyle", pÅ™echázà pÅ™itom do pokusu o~emulaci starého \LaTeX{}u~2.09, a navÃc uživatele upozornà na to, že použil zastaralé záhlavà dokumentu. V~\LaTeX{}u~\twoe{} je zabudovaná \uv{Äasovaná bomba} s~rozbuÅ¡kou na rok a půl. Ta se projevà pÅ™i generovánà formátu, nikoli pÅ™i běžném provozu. Pokud generujete formát ze zdrojů \LaTeX{}u, které jsou starÅ¡Ã než rok a půl, generovánà konÄà chybou a na terminálu se objevà varovánÃ, že máte instalován pÅ™ÃliÅ¡ starý \LaTeX{} a že je vhodné si obstarat nový. Pokud na toto hlášenà odpovÃte klávesou Enter, formát se pÅ™esto vygeneruje. V~tomto manuálu se budeme dále zabývat jen dnes asi nejpoužÃvanÄ›jÅ¡Ãm \LaTeX{}em~\twoe. Pojmem \LaTeX{} tedy budeme rozumÄ›t \LaTeXe. I~za tÄ›chto okolnostà budeme nuceni rozliÅ¡ovat mezi tÅ™emi \uv{druhy} \LaTeX{}ů: \begitems * vanilla \LaTeX * babelizovaný \LaTeX * \cslatex{} \enditems Vanilla \LaTeX{} (nedotÄený \LaTeX) vzniká vygenerovánÃm formátu \LaTeX{} pouze za pÅ™Ãtomnosti souborů z~adresáře {\tt latex/base}, tj. pÅ™i generovánà nejsou Äteny žádné soubory ovlivňujÃcà generovánà formátu. V~distribuci tedy zcela chybà tyto soubory: {\tt fonttext.cfg}, {\tt fontmath.cfg}, {\tt preload.cfg} a {\tt hyphen.cfg}. Tento formát obsahuje pouze anglické dÄ›lenà slov. Pro Äeský nebo slovenský jazyk nenà tedy pÅ™ÃliÅ¡ použitelný. Nenà Äasto použÃvaný. Babelizovaný \LaTeX{} vzniká generovánÃm formátu \LaTeX{} za pÅ™Ãtomnosti souborů {\tt fonttext.cfg}, {\tt fontmath.cfg} a {\tt preload.cfg} z~balÃÄku generic a {\tt hyphen.cfg} z~balÃÄku Babel. Tento formát obsahuje vzory dÄ›lenà tÄ›ch jazyků, které jsou v~dobÄ› generovánà formátu uvedeny v~konfiguraÄnÃm souboru Babelu s~názvem {\tt language.dat}. Je běžnÄ› použÃvaný. Formát \cslatex{} vzniká generovánÃm formátu \LaTeX{} za pÅ™Ãtomnosti souborů "fonttext.cfg" a "hyphen.cfg" z~balÃÄku \cslatex{}. Ostatnà soubory ovlivňujÃcà generovánà formátu mohou chybÄ›t nebo být z~balÃÄku generic. Obvykle je formát \cslatex{}u nazván {\tt cslatex.fmt} a nikoli {\tt latex.fmt}, aby bylo možno jej odliÅ¡it od běžnÄ› použÃvaného babelizovaného \LaTeX{}u. Z~toho důvodu je v~balÃÄku \cslatex{}u k~dispozici soubor {\tt cslatex.ini}, který provede "\input latex.ltx". \cslatex{} obsahuje vzory dÄ›lenà anglického, Äeského a slovenského jazyka. NavÃc pÅ™Ãkaz "cslatex" musà zajistit konverzi ze vstupnÃho kódovánà (podle použitého systému) na vnitÅ™nà kódovánà ISO~8859-2 na úrovni vstupnÃho preprocesoru \TeX{}u. Tento princip je tedy shodný s~\csplain{}em. Je patrno, že absolutnà jistotu o~tom, jaký \LaTeX{} vlastnÄ› použÃváme, zÃskáme jen peÄlivým proÄtenÃm logu po vygenerovánà formátu. Koncept, kdy vlastnosti formátu jsou závislé na obsahu nÄ›jakých dodateÄných souborů v~distribuci v~dobÄ› generovánà formátů, se mi nelÃbÃ, ale nelze proti tomu nic dÄ›lat. Takto to navrhli tvůrci \LaTeX{}u a je to tedy jejich vÄ›c. Důsledek tohoto rozhodnutà je, že pokud Å™ekneme: \uv{použÃvám \LaTeX}, nikdy nenà zcela pÅ™esnÄ› Å™eÄeno, co se tÃm vlastnÄ› myslÃ. TÃm se tento koncept diametrálnÄ› liÅ¡Ã od Knuthova plainu nebo též \csplain{}u. Co se stane, pokud jsou napÅ™Ãklad v~\TeX{}ové distribuci pÅ™Ãtomny hned dva soubory {\tt hyphen.cfg}~-- jeden z~balÃÄku Babel a druhý z~balÃÄku \cslatex{}? NenÃ-li taková situace v~distribuci Å™eÅ¡ena speciálnà konfiguracÃ, nenà definováno, který z~tÄ›chto souborů se vlastnÄ› naÄte, a tudÞ nenà dopÅ™edu známo, jaký vygenerujeme \LaTeX. V~novÄ›jÅ¡Ãch web2c distribucÃch \TeX{}u lze konfigurovat způsob prohledávánà {\tt texmf} stromu podle názvu použitého programu nebo podle názvu použitého (resp. generovaného) formátu. NejÄastÄ›ji jsou tyto rozdÃlnosti konfigurovány v~souboru {\tt web2c/texmf.cnf}. Tam je (mimo jiné) Å™eÄeno: \begtt % cstex, from Petr Olsak TEXINPUTS.cslatex= .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// TEXINPUTS.csplain= .;$TEXMF/tex/{csplain,plain,generic,}// TEXINPUTS.pdfcslatex= \ .;$TEXMF/{pdftex,tex}/{cslatex,csplain,latex,generic,}// TEXINPUTS.pdfcsplain= \ .;$TEXMF/{pdftex,cstex,tex}/{csplain,plain,generic,}// \endtt % což znamená, že pokud použijeme nebo generujeme formát \cslatex{}, pak se vstupnà soubory pÅ™ednostnÄ› Ätou z~adresáře {\tt tex/cslatex} a {\tt tex/csplain} a teprve potom v~ostatnÃch adresářÃch. Takže {\tt hyphen.cfg} a {\tt fonttext.cfg} si ini\TeX{} vezme pÅ™ednostnÄ› z~adresáře {\tt tex/cslatex}. PÅ™i provozu \cslatex{}u pak bude stylový soubor {\tt czech.sty} nebo {\tt slovak.sty} pÅ™i použità formátu \cslatex{} pÅ™eÄten z~adresáře {\tt tex/csplain} a nikoli z~adresáře {\tt tex/generic/babel}, kde se nalézá soubor stejného jména, ovÅ¡em pro balÃk Babel. Aby se hledacà algoritmy pÅ™izpůsobily názvu generovaného formátu, je nutné tento formát pÅ™i generovánà \cslatex{}u explicitnÄ› specifikovat na pÅ™Ãkazový řádek. NestaÄà tedy napsat: \begtt $ tex -ini cslatex.ini \endtt % ale musÃme psát \begtt $ tex -ini -fmt cslatex cslatex.ini \endtt % PÅ™i provozu formátu pak staÄà psát \begtt $ tex -fmt cslatex dokument \endtt % Ve web2c distribuci jsou k~babelizovanému \LaTeX{}u v~konfiguraÄnÃm souboru {\tt web2c/texmf.cnf} uvedeny následujÃcà řádky: \begtt TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.pdflatex = .;$TEXMF/{pdftex,tex}/{latex,generic,}// TEXINPUTS = .;$TEXMF/tex/{generic,}// \endtt % což znamená, že formát pÅ™ednostnÄ› hledá vstupnà soubory v~adresáři {\tt tex/generic} a tam je podadresář {\tt babel}. Dokonce je babel upÅ™ednostnÄ›n i v~pÅ™ÃpadÄ›, kdy neuvedeme na pÅ™Ãkazové řádce žádný název formátu. S~uvedenou konfiguracà je možné bezproblémové soužità babelizovaného \LaTeX{}u s~\cslatex{}em v~jediné distribuci. \cslatex{} pak obvykle voláme skriptem {\tt cslatex}, který provede {\tt tex -fmt cslatex}, zatÃmco babelizovaný \LaTeX{} voláme skriptem {\tt latex}, což spustà {\tt tex -fmt latex}. Pokud nelze ve vaÅ¡Ã \TeX{}ové distribuci konfigurovat prohledávacà algoritmy podle názvu formátu, pak je možné soužità babelizovaného \LaTeX{}u s~\cslatex{}em za pÅ™edpokladu, že budete dodržovat následujÃcà zásady: \begitems * Babelizovaný \LaTeX{} vygenerujte v~dobÄ›, kdy nenà v~distribuci pÅ™Ãtomen \cslatex{}. Tak máte jistotu, že ini\TeX{} nenajde soubor {\tt hyphen.cfg} z~\cslatex{}u, ale z~balÃku Babel. * \cslatex{} pak vygenerujte nad adresářem {\tt cslatex}. Aktuálnà adresář má totiž ve vÅ¡ech distribucÃch \TeX{}u pÅ™ednost pÅ™ed ostatnÃmi adresáři v~{\tt texmf} stromu. Proto si ini\TeX{} pÅ™eÄte soubory {\tt fonttext.cfg} a {\tt hyphen.cfg} z~balÃÄku \cslatex{}. * Po instalaci \cslatex{}u do {\tt texmf} stromu je nutno jeÅ¡tÄ› vymazat soubory \begtt tex/generic/babel/czech.sty tex/generic/babel/slovak.sty \endtt % protože soubory s~tÄ›mito názvy jsou v~{\tt texmf} stromu dvojmo. PÅ™itom v~balÃÄku Babel je nikdy nevyužijete, pokud budete psát korektnà záhlavà dokumentu pro babelizovaný \LaTeX{} (o~tom pojednám podrobnÄ›ji v~následujÃcà sekci). Na druhé stranÄ› soubory {\tt czech.sty} a {\tt slovak.sty} z~\cslatex{}u budete potÅ™ebovat velmi Äasto, takže tyto soubory nemažte. \enditems \subsub Záhlavà \LaTeX{}ového dokumentu | Zahlavi LaTeXoveho dokumentu %-------------------------------------- Pokud použÃváte \cslatex{}, pak záhlavà dokumentu může mÃt tvar \begtt \documentclass{article} \usepackage{czech} % nebo \usepackage{slovak} ... dalÅ¡Ã pÅ™Ãkazy záhlavà dokumentu \begin{document} ... \end{document} \endtt Jestliže zapomenete na "\usepackage{czech}" nebo "\usepackage{slovak}", pak v~dokumentu nebudou fungovat akcentovaná pÃsmena, nebude zapnuto Äeské ani slovenské dÄ›lenà slov a automaticky generované názvy (kapitoly, sekce, obrázky,~...) nebudou pÅ™eloženy do národnÃho jazyka. V~tomto pÅ™ÃpadÄ› tedy \cslatex{} bude pracovat stejnÄ› jako vanilla \LaTeX{}. Pokud naopak použÃváte babelizovaný \LaTeX{}, pak záhlavà dokumentu může mÃt tvar \begtt \documentclass{article} \usepackage[czech]{babel} % nebo \usepackage[slovak]{babel} \usepackage[T1]{fontenc} \usepackage[kódovánÃ-vstupu]{inputenc} ... dalÅ¡Ã pÅ™Ãkazy záhlavà dokumentu \begin{document} ... \end{document} \endtt VÅ¡imnÄ›te si jiného způsobu volánà stylového souboru "czech" nebo "slovak". V~tomto pÅ™ÃpadÄ› se slovo "czech" Äi "slovak" zapÃÅ¡e pouze jako volba balÃÄku "babel". Prakticky je to realizováno naÄtenÃm souboru "czech.lfd" nebo "slovak.lfd". Pro fungovánà Babelu tedy nenà vůbec nutná existence souboru "czech.sty" nebo "slovak.sty". Tyto soubory v~balÃÄku Babel sice existujÃ, ale jejich funkce spoÄÃvá pouze v~tom, že \uv{vynadajÃ} uživateli za nesprávné použità pÅ™Ãkazu "\usepackage" a dále naÄÃtajà odpovÃdajÃcà "lfd" soubor. Volba "[czech]" nebo "[slovak]" v~balÃÄku Babel jeÅ¡tÄ› nemusà zajistit pÅ™epnutà na odpovÃdajÃcà dÄ›lenà slov. K~tomu je navÃc potÅ™eba, aby byl babelizovaný \LaTeX{} s~tÄ›mito vzory dÄ›lenà už vygenerován. Na rozdÃl od \cslatex{}u nenà v~babelizovaném \LaTeX{}u Å™eÅ¡ena synchronizace vstupnÃho kódovánà dokumentu s~vnitÅ™nÃm kódovánÃm \LaTeX{}u. \LaTeX{} implicitnÄ› pracuje s~vnitÅ™nÃm kódovánÃm podle CM fontů (tzv.~"OT1"), což pro vÄ›tÅ¡inu jazyků nenà užiteÄné. Je tedy tÅ™eba pÅ™i použità babelizovaného \LaTeX{}u pÅ™epnout do vnitÅ™nÃho kódovánà podle Corku (tzv.~"T1"), protože v~tomto kódovánà jsou naÄteny vzory dÄ›lenÃ. Použijeme tedy balÃÄek fontenc s~volbou "[T1]". Pak se automaticky použijà též fonty v~tomto kódovánÃ. Babelizovaný \LaTeX{} nepodporuje (na rozdÃl od \cslatex{}u) žádné jiné vnitÅ™nà kódovánà vhodné pro ÄeÅ¡tinu nebo slovenÅ¡tinu. Dále je potÅ™eba v~babelizovaném \LaTeX{}u na vnitÅ™nà kódovánà "[T1]" navázat vstupnà kódovánà dokumentu. Pokud napÅ™Ãklad máte dokument napsán v~kódovánà ISO~8859-2, pak je potÅ™eba použÃt balÃÄek inputenc s~volbou "[latin2]". Pokud máte dokument v~kódovánà MS~Windows CP~1250, napiÅ¡te volbu "[cp1250]". \subsub Vlastnosti \cslatex{}u | Vlastnosti CSLaTeXu %-------------------------- Uvedeme podrobnÄ› rozdÃly mezi vanilla \LaTeX{}em a \cslatex{}em. Oba formáty deklarujà vnitÅ™nà kódovánà CM fontů jako implicitnà (tzv.~"OT1") a oba naÄÃtajà jeÅ¡tÄ› deklaraci kódovánà podle Corku (tzv.~"T1"). \cslatex{} navÃc naÄÃtá deklaraci vnitÅ™nÃho kódovánà podle \CSfont{}ů (tzv.~"IL2"). \cslatex{} má ve svém souboru "hyphen.cfg" u~pÅ™Ãkazu "\DeclareLanguage" pro jazyky czech a slovak možnost použÃt kromÄ› volby "IL2" jeÅ¡tÄ› volbu "T1". V~novÄ›jÅ¡Ãch distribucÃch \cslatex{}u jsou již obÄ› volby implicitnÄ› napsány. V~takovém pÅ™ÃpadÄ› se pÅ™i generovánà formátu naÄtou vzory dÄ›lenà ÄeÅ¡tiny a slovenÅ¡tiny nejen v~kódovánà "IL2", ale také v~kódovánà "T1". \cslatex{} dále definuje mechanismy pÅ™epÃnánà mezi tÄ›mito vzory dÄ›lenà poté, co uživatel pÅ™epne vnitÅ™nà kódovánà z~"T1" na "IL2" nebo naopak standardnÃmi \LaTeX{}ovými prostÅ™edky. Kvůli tomu je v~\cslatex{}u pÅ™edefinováno internà makro \LaTeX{}u "\DeclareFontEncoding", protože vanilla \LaTeX{} nepÅ™edpokládá, že je po pÅ™epnutà kódovánà nutné pÅ™epnout i vzory dÄ›lenà slov. V~\cslatex{}u je navÃc definováno makro "\splithyphens" a "\standardhyphens". Po použità makra "\splithyphens" se nastavà znak~"-" jako aktivnà a funguje podobnÄ› jako "\discretionary{-}{-}{-}". Znamená to, že slova jako \uv{je-li} se rozdÄ›là správnÄ› Äesky: \uv{je-/-li}. SpojovnÃk se opakuje na následujÃcÃm řádku. Makro navÃc složitÄ› oÅ¡etÅ™uje výskyt "--" a "---", který tiskne \uv{normálnÄ›} jako za sebou následujÃcà znaky s~kódem~45, které se promÄ›nà v~ligaturu pomlÄky nebo dlouhé pomlÄky. Makro "\standardhyphens" dává vÅ¡e do původnÃho stavu, tj. po jeho použità znak~"-" nenà aktivnÃ. (Uživatelé \csplain{}u mohou pro tyto potÅ™eby použÃt makro podle~\cit{tbn} na stranÄ›~217.) PÅ™Ãkaz "cslatex" musà také zajistit konverzi z~kódovánà ÄeÅ¡tiny/slovenÅ¡tiny obvyklé v~použitém systému do vnitÅ™nÃho kódovánà ISO~8859-2 alias~"IL2". Ve web2c distribuci \TeX{}u je proto ve skriptu "cslatex" resp.~dávce "cslatex.bat" použit pÅ™epÃnaÄ "-default-translate-file". Pro systémy MS~Windows je vedle tohoto pÅ™epÃnaÄe použita hodnota "cp1250cs", zatÃmco pro UNIXové systémy se použÃvá hodnota "il2-cs", což nastavuje konverzi \uv{jedna ku jedné}. V~jiných distribucÃch se musà implementovat konverze na úrovni vstupnÃho procesoru \TeX{}u způsobem závislým na použité distribuci. NapÅ™Ãklad v~em\TeX{}u je možné použÃt TCP tabulky. \subsub Vlastnosti stylových souborů {\tt czech.sty} a {\tt slovak.sty} | %-------------------------------------------------------------- Vlastnosti stylovych souboru V~této sekci budu z~důvodu struÄnosti mluvit o~ÄeÅ¡tinÄ› a souboru "czech.sty", ale to samé samozÅ™ejmÄ› platà i pro slovenÅ¡tinu a stylový soubor "slovak.sty". NaÄtenà souboru "czech.sty" z~\cslatex{}u pomocà "\usepackage{czech}" způsobà následujÃcà zmÄ›ny: \begitems * Nastavà se vnitÅ™nà kódovánà \LaTeX{}u na "IL2", takže se implicitnÄ› použijà \CSfont{}y. * Inicializuje se Äeské dÄ›lenà slov v~kódovánà "IL2". * Mezerovánà se nastavà na "\frenchspacing", tj. rovnomÄ›rné mezerovánà mezi slovy i za teÄkami. * Nastavà se Äeské názvy pro jména \uv{Kapitola}, \uv{Obsah} atd. Viz následujÃcà tabulka. * Makro "\today" expanduje na Äeský datum. * Definujà se makra "\clqq" a "\crqq" pro dvojité Äeské uvozovky, a to i jejich nouzová varianta pro pÅ™Ãpad, kdy nenà použito kódovánà "IL2". Definujà se též makra "\clq" a "\crq" pro jednoduché Äeské uvozovky. * Definuje se makro "\uv" jako "\def\uv#1{\clqq#1\crqq}". * Definujà se pÅ™epÃnaÄe "\csprimeson" a "\csprimesoff" (popis viz nÞe). \enditems Tabulka automaticky generovaných slov \LaTeX{}u, která jsou zmÄ›nÄ›na po naÄtenà "czech.sty" na Äeské názvy: \begtt Původnà název czech.sty slovak.sty ------------------------------------------------------------- Preface PÅ™edmluva Predhovor References Reference Literatúra Abstract Abstrakt Abstrakt Bibliography Literatura Literatúra Chapter Kapitola Kapitola Appendix PÅ™Ãloha Dodatok Contents Obsah Obsah List of Figures Seznam obrázků Zoznam obrázkov List of Tables Seznam tabulek Zoznam tabuliek Index RejstÅ™Ãk Register Figure Obrázek Obr. Table Tabulka Tabuľka Part Část ÄŒasÅ¥ encl PÅ™Ãloha PrÃloha cc Na vÄ›domà cc. To Komu Pre Page Strana Str. see viz viÄ see also viz také viÄ tiež \endtt KromÄ› toho styl "czech.sty" akceptuje následujÃcà volby: \bgroup\medskip\leftskip=\parindent \parindent=0pt "T1" mÃsto implicitnÃho vnitÅ™nÃho kódovánà \LaTeX{}u~"IL2" se použije kódovánà "T1". "IL2" nemusÃte psát, je to implicitnà volba. "OT1" použije se vnitÅ™nà kódovánà podle CM fontů. Pak samozÅ™ejmÄ› nefunguje dÄ›lenà slov ÄeÅ¡tiny a slovenÅ¡tiny. "split" zapne "\splithyphens". "nocaptions" výstup makra "\today" a automaticky generovaná slova zůstanou v~angliÄtinÄ›. "olduv" použije se stará definice makra "\uv", která umožňuje použÃt v~argumentu verbatim konstrukce. %"primeson" zapne "\csprimeson". V souÄasné verzi "czech.sty" nenà % tato volba implementována, ale poÄÃtáme s nà do budoucà verze. \medskip\par\egroup NapÅ™Ãklad "\usepackage[split,olduv]{czech}" zapne navÃc zdvojovánà spojovnÃku pÅ™i rozdÄ›lenà a definuje makro "\uv" tak, že jsou možné verbatim konstrukce uvnitÅ™ argumentu. Nynà vysvÄ›tlÃm vlastnosti pÅ™epÃnaÄů "\csprimeson" a "\csprimesoff". Po po\-užità pÅ™Ãkazu "\csprimeson" jsou pÅ™idÄ›leny znakům \uv{"`"} a \uv{"'"} aktivnà kategorie, aby "``takto po anglicku''" zapsané uvozovky se pÅ™evedly na \uv{takové} uvozovky. Rovněž "`jednoduché'" anglické uvozovky jsou pak vytiÅ¡tÄ›ny ,jednoduÅ¡e`. Makro "\csprimesoff" vracà vÅ¡e do původnÃho stavu, kdy jsou uvedené znaky neaktivnÃ. Po naÄtenà "czech.sty" je implicitnÄ› nastaveno "\csprimesoff". Uvedený popis chovánà stylového souboru "czech.sty" se týká jen pÅ™Ãpadu, kdy je tento stylový soubor naÄten z~\cslatex{}u. Pokud je naÄten z~babelizovaného \LaTeX{}u, pak se provede "\input czech.lfd", takže veÅ¡keré definice \uv{ÄeÅ¡tiny} jsou v~režii balÃku Babel. Tam napÅ™Ãklad vůbec nenà definováno makro "\uv". Pokud je "czech.sty" naÄten z~\csplain{}u, pak se provede "\chyph", definuje se "\csprimeson", "\csprimesof" a makro "\today" expanduje na datum po Äesku. Je-li naÄten "czech.sty" z~originálnÃho plainu, pak se provede totéž jen s~tÃm rozdÃlem, že mÃsto "\chyph" se objevà na terminálu varovánà o~nemožnosti pÅ™epnout na Äeské vzory dÄ›lenÃ. \subsub PostScriptové fonty v~\cslatex{}u | PostScriptove fonty v CSLaTeXu %------------------------------------- PÅ™i práci s~PostScriptovými fonty v~\cslatex{}u staÄà použÃt standardnà nástroje NFSS. NapÅ™Ãklad pro zapnutà do fontů rodiny Times~Roman staÄà napsat do záhlavà dokumentu "\usepackage{times}". Protože \cslatex{} pÅ™i "\usepackage{czech}" implicitnÄ› pracuje s~vnitÅ™nÃm kódovánÃm podle ISO~8859-2, použijà se v~tomto pÅ™ÃpadÄ› virtuálnà fonty z~balÃÄku "cspsfonts.tar.gz". Z~toho důvodu jsou v~balÃÄku \cslatex{}u pÅ™Ãtomny potÅ™ebné "fd" soubory. NásledujÃcà tabulka ukazuje parametry pÅ™Ãkazu "\usepackage" pro rodiny fontů ze standardnà skupiny 35~PostScriptových fontů. \begtt Rodina fontů parametr -------------------------- Avantgarde Book avant Bookman bookman Helvetica helvet New Century newcent Palatino palatino Times Roman times \endtt \subsub Použità fontů kódovaných podle Corku (T1 kódovánÃ) v~\cslatex{}u | %-------------------------------------------------------------------- Pouziti fontu kodovanych podle Corku v CSLaTeXu Máte-li vzory dÄ›lenà v~\cslatex{}u naÄteny i pro kódovánà T1 (viz pÅ™Ãkaz "\DeclareLanguage" v souboru "hyphen.cfg"), pak můžete mÃsto implicitnÃho vnitÅ™nÃho kódovánà "IL2" použÃt kódovánà "T1". V~takovém pÅ™ÃpadÄ› se automaticky použijà mÃsto \CSfont{}ů fonty kódované podle Corku. VnitÅ™nà kódovánà "T1" inicializujete zápisem: \begtt \usepackage[T1]{czech} % nebo \usepackage[T1]{slovak} \endtt Protože ale input procesor \TeX{}u pÅ™i použità pÅ™Ãkazu "cslatex" konvertuje vstupnà kódovánà dokumentu na ISO~8859-2, je v~tomto pÅ™ÃpadÄ› nutné navázat na to dalÅ¡Ã konverzà pomocà balÃÄku inputenc takto: \begtt \usepackage[latin2]{inputenc} \endtt Zde je potÅ™eba vždy psát "[latin2]", aÅ¥ je vstupnà kódovánà dokumentu jakékoli, protože vstupnà procesor \TeX{}u nám toto kódovánà pÅ™evedl na ISO~8859-2. Po zapnutà vnitÅ™nÃho kódovánà na "T1" lze použÃt PostScriptové fonty stejným způsobem jako pÅ™edtÃm (napÅ™Ãklad "\usepackage{times}"). Nynà se ale použijà metriky dodávané v~mezinárodnÃch distribucÃch \TeX{}u a kódované podle Corku. \subsub pdf\TeX{} + \cslatex{} = pdf\cslatex{} | %--------------------------------------- pdfTeX + CSLaTeX = pdfCSLaTeX V~pÅ™ÃpadÄ› spojenà \cslatex{}u s~pdf\TeX{}em platà vÅ¡e naprosto stejnÄ›, jako bylo Å™eÄeno v~sekci \uv{pdf\TeX + \csplain{} = pdf\csplain{}}. NahraÄte v~této sekci slovo \csplain{} slovem \cslatex{} a slovo pdf\csplain{} slovem pdf\cslatex{} a pÅ™eÄtÄ›te si tuto sekci jeÅ¡tÄ› jednou. \subsub Historie a budoucnost \cslatex{}u | Historie a budoucnost CSLaTeXu %------------------------------------- \cslatex{} vytvoÅ™il zhruba v~roce 1992 Jiřà ZlatuÅ¡ka. Od nÄ›j pocházà myÅ¡lenka naÄtenà vzorů dÄ›lenà stejného jazyka v~různých kódovánÃch a pÅ™edefinovánà vnitÅ™nÃho \LaTeX{}ového makra "\DeclareFontEncoding". Na své implementaci \TeX{}u tehdy provozoval mimo jiné fonty kódované v~KOI-8, takže pÅ™epÃnánà vnitÅ™nÃho kódovánà \LaTeX{}u si vlastnÄ› udÄ›lal pro svoje potÅ™eby. Jiřà ZlatuÅ¡ka je také autorem maker "\splithyphens" a "\standardhyphens". VeÅ¡kerá makra napsal dobÅ™e dokumentovaná pro použità v~systému docstrip. Svou práci zveÅ™ejnil pod licencà GPL mimo jiné podle jeho slov proto, že pokud to bude nÄ›koho zajÃmat, tak to může dále udržovat a zvelebovat podle svých vlastnÃch pÅ™edstav. On sám se kvůli své zanepráznÄ›nosti v~jiné oblasti tÃmto problémem pozdÄ›ji zÅ™ejmÄ› nezabýval. Po schůzce tvůrců \CSTeX{}u v~roce 1993 pÅ™evzal starost o~\cslatex{} podle dohody ZdenÄ›k Wagner, který vytvoÅ™il definice kódovánà "IL2". VytvoÅ™il také pro \cslatex{} definiÄnà soubory "fd" jednak pro \CSfont{}y a jednak pro PostScriptové fonty z~balÃÄku "cspsfonts.tar.gz". Od nÄ›j také pocházà implementace \cslatex{}u pro \LaTeX{}~2.09. V~em\TeX{}ové distribuci \CSTeX{}u je stále tato implementace obsažena (pod oznaÄenÃm latex209). Soubor "czech.sty" má asi podstatnÄ› delÅ¡Ã historii než \cslatex{}. Pocházà z~dÃlny Olina Ulricha. který se zÅ™ejmÄ› inspiroval podobným stylovým souborem pro nÄ›mecký jazyk. Olin rovněž vytvoÅ™il makra "\csprimeson" a "\csprimesoff". ZdenÄ›k Wagner pak pÅ™evzal Olinův stylový soubor a upravil jej pro provoz v~\cslatex{}u. Slovenskou Äást vÄetnÄ› vzorů dÄ›lenà slov vytvoÅ™ila Janka ChlebÃková. Soubor "slovak.sty" je pÅ™esnou kopià souboru "czech.sty" s~výjimkou slovensky Å¡pecifických ÄástÃ. V~duchu licence GPL pÅ™evzal zhruba v~roce 1997 údržbu \cslatex{}u Jaroslav \hbox{Å najdr}. UdÄ›lal nÄ›kolik úprav stylových souborů "czech.sty" a "slovak.sty" vÄetnÄ› pÅ™echodu na novou definici uvozovek, uvnitÅ™ jejichž argumentu nefungujà verbatim konstrukce. TÃm kurióznÄ› způsobil, že \cslatex{}em od této doby nejde bez chyb formátovat Äeský pÅ™eklad úvodu do \LaTeX{}u, který je pod názvem balÃÄku "csuvodlat.tar.gz" souÄástà dokumentace \CSTeX{}u. Je to názorná ukázka toho, co může způsobit zmÄ›na kódu, která nerespektuje zpÄ›tnou kompatibilitu. Pan Å najdr rovněž napsal "html" dokumentaci k~\cslatex{}u, která popisuje instalaci \cslatex{}u ze zdrojových souborů použitÃm docstripu. Použijete-li ale balÃÄek "cslatex.tar.gz", pak nemusÃte docstrip aplikovat, protože vedle zdrojových souborů jsou tam už pÅ™Ãtomny i vÅ¡echny soubory, které vznikajà po aplikaci docstripu. Já osobnÄ› jsem o~\LaTeX{} a tÃm pádem \cslatex{} jevil od zaÄátku malý zájem, protože celý projekt je závislý na \LaTeX{}u samotném. Nemám tedy jistotu, jaké zmÄ›ny v~nÄ›m souÄasný \LaTeX{}-team udÄ›lá a jaké budou existovat do budoucna potÞe se zpÄ›tnou kompatibilitou. To je zásadnà odliÅ¡nost od Knuthova plainu a \TeX{}u samotného. RadÄ›ji jsem se tedy do \LaTeX{}ových vÄ›cà nemÃchal. V~roce 1999 jsem nicménÄ› pÅ™idal pár řádek maker do souboru "czhyphen.tex" tak, aby byl použitelný v~babelizovaném \LaTeX{}u. Do té doby totiž tato vÄ›tev \LaTeX{}u použÃvala Lhotkovy vzory dÄ›lenÃ, zatÃmco v~\cslatex{}u jsme už dávno mÄ›li daleko kvalitnÄ›jÅ¡Ã Å eveÄkovy vzory dÄ›lenÃ. Tyto novÄ›jÅ¡Ã vzory dÄ›lenà jsou totiž napsány za použità \TeX{}ových sekvencÃ, což je sice nezávislé na kódovánà ÄeÅ¡tiny, ale balÃÄek Babel to implicitnÄ› nedokáže strávit a oÄekává vzory dÄ›lenà v~kódovánà "T1". Upravený soubor jsem nazval Babelovsky: "czhyph.tex", zatÃmco v~\CSTeX{}u zůstává původnà soubor "czhyphen.tex". Sjednocenà názvů tÄ›chto souborů by stejnÄ› nevyÅ™eÅ¡ilo nejednotnost vývoje \cslatex{}u a babelizovaného \LaTeX{}u. Na výborové schůzi v~roce 1999 jsem dostal za úkol prověřit možnost spojenà babelizovaného \LaTeX{}u s~\cslatex{}em. Neustálé dotazy zaÄÃnajÃcÃch uživatelů, kteřà si pletou tyto dva \LaTeX{}y, nás utvrzujà v~tom, že by se pro slouÄenà mÄ›lo nÄ›co udÄ›lat. Analyzoval jsem proto makra Babelu a udÄ›lal návrh na možné zapracovánà funkcionality \cslatex{}u do Babelu. DomnÃvám se, že \cslatex{} klidnÄ› může pÅ™estat existovat, ale babelizovaný \LaTeX{} musà bezpodmÃneÄnÄ› pÅ™evzÃt vÅ¡echny vlastnosti \cslatex{}u tak, aby dokumenty dÅ™Ãve zpracovávané \cslatex{}em byly naprosto stejnÄ› a bez jediné úpravy zpracované novým babelizovaným \LaTeX{}em. Kvůli tomuto požadavku musà babelizovaný \LaTeX{} umÄ›t naÄÃtat vzory dÄ›lenà stejného jazyka ve vÃce kódovánÃch, jako to nynà dÄ›lá \cslatex{}. DospÄ›l jsem k~závÄ›ru, že Äistým Å™eÅ¡enÃm tohoto problému je jedinÄ› zásah do jádra \LaTeX{}u samotného, aby dokázal pÅ™i zmÄ›nÄ› kódovánà fontů pÅ™epnout automaticky i vzory dÄ›lenÃ. ZlatuÅ¡ka kvůli tomu pÅ™edefinoval makro jádra \LaTeX{}u "\DeclareFontEncoding". Tato záplata, Äi jinak Å™eÄeno odmÃtnutà původnÃho kódu tohoto makra, je na úrovni Babelu podle mého názoru velmi neÄisté Å™eÅ¡enÃ. SkuteÄnost, že pÅ™epÃnánà vzorů dÄ›lenà pÅ™i pÅ™epnutà kódovánà fontů \LaTeX{}ové jádro neÅ™eÅ¡Ã, považuji totiž za chybu \LaTeX{}u. V~roce 1999 jsem tedy požádal \LaTeX{}-team, aby zapracoval zmÄ›nu v~duchu ZlatuÅ¡kova návrhu do \LaTeX{}ového jádra. Můj návrh nebyl \LaTeX{}-teamem akceptován. Za tÄ›chto okolnostà nejsem schopen zapracovat funkcionalitu \cslatex{}u do Babelu, protože to prostÄ› nejde. Uživatelé \LaTeX{}u se budou muset nadále potýkat s~tÃm, že jejich oblÃbený formát trpà urÄitou schizofreniÃ. SpoleÄnÄ› se slouÄenÃm \cslatex{}u s~Babelem jsem pÅ™ipravoval zásadnà revizi stylů "czech.sty" a "slovak.sty" -- v~podstatÄ› jsem mÄ›l v~úmyslu jejich totálnà pÅ™epsánÃ. Tyto stylové soubory obsahujà množstvà reliktů z~dob minulých, plno zcela nepoužÃvaných vÄ›tvà ve složitém vÄ›tvenà pomocà "\if" a stávajà se totálnÄ› nepÅ™ehlednými. Protože ale ke slouÄenà \cslatex{}u s~Babelem nakonec nedoÅ¡lo, upustil jsem zatÃm od plánu pracovat na tÄ›ch stylových souborech. Nenà ale vylouÄeno, že k~tomu dojde v~budoucnosti. V~takovém pÅ™ÃpadÄ› poÄÃtám s~tÃm, že makra "\splithyphens" a "\standardhyphens" pÅ™esunu z~formátu do stylového souboru, kam pÅ™irozenÄ› patÅ™Ã. Dokumenty, které tato makra použÃvajÃ, a pÅ™itom nemajà v~záhlavà "\usepackage{czech}" ani "\usepackage{slovak}", pak nebudou fungovat. PÅ™edpokládám, že takových dokumentů nenà mnoho, protože \cslatex{} a stylové soubory jsou vÄ›tÅ¡inou použÃvány souÄasnÄ›. Protože pan Å najdr se pÅ™estal \cslatex{}em zabývat, byl jsem nucen v~roce 2002 zanést do stylových souborů jednu opravu podle požadavku pana Kubena. Neznamená to ale, že bych se ujal iniciativy nad \cslatex{}em. Jak jsem už vysvÄ›tlil, jsem ochoten pÅ™evzÃt iniciativu jen tehdy, když bude \LaTeX{}ové jádro umÄ›t pÅ™epÃnat mezi různÄ› kódovanými vzory dÄ›lenà stejného jazyka. PÅ™itom Älenové \LaTeX{}-teamu jsou toho názoru, že to možná bude zapracováno až do \LaTeX{}u~3. \reference \bib cstex WWW stránka \CSTeX{}u {\tt http://petr.olsak.net/cstex/}. \bib cstex WWW stránka \csplain{}u {\tt http://petr.olsak.net/csplain.html}. \bib cstex WWW stránka makra OPmac {\tt http://petr.olsak.net/opmac.html}. \bib texbook Donald Knuth. {\it The \TeX{}book}. Addison Wesley Publishing Company. Eleventh printing, revised, May 1991, ISBN 0-201-13447-0 \bib tst Petr Olšák. {\it Typografický systém \TeX}. Konvoj, Brno~2000, ISBN~80-85615-91-6 \bib tbn Petr Olšák. {\it \TeX{}book naruby}. Konvoj, Brno~2001, ISBN~80-7302-007-6. \bib prvni Petr Olšák. {\it Prvnà setkánà s~\TeX{}em}. VolnÄ› Å¡ÃÅ™ený dokument ve formátech "tex", "ps", "pdf" na \url{ftp://math.feld.cvut.cz/pub/cstex/doc/prvni.*}, 22~stran. \bib putovani Petr Olšák. {\it Putovánà pÃsmene Å™ z klávesy na papÃr}. Zpravodaj \CS{}TUGu, 3/1997, strany 109--118. \bib enctex Petr Olšák. {\it RozÅ¡ÃÅ™enà \TeX{}u enc\TeX}. RozÅ¡ÃÅ™enà ve formÄ› zmÄ›nového souboru k~"tex.web" je volnÄ› Å¡ÃÅ™eno na \url{ftp://math.feld.cvut.cz/pub/olsak/enctex/}. \bib a2ac Petr Olšák. {\it Program {\tt a2ac}}. Program vÄetnÄ› zdrojových kódů v jazyce~C je volnÄ› Å¡ÃÅ™en na \url{ftp://math.feld.cvut.cz/pub/olsak/a2ac/}. \bib cstrip Petr Olšák. {\it Test {\tt cstrip}}. Test je nepovinnou souÄástà \CSTeX{}u. Je volnÄ› Å¡ÃÅ™en na \url{ftp://math.feld.cvut.cz/pub/cstex/base/cstrip.tar.gz}. \bib OFS Petr Olšák. {\it Makro OFS}. \TeX{}ové makro OFS pro práci s rozsáhlými kolekcemi fontů je volnÄ› Å¡ÃÅ™eno na \url{ftp://math.feld.cvut.cz/pub/olsak/ofs/}. \bye