% \iffalse meta-comment % % Copyright 1989-2005 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. % -------------------------------------- % % It may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % The Current Maintainer of this work is Johannes Braams. % % The list of all files belonging to the Babel system is % given in the file `manifest.bbl. See also `legal.bbl' for additional % information. % % The list of derived (unpacked) files belonging to the distribution % and covered by LPPL is defined by the unpacking scripts (with % extension .ins) which are part of the distribution. % \fi % \CheckSum{543} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the % transcript. %<*dtx> \ProvidesFile{polish.dtx} % %\ProvidesLanguage{polish} %\fi %\ProvidesFile{polish.dtx} [2005/03/31 v1.2l Polish support from the babel system] %\iffalse %% File `polish.dtx' %% Babel package for LaTeX version 2e %% Copyright (C) 1989 -- 2005 %% by Johannes Braams, TeXniek % %% Polish Language Definition File %% Copyright (C) 1989 - 2005 %% by Elmar Schalueck, Michael Janich % Universitaet-Gesamthochschule Paderborn % Warburger Strasse 100 % 4790 Paderborn % Germany % elmar at uni-paderborn.de % massa at uni-paderborn.de % %% Please report errors to: J.L. Braams %% babel at braams.cistron.nl % % This file is part of the babel system, it provides the source % code for the Polish language definition 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{\textsf{babel}} \newcommand*\langvar{$\langle \it lang \rangle$} \newcommand*\note[1]{} \newcommand*\Lopt[1]{\textsf{#1}} \newcommand*\file[1]{\texttt{#1}} \begin{document} \DocInput{polish.dtx} \end{document} % %\fi % \GetFileInfo{polish.dtx} % % \changes{polish-1.1c}{1994/06/26}{Removed the use of \cs{filedate} % and moved identification after the loading of babel.def} % \changes{polish-1.2d}{1996/10/10}{Replaced \cs{undefined} with % \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency % with \LaTeX, moved the definition of \cs{atcatcode} right to the % beginning.} % % \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{} % % The macro |\LdfInit| takes care of preventing that this file is % loaded more than once, checking the category code of the % \texttt{@} sign, etc. % \changes{polish-1.2d}{1996/11/03}{Now use \cs{LdfInit} to perform % initial checks} % \begin{macrocode} %<*code> \LdfInit{polish}\captionspolish % \end{macrocode} % % When this file is read as an option, i.e. by the |\usepackage| % command, \texttt{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\l@polish\@undefined \@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. % \changes{polish-1.2b}{1995/07/04}{Added \cs{proofname} for % AMS-\LaTeX} % \changes{polish-1.2f}{1997/09/11}{Added translation for Proof and % changed translation of Contents} % \changes{polish-1.2i}{2000/09/19}{\cs{bibname} and \cs{refname} were % swapped} % \changes{polish-1.2i}{2000/09/19}{Added \cs{glossaryname}} % \begin{macrocode} \addto\captionspolish{% \def\prefacename{Przedmowa}% \def\refname{Literatura}% \def\abstractname{Streszczenie}% \def\bibname{Bibliografia}% \def\chaptername{Rozdzia\l}% \def\appendixname{Dodatek}% \def\contentsname{Spis tre\'sci}% \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}% \def\proofname{Dow\'od}% \def\glossaryname{Glossary}% <-- Needs translation } % \end{macrocode} % \end{macro} % % \begin{macro}{\datepolish} % The macro |\datepolish| redefines the command |\today| to produce % Polish dates. % \changes{polish-1.2f}{1997/10/01}{Use \cs{edef} to define % \cs{today} to save memory} % \changes{polish-1.2f}{1998/03/28}{use \cs{def} instead of \cs{edef}} % \changes{polish-1.2i}{2000/01/08}{A missing comment character caused % an unwanted space character in the output} % \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|. % % For Polish the \texttt{"} character is made active. This is % done once, later on its definition may vary. Other languages in % the same document may also use the \texttt{"} character for % shorthands; we specify that the polish group of shorthands % should be used. % % \begin{macrocode} \initiate@active@char{"} \addto\extraspolish{\languageshorthands{polish}} \addto\extraspolish{\bbl@activate{"}} % \end{macrocode} % Don't forget to turn the shorthands off again. % \changes{polish-1.2h}{1999/12/17}{Deactivate shorthands ouside of % Polish} % \begin{macrocode} \addto\noextraspolish{\bbl@deactivate{"}} % \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. % % 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. % % \changes{polish-1.2d}{1996/08/18}{This macro is meant to be used in % horizontal mode; so leave vertical mode if necessary} % \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 \leavevmode \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'. % \changes{polish-1.2d}{1996/08/18}{Use the constructed version of the % characters only in OT1; use proper characters in T1.} % \begin{macrocode} \DeclareTextCommand{\aob}{OT1}{\sob a{.66}{.20}{0}{.90}} \DeclareTextCommand{\Aob}{OT1}{\sob A{.80}{.50}{0}{.90}} \DeclareTextCommand{\eob}{OT1}{\sob e{.50}{.35}{0}{.93}} \DeclareTextCommand{\Eob}{OT1}{\sob E{.60}{.35}{0}{.90}} % \end{macrocode} % For the 'new' \texttt{T1} encoding we can provide simpler % definitions. % \begin{macrocode} \DeclareTextCommand{\aob}{T1}{\k a} \DeclareTextCommand{\Aob}{T1}{\k A} \DeclareTextCommand{\eob}{T1}{\k e} \DeclareTextCommand{\Eob}{T1}{\k E} % \end{macrocode} % Construct the characters by default from the OT1 encoding. % \begin{macrocode} \ProvideTextCommandDefault{\aob}{\UseTextSymbol{OT1}{\aob}} \ProvideTextCommandDefault{\Aob}{\UseTextSymbol{OT1}{\Aob}} \ProvideTextCommandDefault{\eob}{\UseTextSymbol{OT1}{\eob}} \ProvideTextCommandDefault{\Eob}{\UseTextSymbol{OT1}{\Eob}} % \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. % % \changes{polish-1.2d}{1996/08/18}{\cs{spb} is meant to be used in % horizontal mode; so leave vertical mode if necessary} % \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 \leavevmode \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1} % \end{macrocode} % \end{macro} % % \begin{macro}{\skb} % The macro |\skb| is used to put the `kropka' in the % right place. % % \changes{polish-1.2d}{1996/08/18}{\cs{skb} is meant to be used in % horizontal mode; so leave vertical mode if necessary} % \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 \leavevmode \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.0a}{1993/11/05}{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 in `OT1' encoding 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. % % When |\selectfont| is undefined the current format is spposed to be % either plain (based) or \LaTeX$\:$2.09. % \changes{polish-1.2a}{1995/06/06}{Don't modify \cs{rm} and friends for % \LaTeXe, take \cs{selectfont } instead} % \begin{macrocode} \ifx\selectfont\@undefined \ifx\prm\@undefined \addto\rm{\textpl}\else \addto\prm{\textpl}\fi \ifx\pit\@undefined \addto\it{\textpl}\else \addto\pit{\textpl}\fi \ifx\pbf\@undefined \addto\bf{\textpl}\else \addto\pbf{\textpl}\fi \ifx\psl\@undefined \addto\sl{\textpl}\else \addto\psl{\textpl}\fi \ifx\psf\@undefined \else \addto\psf{\textpl}\fi \ifx\psc\@undefined \else \addto\psc{\textpl}\fi \ifx\ptt\@undefined \addto\tt{\telepl}\else \addto\ptt{\telepl}\fi \else % \end{macrocode} % When |\selectfont| exists we assume \LaTeXe. % \begin{macrocode} \expandafter\addto\csname selectfont \endcsname{% \csname\f@encoding @pl\endcsname} \fi % \end{macrocode} % Currently we support the OT1 and T1 encodings. For T1 we don't % have to make a difference between typewriter fonts and other % fonts, they all have the same glyphs. % \begin{macrocode} \expandafter\let\csname T1@pl\endcsname\textpl % \end{macrocode} % For OT1 we need to check the current font family, stored in % |\f@family|. Unfortunately we need a hack as |\ttdefault| is % defined as a |\long| macro, while |\f@family| is not. % \begin{macrocode} \expandafter\def\csname OT1@pl\endcsname{% \long\edef\curr@family{\f@family}% \ifx\curr@family\ttdefault \telepl \else \textpl \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 |"|. % \begin{macrocode} \begingroup \catcode`\"12 \def\x{\endgroup \def\dq{"}} \x % \end{macrocode} % \end{macro} % % Now we can define the doublequote macros for diacritics, % \changes{polish-1.1d}{1995/01/31}{The dqmacro for C used \cs{'c}} % \begin{macrocode} \declare@shorthand{polish}{"a}{\textormath{\aob}{\ddot a}} \declare@shorthand{polish}{"A}{\textormath{\Aob}{\ddot A}} \declare@shorthand{polish}{"c}{\textormath{\'c}{\acute c}} \declare@shorthand{polish}{"C}{\textormath{\'C}{\acute C}} \declare@shorthand{polish}{"e}{\textormath{\eob}{\ddot e}} \declare@shorthand{polish}{"E}{\textormath{\Eob}{\ddot E}} \declare@shorthand{polish}{"l}{\textormath{\lpb}{\ddot l}} \declare@shorthand{polish}{"L}{\textormath{\Lpb}{\ddot L}} \declare@shorthand{polish}{"n}{\textormath{\'n}{\acute n}} \declare@shorthand{polish}{"N}{\textormath{\'N}{\acute N}} \declare@shorthand{polish}{"o}{\textormath{\'o}{\acute o}} \declare@shorthand{polish}{"O}{\textormath{\'O}{\acute O}} \declare@shorthand{polish}{"s}{\textormath{\'s}{\acute s}} \declare@shorthand{polish}{"S}{\textormath{\'S}{\acute S}} % \end{macrocode} % \begin{macro}{\polishrz} % \begin{macro}{\polishzx} % \changes{polish-1.2j}{2000/11/11}{Added support for two % notationstyles for kropka and accented z} % The command |\polishrz| defines the shorthands |"r|, |"z| and % |"x| to produce pointed z, accented z and |"x|. This is the % default as these shorthands were defined by this language % definition file for quite some time. % \begin{macrocode} \newcommand*{\polishrz}{% \declare@shorthand{polish}{"r}{\textormath{\zkb}{\ddot r}}% \declare@shorthand{polish}{"R}{\textormath{\Zkb}{\ddot R}}% \declare@shorthand{polish}{"z}{\textormath{\'z}{\acute z}}% \declare@shorthand{polish}{"Z}{\textormath{\'Z}{\acute Z}}% \declare@shorthand{polish}{"x}{\dq x}% \declare@shorthand{polish}{"X}{\dq X}% } \polishrz % \end{macrocode} % The command |\polishzx| switches to a different set of % shorthands, |"z|, |"x| and |"r| to produce pointed z, accented z % and |"r|; a different shorthand notation also in use. % \changes{polish-1.2k}{2003/10/12}{Fixed a typo} % \begin{macrocode} \newcommand*{\polishzx}{% \declare@shorthand{polish}{"z}{\textormath{\zkb}{\ddot z}}% \declare@shorthand{polish}{"Z}{\textormath{\Zkb}{\ddot Z}}% \declare@shorthand{polish}{"x}{\textormath{\'z}{\acute x}}% \declare@shorthand{polish}{"X}{\textormath{\'Z}{\acute X}}% \declare@shorthand{polish}{"r}{\dq r}% \declare@shorthand{polish}{"R}{\dq R}% } % \end{macrocode} % \end{macro} % \end{macro} % % Then we define access to two forms of quotation marks, similar % to the german and french quotation marks. % \changes{polish-1.2e}{1997/04/03}{Removed empty groups after % double quote and guillemot characters} % \changes{polish-1.2l}{2004/02/18}{Changed closing quote} % \begin{macrocode} \declare@shorthand{polish}{"`}{% \textormath{\quotedblbase}{\mbox{\quotedblbase}}} \declare@shorthand{polish}{"'}{% \textormath{\textquotedblright}{\mbox{\textquotedblright}}} \declare@shorthand{polish}{"<}{% \textormath{\guillemotleft}{\mbox{\guillemotleft}}} \declare@shorthand{polish}{">}{% \textormath{\guillemotright}{\mbox{\guillemotright}}} % \end{macrocode} % then we define two shorthands to be able to specify hyphenation % breakpoints that behavew a little different from |\-|. % \begin{macrocode} \declare@shorthand{polish}{"-}{\nobreak-\bbl@allowhyphens} \declare@shorthand{polish}{""}{\hskip\z@skip} % \end{macrocode} % And we want to have a shorthand for disabling a ligature. % \begin{macrocode} \declare@shorthand{polish}{"|}{% \textormath{\discretionary{-}{}{\kern.03em}}{}} % \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}. % \changes{polish-1.2f}{1998/06/07}{Now use \cs{shorthandon} and % \cs{shorthandoff}} % \begin{macrocode} \def\mdqon{\shorthandon{"}} \def\mdqoff{\shorthandoff{"}} % \end{macrocode} % \end{macro} % \end{macro} % % The macro |\ldf@finish| takes care of looking for a % configuration file, setting the main language to be switched on % at |\begin{document}| and resetting the category code of % \texttt{@} to its original value. % \changes{polish-1.2d}{1996/11/03}{Now use \cs{ldf@finish} to wrap % up} % \begin{macrocode} \ldf@finish{polish} % % \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