1 % \iffalse meta-comment
3 % Copyright 1989-2008 Johannes L. Braams and any individual authors
4 % listed elsewhere in this file. All rights reserved.
6 % This file is part of the Babel system.
7 % --------------------------------------
9 % It may be distributed and/or modified under the
10 % conditions of the LaTeX Project Public License, either version 1.3
11 % of this license or (at your option) any later version.
12 % The latest version of this license is in
13 % http://www.latex-project.org/lppl.txt
14 % and version 1.3 or later is part of all distributions of LaTeX
15 % version 2003/12/01 or later.
17 % This work has the LPPL maintenance status "maintained".
19 % The Current Maintainer of this work is Johannes Braams.
21 % The list of all files belonging to the Babel system is
22 % given in the file `manifest.bbl. See also `legal.bbl' for additional
25 % The list of derived (unpacked) files belonging to the distribution
26 % and covered by LPPL is defined by the unpacking scripts (with
27 % extension .ins) which are part of the distribution.
31 % Tell the \LaTeX\ system who we are and write an entry on the
34 \ProvidesFile{slovak.dtx}
36 %<+code>\ProvidesLanguage{slovak}
38 %\ProvidesFile{slovak.dtx}
39 [2008/07/06 v3.1a Slovak support from the babel system]
42 %% Babel package for LaTeX version 2e
43 %% Copyright (C) 1989 - 2008
44 %% by Johannes Braams, TeXniek
46 %% Slovak Language Definition File
47 %% Copyright (C) 1989 - 2001
49 % Department of Artificial Intelligence
50 % Faculty of Mathematics and Physics
54 % (42)(7) 720003 l. 835
56 % chlebikj at mff.uniba.cs (Internet)
57 % and Johannes Braams, TeXniek
59 %% Copyright (C) 2002-2005
60 %% by Tobias Schlemmer
61 % Braunsdorfer Stra\ss e 101
64 % Tobias.Schlemmer at web.de
66 %% Copyright (C) 2005-2008
67 %% by Petr Tesa\v r\'ik (babel at tesarici.cz)
69 % This file is also based on CSLaTeX
70 % by Ji\v r\'i Zlatu\v ska, Zden\v ek Wagner,
71 % Jaroslav \v Snajdr and Petr Ol\v s\'ak.
73 %% Please report errors to: Petr Tesa\v r\'ik
74 %% babel at tesarici.cz
76 % This file is part of the babel system, it provides the source
77 % code for the Slovak language definition file.
79 \documentclass{ltxdoc}
80 \newcommand*\TeXhax{\TeX hax}
81 \newcommand*\babel{\textsf{babel}}
82 \newcommand*\langvar{$\langle \it lang \rangle$}
83 \newcommand*\note[1]{}
84 \newcommand*\Lopt[1]{\textsf{#1}}
85 \newcommand*\file[1]{\texttt{#1}}
92 % \def\CS{$\cal C\kern-.1667em
93 % \lower.5ex\hbox{$\cal S$}\kern-.075em$}
95 % \GetFileInfo{slovak.dtx}
97 % \changes{slovak-1.0}{1992/07/15}{First version}
98 % \changes{slovak-1.2}{1994/02/27}{Update for \LaTeXe}
99 % \changes{slovak-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
100 % and moved identification after the loading of \file{babel.def}}
101 % \changes{slovak-1.2i}{1996/10/10}{Replaced \cs{undefined} with
102 % \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
103 % with \LaTeX, moved the definition of \cs{atcatcode} right to the
105 % \changes{slovak-1.3a}{2004/02/20}{Added contributed shorthand
107 % \changes{slovak-3.0}{2005/09/10}{Implemented the functionality of
108 % \CS\LaTeX's slovak.sty. The version number was bumped to 3.0
109 % to minimize confusion by being higher than the last version
112 % \section{The Slovak language}
114 % The file \file{\filename}\footnote{The file described in this
115 % section has version number \fileversion\ and was last revised on
116 % \filedate. It was originally written by Jana Chlebikova
117 % (\texttt{chlebik@euromath.dk}) and modified by Tobias Schlemmer
118 % (\texttt{Tobias.Schlemmer@web.de}). It was then rewritten by
119 % Petr Tesa\v r\'ik (\texttt{babel@tesarici.cz}).} defines all the
120 % language-specific macros for the Slovak language.
122 % For this language the macro |\q| is defined. It was used with the
123 % letters (\texttt{t}, \texttt{d}, \texttt{l}, and \texttt{L}) and
124 % adds a \texttt{'} to them to simulate a `hook' that should be
125 % there. The result looks like t\kern-2pt\char'47. Since the the T1
126 % font encoding has the corresponding characters it is mapped to |\v|.
127 % Therefore we recommend using T1 font encoding. If you don't want to
128 % use this encoding, please, feel free to redefine |\q| in your file.
129 % I think babel will honour this |;-)|.
131 % For this language the characters |"|, |'| and |^| are made
132 % active. In table~\ref{tab:slovak-quote} an overview is given of
133 % its purpose. Also the vertical placement of the
134 % umlaut can be controlled this way.
138 % \begin{tabular}{lp{8cm}}
139 % |"a| & |\"a|, also implemented for the other
140 % lowercase and uppercase vowels. \\
141 % |^d| & |\q d|, also implemented for l, t and L. \\
142 % |^c| & |\v c|, also implemented for C, D, N, n, T, Z and z. \\
143 % |^o| & |\^o|, also implemented for O. \\
144 % |'a| & |\'a|, also implemented for the other lowercase and
145 % uppercase l, r, y and vowels. \\
146 % \verb="|= & disable ligature at this position. \\
147 % |"-| & an explicit hyphen sign, allowing hyphenation
148 % in the rest of the word. \\
149 % |""| & like |"-|, but producing no hyphen sign
150 % (for compund words with hyphen, e.g.\ |x-""y|). \\
151 % |"~| & for a compound word mark without a breakpoint. \\
152 % |"=| & for a compound word mark with a breakpoint, allowing
153 % hyphenation in the composing words. \\
154 % |"`| & for German left double quotes (looks like ,,). \\
155 % |"'| & for German right double quotes. \\
156 % |"<| & for French left double quotes (similar to $<<$). \\
157 % |">| & for French right double quotes (similar to $>>$). \\
159 % \caption{The extra definitions made
160 % by \file{slovak.ldf}}\label{tab:slovak-quote}
164 % The quotes in table~\ref{tab:slovak-quote} can also be typeset by
165 % using the commands in table~\ref{tab:smore-quote}.
168 % \begin{tabular}{lp{8cm}}
169 % |\glqq| & for German left double quotes (looks like ,,). \\
170 % |\grqq| & for German right double quotes (looks like ``). \\
171 % |\glq| & for German left single quotes (looks like ,). \\
172 % |\grq| & for German right single quotes (looks like `). \\
173 % |\flqq| & for French left double quotes (similar to $<<$). \\
174 % |\frqq| & for French right double quotes (similar to $>>$).\\
175 % |\flq| & for (French) left single quotes (similar to $<$). \\
176 % |\frq| & for (French) right single quotes (similar to $>$). \\
177 % |\dq| & the original quotes character (|"|). \\
178 % |\sq| & the original single quote (|'|). \\
180 % \caption{More commands which produce quotes, defined
181 % by \file{slovak.ldf}}\label{tab:smore-quote}
185 % \subsection{Compatibility}
187 % Great care has been taken to ensure backward compatibility with
188 % \CS\LaTeX. In particular, documents which load this file with
189 % |\usepackage{slovak}| should produce identical output with no
190 % modifications to the source. Additionally, all the \CS\LaTeX{}
191 % options are recognized:
193 % \label{tab:slovak-options}
195 % {\def\makelabel#1{\sbox0{\Lopt{#1}}%
196 % \ifdim\wd0>\labelwidth
197 % \setbox0\vbox{\box0\hbox{}} \wd0=0pt \fi
199 % \setlength{\labelwidth}{2\parindent}
200 % \setlength{\leftmargin}{2\parindent}
201 % \setlength{\rightmargin}{\parindent}}
202 % \item[IL2, T1, OT1]
203 % These options set the default font encoding. Please note
204 % that their use is deprecated. You should use the |fontenc|
205 % package to select font encoding.
207 % \item[split, nosplit]
208 % These options control whether hyphenated words are
209 % automatically split according to Slovak typesetting rules.
210 % With the \Lopt{split} option ``je-li'' is hyphenated as
211 % ``je-/-li''. The \Lopt{nosplit} option disables this behavior.
213 % The use of this option is strongly discouraged, as it breaks
214 % too many common things---hyphens cannot be used in labels,
215 % negative arguments to \TeX{} primitives will not work in
216 % horizontal mode (use \cs{minus} as a workaround), and there are
217 % a few other peculiarities with using this mode.
221 % This option was used in \CS\LaTeX{} to set up Czech/Slovak
222 % typesetting rules, but leave the original captions and dates.
223 % The recommended way to achieve this is to use English as the main
224 % language of the document and use the environment |otherlanguage*|
228 % There are two version of \cs{uv}. The older one allows the use
229 % of \cs{verb} inside the quotes but breaks any respective kerning
230 % with the quotes (like that in \CS{} fonts). The newer one honors
231 % the kerning in the font but does not allow \cs{verb} inside the
234 % The new version is used by default in \LaTeXe{} and the old version
235 % is used with plain \TeX. You may use \Lopt{olduv} to override the
236 % default in \LaTeXe.
239 % This option was used to include the commands \cs{csprimeson} and
240 % \cs{csprimesoff}. Since these commands are always included now,
241 % it has been removed and the empty definition lasts for compatibility.
246 % \subsection{Implementation}
248 % The macro |\LdfInit| takes care of preventing that this file is
249 % loaded more than once, checking the category code of the
250 % \texttt{@} sign, etc.
251 % \changes{slovak-1.2i}{1996/11/03}{Now use \cs{LdfInit} to perform
255 \LdfInit\CurrentOption{date\CurrentOption}
258 % When this file is read as an option, i.e. by the |\usepackage|
259 % command, \texttt{slovak} will be an `unknown' language in which
260 % case we have to make it known. So we check for the existence of
261 % |\l@slovak| to see whether we have to do something here.
263 % \changes{slovak-1.2d}{1994/06/26}{Now use \cs{@nopatterns} to
264 % produce the warning}
266 \ifx\l@slovak\@undefined
268 \adddialect\l@slovak0\fi
271 % We need to define these macros early in the process.
275 \newif\ifcs@splithyphens
276 \cs@splithyphensfalse
279 % If Babel is not loaded, we provide compatibility with \CS\LaTeX.
280 % However, if macro \cs{@ifpackageloaded} is not defined, we assume
281 % to be loaded from plain and provide compatibility with csplain.
282 % Of course, this does not work well with \LaTeX$\:$2.09, but I
283 % doubt anyone will ever want to use this file with \LaTeX$\:$2.09.
286 \ifx\@ifpackageloaded\@undefined
287 \let\cs@compat@plain\relax
288 \message{csplain compatibility mode}
290 \@ifpackageloaded{babel}{}{%
291 \let\cs@compat@latex\relax
292 \message{cslatex compatibility mode}}
294 \ifx\cs@compat@latex\relax
295 \ProvidesPackage{slovak}[2008/07/06 v3.1a CSTeX Slovak style]
298 % Declare \CS\LaTeX{} options (see also the descriptions on page
299 % \pageref{tab:slovak-options}).
302 \DeclareOption{IL2}{\def\encodingdefault{IL2}}
303 \DeclareOption {T1}{\def\encodingdefault {T1}}
304 \DeclareOption{OT1}{\def\encodingdefault{OT1}}
305 \DeclareOption{nosplit}{\cs@splithyphensfalse}
306 \DeclareOption{split}{\cs@splithyphenstrue}
307 \DeclareOption{nocaptions}{\let\cs@nocaptions=\relax}
308 \DeclareOption{olduv}{\let\cs@olduv=\relax}
309 \DeclareOption{cstex}{\relax}
312 % Make |IL2| encoding the default. This can be overriden with
313 % the other font encoding options.
315 \ExecuteOptions{\cs@iltw@}
318 % Now, process the user-supplied options.
323 % Standard \LaTeXe{} does not include the IL2 encoding in the format.
324 % The encoding can be loaded later using the fontenc package, but
325 % \CS\LaTeX{} included IL2 by default. This means existing documents
326 % for \CS\LaTeX{} do not load that package, so load the encoding
327 % ourselves in compatibility mode.
330 \ifx\encodingdefault\cs@iltw@
335 % Restore the definition of \cs{CurrentOption}, clobbered by processing
339 \def\CurrentOption{slovak}
343 % The next step consists of defining commands to switch to (and
344 % from) the Slovak language.
346 % \begin{macro}{\captionsslovak}
347 % The macro \cs{captionsslovak} defines all strings used in the four
348 % standard documentclasses provided with \LaTeX.
349 % \changes{slovak-1.2g}{1995/07/04}{Added \cs{proofname} for
351 % \changes{slovak-1.2k}{1999/02/28}{Repaired a few spelling mistakes}
352 % \changes{slovak-1.2l}{2000/09/20}{Added \cs{glossaryname}}
353 % \changes{slovak-3.0}{2005/12/22}{Updated some translations. Former
354 % translations were: `\'Uvod' for \cs{prefacename}, `Referencie' for
355 % \cs{refname}, `Index' for \cs{indexname}, `Obr\'azok' for
356 % \cs{figurename}, `Pr\'ilohy' for \cs{enclname}, `CC' for \cs{ccname},
357 % `Komu' for \cs{headtoname}, `Strana' for \cs{pagename}}
359 \@namedef{captions\CurrentOption}{%
360 \def\prefacename{Predhovor}%
361 \def\refname{Literat\'ura}%
362 \def\abstractname{Abstrakt}%
363 \def\bibname{Literat\'ura}%
364 \def\chaptername{Kapitola}%
365 \def\appendixname{Dodatok}%
366 \def\contentsname{Obsah}%
367 \def\listfigurename{Zoznam obr\'azkov}%
368 \def\listtablename{Zoznam tabuliek}%
369 \def\indexname{Register}%
370 \def\figurename{Obr.}%
371 \def\tablename{Tabu\v{l}ka}%
372 \def\partname{\v{C}as\v{t}}%
373 \def\enclname{Pr\'{\i}loha}%
375 \def\headtoname{Pre}%
377 \def\seename{vi\v{d}}%
378 \def\alsoname{vi\v{d} tie\v{z}}%
379 \def\proofname{D\^okaz}%
380 \def\glossaryname{Slovn\'{\i}k}%
385 % \begin{macro}{\dateslovak}
386 % The macro \cs{dateslovak} redefines the command \cs{today}
387 % to produce Slovak dates.
388 % \changes{slovak-1.2j}{1997/10/01}{Use \cs{edef} to define
389 % \cs{today} to save memory}
390 % \changes{slovak-1.2j}{1998/03/28}{use \cs{def} instead of \cs{edef}}
391 % \changes{slovak-1.2k}{1999/02/28}{Repaired a spelling mistake}
393 \@namedef{date\CurrentOption}{%
394 \def\today{\number\day.~\ifcase\month\or
395 janu\'ara\or febru\'ara\or marca\or apr\'{\i}la\or m\'aja\or
396 j\'una\or j\'ula\or augusta\or septembra\or okt\'obra\or
397 novembra\or decembra\fi
398 \space \number\year}}
402 % \begin{macro}{\extrasslovak}
403 % \begin{macro}{\noextrasslovak}
404 % The macro \cs{extrasslovak} will perform all the extra definitions
405 % needed for the Slovak language. The macro \cs{noextrasslovak} is
406 % used to cancel the actions of \cs{extrasslovak}.
408 % For Slovak texts \cs{frenchspacing} should be in effect. Language
409 % group for shorthands is also set here.
410 % \changes{slovak-3.0}{1995/04/21}{now use \cs{bbl@frenchspacing} and
411 % \cs{bbl@nonfrenchspacing}}
412 % \changes{slovak-3.1}{2006/10/07}{move \cs{languageshorthands} here,
413 % so that the language group is always initialized correctly}
415 \expandafter\addto\csname extras\CurrentOption\endcsname{%
417 \languageshorthands{slovak}}
418 \expandafter\addto\csname noextras\CurrentOption\endcsname{%
419 \bbl@nonfrenchspacing}
422 % \changes{slovak-1.2e}{1995/05/28}{Use \LaTeX's \cs{v} accent
425 \expandafter\addto\csname extras\CurrentOption\endcsname{%
426 \babel@save\q\let\q\v}
429 % For Slovak three characters are used to define shorthands, they
430 % need to be made active.
431 % \changes{slovak-1.3a}{2004/02/20}{Make three characters available
434 \ifx\cs@compat@latex\relax\else
435 \initiate@active@char{^}
436 \addto\extrasslovak{\bbl@activate{^}}
437 \addto\noextrasslovak{\bbl@deactivate{^}}
438 \initiate@active@char{"}
439 \addto\extrasslovak{\bbl@activate{"}\umlautlow}
440 \addto\noextrasslovak{\bbl@deactivate{"}\umlauthigh}
441 \initiate@active@char{'}
442 \@ifpackagewith{babel}{activeacute}{%
443 \addto\extrasslovak{\bbl@activate{'}}
444 \addto\noextrasslovak{\bbl@deactivate{'}}%
453 % We save the original single and double quote characters in
454 % \cs{sq} and \cs{dq} to make them available later. The math
455 % accent |\"| can now be typed as |"|.
457 \begingroup\catcode`\"=12\catcode`\'=12
466 % \changes{slovak-1.2b}{1994/06/04}{Added setting of left- and
469 % The slovak hyphenation patterns should be used with
470 % |\lefthyphenmin| set to~2 and |\righthyphenmin| set to~3.
471 % \changes{slovak-1.2e}{1995/05/28}{Now use \cs{slovakhyphenmins}}
472 % \changes{slovak-1.2l}{2000/09/22}{Now use \cs{providehyphenmins} to
473 % provide a default value}
474 % \changes{slovak-3.0}{2005/12/22}{Changed default \cs{righthyphenmin}
477 \providehyphenmins{\CurrentOption}{\tw@\thr@@}
480 % In order to prevent problems with the active |^| we add a
481 % shorthand on system level which expands to a `normal |^|.
483 \ifx\cs@compat@latex\relax\else
484 \declare@shorthand{system}{^}{\csname normal@char\string^\endcsname}
487 % Now we can define the doublequote macros: the umlauts,
489 \declare@shorthand{slovak}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}
490 \declare@shorthand{slovak}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}}
491 \declare@shorthand{slovak}{"u}{\textormath{\"{u}\allowhyphens}{\ddot u}}
492 \declare@shorthand{slovak}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}}
493 \declare@shorthand{slovak}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}}
494 \declare@shorthand{slovak}{"U}{\textormath{\"{U}\allowhyphens}{\ddot U}}
498 \declare@shorthand{slovak}{"e}{\textormath{\"{e}\allowhyphens}{\ddot e}}
499 \declare@shorthand{slovak}{"E}{\textormath{\"{E}\allowhyphens}{\ddot E}}
500 \declare@shorthand{slovak}{"i}{\textormath{\"{\i}\allowhyphens}%
502 \declare@shorthand{slovak}{"I}{\textormath{\"{I}\allowhyphens}{\ddot I}}
504 % other slovak characters
506 \declare@shorthand{slovak}{^c}{\textormath{\v{c}\allowhyphens}{\check{c}}}
507 \declare@shorthand{slovak}{^d}{\textormath{\q{d}\allowhyphens}{\check{d}}}
508 \declare@shorthand{slovak}{^l}{\textormath{\q{l}\allowhyphens}{\check{l}}}
509 \declare@shorthand{slovak}{^n}{\textormath{\v{n}\allowhyphens}{\check{n}}}
510 \declare@shorthand{slovak}{^o}{\textormath{\^{o}\allowhyphens}{\hat{o}}}
511 \declare@shorthand{slovak}{^s}{\textormath{\v{s}\allowhyphens}{\check{s}}}
512 \declare@shorthand{slovak}{^t}{\textormath{\q{t}\allowhyphens}{\check{t}}}
513 \declare@shorthand{slovak}{^z}{\textormath{\v{z}\allowhyphens}{\check{z}}}
514 \declare@shorthand{slovak}{^C}{\textormath{\v{C}\allowhyphens}{\check{C}}}
515 \declare@shorthand{slovak}{^D}{\textormath{\v{D}\allowhyphens}{\check{D}}}
516 \declare@shorthand{slovak}{^L}{\textormath{\q{L}\allowhyphens}{\check{L}}}
517 \declare@shorthand{slovak}{^N}{\textormath{\v{N}\allowhyphens}{\check{N}}}
518 \declare@shorthand{slovak}{^O}{\textormath{\^{O}\allowhyphens}{\hat{O}}}
519 \declare@shorthand{slovak}{^S}{\textormath{\v{S}\allowhyphens}{\check{S}}}
520 \declare@shorthand{slovak}{^T}{\textormath{\v{T}\allowhyphens}{\check{T}}}
521 \declare@shorthand{slovak}{^Z}{\textormath{\v{Z}\allowhyphens}{\check{Z}}}
525 \@ifpackagewith{babel}{activeacute}{%
526 \declare@shorthand{slovak}{'a}{\textormath{\'a\allowhyphens}{^{\prime}a}}
527 \declare@shorthand{slovak}{'e}{\textormath{\'e\allowhyphens}{^{\prime}e}}
528 \declare@shorthand{slovak}{'i}{\textormath{\'\i{}\allowhyphens}{^{\prime}i}}
529 \declare@shorthand{slovak}{'l}{\textormath{\'l\allowhyphens}{^{\prime}l}}
530 \declare@shorthand{slovak}{'o}{\textormath{\'o\allowhyphens}{^{\prime}o}}
531 \declare@shorthand{slovak}{'r}{\textormath{\'r\allowhyphens}{^{\prime}r}}
532 \declare@shorthand{slovak}{'u}{\textormath{\'u\allowhyphens}{^{\prime}u}}
533 \declare@shorthand{slovak}{'y}{\textormath{\'y\allowhyphens}{^{\prime}y}}
534 \declare@shorthand{slovak}{'A}{\textormath{\'A\allowhyphens}{^{\prime}A}}
535 \declare@shorthand{slovak}{'E}{\textormath{\'E\allowhyphens}{^{\prime}E}}
536 \declare@shorthand{slovak}{'I}{\textormath{\'I\allowhyphens}{^{\prime}I}}
537 \declare@shorthand{slovak}{'L}{\textormath{\'L\allowhyphens}{^{\prime}l}}
538 \declare@shorthand{slovak}{'O}{\textormath{\'O\allowhyphens}{^{\prime}O}}
539 \declare@shorthand{slovak}{'R}{\textormath{\'R\allowhyphens}{^{\prime}R}}
540 \declare@shorthand{slovak}{'U}{\textormath{\'U\allowhyphens}{^{\prime}U}}
541 \declare@shorthand{slovak}{'Y}{\textormath{\'Y\allowhyphens}{^{\prime}Y}}
542 \declare@shorthand{slovak}{''}{%
543 \textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
546 % and some additional commands:
548 \declare@shorthand{slovak}{"-}{\nobreak\-\bbl@allowhyphens}
549 \declare@shorthand{slovak}{"|}{%
550 \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
551 \bbl@allowhyphens}{}}
552 \declare@shorthand{slovak}{""}{\hskip\z@skip}
553 \declare@shorthand{slovak}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
554 \declare@shorthand{slovak}{"=}{\cs@splithyphen}
559 % \LaTeX's normal |\v| accent places a caron over the letter that
560 % follows it (\v{o}). This is not what we want for the letters d,
561 % t, l and L; for those the accent should change shape. This is
562 % acheived by the following.
565 \DeclareTextCompositeCommand{\v}{OT1}{t}{%
566 t\kern-.23em\raise.24ex\hbox{'}}
567 \DeclareTextCompositeCommand{\v}{OT1}{d}{%
568 d\kern-.13em\raise.24ex\hbox{'}}
569 \DeclareTextCompositeCommand{\v}{OT1}{l}{\lcaron{}}
570 \DeclareTextCompositeCommand{\v}{OT1}{L}{\Lcaron{}}}
573 % \begin{macro}{\lcaron}
574 % \begin{macro}{\Lcaron}
575 % For the letters \texttt{l} and \texttt{L} we want to disinguish
576 % between normal fonts and monospaced fonts.
579 \setbox0\hbox{M}\setbox\tw@\hbox{i}%
580 \ifdim\wd0>\wd\tw@\relax
581 l\kern-.13em\raise.24ex\hbox{'}\kern-.11em%
583 l\raise.45ex\hbox to\z@{\kern-.35em '\hss}%
586 \setbox0\hbox{M}\setbox\tw@\hbox{i}%
587 \ifdim\wd0>\wd\tw@\relax
588 L\raise.24ex\hbox to\z@{\kern-.28em'\hss}%
590 L\raise.45ex\hbox to\z@{\kern-.40em '\hss}%
597 % Initialize active quotes. \CS\LaTeX{} provides a way of
598 % converting English-style quotes into Slovak-style ones. Both
599 % single and double quotes are affected, i.e. |``text''| is
600 % converted to something like |,,text``| and |`text'| is converted
601 % to |,text`|. This conversion can be switched on and off with
602 % \cs{csprimeson} and \cs{csprimesoff}.\footnote{By the way, the
603 % names of these macros are misleading, because the handling of
604 % primes in math mode is rather marginal, the most important thing
605 % being the handling of quotes\ldots}
607 % These quotes present various troubles, e.g. the kerning is broken,
608 % apostrophes are converted to closing single quote, some primitives
609 % are broken (most notably the |\catcode`\|\meta{char} syntax will
610 % not work any more), and writing them to \file{.aux} files cannot
611 % be handled correctly. For these reasons, these commands are only
612 % available in \CS\LaTeX{} compatibility mode.
615 \ifx\cs@compat@latex\relax
616 \let\cs@ltxprim@s\prim@s
618 \catcode``\active \catcode`'\active \let\prim@s\bbl@prim@s}
620 \catcode``12 \catcode`'12 \let\prim@s\cs@ltxprim@s}
621 \begingroup\catcode``\active
623 \def`{\futurelet\cs@next\cs@openquote}
625 \ifx`\cs@next \expandafter\cs@opendq
626 \else \expandafter\clq
629 \begingroup\catcode`'\active
631 \def'{\textormath{\futurelet\cs@next\cs@closequote}
634 \ifx'\cs@next \expandafter\cs@closedq
635 \else \expandafter\crq
638 \def\cs@opendq{\clqq\let\cs@next= }
639 \def\cs@closedq{\crqq\let\cs@next= }
642 % The way I recommend for typesetting quotes in Slovak documents
643 % is to use shorthands similar to those used in German.
645 % \changes{3.0}{2006/04/21}{|"`| and |"'| changed from German quotes
649 \declare@shorthand{slovak}{"`}{\clqq}
650 \declare@shorthand{slovak}{"'}{\crqq}
651 \declare@shorthand{slovak}{"<}{\flqq}
652 \declare@shorthand{slovak}{">}{\frqq}
656 % \begin{macro}{\clqq}
657 % This is the CS opening quote, which is similar to the German
658 % quote (\cs{glqq}) but the kerning is different.
660 % For the OT1 encoding, the quote is constructed from the right
661 % double quote (i.e. the ``Opening quotes'' character) by moving
662 % it down to the baseline and shifting it to the right, or to the
663 % left if italic correction is positive.
665 % For T1, the ``German Opening quotes'' is used. It is moved to
666 % the right and the total width is enlarged. This is done in an
667 % attempt to minimize the difference between the OT1 and T1
670 % \changes{3.0}{2006/04/20}{Added \cs{leavevmode} to allow an opening
671 % quote at the beginning of a paragraph}
673 \ProvideTextCommand{\clqq}{OT1}{%
674 \set@low@box{\textquotedblright}%
675 \setbox\@ne=\hbox{l\/}\dimen\@ne=\wd\@ne
676 \setbox\@ne=\hbox{l}\advance\dimen\@ne-\wd\@ne
678 \ifdim\dimen\@ne>\z@\kern-.1em\box\z@\kern.1em
679 \else\kern.1em\box\z@\kern-.1em\fi\allowhyphens}
680 \ProvideTextCommand{\clqq}{T1}
681 {\kern.1em\quotedblbase\kern-.0158em\relax}
682 \ProvideTextCommandDefault{\clqq}{\UseTextSymbol{OT1}\clqq}
686 % \begin{macro}{\crqq}
687 % For OT1, the CS closing quote is basically the same as
688 % \cs{grqq}, only the \cs{textormath} macro is not used, because
689 % as far as I know, \cs{grqq} does not work in math mode anyway.
691 % For T1, the character is slightly wider and shifted to the
692 % right to match its OT1 counterpart.
695 \ProvideTextCommand{\crqq}{OT1}
696 {\save@sf@q{\nobreak\kern-.07em\textquotedblleft\kern.07em}}
697 \ProvideTextCommand{\crqq}{T1}
698 {\save@sf@q{\nobreak\kern.06em\textquotedblleft\kern.024em}}
699 \ProvideTextCommandDefault{\crqq}{\UseTextSymbol{OT1}\crqq}
703 % \begin{macro}{\clq}
704 % \begin{macro}{\crq}
706 % Single CS quotes are similar to double quotes (see the
710 \ProvideTextCommand{\clq}{OT1}
711 {\set@low@box{\textquoteright}\box\z@\kern.04em\allowhyphens}
712 \ProvideTextCommand{\clq}{T1}
713 {\quotesinglbase\kern-.0428em\relax}
714 \ProvideTextCommandDefault{\clq}{\UseTextSymbol{OT1}\clq}
715 \ProvideTextCommand{\crq}{OT1}
716 {\save@sf@q{\nobreak\textquoteleft\kern.17em}}
717 \ProvideTextCommand{\crq}{T1}
718 {\save@sf@q{\nobreak\textquoteleft\kern.17em}}
719 \ProvideTextCommandDefault{\crq}{\UseTextSymbol{OT1}\crq}
725 % There are two versions of \cs{uv}. The older one opens a group
726 % and uses \cs{aftergroup} to typeset the closing quotes. This
727 % version allows using \cs{verb} inside the quotes, because the
728 % enclosed text is not passed as an argument, but unfortunately
729 % it breaks any kerning with the quotes. Although the kerning
730 % with the opening quote could be fixed, the kerning with the
731 % closing quote cannot.
733 % The newer version is defined as a command with one parameter.
734 % It preserves kerning but since the quoted text is passed as an
735 % argument, it cannot contain \cs{verb}.
737 % Decide which version of \cs{uv} should be used. For sake
738 % of compatibility, we use the older version with plain \TeX{}
739 % and the newer version with \LaTeXe.
741 \ifx\cs@compat@plain\@undefined\else\let\cs@olduv=\relax\fi
742 \ifx\cs@olduv\@undefined
743 \DeclareRobustCommand\uv[1]{{\leavevmode\clqq#1\crqq}}
745 \DeclareRobustCommand\uv{\bgroup\aftergroup\closequotes
746 \leavevmode\clqq\let\cs@next=}
747 \def\closequotes{\unskip\crqq\relax}
752 % \begin{macro}{\cs@wordlen}
753 % Declare a counter to hold the length of the word after the
761 % \begin{macro}{\cs@hyphen}
762 % \begin{macro}{\cs@endash}
763 % \begin{macro}{\cs@emdash}
764 % Store the original hyphen in a macro. Ditto for the ligatures.
766 % \changes{slovak-3.1}{2006/10/07}{ensure correct catcode for the
769 \begingroup\catcode`\-12
779 % \begin{macro}{\cs@boxhyphen}
780 % Provide a non-breakable hyphen to be used when a compound word
781 % is too short to be split, i.e. the second part is shorter than
782 % \cs{righthyphenmin}.
785 \def\cs@boxhyphen{\hbox{-}}
789 % \begin{macro}{\cs@splithyphen}
790 % The macro \cs{cs@splithyphen} inserts a split hyphen, while
791 % allowing both parts of the compound word to be hyphenated at
795 \def\cs@splithyphen{\kern\z@
796 \discretionary{-}{\char\hyphenchar\the\font}{-}\nobreak\hskip\z@}
802 % To minimize the effects of activating the hyphen character,
803 % the active definition expands to the non-active character
804 % in all cases where hyphenation cannot occur, i.e. if not
805 % typesetting (check \cs{protect}), not in horizontal mode,
806 % or in inner horizontal mode.
809 \initiate@active@char{-}
810 \declare@shorthand{slovak}{-}{%
811 \ifx\protect\@typeset@protect
814 \bbl@afterelse\bbl@afterelse\bbl@afterelse\cs@hyphen
816 \bbl@afterfi\bbl@afterelse\bbl@afterelse\cs@firsthyphen
819 \bbl@afterfi\bbl@afterelse\cs@hyphen
822 \bbl@afterfi\cs@hyphen
827 % \begin{macro}{\cs@firsthyphen}
828 % \begin{macro}{\cs@firsthyph@n}
829 % \begin{macro}{\cs@secondhyphen}
830 % \begin{macro}{\cs@secondhyph@n}
831 % If we encounter a hyphen, check whether it is followed
832 % by a second or a third hyphen and if so, insert the
833 % corresponding ligature.
835 % If we don't find a hyphen, the token found will be placed
836 % in \cs{cs@token} for further analysis, and it will also stay
840 \begingroup\catcode`\-\active
842 \def\cs@firsthyphen{\futurelet\cs@token\cs@firsthyph@n}
843 \def\cs@firsthyph@n{%
845 \bbl@afterelse\cs@secondhyphen
847 \bbl@afterfi\cs@checkhyphen
849 \def\cs@secondhyphen ##1{%
850 \futurelet\cs@token\cs@secondhyph@n}
851 \def\cs@secondhyph@n{%
853 \bbl@afterelse\cs@emdash\@gobble
855 \bbl@afterfi\cs@endash
864 % \begin{macro}{\cs@checkhyphen}
865 % Check that hyphenation is enabled, and if so, start analyzing
866 % the rest of the word, i.e. initialize \cs{cs@word} and \cs{cs@wordlen}
867 % and start processing input with \cs{cs@scanword}.
870 \def\cs@checkhyphen{%
871 \ifnum\expandafter\hyphenchar\the\font=`\-
872 \def\cs@word{}\cs@wordlen\z@
873 \bbl@afterelse\cs@scanword
880 % \begin{macro}{\cs@scanword}
881 % \begin{macro}{\cs@continuescan}
882 % \begin{macro}{\cs@gettoken}
883 % \begin{macro}{\cs@gett@ken}
884 % Each token is first analyzed with \cs{cs@scanword}, which expands
885 % the token and passes the first token of the result to
886 % \cs{cs@gett@ken}. If the expanded token is not identical to the
887 % unexpanded one, presume that it might be expanded further and
888 % pass it back to \cs{cs@scanword} until you get an unexpandable
889 % token. Then analyze it in \cs{cs@examinetoken}.
891 % The \cs{cs@continuescan} macro does the same thing as
892 % \cs{cs@scanword}, but it does not require the first token to be
893 % in \cs{cs@token} already.
896 \def\cs@scanword{\let\cs@lasttoken= \cs@token\expandafter\cs@gettoken}
897 \def\cs@continuescan{\let\cs@lasttoken\@undefined\expandafter\cs@gettoken}
898 \def\cs@gettoken{\futurelet\cs@token\cs@gett@ken}
900 \ifx\cs@token\cs@lasttoken \def\cs@next{\cs@examinetoken}%
901 \else \def\cs@next{\cs@scanword}%
909 % \begin{macro}{cs@examinetoken}
910 % Examine the token in \cs{cs@token}:
914 % If it is a letter (catcode 11) or other (catcode 12), add it
915 % to \cs{cs@word} with \cs{cs@addparam}.
918 % If it is the \cs{char} primitive, add it with \cs{cs@expandchar}.
921 % If the token starts or ends a group, ignore it with
922 % \cs{cs@ignoretoken}.
925 % Otherwise analyze the meaning of the token with
926 % \cs{cs@checkchardef} to detect primitives defined with
932 \def\cs@examinetoken{%
934 \def\cs@next{\cs@addparam}%
935 \else\ifcat 0\cs@token
936 \def\cs@next{\cs@addparam}%
937 \else\ifx\char\cs@token
938 \def\cs@next{\afterassignment\cs@expandchar\let\cs@token= }%
939 \else\ifx\bgroup\cs@token
940 \def\cs@next{\cs@ignoretoken\bgroup}%
941 \else\ifx\egroup\cs@token
942 \def\cs@next{\cs@ignoretoken\egroup}%
943 \else\ifx\begingroup\cs@token
944 \def\cs@next{\cs@ignoretoken\begingroup}%
945 \else\ifx\endgroup\cs@token
946 \def\cs@next{\cs@ignoretoken\endgroup}%
948 \def\cs@next{\expandafter\expandafter\expandafter\cs@checkchardef
949 \expandafter\meaning\expandafter\cs@token\string\char\end}%
950 \fi\fi\fi\fi\fi\fi\fi\cs@next}
954 % \begin{macro}{\cs@checkchardef}
955 % Check the meaning of a token and if it is a primitive defined
956 % with \cs{chardef}, pass it to \cs{\cs@examinechar} as if it were
957 % a \cs{char} sequence. Otherwise, there are no more word characters,
958 % so do the final actions in \cs{cs@nosplit}.
961 \expandafter\def\expandafter\cs@checkchardef
962 \expandafter#\expandafter1\string\char#2\end{%
965 \def\cs@next{\afterassignment\cs@examinechar\let\cs@token= }%
967 \def\cs@next{\cs@nosplit}%
972 % \begin{macro}{\cs@ignoretoken}
973 % Add a token to \cs{cs@word} but do not update the \cs{cs@wordlen}
974 % counter. This is mainly useful for group starting and ending
975 % primitives, which need to be preserved, but do not affect the word
979 \def\cs@ignoretoken#1{%
980 \edef\cs@word{\cs@word#1}%
981 \afterassignment\cs@continuescan\let\cs@token= }
985 % \begin{macro}{cs@addparam}
986 % Add a token to \cs{cs@word} and check its lccode. Note that
987 % this macro can only be used for tokens which can be passed as
992 \edef\cs@word{\cs@word#1}%
993 \cs@checkcode{\lccode`#1}}
997 % \begin{macro}{\cs@expandchar}
998 % \begin{macro}{\cs@examinechar}
999 % Add a \cs{char} sequence to \cs{cs@word} and check its lccode.
1000 % The charcode is first parsed in \cs{cs@expandchar} and then the
1001 % resulting \cs{chardef}-defined sequence is analyzed in
1002 % \cs{cs@examinechar}.
1005 \def\cs@expandchar{\afterassignment\cs@examinechar\chardef\cs@token=}
1006 \def\cs@examinechar{%
1007 \edef\cs@word{\cs@word\char\the\cs@token\space}%
1008 \cs@checkcode{\lccode\cs@token}}
1013 % \begin{macro}{\cs@checkcode}
1014 % Check the lccode of a character. If it is zero, it does not count
1015 % to the current word, so finish it with \cs{cs@nosplit}. Otherwise
1016 % update the \cs{cs@wordlen} counter and go on scanning the word
1017 % with \cs{cs@continuescan}. When enough characters are gathered in
1018 % \cs{cs@word} to allow word break, insert the split hyphen and
1022 \def\cs@checkcode#1{%
1024 \def\cs@next{\cs@nosplit}%
1026 \advance\cs@wordlen\@ne
1027 \ifnum\righthyphenmin>\the\cs@wordlen
1028 \def\cs@next{\cs@continuescan}%
1031 \def\cs@next{\cs@word}%
1037 % \begin{macro}{\cs@nosplit}
1038 % Insert a non-breakable hyphen followed by the saved word.
1041 \def\cs@nosplit{\cs@boxhyphen\cs@word}
1045 % \begin{macro}{\cs@hyphen}
1046 % The \cs{minus} sequence can be used where the active hyphen
1047 % does not work, e.g. in arguments to \TeX{} primitives in outer
1051 \let\minus\cs@hyphen
1055 % \begin{macro}{\standardhyphens}
1056 % \begin{macro}{\splithyphens}
1057 % These macros control whether split hyphens are allowed in Czech
1058 % and/or Slovak texts. You may use them in any language, but the
1059 % split hyphen is only activated for Czech and Slovak.
1061 % \changes{slovak-3.1}{2006/10/07}{activate with split hyphens and
1062 % deactivate with standard hyphens, not vice versa}
1064 \def\standardhyphens{\cs@splithyphensfalse\cs@deactivatehyphens}
1065 \def\splithyphens{\cs@splithyphenstrue\cs@activatehyphens}
1070 % \begin{macro}{\cs@splitattr}
1071 % Now we declare the |split| language attribute. This is
1072 % similar to the |split| package option of cslatex, but it
1073 % only affects Slovak, not Czech.
1075 % \changes{slovak-3.1}{2006/10/07}{attribute added}
1077 \def\cs@splitattr{\babel@save\ifcs@splithyphens\splithyphens}
1078 \bbl@declare@ttribute{slovak}{split}{%
1079 \addto\extrasslovak{\cs@splitattr}}
1083 % \begin{macro}{\cs@activatehyphens}
1084 % \begin{macro}{\cs@deactivatehyphens}
1085 % These macros are defined as \cs{relax} by default to prevent
1086 % activating/deactivating the hyphen character. They are redefined
1087 % when the language is switched to Czech/Slovak. At that moment
1088 % the hyphen is also activated if split hyphens were requested with
1089 % \cs{splithyphens}.
1091 % When the language is de-activated, de-activate the hyphen and
1092 % restore the bogus definitions of these macros.
1095 \let\cs@activatehyphens\relax
1096 \let\cs@deactivatehyphens\relax
1097 \expandafter\addto\csname extras\CurrentOption\endcsname{%
1098 \def\cs@activatehyphens{\bbl@activate{-}}%
1099 \def\cs@deactivatehyphens{\bbl@deactivate{-}}%
1100 \ifcs@splithyphens\cs@activatehyphens\fi}
1101 \expandafter\addto\csname noextras\CurrentOption\endcsname{%
1102 \cs@deactivatehyphens
1103 \let\cs@activatehyphens\relax
1104 \let\cs@deactivatehyphens\relax}
1109 % \begin{macro}{\cs@looseness}
1110 % \begin{macro}{\looseness}
1111 % One of the most common situations where an active hyphen will not
1112 % work properly is the \cs{looseness} primitive. Change its definition
1113 % so that it deactivates the hyphen if needed.
1116 \let\cs@looseness\looseness
1119 \cs@deactivatehyphens\afterassignment\cs@activatehyphens \fi
1125 % \begin{macro}{\cs@selectlanguage}
1126 % \begin{macro}{\cs@main@language}
1127 % Specifying the |nocaptions| option means that captions and dates
1128 % are not redefined by default, but they can be switched on later
1129 % with \cs{captionsslovak} and/or \cs{dateslovak}.
1131 % We mimic this behavior by redefining \cs{selectlanguage}. This
1132 % macro is called once at the beginning of the document to set the
1133 % main language of the document. If this is \cs{cs@main@language},
1134 % it disables the macros for setting captions and date. In any
1135 % case, it restores the original definition of \cs{selectlanguage}
1138 % The definition of \cs{selectlanguage} can be shared between Czech
1139 % and Slovak; the actual language is stored in \cs{cs@main@language}.
1142 \ifx\cs@nocaptions\@undefined\else
1143 \edef\cs@main@language{\CurrentOption}
1144 \ifx\cs@origselect\@undefined
1145 \let\cs@origselect=\selectlanguage
1146 \def\selectlanguage{%
1147 \let\selectlanguage\cs@origselect
1148 \ifx\bbl@main@language\cs@main@language
1149 \expandafter\cs@selectlanguage
1151 \expandafter\selectlanguage
1153 \def\cs@selectlanguage{%
1154 \cs@tempdisable{captions}%
1155 \cs@tempdisable{date}%
1159 % \begin{macro}{\cs@tempdisable}
1160 % \cs{cs@tempdisable} disables a language setup macro temporarily,
1161 % i.e. the macro with the name of \meta{\#1}|\bbl@main@language|
1162 % just restores the original definition and purges the saved macro
1166 \def\cs@tempdisable#1{%
1168 \def\@tempb{#1\bbl@main@language}%
1169 \expandafter\expandafter\expandafter\let
1170 \expandafter \csname\expandafter \@tempa \expandafter\endcsname
1171 \csname \@tempb \endcsname
1172 \expandafter\edef\csname \@tempb \endcsname{%
1173 \let \expandafter\noexpand \csname \@tempb \endcsname
1174 \expandafter\noexpand \csname \@tempa \endcsname
1175 \let \expandafter\noexpand\csname \@tempa \endcsname
1176 \noexpand\@undefined}}
1180 % These macros are not needed, once the initialization is over.
1183 \@onlypreamble\cs@main@language
1184 \@onlypreamble\cs@origselect
1185 \@onlypreamble\cs@selectlanguage
1186 \@onlypreamble\cs@tempdisable
1193 % The encoding of mathematical fonts should be changed to IL2. This
1194 % allows to use accented letter in some font families. Besides,
1195 % documents do not use CM fonts if there are equivalents in CS-fonts,
1196 % so there is no need to have both bitmaps of CM-font and CS-font.
1198 % \cs{@font@warning} and \cs{@font@info} are temporarily redefined
1199 % to avoid annoying font warnings.
1202 \ifx\cs@compat@plain\@undefined
1203 \ifx\cs@check@enc\@undefined\else
1205 \ifx\encodingdefault\cs@iltw@
1206 \let\cs@warn\@font@warning \let\@font@warning\@gobble
1207 \let\cs@info\@font@info \let\@font@info\@gobble
1208 \SetSymbolFont{operators}{normal}{\cs@iltw@}{cmr}{m}{n}
1209 \SetSymbolFont{operators}{bold}{\cs@iltw@}{cmr}{bx}{n}
1210 \SetMathAlphabet\mathbf{normal}{\cs@iltw@}{cmr}{bx}{n}
1211 \SetMathAlphabet\mathit{normal}{\cs@iltw@}{cmr}{m}{it}
1212 \SetMathAlphabet\mathrm{normal}{\cs@iltw@}{cmr}{m}{n}
1213 \SetMathAlphabet\mathsf{normal}{\cs@iltw@}{cmss}{m}{n}
1214 \SetMathAlphabet\mathtt{normal}{\cs@iltw@}{cmtt}{m}{n}
1215 \SetMathAlphabet\mathbf{bold}{\cs@iltw@}{cmr}{bx}{n}
1216 \SetMathAlphabet\mathit{bold}{\cs@iltw@}{cmr}{bx}{it}
1217 \SetMathAlphabet\mathrm{bold}{\cs@iltw@}{cmr}{bx}{n}
1218 \SetMathAlphabet\mathsf{bold}{\cs@iltw@}{cmss}{bx}{n}
1219 \SetMathAlphabet\mathtt{bold}{\cs@iltw@}{cmtt}{m}{n}
1220 \let\@font@warning\cs@warn \let\cs@warn\@undefined
1221 \let\@font@info\cs@info \let\cs@info\@undefined
1223 \let\cs@check@enc\@undefined}
1224 \AtBeginDocument{\cs@check@enc}
1229 % \begin{macro}{cs@undoiltw@}
1231 % The thing is that \LaTeXe{} core only supports the T1 encoding
1232 % and does not bother changing the uc/lc/sfcodes when encoding
1233 % is switched. :( However, the IL2 encoding \emph{does} change
1234 % these codes, so if encoding is switched back from IL2, we must
1235 % also undo the effect of this change to be compatible with
1236 % \LaTeXe. OK, this is not the right\textsuperscript{TM} solution
1237 % but it works. Cheers to Petr Ol\v s\'ak.
1241 \uccode158=208 \lccode158=158 \sfcode158=1000
1243 \uccode165=133 \lccode165=165 \sfcode165=1000
1244 \uccode169=137 \lccode169=169 \sfcode169=1000
1245 \uccode171=139 \lccode171=171 \sfcode171=1000
1246 \uccode174=142 \lccode174=174 \sfcode174=1000
1250 \uccode190=0 \lccode190=0
1251 \uccode254=222 \lccode254=254 \sfcode254=1000
1252 \uccode255=223 \lccode255=255 \sfcode255=1000}
1256 % \begin{macro}{@@enc@update}
1258 % Redefine the \LaTeXe{} internal function \cs{@@enc@update} to
1259 % change the encodings correctly.
1262 \ifx\cs@enc@update\@undefined
1263 \ifx\@@enc@update\@undefined\else
1264 \let\cs@enc@update\@@enc@update
1265 \def\@@enc@update{\ifx\cf@encoding\cs@iltw@\cs@undoiltw@\fi
1267 \expandafter\ifnum\csname l@\languagename\endcsname=\the\language
1269 \csname l@\languagename:\f@encoding\endcsname\relax
1271 \expandafter\expandafter\expandafter\let
1273 \expandafter l\expandafter @\expandafter\languagename
1274 \expandafter\endcsname\csname l@\languagename:\f@encoding\endcsname
1276 \language=\csname l@\languagename\endcsname\relax
1282 % The macro |\ldf@finish| takes care of looking for a
1283 % configuration file, setting the main language to be switched on
1284 % at |\begin{document}| and resetting the category code of
1285 % \texttt{@} to its original value.
1286 % \changes{slovak-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap up}
1288 \ldf@finish\CurrentOption
1295 %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
1296 %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
1297 %% Digits \0\1\2\3\4\5\6\7\8\9
1298 %% Exclamation \! Double quote \" Hash (number) \#
1299 %% Dollar \$ Percent \% Ampersand \&
1300 %% Acute accent \' Left paren \( Right paren \)
1301 %% Asterisk \* Plus \+ Comma \,
1302 %% Minus \- Point \. Solidus \/
1303 %% Colon \: Semicolon \; Less than \<
1304 %% Equals \= Greater than \> Question mark \?
1305 %% Commercial at \@ Left bracket \[ Backslash \\
1306 %% Right bracket \] Circumflex \^ Underscore \_
1307 %% Grave accent \` Left brace \{ Vertical bar \|
1308 %% Right brace \} Tilde \~}