% ^^A Hey Emacs, this is a -*-LaTeX-*- file! % \title{\CS\LaTeX} % \author{Jaroslav \v Snajdr \and Zden\v ek Wagner \and % Ji\v r\'\i\ Zlatu\v ska \and The \LaTeX 3 Project} % \maketitle % \iffalse % \begin{macrocode} %<*driver> \documentclass{ltxdoc} \newcommand\CS{$\cal C\kern-.1667em \lower.5ex\hbox{$\cal S$}\kern-.075em$} \begin{document} \overfullrule=10pt \DocInput{cslatex.dtx} \end{document} % % \end{macrocode} % \fi % % \section{Hyphenation---file \texttt{hyphen.cfg}} % % \begin{macrocode} %<*hyphen> \ProvidesFile{hyphen.cfg}[1997/01/30 CSLaTeX] % \end{macrocode} % % \begin{macro}{\@@T1Codes} % This macro sets the correct uc/ls/sf codes for characters in the T1 % encoding. % \begin{macrocode} \expandafter\def\csname @@T1Codes\endcsname{% \def\@tempa##1##2{% \@tempcnta=##1\relax\@tempcntb=##2\relax\@tempb}% \def\@tempb{% \ifnum\@tempcnta>\@tempcntb\else \@tempc\@tempcnta \advance\@tempcnta by 1 \expandafter\@tempb \fi}% \def\@tempc##1{% \count@=##1\advance\count@ by -"20 \uccode##1=\count@ \lccode##1=##1 }% \@tempa{"A0}{"BC} \@tempa{"E0}{"FF} \def\@tempc##1{% \count@=##1\advance\count@ by "20 \uccode##1=##1 \lccode##1=\count@ \sfcode##1=999 }% \@tempa{"80}{"9C} \@tempa{"C0}{"DF} \uccode25=`\I \lccode25=26 % dotless i \uccode26=`\J \lccode26=26 % dotless j, ae in OT1 \lccode157=`\i \uccode157=157 % dotted I \lccode158=158 \uccode158=208 % d-bar \sfcode254=1000 \lccode254=254 \sfcode255=1000 \lccode255=255 \sfcode158=1000 \sfcode159=1000 \let\@tempa=\@undefined \let\@tempb=\@undefined \let\@tempc=\@undefined} % \end{macrocode} % \end{macro} % \begin{macro}{\@@IL2Codes} % The same for IL2 (ISO-8859-2). % \begin{macrocode} \expandafter\def\csname @@IL2Codes\endcsname{% \def\@tempa##1##2{% \lccode##1=##1 \uccode##2=##2 \lccode##2=##1 \uccode##1=##2 }% \@tempa{181}{165}\@tempa{184}{152}\@tempa{185}{169}% \@tempa{187}{171}\@tempa{190}{174}% \sfcode254=0 \lccode254=0 % ,, \sfcode255=0 \lccode255=0 % `` \sfcode158=0 \lccode158=0 % << \sfcode159=0 \lccode159=0 }% >> % \end{macrocode} % \end{macro} % Now we define macros that change the hyphenation patterns when % encoding or language is switched. % % Token registers |\@@front@@| and |\@@end@@| contain commands which % will be later contents of the |\@hyphenation| macro (see its % definition). % \begin{macrocode} \newtoks\@@front@@ \newtoks\@@end@@ \bgroup \count0=0 % \end{macrocode} % \begin{macro}{\DeclareLanguage} % Command |\DeclareLanuage| loads hyphenation patterns for respective % languages and encodings. First control sequences that redefine % |\lang| to |\lang encoding| are appended to |\@@front@@| % register. By command |\setup@hyphenation|, the patterns for % all encodings noted in optional parameter of |\DeclareLanguage| are % loaded. % \begin{macrocode} \newcommand{\DeclareLanguage}[4][\undefined]{% \def\c@ding{#1}\def\und@fin@d{\undefined}% \ifx\c@ding\und@fin@d \setup@hyphenation{#3}{\expandafter\@gobble\string#2}{#4}% \else \global\@@front@@=\expandafter{\the\@@front@@ \global\expandafter\expandafter\expandafter\def\expandafter \expandafter\expandafter#2\expandafter\expandafter\expandafter {\csname\expandafter\@gobble\string#2 \f@encoding\endcsname}}% \def\one@arg##1,##2\end{% \def\c@ding{##1} \ifx\c@ding\und@fin@d\else \setup@hyphenation[##1]{#3}{\expandafter\@gobble\string#2}{#4}% \one@arg##2\end \fi } \one@arg#1,\undefined,\end \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\setup@hyphenation} % This command updates the encoding (by calling |\enc@update|), which % causes control sequences like |\'a| to expand to the right % characters. After setting cat/uc/lc codes the hyphenation patterns are % loaded. Last we add some code to |\@@end@@| for switching the % |\language| register to right value when the encoding is changed. % \begin{macrocode} \newcommand{\setup@hyphenation}[4][\undefined]{% \def\c@ding{#1}\def\und@fin@d{\undefined}% \ifx\c@ding\und@fin@d \def\c@ding{} \else \fontencoding{#1}\enc@update \csname @@\c@ding Codes\endcsname \fi \enc@update \InputIfFileExists{#2}% {\message{^^JLoading #3 hyphenation patterns and exceptions}% \global\expandafter\expandafter\expandafter \def\expandafter\expandafter \csname#3 \c@ding\endcsname\expandafter {\expandafter\language\expandafter=\the\count0 #4\relax}% \if\c@ding\relax\relax \expandafter\global\expandafter \let\csname#3\expandafter\endcsname\csname#3 \endcsname \else\message{for #1}% \global\expandafter\edef\csname#3 @\c@ding\endcsname {\noexpand\language=\the\count0\noexpand\relax}% \fi \language=\count0}% {\errhelp{The configuration for hyphenation is incorrectly installed.^^J% If you don't understand this error message you need to seek^^Jexpert advice.}% \errmessage{OOPS!! Hyphenation patterns file #2 for #3 not found!}}% \if\c@ding\relax\relax\else \global\@@end@@= \expandafter\expandafter\expandafter {\expandafter \the\expandafter\@@end@@\expandafter \ifnum\expandafter\language\expandafter=\the\count0\relax \csname#3 @\f@encoding\endcsname \fi} \fi \advance\count0 by 1\relax }% \csname @@T1Codes\endcsname % \end{macrocode} % \end{macro} % Here we define languages and encodings that are loaded into the % format. By default we load english, czech and slovak patterns in the % IL2 encoding. These definitions are likery to be changed by the user. % \begin{macrocode} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareLanguage{\english}{hyphen.tex}{\lefthyphenmin=2 \righthyphenmin=3 \@splitrequestedfalse}% \DeclareLanguage[IL2]{\czech}{czhyphen.tex}{\lefthyphenmin=2 \righthyphenmin=3 \@requesthyphens}% \DeclareLanguage[IL2]{\slovak}{skhyphen.tex}{\lefthyphenmin=2 \righthyphenmin=3 \@requesthyphens}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \egroup % \end{macrocode} % \begin{macro}{\@hyphenation} % The |\@hyphenation| macro is defined as contents of registers % |\@@front@@| and |\@@end@@|. This macro is executed at every % encoding change. % \begin{macrocode} \@@front@@=\expandafter\expandafter\expandafter {\expandafter\the\expandafter\@@front@@\the\@@end@@}% \expandafter\def\expandafter \@hyphenation\expandafter{\the\@@front@@}% \@@front@@={}\@@end@@={} \def\nolanguage{\lefthyphenmin=99\righthyphenmin=99\language=255 \@splitrequestedfalse\relax} \newif\if@splithyphens \newif\if@splitrequested % \end{macrocode} % \end{macro} % Macros for splitting hyphens. % \begin{macrocode} \def\minus{-}% \bgroup\catcode`-=\active\expandafter\egroup \expandafter\def\noexpand-{% \ifx\protect\relax \ifhmode \ifinner \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter-% \else \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\firstd@sh \fi \else% \expandafter\expandafter\expandafter-% \fi \else \expandafter\string\expandafter\string-% \fi}% \def\@nehyph@n{-} \def\splithyph@n{\ifnum\expandafter\hyphenchar\the\font>-1 \discretionary{\char`-}{\char\hyphenchar\the\font}{\char`-}\else \discretionary{\char`-}{\char`-}{\char`-}\fi} \def\b@xhyph@n{\hbox{-}} \def\tw@hyph@ns{--} \def\thr@@hyph@ns{---} \catcode`-=\active \def\firstd@sh{\ifnextch@r -\then\sec@ndd@sh\else \ifnum\expandafter\hyphenchar\the\font=`- \ifnum\righthyphenmin>2 \if l\nextchar\b@xhyph@n % make sure we \else % don't chop off `-li' \splithyph@n \fi \else \splithyph@n \fi \else \@nehyph@n \fi \fii} \def\sec@ndd@sh#1{\ifnextch@r-\then\thirdd@sh\else\tw@hyph@ns\fii} \def\thirdd@sh#1{\ifnextch@r-\then\m@nyd@sh\else\thr@@hyph@ns\fii} \def\m@nyd@sh#1{\thr@@hyph@ns\firstd@sh} \def\ifnextch@r#1\then#2\else#3\fii {\def\c@mp@rech@rs{\ifx#1\nextchar \def\next{#2}% \else \def\next{#3}% \fi\next}% \futurelet\nextchar\c@mp@rech@rs} \catcode`-=12 \def\standardhyphens{\catcode`-=12 \@splithyphensfalse}% \def\splithyphens{\if@splitrequested\catcode`-\active\fi \@splithyphenstrue}% \def\@requesthyphens{\if@splithyphens\catcode`-=\active\fi \@splitrequestedtrue} \let\@looseness\looseness \def\looseness{% \if@splithyphens \standardhyphens\afterassignment\splithyphens \fi \@looseness} \expandafter\fontencoding\expandafter U\expandafter \fontencoding\expandafter{\f@encoding}\enc@update \@hyphenation \english % % \end{macrocode} % % \section{Fonts---file \texttt{fonttext.cfg}} % % This is copy of original |fonttext.ltx| with definitions for IL2 % added. % \begin{macrocode} %<*fonttext> \ProvidesFile{fonttext.cfg}[1997/08/20 CSLaTeX] \let\@hyphenation=\relax % \end{macrocode} % Macro |\DeclareFontEncoding@| is changed to execute |\@hyphenation| % and set proper uc/lc/catcodes at every encoding change. This can be % also achieved by changing file |xxxenc.def|, but standard encoding % definition file can't be changed because of \LaTeX\ copyright. % \begin{macrocode} \def\DeclareFontEncoding@#1#2#3{% \expandafter \ifx\csname T@#1\endcsname\relax \def\cdp@elt{\noexpand\cdp@elt}% \xdef\cdp@list{\cdp@list\cdp@elt{#1}% {\default@family}{\default@series}% {\default@shape}}% \expandafter\let\csname#1-cmd\endcsname\@changed@cmd \else \@font@info{Redeclaring font encoding #1}% \fi \global\@namedef{T@#1}{#2\csname @@#1Codes\endcsname\@hyphenation}% \global\@namedef{M@#1}{\default@M#3}% } \input {omlenc.def} \input {t1enc.def} \input {ot1enc.def} % <- should come after T1 for speed % \end{macrocode} % Definition of IL2 encoding. % \begin{macrocode} \input {il2enc.def} \input {omsenc.def} \fontencoding{OT1} \DeclareFontEncodingDefaults{}{} \DeclareFontSubstitution{T1}{cmr}{m}{n} \DeclareFontSubstitution{OT1}{cmr}{m}{n} \DeclareFontSubstitution{IL2}{cmr}{m}{n} \begingroup \nfss@catcodes \input {t1cmr.fd} \input {ot1cmr.fd} % \end{macrocode} % IL2 once again. % \begin{macrocode} \input {il2cmr.fd} \endgroup \begingroup \nfss@catcodes \input {ot1cmss.fd} \input {ot1cmtt.fd} \endgroup \DeclareErrorFont{OT1}{cmr}{m}{n}{10} \newcommand\rmdefault{cmr} \newcommand\sfdefault{cmss} \newcommand\ttdefault{cmtt} \newcommand\bfdefault{bx} \newcommand\mddefault{m} \newcommand\itdefault{it} \newcommand\sldefault{sl} \newcommand\scdefault{sc} \newcommand\updefault{n} \newcommand\encodingdefault{OT1} \newcommand\familydefault{\rmdefault} \newcommand\seriesdefault{\mddefault} \newcommand\shapedefault{\updefault} % % \end{macrocode} % % \section{Definition of the IL2 encoding---file \texttt{il2enc.def}} % % \begin{macrocode} %<*il2enc> \ProvidesFile{il2enc.def}[1997/08/20 CSLaTeX] \DeclareFontEncoding{IL2}{\uccode152=152 \lccode152=184 \uccode184=152 \lccode184=184 \uccode165=165 \lccode165=181 \uccode181=165 \lccode181=181 \uccode169=169 \lccode169=185 \uccode185=169 \lccode185=185 \uccode171=171 \lccode171=187 \uccode187=171 \lccode187=187 \uccode174=174 \lccode174=190 \uccode190=174 \lccode190=190 \sfcode254=0 \lccode254=0 \sfcode255=0 \lccode255=0 \sfcode158=0 \lccode158=0 \sfcode159=0 \lccode159=0 }{} \DeclareTextAccent{\"}{IL2}{127} \DeclareTextAccent{\'}{IL2}{19} \DeclareTextAccent{\.}{IL2}{95} \DeclareTextAccent{\=}{IL2}{22} \DeclareTextAccent{\^}{IL2}{94} \DeclareTextAccent{\`}{IL2}{18} \DeclareTextAccent{\~}{IL2}{126} \DeclareTextAccent{\H}{IL2}{125} \DeclareTextAccent{\u}{IL2}{21} \DeclareTextAccent{\v}{IL2}{20} \DeclareTextAccent{\r}{IL2}{23} \DeclareTextCommand{\b}{IL2}[1] {\oalign{\null#1\crcr\hidewidth\sh@ft{29}% \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}} \DeclareTextCommand{\c}{IL2}[1] {\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} \DeclareTextCommand{\d}{IL2}[1] {\oalign{\null#1\crcr\hidewidth\sh@ft{08}.\hidewidth}} \DeclareTextSymbol{\AE}{IL2}{29} \DeclareTextSymbol{\OE}{IL2}{30} \DeclareTextSymbol{\O}{IL2}{31} \DeclareTextSymbol{\ae}{IL2}{26} \DeclareTextSymbol{\i}{IL2}{16} \DeclareTextSymbol{\j}{IL2}{17} \DeclareTextSymbol{\oe}{IL2}{27} \DeclareTextSymbol{\o}{IL2}{28} \DeclareTextSymbol{\ss}{IL2}{25} \DeclareTextSymbol{\textemdash}{IL2}{124} \DeclareTextSymbol{\textendash}{IL2}{123} \DeclareTextSymbol{\textexclamdown}{IL2}{60} \DeclareTextSymbol{\textquestiondown}{IL2}{62} \DeclareTextSymbol{\textquotedblleft}{IL2}{92} \DeclareTextSymbol{\textquotedblright}{IL2}{`\"} \DeclareTextSymbol{\textquoteleft}{IL2}{`\`} \DeclareTextSymbol{\textquoteright}{IL2}{`\'} \DeclareTextCommand{\L}{IL2} {\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} \DeclareTextCommand{\l}{IL2}{{\char32l}} \DeclareTextCompositeCommand{\r}{IL2}{A} {\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% \rlap{\raise.67\dimen@\hbox{\char'27}}A} \DeclareTextCommand{\SS}{IL2}{SS} \DeclareTextCommand{\textdollar}{IL2}{{% \ifdim \fontdimen\@ne\font >\z@ \slshape \else \upshape \fi \char`\$}} \DeclareTextCommand{\textsterling}{IL2}{{% \ifdim \fontdimen\@ne\font >\z@ \itshape \else \fontshape{ui}\selectfont \fi \char`\$}} \DeclareTextComposite{\'}{IL2}{l}{'345}% \DeclareTextComposite{\'}{IL2}{r}{'340}% \DeclareTextComposite{\'}{IL2}{a}{'341}% \DeclareTextComposite{\'}{IL2}{e}{'351}% \DeclareTextComposite{\'}{IL2}{\i}{'355}% \DeclareTextComposite{\'}{IL2}{i}{'355}% \DeclareTextComposite{\'}{IL2}{o}{'363}% \DeclareTextComposite{\'}{IL2}{u}{'372}% \DeclareTextComposite{\'}{IL2}{y}{'375}% \DeclareTextComposite{\'}{IL2}{L}{'305}% \DeclareTextComposite{\'}{IL2}{R}{'300}% \DeclareTextComposite{\'}{IL2}{A}{'301}% \DeclareTextComposite{\'}{IL2}{E}{'311}% \DeclareTextComposite{\'}{IL2}{I}{'315}% \DeclareTextComposite{\'}{IL2}{O}{'323}% \DeclareTextComposite{\'}{IL2}{U}{'332}% \DeclareTextComposite{\'}{IL2}{Y}{'335}% \DeclareTextComposite{\`}{IL2}{a}{'270}% \DeclareTextComposite{\`}{IL2}{A}{'230}% \DeclareTextComposite{\v}{IL2}{c}{'350}% \DeclareTextComposite{\v}{IL2}{d}{'357}% \DeclareTextComposite{\v}{IL2}{e}{'354}% \DeclareTextComposite{\v}{IL2}{n}{'362}% \DeclareTextComposite{\v}{IL2}{r}{'370}% \DeclareTextComposite{\v}{IL2}{s}{'271}% \DeclareTextComposite{\v}{IL2}{z}{'276}% \DeclareTextComposite{\v}{IL2}{t}{'273}% \DeclareTextComposite{\v}{IL2}{l}{'265}% \DeclareTextComposite{\v}{IL2}{u}{'371}% \DeclareTextComposite{\v}{IL2}{C}{'310}% \DeclareTextComposite{\v}{IL2}{D}{'317}% \DeclareTextComposite{\v}{IL2}{E}{'314}% \DeclareTextComposite{\v}{IL2}{N}{'322}% \DeclareTextComposite{\v}{IL2}{R}{'330}% \DeclareTextComposite{\v}{IL2}{S}{'251}% \DeclareTextComposite{\v}{IL2}{T}{'253}% \DeclareTextComposite{\v}{IL2}{Z}{'256}% \DeclareTextComposite{\v}{IL2}{L}{'245}% \DeclareTextComposite{\v}{IL2}{U}{'331}% \DeclareTextComposite{\^}{IL2}{o}{'364}% \DeclareTextComposite{\^}{IL2}{O}{'324}% \DeclareTextComposite{\"}{IL2}{a}{'344}% \DeclareTextComposite{\"}{IL2}{o}{'366}% \DeclareTextComposite{\"}{IL2}{u}{'374}% \DeclareTextComposite{\"}{IL2}{A}{'304}% \DeclareTextComposite{\"}{IL2}{O}{'326}% \DeclareTextComposite{\"}{IL2}{U}{'334}% \DeclareTextComposite{\r}{IL2}{u}{'371}% \DeclareTextComposite{\r}{IL2}{U}{'331}% \DeclareTextSymbol{\flqq}{IL2}{158}% \DeclareTextSymbol{\frqq}{IL2}{159}% \DeclareTextSymbol{\clqq}{IL2}{254}% \DeclareTextCommand{\crqq}{IL2}% {{\edef\@SF{\spacefactor\the\spacefactor}\char255 \@SF\relax}}% % % \end{macrocode} % % \section{Font definition files for the \CS-fonts} % % These files are slightly modified font definitions files for CM % fonts from \LaTeX---\texttt{ot1*.fd} % \begin{macrocode} %<*il2cmr> \ProvidesFile{il2cmr.fd}[1997/02/06 CSLaTeX font definitions] \DeclareFontFamily{IL2}{cmr}{\hyphenchar\font45 } \DeclareFontShape{IL2}{cmr}{m}{n} {<5><6><7><8><9><10><12> gen*csr <10.95> csr10 <14.4> csr12 <17.28><20.74><24.88> csr17 }{} \DeclareFontShape{IL2}{cmr}{m}{sl} {<5><6><7> cssl8 <8><9> gen*cssl <10><10.95> cssl10 <12><14.4><17.28><20.74><24.88> cssl12 }{} \DeclareFontShape{IL2}{cmr}{m}{it} {<5><6><7> csti7 <8> csti8 <9> csti9 <10><10.95> csti10 <12><14.4><17.28><20.74><24.88> csti12 }{} \DeclareFontShape{IL2}{cmr}{m}{sc} {<5><6><7><8><9><10><10.95><12> <14.4><17.28><20.74><24.88> cscsc10 }{} \DeclareFontShape{IL2}{cmr}{m}{ui} {<5><6><7><8><9><10><10.95><12> <14.4><17.28><20.74><24.88> csu10 }{} \DeclareFontShape{IL2}{cmr}{b}{n} {<5><6><7><8><9><10><10.95><12> <14.4><17.28><20.74><24.88> csb10 }{} \DeclareFontShape{IL2}{cmr}{bx}{n} {<5><6><7><8><9> gen*csbx <10><10.95> csbx10 <12><14.4><17.28><20.74><24.88> csbx12 }{} \DeclareFontShape{IL2}{cmr}{bx}{sl} {<5><6><7><8><9> <10><10.95><12><14.4><17.28><20.74><24.88> csbxsl10 }{} \DeclareFontShape{IL2}{cmr}{bx}{it} {<5><6><7><8><9> <10><10.95><12><14.4><17.28><20.74><24.88> csbxti10 }{} \DeclareFontShape{IL2}{cmr}{bx}{ui} {<->ssub * cmr/m/ui}{} % %<*il2cmdh> \ProvidesFile{il2cmdh.fd}[1997/08/20 CSLaTeX font definitions] \DeclareFontFamily{IL2}{cmdh}{\hyphenchar\font45 } \DeclareFontShape{IL2}{cmdh}{m}{n} {<10> csdunh10}{} % %<*il2cmfib> \ProvidesFile{il2cmfib.fd}[1997/08/20 CSLaTeX font definitions] \DeclareFontFamily{IL2}{cmfib}{\hyphenchar\font45 } \DeclareFontShape{IL2}{cmfib}{m}{n} {<8> csfib8}{} % %<*il2cmfr> \ProvidesFile{il2cmfr.fd}[1997/08/20 CSLaTeX font definitions] \DeclareFontFamily{IL2}{cmfr}{\hyphenchar\font45 } \DeclareFontShape{IL2}{cmfr}{m}{n} {<10> csff10}{} \DeclareFontShape{IL2}{cmfr}{m}{it} {<10> csfi10}{} % %<*il2cmss> \ProvidesFile{il2cmss.fd}[1997/02/13 CsLaTeX font definitions] \DeclareFontFamily{IL2}{cmss}{\hyphenchar\font45 } \DeclareFontShape{IL2}{cmss}{m}{n} {<5><6><7><8> csss8 <9> csss9 <10><10.95> csss10 <12><14.4> csss12 <17.28><20.74><24.88> csss17 }{} \DeclareFontShape{IL2}{cmss}{m}{it} {<->sub*cmss/m/sl}{} \DeclareFontShape{IL2}{cmss}{m}{sl} {<5><6><7><8> csssi8 <9> csssi9 <10><10.95> csssi10 <12><14.4> csssi12 <17.28><20.74><24.88> csssi17 }{} \DeclareFontShape{IL2}{cmss}{m}{sc} {<->sub*cmr/m/sc}{} \DeclareFontShape{IL2}{cmss}{m}{ui} {<->sub*cmr/m/ui}{} \DeclareFontShape{IL2}{cmss}{sbc}{n} {<5><6><7><8><9> csssdc10 <10><10.95><12><14.4><17.28><20.74><24.88> csssdc10 }{} \DeclareFontShape{IL2}{cmss}{bx}{n} {<5><6><7><8><9> csssbx10 <10><10.95><12><14.4><17.28><20.74><24.88> csssbx10 }{} \DeclareFontShape{IL2}{cmss}{bx}{ui} {<->sub*cmr/bx/ui}{} % %<*il2cmtt> \ProvidesFile{il2cmtt.fd}[1997/08/20 CSLaTeX font definitions] \DeclareFontFamily{IL2}{cmtt}{\hyphenchar \font\m@ne} \DeclareFontShape{IL2}{cmtt}{m}{n} {<5><6><7><8> cstt8 <9> cstt9 <10><10.95> cstt10 <12><14.4><17.28><20.74><24.88> cstt12 }{} \DeclareFontShape{IL2}{cmtt}{m}{it} {<5><6><7><8><9> <10><10.95><12><14.4><17.28><20.74><24.88> csitt10 }{} \DeclareFontShape{IL2}{cmtt}{m}{sl} {<5><6><7><8><9> <10><10.95><12><14.4><17.28><20.74><24.88> cssltt10 }{} \DeclareFontShape{IL2}{cmtt}{m}{sc} {<5><6><7><8><9> <10><10.95><12><14.4><17.28><20.74><24.88> cstcsc10 }{} \DeclareFontShape{IL2}{cmtt}{m}{ui} {<->ssub * cmtt/m/it}{} \DeclareFontShape{IL2}{cmtt}{bx}{n} {<->ssub * cmtt/m/n}{} \DeclareFontShape{IL2}{cmtt}{bx}{it} {<->ssub * cmtt/m/it}{} \DeclareFontShape{IL2}{cmtt}{bx}{ui} {<->ssub * cmtt/m/it}{} % %<*il2cmvtt> \ProvidesFile{il2cmvtt.fd}[1997/08/20 CSLaTeX font definitions] \DeclareFontFamily{IL2}{cmvtt}{\hyphenchar\font45 } \DeclareFontShape{IL2}{cmvtt}{m}{n} {<5><6><7><8><9><10><10.95> <12><14.4><17.28><20.74><24.88> csvtt10 }{} \DeclareFontShape{IL2}{cmvtt}{m}{it} {<5><6><7><8><9><10><10.95> <12><14.4><17.28><20.74><24.88> csvtti10 }{} % %<*il2lcmss> \ProvidesFile{il2lcmss.fd}[1997/08/20 CSLaTeX slide font definitions] \DeclareFontFamily{IL2}{lcmss}{\hyphenchar\font45 } \DeclareFontShape{IL2}{lcmss}{m}{n} {<7><8><10><12><13.82><16.59> <19.907><23.89><28.66><34.4><41.28> lcsss8 }{} \DeclareFontShape{IL2}{lcmss}{m}{In} {<7><8><10><12><13.82><16.59> <19.907><23.89><28.66><34.4><41.28> ilcsss8 }{} \DeclareFontShape{IL2}{lcmss}{m}{sl} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> lcsssi8 }{} \DeclareFontShape{IL2}{lcmss}{m}{Isl} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> ilcsssi8 }{} \DeclareFontShape{IL2}{lcmss}{m}{it} {<-> sub * lcmss/m/sl }{} \DeclareFontShape{IL2}{lcmss}{m}{Iit} {<-> sub * lcmss/m/Isl }{} \DeclareFontShape{IL2}{lcmss}{bx}{n} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> lcsssb8 }{} \DeclareFontShape{IL2}{lcmss}{bx}{In} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> ilcsssb8 }{} \DeclareFontShape{IL2}{lcmss}{m}{ui} {<-> sub * cmr/m/ui }{} \DeclareFontShape{IL2}{lcmss}{bx}{ui} {<-> sub * cmr/m/ui }{} % %<*il2lcmtt> \ProvidesFile{il2lcmtt.fd}[1997/08/20 CSLaTeX slide font definitions] \DeclareFontFamily{IL2}{lcmtt}{\hyphenchar\font\m@ne} \DeclareFontShape{IL2}{lcmtt}{m}{n} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> cstt8 }{} \DeclareFontShape{IL2}{lcmtt}{m}{In} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> icstt8 }{} \DeclareFontShape{IL2}{lcmtt}{m}{it} {<13.82><16.59><19.907> <23.89><28.66><34.4><41.28> csitt10 }{} \DeclareFontShape{IL2}{lcmtt}{m}{ui} {<-> sub * cmtt/m/it }{} \DeclareFontShape{IL2}{lcmtt}{bx}{ui} {<-> sub * cmtt/m/it }{} % % \end{macrocode} % % \section{Czech and slovak style files---\texttt{czech.sty} and % \texttt{slovak.sty}} % % These packages can be used either with plain \TeX\ or with both % \LaTeX es. First we check if the file is not loaded twice. % \begin{macrocode} %\ifx\dateczech\undefined\else\endinput\fi %\ifx\dateslovak\undefined\else\endinput\fi % \end{macrocode} % Our packages are not yet fully compatible with Babel. Following code % loads Babel's |ldf| file when the package is loaded from % Babel-ized \LaTeX\ format. % \begin{macrocode} \ifx\addlanguage\undefined\else \ifx\LdfInit\@undefined \def\LdfInit{% \chardef\atcatcode=\catcode`\@ \catcode`\@=11\relax \input babel.def\relax \catcode`\@=\atcatcode \let\atcatcode\relax \LdfInit} \fi %\input czech.ldf %\input slovak.ldf \endinput\fi % \end{macrocode} % Some definitions have to be different in different \TeX\ formats. % |\iflte| is true when the style is loaded from \LaTeXe. % \begin{macrocode} %<*czech|slovak> \newif\iflte \ifx\documentclass\undefined\else\ltetrue\fi \iflte \NeedsTeXFormat{LaTeX2e} % %<*czech> \ProvidesPackage{czech.sty}[1998/03/18 v2.2 CSTeX czech style] \else \message{Document Style Option `czech' ver. 2.2 .} % %<*slovak> \ProvidesPackage{slovak.sty}[1998/03/18 v2.2 CSTeX slovak style] \else \message{Document Style Option `slovak' ver. 2.2 .} % %<*czech|slovak> \edef\origcatcodeat{\the\catcode`\@}\catcode`\@=11 \let\providecommand=\def \let\protect=\relax \fi \iflte % \end{macrocode} % Options for selecting font encoding. The default is |IL2|. % \begin{macrocode} \DeclareOption{IL2}{\def\encodingdefault{IL2}\let\il@opt=\relax} \DeclareOption {T1}{\def\encodingdefault {T1}} \DeclareOption{OT1}{\def\encodingdefault{OT1}} % \end{macrocode} % May we split the hyphens or not? (je-li $\rightarrow$ je-/-li) % \begin{macrocode} \DeclareOption{nosplit}{\standardhyphens} \DeclareOption{split}{\splithyphens} \DeclareOption{nocaptions}{\let\cap@unchgd=\relax} \DeclareOption{olduv}{\let\cs@olduv=\relax} \DeclareOption{cstex}{\relax} % Removed, lasts for compatibility \ExecuteOptions{IL2} \ProcessOptions \def\dms#1#2{\DeclareMathSymbol{#1}{\mathalpha}{letters}{#2}} % \end{macrocode} % For IL2, the encoding of mathematical fonts is changed to IL2 % (this encoding is equivalent to OT1 in slots 0--127). This allows % using accented letter in some font families. Another % consequence is that document does not use CM fonts where there are % equivalents in \CS-fonts, so there is no need to have both bitmaps of % CM-font and \CS-font. |\@font@warning| and |\@font@info| are % redefined for a while to avoid annoying font warnings. % \begin{macrocode} \ifx\il@opt\relax \let\cs@warn=\@font@warning \let\@font@warning=\@gobble \let\cs@info=\@font@info \let\@font@info=\@gobble \SetSymbolFont{operators}{normal}{IL2}{cmr}{m}{n} \SetSymbolFont{operators}{bold}{IL2}{cmr}{bx}{n} \SetMathAlphabet\mathbf{normal}{IL2}{cmr}{bx}{n} \SetMathAlphabet\mathit{normal}{IL2}{cmr}{m}{it} \SetMathAlphabet\mathrm{normal}{IL2}{cmr}{m}{n} \SetMathAlphabet\mathsf{normal}{IL2}{cmss}{m}{n} \SetMathAlphabet\mathtt{normal}{IL2}{cmtt}{m}{n} \SetMathAlphabet\mathbf{bold}{IL2}{cmr}{bx}{n} \SetMathAlphabet\mathit{bold}{IL2}{cmr}{bx}{it} \SetMathAlphabet\mathrm{bold}{IL2}{cmr}{m}{n} \SetMathAlphabet\mathsf{bold}{IL2}{cmss}{bx}{n} \SetMathAlphabet\mathtt{bold}{IL2}{cmtt}{m}{n} \let\@font@warning=\cs@warn \let\cs@warn=\undefined \let\@font@info=\cs@info \let\cs@info=\undefined % \end{macrocode} % Accented letters are declared as math symbols. The purpose of this % is only the backward compatibility. % \begin{macrocode} \dms{^^e1}{"E1}\dms{^^c1}{"C1}\dms{^^e8}{"E8}\dms{^^c8}{"C8} \dms{^^ef}{"EF}\dms{^^cf}{"CF}\dms{^^e9}{"E9}\dms{^^c9}{"C9} \dms{^^ec}{"EC}\dms{^^cc}{"CC}\dms{^^ed}{"ED}\dms{^^cd}{"CD} \dms{^^b5}{"B5}\dms{^^a5}{"A5}\dms{^^f2}{"F2}\dms{^^d2}{"D2} \dms{^^f3}{"F3}\dms{^^d3}{"D3}\dms{^^f8}{"F8}\dms{^^d8}{"D8} \dms{^^b9}{"B9}\dms{^^a9}{"A9}\dms{^^bb}{"BB}\dms{^^ab}{"AB} \dms{^^fa}{"FA}\dms{^^da}{"DA}\dms{^^f9}{"F9}\dms{^^d9}{"D9} \dms{^^fd}{"FD}\dms{^^dd}{"DD}\dms{^^be}{"BE}\dms{^^ae}{"AE} \fi \else \def\gobble#1{} \def\DeclareRobustCommand#1#2{\expandafter\def \csname @\expandafter\gobble\string#1\endcsname{#2} \edef#1{\noexpand\protect\expandafter\noexpand \csname @\expandafter\gobble\string#1\endcsname}} \ifx\ou\undefined \def\ou{\accent23u} \fi \def\temp#1#2#3:{#1#2} \edef\tempa{\string c\string s} \edef\tempb{\expandafter\temp\fontname\tenrm:} \ifx\tempa\tempb \chardef\clqq=254 \sfcode254=0 \lccode254=0 \chardef\crqq=255 \sfcode255=0 \lccode255=0 \chardef\flqq=158 \sfcode158=0 \lccode158=0 \chardef\frqq=159 \sfcode159=0 \lccode159=0 \def\ogonek #1{\setbox0\hbox{#1}\ifdim\ht0=1ex\accent157 #1% \else{\ooalign{\unhbox0\crcr\hss\char157}}\fi} \chardef\promile=141 \def\DeclareTextCommandDefault#1#2{} \else \let\DeclareTextCommandDefault=\DeclareRobustCommand \fi \fi % % \end{macrocode} % Czech captions. % \begin{macrocode} %<*czech> \def\captionsczech{% \def\abstractname{Abstrakt}% \def\appendixname{P\v{r}\'{\i}loha}% \def\bibname{Literatura}% \def\ccname{Na v\v{e}dom\'{\i}} \def\chaptername{Kapitola}% \def\contentsname{Obsah}% \def\enclname{P\v{r}\'{\i}loha}% \def\figurename{Obr\'azek}% \def\headpagename{Strana}% \def\headtoname{Komu}% \def\indexname{Rejst\v{r}\'{\i}k}% \def\listfigurename{Seznam obr\'azk\r{u}}% \def\listtablename{Seznam tabulek}% \def\partname{\v{C}\'ast}% \def\prefacename{P\v{r}edmluva}% \def\proofname{D\r{u}kaz}% \def\seename{viz}% \def\alsoseename{viz tak\'e}% \def\refname{Reference}% \def\tablename{Tabulka}} % % \end{macrocode} % Slovak captions. % \begin{macrocode} %<*slovak> \def\captionsslovak{% \def\prefacename{Predhovor}% \def\refname{Literat\'ura}% \def\appendixname{Dodatok}% \def\listfigurename{Zoznam obr\'azkov}% \def\listtablename {Zoznam tabuliek}% \def\indexname{Register}% \def\tablename{Tabu\v{l}ka}% \def\partname{\v{C}as\v{t}}% \def\enclname{Pr\'{\i}loha}% \def\headtoname{Pre}% \def\alsoname{vi\v{d} tie\v{z}}% \def\abstractname{Abstrakt}% \let\bibname\refname \def\chaptername{Kapitola}% \def\contentsname{Obsah}% \def\figurename{Obr.}% \def\ccname{cc.}% \def\pagename{Str.}% \def\seename{vi\v{d}}} % % \end{macrocode} % English captions % \begin{macrocode} %<*czech|slovak> \providecommand\captionsenglish{% \def\prefacename{Preface}% \def\refname{References}% \def\abstractname{Abstract}% \def\bibname{Bibliography}% \def\chaptername{Chapter}% \def\appendixname{Appendix}% \def\contentsname{Contents}% \def\listfigurename{List of Figures}% \def\listtablename{List of Tables}% \def\indexname{Index}% \def\figurename{Figure}% \def\tablename{Table}% \def\partname{Part}% \def\enclname{encl}% \def\ccname{cc}% \def\headtoname{To}% \def\pagename{Page}% \def\headpagename{Page}% \def\prefacename{Preface}% \def\seename{see}% \def\alsoname{see also}} % % \end{macrocode} % Czech date. % \begin{macrocode} %<*czech> \def\dateczech{% \def\today{\number\day. \ifcase\month\or ledna\or \'unora\or b\v{r}ezna\or dubna\or kv\v{e}tna\or \v{c}ervna\or \v{c}ervence\or srpna\or z\'a\v{r}\'\i\or \v{r}\'{\i}jna\or listopadu\or prosince\fi \space\number\year}} % \end{macrocode} % Switching on the czech captions and date (if not requested else) % \begin{macrocode} \iflte\ifx\cap@unchgd\undefined\captionsczech\dateczech\fi\fi % % \end{macrocode} % Slovak date % \begin{macrocode} %<*slovak> \def\dateslovak{\def\today{\number\day.~\ifcase\month\or janu\'ara\or febru\'ara\or marca\or apr\'{\i}la\or m\'aja\or j\'una\or j\'ula\or augusta\or septembra\or okt\'obra\or novembra\or decembra\fi \space\number\year}} % \end{macrocode} % Switching on the slovak captions and date (if not requested else) % \begin{macrocode} \iflte\ifx\cap@unchgd\undefined\captionsslovak\dateslovak\fi\fi % % \end{macrocode} % English (19th April 1997) and US (April 19, 1997) date % \begin{macrocode} %<*czech|slovak> \providecommand\dateUSenglish{\def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year}} \providecommand\dateenglish{\def\today{\ifcase\day\or 1st\or 2nd\or 3rd\or 4th\or 5th\or 6th\or 7th\or 8th\or 9th\or 10th\or 11th\or 12th\or 13th\or 14th\or 15th\or 16th\or 17th\or 18th\or 19th\or 20th\or 21st\or 22nd\or 23rd\or 24th\or 25th\or 26th\or 27th\or 28th\or 29th\or 30th\or 31st\fi ~\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space \number\year}} % \end{macrocode} % 7bin cs quotes (for OT1) % \begin{macrocode} \DeclareTextCommandDefault\clqq{\leavevmode \set@low@box{''}% \setbox1=\hbox{l\/}\dimen1=\wd1 \setbox1=\hbox{l}\advance\dimen1 by -\wd1 \ifdim\dimen1>0pt\kern-.1em\box0\kern.1em \else\kern.1em\box0\kern-.1em\fi\nobreak\hskip0pt} \DeclareTextCommandDefault\crqq{\edef\@SF{\spacefactor\the\spacefactor}% \nobreak\kern-.07em\hbox{``}\kern.07em\@SF\relax} % \end{macrocode} % Lowers the box to ... of ... % \begin{macrocode} \def\set@low@box#1{\setbox2=\hbox{,}\setbox0=\hbox{#1}% \dimen0=\ht0 \advance\dimen0 by -\ht2 \setbox0=\hbox{\lower\dimen0 \box0}\ht0=\ht2\dp0=\dp2} % \end{macrocode} % Single CS quotes. % \begin{macrocode} \DeclareRobustCommand\clq{\leavevmode\set@low@box{\char'047 }% \box0 \kern.04em\nobreak\hskip0pt\relax} \DeclareRobustCommand\crq{{\edef\@SF{\spacefactor\the\spacefactor}% \nobreak\char'140 \kern.17em\@SF\relax}} % \end{macrocode} % CS quotes in T1 encoding. % \begin{macrocode} \iflte \DeclareTextCommand{\clqq}{T1}{\leavevmode\kern.1em \char18 \kern-.0158em\nobreak\hskip0pt} \DeclareTextCommand{\crqq}{T1} {{\edef\@SF{\spacefactor\the\spacefactor}% \nobreak\kern.06em \char16 \kern.024em \@SF\relax}} \fi % \end{macrocode} % Command for making quotes. There are two versions of |\uv|: the old, % which uses |\aftergroup|, allows using |\verb| inside quotes % (because there is no command with parameter), but violates kerning % in \CS-fonts. The new version defines |\uv| as command with one % parameter and its properties are the exact opposite of the old % version -- |\verb| not, kerning yes. The new version is the default in % \LaTeXe\ (where it can be overrided by the |olduv| option). % In plain \TeX\ and in \LaTeX\,2.09 compatibility mode, the old % version is default, for backward compatibility (current csplain % format does not need |czech/slovak.sty| at all). % \begin{macrocode} \iflte\else\let\if@compatibility=\iffalse{\let\fi=\fi}\fi \ifx\cs@olduv\undefined \iflte \if@compatibility \DeclareRobustCommand\uv{\bgroup\aftergroup\closequotes \leavevmode\clqq\let\next=} \else \DeclareRobustCommand\uv[1]{{\leavevmode\clqq#1\crqq}} \fi \else \ifx\uv\undefined \def\uv{\bgroup\aftergroup\closequotes \leavevmode\clqq\let\next=} \fi \fi \else \DeclareRobustCommand\uv{\bgroup\aftergroup\closequotes \leavevmode\clqq\let\next=} \fi \def\closequotes{\unskip\crqq\relax} % \end{macrocode} % Active quotes (``'' $\to$ ,,``) % \begin{macrocode} \def\prim@s{\prime\futurelet\next\pr@m@s} {\catcode`\'=\active \gdef\csprimeson{\catcode96=\active \catcode39=\active \def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t \else\let\nxt\egroup\fi\fi \nxt}}} \def\csprimesoff{\catcode96=12 \catcode39=12 \def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t \else\let\nxt\egroup\fi\fi \nxt}} {\csprimeson \gdef'{\ifmmode\let\n@xt=\mathprim@\else\let\n@xt=\textprim@\fi\n@xt}% % \end{macrocode} % Activeness of the character `|'|' requires redefinition of macros % for converting |f'''| to |f^{\prime\prime\prime}| in math mode. % \begin{macrocode} \gdef\mathprim@{^\bgroup\prim@s}% \gdef\textprim@{\futurelet\nxt\rightprim@}% \gdef\rightprim@{\ifx'\nxt\let\next=\douvr@ \else\let\next\crq\fi\next}% \gdef`{\futurelet\nxt\leftprim@}% \gdef\leftprim@{\ifx`\nxt\let\next=\douvl@ \else\let\next=\clq\fi\next}} \def\douvr@{\crqq\let\next= }% \def\douvl@{\clqq\let\next= }% \csprimesoff % \end{macrocode} % Should tilde in math mode expand to space? % \begin{macrocode} \def\cstieon{\def~{\ifmmode\else\penalty\@M\ \fi}} \def\cstieoff{\def~{\penalty\@M \ }} % \end{macrocode} % Hyphenation and language switching % \begin{macrocode} \iflte % %\AtBeginDocument{\czech} %\AtBeginDocument{\slovak} %<*czech|slovak> \frenchspacing \else \def\setthisl@nguage#1#2#3#4{% \ifx#2\undefined \immediate\write\sixt@@n {Warning: I do not speak #1, (the style is not inputted)} \else \ifx#4\undefined \immediate\write\sixt@@n {Warning: I do not speak #1, (the hyphenation patterns are not included)} \else#2#3#4\fi\fi} \def\selectlanguage#1{\language #1\relax \ifcase #1\relax \dateUSenglish\captionsenglish\ehyph\or \setthisl@nguage{german} \dategerman \captionsgerman \ghyph\or \setthisl@nguage{austrian}\dateaustrian \captionsgerman \ahyph\or \setthisl@nguage{french} \datefrench \captionsfrench \fhyph\or \setthisl@nguage{english} \dateenglish \captionsenglish\ehyph\or \setthisl@nguage{czech} \dateczech \captionsczech \chyph\or \setthisl@nguage{slovak} \dateslovak \captionsslovak \shyph\fi} \def\originalTeX{\selectlanguage{\USenglish} \csname cmaccents\endcsname} \def\czechTeX{\selectlanguage{\czech}\csname csaccents\endcsname} \def\slovakTeX{\selectlanguage{\slovak}\csname csaccents\endcsname} \catcode`\@=\origcatcodeat %\czechTeX %\slovakTeX \fi \endinput % % \end{macrocode}