% \iffalse meta-comment % % Copyright (C) 1989-1994 by Johannes Braams % All rights reserved. % For additional copyright information see further down in this file. % % This file is part of the Babel system, release 3.4 patchlevel 1 % --------------------------------------------------------------- % % This file is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % % % IMPORTANT NOTICE: % % For error reports in case of UNCHANGED versions see readme file. % % Please do not request updates from me directly. Distribution is % done through Mail-Servers and TeX organizations. % % You are not allowed to change this file. % % You are allowed to distribute this file under the condition that % it is distributed together with all files mentioned in manifest.txt. % % If you receive only some of these files from someone, complain! % % You are NOT ALLOWED to distribute this file alone. You are NOT % ALLOWED to take money for the distribution or use of either this % file or a changed version, except for a nominal charge for copying % etc. % \fi % \CheckSum{748} %%% \iffalse =========================================================== %%% @LaTeX-style-file{ %%% author_1 = "Elmar Schalueck", %%% author_2 = "Michael Janich", %%% author_3 = "Johannes L. Braams", %%% version = "1.1c", %%% date = "26 June 1994", %%% time = "01:59:23 MET", %%% filename = "polish.doc", %%% address_1/2 = "Universitaet-Gesamthochschule Paderborn %%% Warburger Strasse 100 %%% 4790 Paderborn %%% Germany", %%% address_3 = "PTT Research %%% St. Paulusstraat 4 %%% 2264 XZ Leidschendam %%% The Netherlands", %%% telephone = "(70) 3325051", %%% FAX = "(70) 3326477", %%% checksum = "63394 715 2911 25329", %%% email_1 = "elmar@uni-paderborn.de", %%% email_2 = "massa@uni-paderborn.de", %%% email_3 = "J.L.Braams@research.ptt.nl (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "", %%% supported = "yes", %%% abstract = "", %%% docstring = "This file contains the polish language specific %%% definitions for the babel system. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% %%% ==================================================================== %%% \fi % \def\filename{polish.dtx} % \def\fileversion{v1.1c} % \def\filedate{1994/06/26} % % \changes{polish-1.1c}{1994/06/26}{Removed the use of \cs{filedate} % and moved identification after the loading of babel.def} % \iffalse % Babel DOCUMENT-STYLE option for LaTeX version 2e % Copyright (C) 1989 -- 1994 % by Johannes Braams, PTT Research Neher Laboratories % % Please report errors to: J.L. Braams % J.L.Braams@research.ptt.nl % % This file is part of the babel system, it provides the source % code for the Polish language-specific file. It was developped out % of Polish.tex, which was written by Elmar Schalueck and Michael % Janich. Polish.tex was based on code by Leszek Holenderski, Jerzy % Ryll and J. S. Bie\'n from Faculty of Mathematics,Informatics and % Mechanics of Warsaw University, exept of Jerzy Ryll % (Instytut Informatyki Uniwersytetu Warszawskiego). %<*filedriver> \documentclass{ltxdoc} \newcommand\TeXhax{\TeX hax} \newcommand\babel{{\sf babel}} \newcommand\ttbs{\char'134} \newcommand\langvar{$\langle \it lang \rangle$} \newcommand\note[1]{} \newcommand\bsl{\protect\bslash} \newcommand\Lopt[1]{{\sf #1}} \newcommand\file[1]{{\tt #1}} \begin{document} \DocInput{polish.dtx} \end{document} % %\fi % % \section{The Polish language} % % The file \file{\filename}\footnote{The file described in this % section has version number \fileversion\ and was last revised on % \filedate.} defines all the language-specific macros for the % Polish language. % % For this language the character |"| is made active. In % table~\ref{tab:polish-quote} an overview is given of its purpose. % \begin{table}[htb] % \begin{center} % \begin{tabular}{lp{8cm}} % |"a| & or |\aob|, for tailed-a (like \c{a})\\ % |"A| & or |\Aob|, for tailed-A (like \c{A})\\ % |"e| & or |\eob|, for tailed-e (like \c{e})\\ % |"E| & or |\Eob|, for tailed-E (like \c{E})\\ % |"c| & or |\'c|, for accented c (like \'c), % same with uppercase letters and n,o,s\\ % |"l| & or |\lpb{}|, for l with stroke (like \l)\\ % |"L| & or |\Lpb{}|, for L with stroke (like \L)\\ % |"r| & or |\zkb{}|, for pointed z (like \.z), cf. % pronounciation\\ % |"R| & or |\Zkb{}|, for pointed Z (like \.Z)\\ % |"z| & or |\'z|, for accented z\\ % |"Z| & or |\'Z|, for accented Z\\ % \verb="|= & disable ligature at this position.\\ % |"-| & an explicit hyphen sign, allowing hyphenation % in the rest of the word.\\ % |""| & like |"-|, but producing no hyphen sign % (for compund words with hyphen, e.g.\ |x-""y|). \\ % |"`| & for German left double quotes (looks like ,,). \\ % |"'| & for German right double quotes. \\ % |"<| & for French left double quotes (similar to $<<$). \\ % |">| & for French right double quotes (similar to $>>$).\\ % \end{tabular} % \caption{The extra definitions made by \file{polish.sty}} % \label{tab:polish-quote} % \end{center} % \end{table} % % \StopEventually{} % % As this file needs to be read only once, we check whether it was % read before. If it was, the command |\captionspolish| is already % defined, so we can stop processing. If this command is undefined % we proceed with the various definitions and first show the % current version of this file. % % \begin{macrocode} \ifx\undefined\captionspolish \else \selectlanguage{polish} \expandafter\endinput \fi % \end{macrocode} % % \begin{macro}{\atcatcode} % This file, \file{polish.sty}, may have been read while \TeX\ is % in the middle of processing a document, so we have to make sure % the category code of {\tt @} is `letter' while this file is being % read. We save the category code of the @-sign in |\atcatcode| % and make it `letter'. Later the category code can be restored to % whatever it was before. % \begin{macrocode} \chardef\atcatcode=\catcode`\@ \catcode`\@=11\relax % \end{macrocode} % \end{macro} % % Now we determine whether the the common macros from the file % \file{babel.def} need to be read. We can be in one of two % situations: either another language option has been read earlier % on, in which case that other option has already read % \file{babel.def}, or {\tt polish} is the first language option to % be processed. In that case we need to read \file{babel.def} right % here before we continue. % % \begin{macrocode} \ifx\undefined\babel@core@loaded\input babel.def\relax\fi % \end{macrocode} % % Tell the \LaTeX\ system who we are and write an entry on the % transcript. % \begin{macrocode} \ProvidesFile{polish.sty}[1994/06/26 v1.1c Polish support from the babel system] % \end{macrocode} % % Another check that has to be made, is if another language % specific file has been read already. In that case its definitions % have been activated. This might interfere with definitions this % file tries to make. Therefore we make sure that we cancel any % special definitions. This can be done by checking the existence % of the macro |\originalTeX|. If it exists we simply execute it. % \begin{macrocode} \ifx\undefined\originalTeX \let\originalTeX\empty \fi \originalTeX % \end{macrocode} % % When this file is read as an option, i.e. by the |\usepackage| % command, {\tt polish} could be an `unknown' language in which % case we have to make it known. So we check for the existence of % |\l@polish| to see whether we have to do something here. % % \changes{polish-1.1c}{1994/06/26}{Now use \cs{@nopatterns} to % produce the warning} % \begin{macrocode} \ifx\undefined\l@polish \@nopatterns{Polish} \adddialect\l@polish0\fi % \end{macrocode} % % The next step consists of defining commands to switch to (and % from) the Polish language. % % \begin{macro}{\captionspolish} % The macro |\captionspolish| defines all strings used in the four % standard documentclasses provided with \LaTeX. % \begin{macrocode} \addto\captionspolish{% \def\prefacename{Przedmowa}% \def\refname{Bibliografia}% \def\abstractname{Streszczenie}% \def\bibname{Literatura}% \def\chaptername{Rozdzia\l}% \def\appendixname{Dodatek}% \def\contentsname{Spis rzeczy}% \def\listfigurename{Spis rysunk\'ow}% \def\listtablename{Spis tablic}% \def\indexname{Indeks}% \def\figurename{Rysunek}% \def\tablename{Tablica}% \def\partname{Cz\eob{}\'s\'c}% \def\enclname{Za\l\aob{}cznik}% \def\ccname{Kopie:}% \def\headtoname{Do}% \def\pagename{Strona}% \def\seename{Por\'ownaj}% \def\alsoname{Por\'ownaj tak\.ze}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\datepolish} % The macro |\datepolish| redefines the command |\today| to produce % Polish dates. % \begin{macrocode} \def\datepolish{% \def\today{\number\day~\ifcase\month\or stycznia\or lutego\or marca\or kwietnia\or maja\or czerwca\or lipca\or sierpnia\or wrze\'snia\or pa\'zdziernika\or listopada\or grudnia\fi \space\number\year} } % \end{macrocode} % \end{macro} % % \begin{macro}{\extraspolish} % \begin{macro}{\noextraspolish} % The macro |\extraspolish| will perform all the extra definitions % needed for the Polish language. The macro |\noextraspolish| is % used to cancel the actions of |\extraspolish|. % % Because for the Polish {\tt "} character is made active, the % \LaTeX\ macros |\dospecials| and |\@sanitize| have to be % redefined to include this character as well. % % \begin{macrocode} \addto\extraspolish{\babel@add@special\"} % \end{macrocode} % Similarly, |\noextraspolish| should restore them to their % original definition. % \begin{macrocode} \addto\noextraspolish{\babel@remove@special\"} % \end{macrocode} % % The {\tt "} character is made active by |\extraspolish|. The % restore operation for the category change is appended to % |\originalTeX|. Additionally we redefine |\active@dq|, after we % have saved the original meaning. If written with |\protect| set % accordingly, the active doublequote is written as this % macro. (All languages with the doublequote active should write it % using the same control sequence name.) % \begin{macrocode} \addto\extraspolish{\babel@savevariable{\catcode`\"}\babel@save\active@dq \catcode`\"\active \let\active@dq\polish@active@dq} % \end{macrocode} % The simple definition |\def"{\protect\active@dq}| is not usable, % because the |\protect| occurs at the toplevel. If \TeX\ tries to % scan a number in hexadecimal notation (i.\,e., using a % doublequote), the |\protect| with meaning |\relax| prevents the % correct scanning of the number. % \begin{macrocode} \begingroup \catcode`\"=\active \def\x{\endgroup \addto\extraspolish{\babel@save"\let"\polish@@active@dq}} \x % \end{macrocode} % \end{macro} % \end{macro} % % The code above is necessary because we need an extra % active character. This character is then used as indicated in % table~\ref{tab:polish-quote}. % % If you have problems at the end of a word with a linebreak, use % the other version without hyphenation tricks. Some TeX wizard may % produce a better solution with forcasting another token to decide % whether the character after the double quote is the last in a % word. Do it and let us know. % % \begin{macro}{\glqq} % \begin{macro}{\grqq} % % In Polish texts the German double quotes are sometimes used, % therefore the following code is copied from \file{germanb.sty}. % % \begin{macrocode} \def\glqq{\protect\@glqq} \def\@glqq{\save@sf@q{\set@low@box{''}\box\z@\kern-.04em\allowhyphens}} \def\grqq{\protect\@grqq} \def\@grqq{\save@sf@q{\kern-.07em``\kern.07em}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\glq} % \begin{macro}{\grq} % Also the single quote versions of the above are used. % \begin{macrocode} \def\glq{\protect\@glq} \def\@glq{\save@sf@q{\set@low@box{'}\box\z@\kern-.04em\allowhyphens}} % \end{macrocode} % \begin{macrocode} \def\grq{\protect\@grq} \def\@grq{\save@sf@q{\kern-.07em`\kern.07em}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\flqq} % \begin{macro}{\frqq} % Another form of quotes used in Poland are the ``guillemets'' or % french quotes. The double guillemets are implemented using the % mathematics symbol~`$\ll$'. The disadvantage is that it doesn't % work properly with all font sizes and styles. A better solution % is still needed. % \begin{macrocode} \def\flqq{\protect\@flqq} \def\@flqq{\relax \ifmmode \ll \else \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle \ll $}}\fi} % \end{macrocode} % \begin{macrocode} \def\frqq{\protect\@frqq} \def\@frqq{\relax \ifmmode \gg \else \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle \gg $}}\fi} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\flq} % \begin{macro}{\frq} % Also single ``guillemets'' are provided. % \begin{macrocode} \def\flq{\protect\@flq} \def\@flq{\relax \ifmmode <\else \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle <$}}\fi} % \end{macrocode} % \begin{macrocode} \def\frq{\protect\@frq} \def\@frq{\relax \ifmmode >\else \save@sf@q{\raise .2ex\hbox{$\scriptscriptstyle >$}}\fi} % \end{macrocode} % \end{macro} % \end{macro} % % In Polish texts some letters get special diacritical marks. % Leszek Holenderski designed the following code to position the % diacritics correctly for every font in every size. These macros % need a few extra dimension variables. % % \begin{macrocode} \newdimen\pl@left \newdimen\pl@down \newdimen\pl@right \newdimen\pl@temp % \end{macrocode} % % \begin{macro}{\sob} % The macro |\sob| is used to put the `ogonek' in the right % place. % % \begin{macrocode} \def\sob#1#2#3#4#5{%parameters: letter and fractions hl,ho,vl,vo \setbox0\hbox{#1}\setbox1\hbox{$_\mathchar'454$}\setbox2\hbox{p}% \pl@right=#2\wd0 \advance\pl@right by-#3\wd1 \pl@down=#5\ht1 \advance\pl@down by-#4\ht0 \pl@left=\pl@right \advance\pl@left by\wd1 \pl@temp=-\pl@down \advance\pl@temp by\dp2 \dp1=\pl@temp \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1} % \end{macrocode} % \end{macro} % % \begin{macro}{\aob} % \begin{macro}{\Aob} % \begin{macro}{\eob} % \begin{macro}{\Eob} % The ogonek is placed with the letters `a', `A', `e', and `E'. % \begin{macrocode} \def\aob{\sob a{.66}{.20}{0}{.90}} \def\Aob{\sob A{.80}{.50}{0}{.90}} \def\eob{\sob e{.50}{.35}{0}{.93}} \def\Eob{\sob E{.60}{.35}{0}{.90}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\spb} % The macro |\spb| is used to put the `poprzeczka' in the % right place. % % \begin{macrocode} \def\spb#1#2#3#4#5{% \setbox0\hbox{#1}\setbox1\hbox{\char'023}% \pl@right=#2\wd0 \advance\pl@right by-#3\wd1 \pl@down=#5\ht1 \advance\pl@down by-#4\ht0 \pl@left=\pl@right \advance\pl@left by\wd1 \ht1=\pl@down \dp1=-\pl@down \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1} % \end{macrocode} % \end{macro} % % \begin{macro}{\skb} % The macro |\spb| is used to put the `kropka' in the % right place. % % \begin{macrocode} \def\skb#1#2#3#4#5{% \setbox0\hbox{#1}\setbox1\hbox{\char'056}% \pl@right=#2\wd0 \advance\pl@right by-#3\wd1 \pl@down=#5\ht1 \advance\pl@down by-#4\ht0 \pl@left=\pl@right \advance\pl@left by\wd1 \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1} % \end{macrocode} % \end{macro} % % \begin{macro}{\textpl} % For the `poprzeczka' and the `kropka' in text fonts we don't need % any special coding, but we can (almost) use what is already % available. % % \begin{macrocode} \def\textpl{% \def\lpb{\plll}% \def\Lpb{\pLLL}% \def\zkb{\.z}% \def\Zkb{\.Z}} % \end{macrocode} % Initially we assume that typesetting is done with text fonts. % \changes{polish-1.0.2}{5 nov 1993}{Initially execute `textpl} % \begin{macrocode} \textpl % \end{macrocode} % % \begin{macrocode} \let\lll=\l \let\LLL=\L \def\plll{\lll} \def\pLLL{\LLL} % \end{macrocode} % \end{macro} % % \begin{macro}{\telepl} % But for the `teletype' font we have to take some special actions, % involving the macros defined above. % % \begin{macrocode} \def\telepl{% \def\lpb{\spb l{.45}{.5}{.4}{.8}}% \def\Lpb{\spb L{.23}{.5}{.4}{.8}}% \def\zkb{\skb z{.5}{.5}{1.2}{0}}% \def\Zkb{\skb Z{.5}{.5}{1.1}{0}}} % \end{macrocode} % \end{macro} % % To activate these codes the font changing commands as they are % defined in \LaTeX\ are modified. The same is done for plain % \TeX's font changing commands. % % \begin{macrocode} \ifx\prm\undefined \let\@rm=\rm \def\rm{\@rm\textpl} \else \def\rm{\protect\pprm}\def\pprm{\prm\textpl} \fi \ifx\pit\undefined \let\@it\it \def\it{\@it\textpl} \else \def\it{\protect\ppit}\def\ppit{\pit\textpl} \fi \ifx\pbf\undefined \let\@bf\bf \def\bf{\@bf\textpl} \else \def\bf{\protect\ppbf}\def\ppbf{\pbf\textpl} \fi \ifx\psl\undefined \let\@sl\sl \def\sl{\@sl\textpl} \else \def\sl{\protect\ppsl}\gdef\ppsl{\psl\textpl} \fi \ifx\psf\undefined \else \def\sf{\protect\ppsf}\def\ppsf{\psf\textpl} \fi \ifx\psc\undefined \else \def\sc{\protect\ppsc}\gdef\ppsc{\psc\textpl} \fi \ifx\ptt\undefined \let\@tt\tt \def\tt{\@tt\telepl} \else \def\tt{\protect\pptt}\def\pptt{\ptt\telepl} \fi % \end{macrocode} % % \begin{macro}{\dq} % We save the original double quote character in |\dq| to keep % it available, the math accent |\"| can now be typed as |"|. % Also we store the original meaning of the command |\"| for % future use. % \begin{macrocode} \begingroup \catcode`\"12 \def\x{\endgroup \def\@UMLAUT{\"} \def\@MATHUMLAUT{\mathaccent"707F } \def\dq{"}} \x % \end{macrocode} % % If an active {\tt "} character gets ``lost'' in a non-polish % language it should expand to a {\tt "} with category code `other' % by default. The same applies for the control sequence % |\active@dq|. % \begin{macrocode} \begingroup \catcode`\"=\active \def\x{\endgroup \ifx"\undefined \let"\dq \fi \let\active@dq\dq} \x % \end{macrocode} % \end{macro} % % \begin{macro}{\dieresis} % The original definition of |\"| is stored as |\dieresis|, because % the definition of |\"| might not be the default plain \TeX\ % one. If the user uses PostScript fonts with the Adobe % fontencoding the {\tt "} character is not in the same position as % in Knuth's fontencoding. In this case |\"| will not be defined as % |\accent"7F #1|, but as |\accent'310 #1|. For this reason we save % the definition of |\"| and use that in the definition of other % macros. % \begin{macrocode} \let\dieresis=\" % \end{macrocode} % \end{macro} % % \begin{macro}{\polish@dq@macro} % For all arguments of an active doublequote which should be % treated in a special way, we define a macro with a name that % contains the argument text. % % \begin{macrocode} \def\polish@dqmacro#1{\csname p@dq@\string #1@dq@\endcsname} % \end{macrocode} % \end{macro} % % \begin{macro}{\polish@@active@dq} % An active doublequote is |\let| to this macro definition. First % we look if the argument triggers a special macro, then we expand % either to a normal doublequote or indirectly to this macro. % \begin{macrocode} \def\polish@@active@dq#1{\expandafter\expandafter\expandafter \ifx\polish@dqmacro{#1}\relax \expandafter\normal@dq \else \expandafter\polish@@@active@dq \fi {#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{\normal@dq} % The braces around the argument in |\polish@@active@dq| are % necessary for empty arguments. For |\normal@dq| we have to % delete the braces and insert a normal doublequote. % \begin{macrocode} \def\normal@dq#1{\dq #1} % \end{macrocode} % \end{macro} % % \begin{macro}{\polish@@@active@dq} % We have to call |\active@dq|, but this call has to be protected % to inhibit further expansion when it is written to files. % (|\active@dq| is |let| to |\polish@active@dq|.) To allow correct % ligatures and kerning, the |\protect| should expand to nothing, % if it is used with meaning |\relax|. The additional |\empty| in % the argument of the |\active@dq| call is necessary for the % correct expansion of |""|. % \begin{macrocode} \def\polish@@@active@dq#1{% \ifx\protect\relax \else \expandafter\protect \fi \active@dq{#1\empty}} % \end{macrocode} % \end{macro} % % \begin{macro}{\polish@active@dq} % In polish mode |\active@dq| is |\let| to this macro. To get the % final expansion of the special action macros, we have to expand % the |\polish@dqmacro| three times. This expansion consists of % two groups containing the action for text and for math mode. The % correct group is selected with the help of two additional macros. % \begin{macrocode} \def\polish@active@dq#1{% \csname polish@dq@\ifmmode second\else first\fi \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \endcsname \polish@dqmacro{#1}} \def\polish@dq@first#1#2{#1} \def\polish@dq@second#1#2{#2} % \end{macrocode} % \end{macro} % % \begin{macro}{\def@polish@dqmacro} % To define a doublequote macro we use two macros. % \begin{macrocode} \def\def@polish@dqmacro#1#2#3{\expandafter\expandafter\expandafter \def\polish@dqmacro{#1}{{#2}{#3}}} % \end{macrocode} % % \begin{macrocode} \def\let@polish@dqmacro#1#2{\begingroup \edef\x{\endgroup \let \expandafter\expandafter\expandafter\noexpand\polish@dqmacro{#1}% \expandafter\expandafter\expandafter\noexpand\polish@dqmacro{#2}}% \x} % \end{macrocode} % \end{macro} % % Now we can define the doublequote macros for diacritics, % \begin{macrocode} \def@polish@dqmacro{a}{\aob}{\@MATHUMLAUT a} \def@polish@dqmacro{A}{\Aob}{\@MATHUMLAUT A} \def@polish@dqmacro{c}{\'c}{\@MATHUMLAUT c} \def@polish@dqmacro{C}{\'c}{\@MATHUMLAUT C} \def@polish@dqmacro{e}{\eob}{\@MATHUMLAUT e} \def@polish@dqmacro{E}{\Eob}{\@MATHUMLAUT E} \def@polish@dqmacro{l}{\lpb}{\@MATHUMLAUT l} \def@polish@dqmacro{L}{\Lpb}{\@MATHUMLAUT L} \def@polish@dqmacro{n}{\'n}{\@MATHUMLAUT n} \def@polish@dqmacro{N}{\'N}{\@MATHUMLAUT N} \def@polish@dqmacro{o}{\'o}{\@MATHUMLAUT o} \def@polish@dqmacro{O}{\'O}{\@MATHUMLAUT O} \def@polish@dqmacro{r}{\zkb}{\@MATHUMLAUT r} \def@polish@dqmacro{R}{\Zkb}{\@MATHUMLAUT R} \def@polish@dqmacro{s}{\'s}{\@MATHUMLAUT s} \def@polish@dqmacro{S}{\'S}{\@MATHUMLAUT S} \def@polish@dqmacro{z}{\'z}{\@MATHUMLAUT z} \def@polish@dqmacro{Z}{\'Z}{\@MATHUMLAUT Z} % \end{macrocode} % % and for other purposes. % \begin{macrocode} \def@polish@dqmacro{`}{\glqq{}}{\glqq{}} \def@polish@dqmacro{'}{\grqq{}}{\grqq{}} \def@polish@dqmacro{<}{\flqq{}}{\flqq{}} \def@polish@dqmacro{>}{\frqq{}}{\frqq{}} \def@polish@dqmacro{-}{\allowhyphens\-\allowhyphens}% {\allowhyphens\-\allowhyphens} \def@polish@dqmacro{|}{\discretionary{-}{}{\kern.03em}}{} \def@polish@dqmacro{"}{\hskip\z@skip}{\hskip\z@skip} % \end{macrocode} % % We take special care for |""|, if it is expanded only (i.\,e., % written to a file or used in |\edef|) and |\protect| is used to % protect the expansion of the first active doublequote. For this % case the second doublequote is expanded with |\empty| as its % argument. To read the complete ``expansion'', we have to define % a macro for the argument |\active@dq{}|. % \begin{macrocode} \def@polish@dqmacro{\empty}{{}}{{}} \let@polish@dqmacro{\active@dq{}}{"} % \end{macrocode} % % \begin{macro}{\mdqon} % \begin{macro}{\mdqoff} % All that's left to do now is to define a couple of commands % for reasons of compatibility with \file{polish.tex}. % \begin{macrocode} \def\mdqon{\catcode`\"\active} \def\mdqoff{\catcode`\"12 } % \end{macrocode} % \end{macro} % \end{macro} % % Our last action is to activate the commands we have just defined, % by calling the macro |\selectlanguage|. Next the \babel{} macro % |\selectlanguage| is used to activate the definitions for Polish. % % \begin{macrocode} \selectlanguage{polish} % \end{macrocode} % % Finally, the category code of {\tt @} is reset to its original % value. The macrospace used by |\atcatcode| is freed. % % \begin{macrocode} \catcode`\@=\atcatcode \let\atcatcode\relax % \end{macrocode} % % \Finale % %% \CharacterTable %% {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 %% 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 %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% \endinput