diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:56:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:56:11 +0000 |
commit | a93e845701b8c7798cb485a9e09ed4a8d3aef8f3 (patch) | |
tree | e01e6310b6f4459eb57d38b614c1dc7236c1e29a /Master/texmf-dist/source/latex/platex | |
parent | fcdf374b3affc097c88d3195d3321b282a1afa1b (diff) |
trunk/Master/texmf-dist/source/latex/platex
git-svn-id: svn://tug.org/texlive/trunk@450 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/platex')
8 files changed, 3327 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/platex/base/ot1patch.dtx b/Master/texmf-dist/source/latex/platex/base/ot1patch.dtx new file mode 100644 index 00000000000..38c6fab5ae4 --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/ot1patch.dtx @@ -0,0 +1,237 @@ +% \iffalse -*- doctex -*- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% Package ot1patch %% +%% %% +%% Purpose: to provide best possible substitutes for polish national %% +%% characters using OT1 Computer Modern Roman fonts %% +%% %% +%% %% +%% Copyright (c) by Marcin Woli\'nski <1997/06/18> %% +%% wolinski@mimuw.edu.pl %% +%% %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% The package may be used freely, but you are not allowed to modify %% +%% this file. If you wish to make any changes please make a copy %% +%% under a different name. %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \fi + \def\fileversion{v 0.3} + \def\docdate{1997/05/16} + \def\filedate{1997/10/08} +% \CheckSum{209} +% +% \title{Pakiet/Package ot1patch\thanks +% {Version \fileversion\ dated \filedate.}} +% \author{Marcin Woli\'nski} +% \date{\docdate} +% +% \maketitle +% Celem tego pakietu jest dostarczenie substytut\'{o}w polskich +% znak\'{o}w narodowych, zbudowanych jedynie ze znak\'{o}w +% dost\k{e}pnych w fontach w uk{\l}adzie OT1, szczeg\'{o}lnie fontach +% Computer Modern. Poniewa\.{z} wysokiej jako\'{s}ci polskie fonty +% dla \TeX a s\k{a} publicznie dost\k{e}pne, stosowanie tego pakietu +% nie jest zalecane. Mo\.{z}na go poleci\'c jedynie mieszka\'{n}com +% bezludnych wysp bez dost\k{e}pu do Internetu (ale sk\k{a}d oni mieli +% by mie\'c ten pakiet?). +% +% Pakiet zosta{\l} pomy\'{s}lany jako dodatek do pakietu \textsf{Po +% polsku} autorstwa Mariusza Olko. Mo\.{z}na go jednak stosowa\'c +% niezale\.{z}nie. Skutkiem zadeklarowania jego u\.{z}ycia +% komend\k{a} |\usepackage{ot1patch}| jest zmiana definicji +% niekt\'{o}rych komend akcentowych w uk{\l}adzie OT1 +% (w~szczeg\'{o}lno\'{s}ci komenda |\k| produkuj\k{a}ca ogonek, +% przestaje powodowa\'c b{\l}\k{a}d). Uk{\l}ad OT1 nie jest w istocie +% dobrze okre\'{s}lony, bowiem fonty ,,maszynowe'' r\'{o}\.{z}ni\k{a} +% si\k{e} od pozosta{\l}ych na kilku pozycjach. \textsf{ot1patch} +% troszczy si\k{e} i o t\k{e} spraw\k{e}. +% +% Pakiet \textsf{ot1patch} w istocie jest adaptacj\k{a} do nowego +% \LaTeX a stylu \textsf{plfonts.sty} autorstwa Leszka Holenderskiego. +% Styl ten jest najstaranniejsz\k{a} znan\k{a} mi wersj\k{a} +% dorobienia protez ogonk\'{o}w do font\'{o}w Computer Modern. +% +% \bigskip +% The purpose of this package is to provide substitutes of polish +% national characters built using only old fonts (OT1). Besides of +% producing characters missing from OT1 this package takes care of +% less obvious matter: OT1 is not a really well-defined encoding since +% typewritter fonts differ from others in some positions. +% +% The package is loaded in the standard way with the +% |\usepackage{ot1patch}| command. +% +% \StopEventually{} +% +% \section{Implementation} +% \iffalse +% Since I hate the presence of section `Printing the documentation' in +% every DOCed package my driver is put into a metacomment. To print +% documentation LaTeX this file. If you need to change the driver run +% DOCSTRIP and ask it to make ogonek.drv by stripping ogonek.dtx with +% option `driver'. Do *not* modify this file. +%<*driver> +\documentclass{ltxdoc} +\usepackage{ot1patch} +\DisableCrossrefs +%<driver>%\OnlyDescription +%<driver>%\EnableCrossrefs +%<driver>%\CodeLinesIndex +\begin{document} + \DocInput{ot1patch.dtx} +\end{document} +%</driver> +% \fi +% +% \subsection{Identification} +% We start the code with standard identification of the package +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesPackage{ot1patch}[\filedate\space\fileversion\space + A patch for some OT1 characters (MW)] +% \end{macrocode} +% +% \subsection{The \texttt{\string\k} macro (polish ogonek)} +% This comes from L.~Holenderski's \texttt{plfonts.sty}. +% Positioning of ogonek for specific letters is tuned for 300dpi +% Computer Modern fonts, but works reasonably well with other +% resolutions. +% +% Ogonek is made from half-circle used by \TeX\ to produce +% $\hookrightarrow$. +% \begin{macro}{\@sob} +% Macro |\@sob| positioning ogonek under a letter. Parameters are +% letter and fractions hl,ho,vl,vo. +% \begin{macrocode} +\dimendef\pl@left=0 \dimendef\pl@down=1 +\dimendef\pl@right=2 \dimendef\pl@temp=3 +\def\@sob#1#2#3#4#5{% + \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}{\@iIuUogonek} +% \begin{macro}{\k} +% Here is the |\k| default macro (it is not normally defined in OT1), with +% special positioning of ogonek for some letters. We don't do this with +% |\DeclareTextCompositeCommand| because it wouldn't fit with the defaults +% mechanism. +% \begin{macrocode} +\def\@iIuUogonek#1{% + \ifx i#1\@sob i{.66}{.20}{0}{.90}\else + \ifx I#1\@sob I{.80}{.50}{0}{.90}\else + \ifx u#1\@sob u{.66}{.20}{0}{.90}\else + \ifx U#1\@sob U{.60}{.35}{0}{.90}\else + \@sob {#1}{.50}{.35}{0}{.90}\fi + \fi \fi \fi + } +\DeclareTextCommandDefault\k[1]{% + \ifx a#1\@sob a{.66}{.20}{0}{.90}\else + \ifx A#1\@sob A{.80}{.50}{0}{.90}\else + \ifx e#1\@sob e{.50}{.35}{0}{.93}\else + \ifx E#1\@sob E{.60}{.35}{0}{.90}\else + \@iIuUogonek{#1}% + \fi \fi \fi \fi + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Polish crossed l} +% Since in typewritter fonts there is no cross character for polish \l\ we +% will have to take special actions then. For that purpose we define the +% next macro. It performs a rather devious check if the font in use is +% `typewritter like'. Regular text fonts contain in position '40 the cross +% for polish \l, but in typewritter `visible space' occurs there. Second +% of these characters has positive depth, contrary to the first, so we +% check for that. This is slow, better check is welcome. +% +% \begin{macrocode} +\def\if@ttfont#1#2{\setbox0=\hbox{\char'40}\ifdim\dp0>0pt#1\else#2\fi} +% \end{macrocode} +% +% \begin{macro}{\@spb} +% This definition is used to cross l or L in typewritter fonts. +% \changes{0.2}{1997/06/07}{Added leavevmode} +% \begin{macrocode} +\def\@spb#1#2#3#4#5{% + \setbox0\hbox{#1}\setbox2\hbox{\char'023}% + \pl@right=#2\wd0 \advance\pl@right by-#3\wd2 + \pl@down=#5\ht2 \advance\pl@down by-#4\ht0 + \pl@left=\pl@right \advance\pl@left by\wd2 + \ht2=\pl@down \dp2=-\pl@down + \leavevmode + \kern\pl@right\lower\pl@down\box2\kern-\pl@left #1} +% \end{macrocode} +% \end{macro} +% +% And here are definitions of |\l| and |\L|. Unfortunately we have +% to redefine \LaTeX's values. +% \begin{macrocode} +\DeclareTextCommand\l{OT1}{% + \if@ttfont{\@spb l{.45}{.5}{.4}{.8}}% + {{\char32l}}} +\DeclareTextCommand\L{OT1}{% + \if@ttfont{\@spb L{.23}{.5}{.4}{.8}}% + {\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}} +% \end{macrocode} +% +% \subsection{Dot accent} +% \begin{macro}{\@skb} +% \changes{0.2}{1997/06/07}{Added leavevmode} +% Typewritter fonts don't contain the dot accent so we use raised +% period instead. As this style is prepared with polish language +% in mind, this is done for \.z only. +% \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} +% +% And appropriate redefinition for |\.|: +% \begin{macrocode} +\DeclareTextCompositeCommand\.{OT1}z{% + \if@ttfont{\@skb z{.5}{.5}{1.2}{0}}% + {{\accent'137z}}} +\DeclareTextCompositeCommand\.{OT1}Z{% + \if@ttfont{\@skb Z{.5}{.5}{1.1}{0}}% + {{\accent'137Z}}} +% \end{macrocode} +% +% \subsection{French quotes +% (\guillemotleft guillemotes\guillemotright)} +% \changes{0.2}{1997/06/18}{Added \cs{leavevmode}} +% Here is the best substitute for guillemotes we could think of. +% \begin{macrocode} +\DeclareTextCommandDefault\guillemotleft + {\leavevmode\raise.3ex + \hbox{$\scriptscriptstyle\langle\!\langle$}} +\DeclareTextCommandDefault\guillemotright + {\leavevmode\raise.3ex + \hbox{$\scriptscriptstyle\rangle\!\rangle$}} +% \end{macrocode} +% +% And that's all. +% \begin{macrocode} +\endinput +%</package> +% \end{macrocode} +% +% +% \Finale diff --git a/Master/texmf-dist/source/latex/platex/base/ot1patch.ins b/Master/texmf-dist/source/latex/platex/base/ot1patch.ins new file mode 100644 index 00000000000..86c64a5fbba --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/ot1patch.ins @@ -0,0 +1,7 @@ +\def\batchfile{ot1patch.ins} +\input docstrip + +\preamble +\endpreamble + +\generate{\file{ot1patch.sty}{\from{ot1patch.dtx}{package}}} diff --git a/Master/texmf-dist/source/latex/platex/base/platex.ins b/Master/texmf-dist/source/latex/platex/base/platex.ins new file mode 100644 index 00000000000..47667013aa5 --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/platex.ins @@ -0,0 +1,196 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% +%% Copyright (C) 1994 by Mariusz Olko. All rights reserved. +%% Copyright (C) 1997,1998 by Mariusz Olko and Marcin Woli\'nski. +%% Copyright (C) 2000,2002,2003 by Marcin Woli\'nski. +%% +%% This file is part of the package `PLaTeX' +%% ----------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 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.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% In particular, NO PERMISSION is granted to modify the contents of this +%% file since it contains the legal notices that are placed in the files +%% it generates. +%% +%% --------------- start of docstrip commands ------------------ +%% +\input docstrip +\keepsilent + +\declarepreamble\mainpreamble + +This is a generated file. + +Copyright (C) 1994 by Mariusz Olko. All rights reserved. +Copyright (C) 1997,1998 by Mariusz Olko and Marcin Woli\string\'nski. +Copyright (C) 2000,2002,2003 by Marcin Woli\string\'nski. + + +This file is part of the package `PLaTeX' +----------------------------------------- + +It may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.2 +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.2 or later is part of all distributions of LaTeX +version 1999/12/01 or later. + +This file may only be distributed together with a copy of the PLaTeX +package. + +\endpreamble + +\declarepreamble\cfgpreamble + +This is a generated file. + +Copyright (C) 2000,2002,2003 by Marcin Woli\string\'nski. + +This file is part of the package `PLaTeX' +----------------------------------------- + +It may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.2 +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.2 or later is part of all distributions of LaTeX +version 1999/12/01 or later. + +This file may only be distributed together with a copy of the PLaTeX +package. + +In particular, permission is granted to customize the declarations in +this file to serve the needs of your installation. +However, NO PERMISSION is granted to distribute a modified version +of this file under its original name. + +\endpreamble + + +\usepreamble\mainpreamble + +\def\batchfile{platex.ins} +\input docstrip +\keepsilent +\Msg{+------------------------------------------------------------------------} +\Msg{|} +\Msg{| Rozpoczelas instalacje pakietu PLaTeX, ktory dostarcza narzedzi} +\Msg{| potrzebnych do skladu w jezyku polskim LaTeXem 2e.} +\Msg{|} +\Msg{| Instalacja polega na usunieciu z plikow *.dtx oraz *.fdd komentarzy} +\Msg{| i wygenerowaniu plikow czytanych bezposrednio przez LaTeXa.} +\Msg{|} +\Msg{| *** Czy chcesz wygenerowac pliki?} +\Msg{|} +\Msg{+------------------------------------------------------------------------} +\Msg{|} +\Msg{| Welcome to the instalation routine of bundle PLaTeX, a set of tools} +\Msg{| aimed at typeseting in polish with LaTeX2e.} +\Msg{|} +\Msg{| *** Do you want to proceed?} +\Msg{|} +\Msg{+------------------------------------------------------------------------} +\Ask{\odpowiedz}{[t/n] [y/n]} +\def\1{n} +\ifx\1\odpowiedz \expandafter\endinput \fi +\generate{%\file{cp1250.def}{\from{strony.dtx}{windows}} + \file{mazovia.def}{\from{strony.dtx}{mazovia}} + \file{amigapl.def}{\from{strony.dtx}{amigapl}} + \file{qxenc.def}{\from{strony.dtx}{qx}} + \file{hyphen.cfg}{\from{polski.dtx}{hyphenation}} + \file{polski.sty}{\from{polski.dtx}{style}} +% Tu mozna wlaczyc generowanie ot4enc.def (dla starszych dystrybucji LaTeXa) +% \file{ot4enc.def}{\from{polski.dtx}{encoding}} +} +\batchinput{plprefix.ins} +\batchinput{ot1patch.ins} +\Msg{+------------------------------------------------------------------------} +\Msg{|} +\Msg{| Wygenerowane zostaly podstawowe pliki umozliwiajace kompilacje} +\Msg{| dokumentow w jezyku polskim.} +\Msg{| \space\space\space Kolejnym krokiem jest wygenerowanie plikow + zawierajacych} +\Msg{| opis polskich czcionek zainstalowanych na Twoim komputerze.} +\Msg{| Jesli na Twoim komputerze nie ma zainstalowanych czcionek `pl'} +\Msg{| pochodzacych z dystrybucji MeXa, opisy czcionek nie powinny zostac} +\Msg{| wygenerowane, aby nie wprowadzic w blad LaTeXa!} +\Msg{|} +\Msg{| *** Czy na Twoim komputerze sa zainstalowane czcionki `pl'?} +\Msg{|} +\Msg{+------------------------------------------------------------------------} +\Msg{|} +\Msg{| The basic polish language styles are already generated.} +\Msg{| Now we are ready to generate font description files.} +\Msg{|} +\Msg{| *** Do you have fonts `pl' installed on your system?} +\Msg{|} +\Msg{+------------------------------------------------------------------------} +\Ask{\odpowiedz}{[t/n] [y/n]} +\def\1{n} +\ifx\1\odpowiedz \expandafter\endbatchfile \fi +%\generate{\file{ot4cmss.fd}{\from{plfonts.fdd}{fd,ori,OT4,cmss}} +% \file{ot4cmr.fd}{\from{plfonts.fdd}{fd,ori,OT4,cmr}} +% \file{ot4cmtt.fd}{\from{plfonts.fdd}{fd,ori,OT4,cmtt}} +% \file{ot4cmfib.fd}{\from{plfonts.fdd}{fd,ori,OT4,cmfib}} +% \file{ot4cmfr.fd}{\from{plfonts.fdd}{fd,ori,OT4,cmfr}} +% \file{ot4cmdh.fd}{\from{plfonts.fdd}{fd,ori,OT4,cmdh}} +% \file{ot4ccr.fd}{\from{plfonts.fdd}{fd,ori,OT4,ccr}} +% \file{omlplcm.fd}{\from{plfonts.fdd}{fd,ori,OMLplcm}} +% \file{omlplm.fd}{\from{plfonts.fdd}{fd,ori,OMLplm}} +% \file{omsplsy.fd}{\from{plfonts.fdd}{fd,ori,OMSplsy}} +% \file{omxplex.fd}{\from{plfonts.fdd}{fd,ori,OMXplex}} +%} +\generate{\usepreamble\cfgpreamble + \file{ot4cmss.fd}{\from{plfonts.fdd}{OT4cmss,any}} + \file{ot4cmr.fd}{\from{plfonts.fdd}{OT4cmr,any}} + \file{ot4cmtt.fd}{\from{plfonts.fdd}{OT4cmtt,any}} + \file{ot4cmfib.fd}{\from{plfonts.fdd}{OT4cmfib,any}} + \file{ot4cmfr.fd}{\from{plfonts.fdd}{OT4cmfr,any}} + \file{ot4cmdh.fd}{\from{plfonts.fdd}{OT4cmdh,any}} + \file{ot4ccr.fd}{\from{plfonts.fdd}{OT4ccr,any}} + \file{omlplcm.fd}{\from{plfonts.fdd}{OMLplcm,any}} + \file{omlplm.fd}{\from{plfonts.fdd}{OMLplm,any}} + \file{omsplsy.fd}{\from{plfonts.fdd}{OMSplsy,any}} + \file{omxplex.fd}{\from{plfonts.fdd}{OMXplex,any}} +} +\Msg{+------------------------------------------------------------------------} +\Msg{|} +\Msg{| Skopiuj teraz pliki *.sty, *.def, *.fd, hyphen.cfg, plhyph.tex} +\Msg{| oraz language.dat do katalogu czytanego przez TeXa podczas kompilacji} +\Msg{| i jesli chcesz moc uzywac polskich wzorcow przenoszenia, wygeneruj} +\Msg{| ponownie format LaTeX.} +\Msg{|} +\Msg{| Powodzenia!} +\Msg{|} +\Msg{+------------------------------------------------------------------------} + +\endbatchfile + +%% \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 \~} diff --git a/Master/texmf-dist/source/latex/platex/base/plfonts.fdd b/Master/texmf-dist/source/latex/platex/base/plfonts.fdd new file mode 100644 index 00000000000..c8d082a06a1 --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/plfonts.fdd @@ -0,0 +1,646 @@ +% \iffalse meta-comment -*- doctex -*- +% +% Copyright 2000 by Marcin Woli\'nski. All rights reserved. +% +% This file is part of the PLaTeX package. +% ---------------------------------------- +% +% The file may be distributed under the terms of the LaTeX Project +% Public License, as described in lppl.txt in the base LaTeX +% distribution. Either version 1.2 or, at your option, any later +% version. +% +% \fi +% \CheckSum{106} +% +%\iffalse This is a meta comment +% +%<OMLplcm>\ProvidesFile{omlplcm.fd} +%<OMLplm>\ProvidesFile{omlplm.fd} +%<OMLplr>\ProvidesFile{omlplr.fd} +%<OMSplr>\ProvidesFile{omsplr.fd} +%<OMSplsy>\ProvidesFile{omsplsy.fd} +%<OMXplex>\ProvidesFile{omxplex.fd} +%<OT4ccr>\ProvidesFile{ot4ccr.fd} +%<OT4cmdh>\ProvidesFile{ot4cmdh.fd} +%<OT4cmfib>\ProvidesFile{ot4cmfib.fd} +%<OT4cmfr>\ProvidesFile{ot4cmfr.fd} +%<OT4cmr>\ProvidesFile{ot4cmr.fd} +%<OT4cmss>\ProvidesFile{ot4cmss.fd} +%<OT4cmtt>\ProvidesFile{ot4cmtt.fd} +%<OT4cmvtt>\ProvidesFile{ot4cmvtt.fd} +%<*driver> + \ProvidesFile{plfonts.drv} +%</driver> + [2000/10/09 v1.2 Font defs for fonts PL (MW)] +% +%<*driver> +\documentclass{ltxdoc} +\GetFileInfo{plfonts.drv} +\providecommand\dst{\expandafter{\normalfont\scshape docstrip}} +\title{Font definitions for Polish adaptation of Computer~Modern + typefaces.\thanks{This file has version + number \fileversion, dated \filedate. + This file is derived from the \texttt{cmfonts.fdd} + version 2.5g dated 1998/03/27 distributed with \LaTeXe.}} +\date{\filedate} +\author{Marcin Woli\'nski} +\begin{document} +\maketitle +\tableofcontents + \DocInput{plfonts.fdd} +\end{document} +%</driver> +% +%\fi +% +% \section{Introduction} +% +% This file contains the external font information needed to load +% Polish adaptation of the Computer Modern fonts designed by Don Knuth. +% From this file \texttt{.fd} files for +% Computer Modern in \texttt{OT4} encoding are generated. +% +% \StopEventually{} +% +% \section{The \texttt{docstrip} modules} +% +% The following modules are used to direct \texttt{docstrip} in +% generating external files: +% \begin{center} +% \begin{tabular}{ll} +% driver & produce a documentation driver file \\ +% any & assume fonts are available at any size\\ +% OMLplcm & make Concrete Roman Math italic\\ +% OMLplm & make Computer Modern Math italic\\ +% OMLplr & make Computer Modern Roman (math italic encoding)\\ +% OMSplr & make Computer Modern Roman (math symbol encoding)\\ +% OMSplsy & make Computer Modern Symbols \\ +% OMXplex & make Computer Modern large Symbols\\ +% OT4ccr & make Concrete Roman (old encoding) \\ +% OT4cmdh & make Computer Modern Dunhill (old encoding)\\ +% OT4cmfib & make Computer Modern Fibonacci (old encoding)\\ +% OT4cmfr & make Computer Modern Funny (old encoding)\\ +% OT4cmr & make Computer Modern Roman (old encoding)\\ +% OT4cmss & make Computer Modern Sans (old encoding)\\ +% OT4cmtt & make Computer Modern Typewriter (old encoding)\\ +% OT4cmvtt & make Computer Modern Variable Typewriter (old encoding)\\ +% \end{tabular} +% \end{center} +% A typical \texttt{docstrip} command file would then have entries like: +% \begin{verbatim} +%\generateFile{ot4cmr.fd}{t}{\from{plfonts.fdd}{fd,OT4cmr}} +%\end{verbatim} +% +% +% \section{The font definition files} +% +% \subsection{Text encoding (\texttt{OT4})} +% +% Note that in contrast to the Cork encoding, which is fully +% defined, the old \TeX{} text encoding \texttt{OT1} isn't +% implemented consistent +% within all fonts. Most noticeably a dollar sign (\$) in +% some fonts is replaced by a pound symbol (\pounds) in others, +% which produced quite a number of bug fixes in the NFSS1. Also the +% typewriter fonts contain a few different characters which are not +% present in other fonts. \texttt{OT4} encoding inherits these +% features from \texttt{OT1} +% +% If one would use the philosophy of NFSS2 consequently all these +% would therefore be different encodings and font mixing would +% therefore be nearly impossible with older fonts. Therefore such +% encodings are considered the same but one should be remember that +% in some situations this may cause problems. +% +% \subsubsection{Computer Modern Roman} +% +% \begin{macrocode} +%<*OT4cmr> +\DeclareFontFamily{OT4}{cmr}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{cmr}{m}{n}% +%<*!any> + {<5><6><7><8><9><10><12>gen*plr% + <10.95>plr10% + <14.4>plr12% + <17.28><20.74><24.88>plr17}{} +%</!any> +%<*any> + {<-5.5> plr5 <5.5-6.5> plr6 + <6.5-7.5> plr7 <7.5-8.5> plr8 + <8.5-9.5> plr9 <9.5-11> plr10 + <11-15> plr12 + <15-> plr17 + }{} +%</any> +\DeclareFontShape{OT4}{cmr}{m}{sl}% +%<*!any> + {<5><6><7>plsl8% + <8><9>gen*plsl% + <10><10.95>plsl10% + <12><14.4><17.28><20.74><24.88>plsl12% + }{} +%</!any> +%<*any> + {<-8.5> plsl8 <8.5-9.5> plsl9 + <9.5-11> plsl10 <11-> plsl12 + }{} +%</any> +\DeclareFontShape{OT4}{cmr}{m}{it}% +%<*!any> + {<5><6><7>plti7% + <8>plti8% + <9>plti9% + <10><10.95>plti10% + <12><14.4><17.28><20.74><24.88>plti12% + }{} +%</!any> +%<*any> + {<-7.5> plti7 + <7.5-8.5> plti8 <8.5-9.5> plti9 + <9.5-11> plti10 <11-> plti12 + }{} +%</any> +\DeclareFontShape{OT4}{cmr}{m}{sc}% +%<*!any> + {<5><6><7><8><9><10><10.95><12>% + <14.4><17.28><20.74><24.88>plcsc10% + }{} +%</!any> +%<*any> + {<-> plcsc10}{} +%</any> +% \end{macrocode} +% Here we try to cure the famous \$ $\to$ \pounds{} bug: +% \begin{macrocode} +%<+OT4cmr>% Warning: please note that the upright shape below is +%<+OT4cmr>% used for the \pounds symbol of LaTeX. So this +%<+OT4cmr>% font definition shouldn't be removed. +%<+OT4cmr>% +\DeclareFontShape{OT4}{cmr}{m}{ui} +%<*!any> + {<5><6><7><8><9><10><10.95><12>% + <14.4><17.28><20.74><24.88>plu10% + }{} +%</!any> +%<*any> + {<-> plu10}{} +%</any> +%<+OT4cmr>%%%%%%% bold series +\DeclareFontShape{OT4}{cmr}{b}{n} +%<*!any> + {<5><6><7><8><9><10><10.95><12>% + <14.4><17.28><20.74><24.88>plb10% + }{} +%</!any> +%<*any> + {<-> plb10}{} +%</any> +%<+OT4cmr>%%%%%%%% bold extended series +\DeclareFontShape{OT4}{cmr}{bx}{n} +%<*!any> + {<5><6><7><8><9>gen*plbx% + <10><10.95>plbx10% + <12><14.4><17.28><20.74><24.88>plbx12% + }{} +%</!any> +%<*any> + {<-5.5> plbx5 <5.5-6.5> plbx6 + <6.5-7.5> plbx7 <7.5-8.5> plbx8 + <8.5-9.5> plbx9 <9.5-11> plbx10 + <11-> plbx12 + }{} +%</any> +\DeclareFontShape{OT4}{cmr}{bx}{sl} +%<*!any> + {<5><6><7><8><9>% + <10><10.95><12><14.4><17.28><20.74><24.88>plbxsl10% + }{} +%</!any> +%<*any> + {<-> plbxsl10}{} +%</any> +\DeclareFontShape{OT4}{cmr}{bx}{it} +%<*!any> + {<5><6><7><8><9>% + <10><10.95><12><14.4><17.28><20.74><24.88>plbxti10% + }{} +%</!any> +%<*any> + {<-> plbxti10}{} +%</any> +%<+OT4cmr>% Again this is necessary for a correct \pounds symbol in +%<+OT4cmr>% the cmr fonts Hopefully the dc/ec font layout will take +%<+OT4cmr>% over soon. +%<+OT4cmr>% +\DeclareFontShape{OT4}{cmr}{bx}{ui} + {<->sub*cmr/m/ui}{} +%</OT4cmr> +% \end{macrocode} +% +% \subsubsection{Computer Modern Sans} +% +% Same game for the Sans family. +% \begin{macrocode} +%<*OT4cmss> +\DeclareFontFamily{OT4}{cmss}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{cmss}{m}{n} +%<*!any> + {<5><6><7><8>plss8% + <9>plss9% + <10><10.95>plss10% + <12><14.4>plss12% + <17.28><20.74><24.88>plss17% + }{} +%</!any> +%<*any> + {<-8.5> plss8 + <8.5-9.5> plss9 <9.5-11> plss10 + <11-15.5> plss12 <15.5-> plss17 + }{} +%</any> +\DeclareFontShape{OT4}{cmss}{m}{it} + {<->ssub*cmss/m/sl}{} +\DeclareFontShape{OT4}{cmss}{m}{sl} +%<*!any> + {<5><6><7><8>plssi8<9>plssi9% + <10><10.95>plssi10% + <12><14.4>plssi12% + <17.28><20.74><24.88>plssi17% + }{} +%</!any> +%<*any> + {<-8.5> plssi8 + <8.5-9.5> plssi9 <9.5-11> plssi10 + <11-15.5> plssi12 <15.5-> plssi17 + }{} +%</any> +%<+OT4cmss>%%%%%%% Font/shape undefined, therefore substituted +\DeclareFontShape{OT4}{cmss}{m}{sc} + {<->sub*cmr/m/sc}{} +%<+OT4cmss>%%%%%%% Font/shape undefined, therefore substituted +\DeclareFontShape{OT4}{cmss}{m}{ui} + {<->sub*cmr/m/ui}{} +%<+OT4cmss>%%%%%%%% semibold condensed series +\DeclareFontShape{OT4}{cmss}{sbc}{n} +%<*!any> + {<5><6><7><8><9> + <10><10.95><12><14.4><17.28><20.74><24.88>plssdc10% + }{} +%</!any> +%<+any>{<-> plssdc10}{} +%<+OT4cmss>%%%%%%%%% bold extended series +\DeclareFontShape{OT4}{cmss}{bx}{n} +%<*!any> + {<5><6><7><8><9> + <10><10.95><12><14.4><17.28><20.74><24.88>plssbx10% + }{} +%</!any> +%<+any>{<-> plssbx10}{} +%<+OT4cmss>%%%%%%% Font/shape undefined, therefore substituted +\DeclareFontShape{OT4}{cmss}{bx}{ui} + {<->sub*cmr/bx/ui}{} +%</OT4cmss> +% \end{macrocode} +% +% \subsubsection{Computer Modern Typewriter} +% +% Notice that this encoding is in fact quite different and we +% shouldn't therefore substitute some other font group if the +% correct size or shape isn't available. Otherwise, we may end with +% a |\verb| suddenly producing a lot of funny chars instead of the +% desired ones. +% \begin{macrocode} +%<*OT4cmtt> +\DeclareFontFamily{OT4}{cmtt}{\hyphenchar \font\m@ne} +\DeclareFontShape{OT4}{cmtt}{m}{n} +%<*!any> + {<5><6><7><8>pltt8 + <9>pltt9% + <10><10.95>pltt10% + <12><14.4><17.28><20.74><24.88>pltt12% + }{} +%</!any> +%<*any> + {<-8.5> pltt8 <8.5-9.5> pltt9 + <9.5-11> pltt10 <11-> pltt12 + }{} +%</any> +\DeclareFontShape{OT4}{cmtt}{m}{it} +%<*!any> + {<5><6><7><8><9> + <10><10.95><12><14.4><17.28><20.74><24.88> plitt10 + }{} +%</!any> +%<+any>{<-> plitt10}{} +\DeclareFontShape{OT4}{cmtt}{m}{sl} +%<*!any> + {<5><6><7><8><9>% + <10><10.95><12><14.4><17.28><20.74><24.88>plsltt10% + }{} +%</!any> +%<+any>{<-> plsltt10}{} +\DeclareFontShape{OT4}{cmtt}{m}{sc} +%<*!any> + {<5><6><7><8><9>% + <10><10.95><12><14.4><17.28><20.74><24.88>pltcsc10% + }{} +%</!any> +%<+any>{<-> pltcsc10}{} +\DeclareFontShape{OT4}{cmtt}{m}{ui} + {<->sub*cmtt/m/it}{} +\DeclareFontShape{OT4}{cmtt}{bx}{n} + {<->sub*cmtt/m/n}{} +\DeclareFontShape{OT4}{cmtt}{bx}{it} + {<->sub*cmtt/m/it}{} +\DeclareFontShape{OT4}{cmtt}{bx}{ui} + {<->sub*cmtt/m/it}{} +%</OT4cmtt> +% \end{macrocode} +% +% +% \subsubsection{Computer Modern Variable Typewriter} +% +% The Computer Modern Variable Typewriter family is the +% proportional spaced version of the Computer Modern Typewriter +% family. It is implemented as a separate family to allow easy use +% in normal text, including changes of shape/series etc if available. +% This family also allows normal hyphenation. +% \begin{macrocode} +%<*OT4cmvtt> +\DeclareFontFamily{OT4}{cmvtt}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{cmvtt}{m}{n}% +%<*!any> + {<5><6><7><8><9><10><10.95>% + <12><14.4><17.28><20.74><24.88>plvtt10% + }{} +%</!any> +%<+any>{<-> plvtt10}{} +%</OT4cmvtt> +% \end{macrocode} +% +% +% \subsubsection{Computer Modern Funny} +% +% \begin{macrocode} +%<*OT4cmfr> +\DeclareFontFamily{OT4}{cmfr}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{cmfr}{m}{n}{% +%<-any> <10>plff10% +%<+any> <->plff10 + }{} +\DeclareFontShape{OT4}{cmfr}{m}{it}{% +%<-any> <10>plfi10% +%<+any> <-> plfi10 + }{} +%</OT4cmfr> +% \end{macrocode} +% +% \subsubsection{Computer Modern Dunhill} +% +% \begin{macrocode} +%<*OT4cmdh> +\DeclareFontFamily{OT4}{cmdh}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{cmdh}{m}{n}{% +%<-any> <10>pldunh10% +%<+any> <-> pldunh10 + }{} +%</OT4cmdh> +% \end{macrocode} +% +% \subsubsection{Computer Modern Fibonacci} +% +% \begin{macrocode} +%<*OT4cmfib> +\DeclareFontFamily{OT4}{cmfib}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{cmfib}{m}{n}{% +%<-any> <8>plfib8% +%<+any> <-> plfib8 + }{} +%</OT4cmfib> +% \end{macrocode} +% +% \subsubsection{Concrete Roman} +% +% \begin{macrocode} +%<*OT4ccr> +\DeclareFontFamily{OT4}{ccr}{\hyphenchar\font45 } +\DeclareFontShape{OT4}{ccr}{m}{n} +%<*!any> + {<5><6><7><8><9><10> gen * pcr + <10.95><12><14.4><17.28><20.74><24.88> pcr10}{} +%</!any> +%<*any> + {<-5.5> pcr5 <5.5-6.5> pcr6 + <6.5-7.5> pcr7 <7.5-8.5> pcr8 + <8.5-9.5> pcr9 <9.5-> pcr10 + }{} +%</any> +\DeclareFontShape{OT4}{ccr}{m}{it}{ +%<-any> <10><10.95><12> pcti10}{} +%<+any> <-> pcti10}{} +\DeclareFontShape{OT4}{ccr}{m}{sc}{ +%<-any> <10><10.95><12> pccsc10}{} +%<+any> <-> pccsc10}{} +\DeclareFontShape{OT4}{ccr}{m}{sl} +%<*!any> + {<9> pcsl9 + <10><10.95><12> pcsl10}{} +%</!any> +%<*any> + {<-9.5> pcsl9 + <9.5-> pcsl10}{} +%</any> +\DeclareFontShape{OT4}{ccr}{c}{sl}{ +%<-any> <9> pcslc9}{} +%<+any> <-> pcslc9}{} +% \end{macrocode} +% Finally a few substitution fonts for combinations not available. +% \begin{macrocode} +\DeclareFontShape{OT4}{ccr}{bx}{n}% + {<->sub*cmr/bx/n}{} +\DeclareFontShape{OT4}{ccr}{bx}{sl}% + {<->sub*cmr/bx/sl}{} +\DeclareFontShape{OT4}{ccr}{bx}{it}% + {<->sub*cmr/bx/it}{} +%</OT4ccr> +% \end{macrocode} +% +% \subsection{Math encodings} +% +% \subsubsection{Computer Modern Math italics} +% \begin{macrocode} +%<*OMLplm> +\DeclareFontFamily{OML}{plm}{\skewchar\font127 } +\DeclareFontShape{OML}{plm}{m}{it}% +%<*!any> + {<5><6><7><8><9>gen*plmi% + <10><10.95>plmi10% + <12><14.4><17.28><20.74><24.88>plmi12% + }{} +%</!any> +%<*any> + {<-5.5> plmi5 <5.5-6.5> plmi6 + <6.5-7.5> plmi7 <7.5-8.5> plmi8 + <8.5-9.5> plmi9 <9.5-11> plmi10 + <11-> plmi12 + }{} +%</any> +\DeclareFontShape{OML}{plm}{b}{it} +%<*disabled> +%<*!any> + {<5><6><7><8><9>gen*plmib + <10><10.95><12><14.4><17.28><20.74><24.88>plmib10 + }{} +%</!any> +%<*any> + {<-5.5> plmib5 <5.5-6.5> plmib6 + <6.5-7.5> plmib7 <7.5-8.5> plmib8 + <8.5-9.5> plmib9 <9.5-> plmib10 + }{} +%</any> +%</disabled> +%<*!any> + {<5><6><7><8><9> + <10><10.95><12><14.4><17.28><20.74><24.88>plmib10 + }{} +%</!any> +%<*any> + {<-> plmib10 + }{} +%</any> +% \end{macrocode} +% This will allow the |\oldstylenums| command to work within +% |\textbf|. +% \begin{macrocode} +\DeclareFontShape{OML}{plm}{bx}{it}% + {<->ssub*cmm/b/it}{} +%</OMLplm> +% \end{macrocode} +% +% \subsubsection{Computer Modern Roman Math italics} +% +% Some text symbols like `\t oo' and `$<$' are kept in the OML +% encoding, so we need font substititutions from OML/cmr to OML/cmm. +% \begin{macrocode} +%<*OMLplr> +\DeclareFontFamily{OML}{plr}{\skewchar\font127 } +\DeclareFontShape{OML}{plr}{m}{n}% + {<->ssub*plm/m/it}{} +\DeclareFontShape{OML}{plr}{m}{it}% + {<->ssub*plm/m/it}{} +\DeclareFontShape{OML}{plr}{m}{sl}% + {<->ssub*plm/m/it}{} +\DeclareFontShape{OML}{plr}{m}{sc}% + {<->ssub*plm/m/it}{} +\DeclareFontShape{OML}{plr}{bx}{n}% + {<->ssub*plm/b/it}{} +\DeclareFontShape{OML}{plr}{bx}{it}% + {<->ssub*plm/b/it}{} +\DeclareFontShape{OML}{plr}{bx}{sl}% + {<->ssub*plm/b/it}{} +\DeclareFontShape{OML}{plr}{bx}{sc}% + {<->ssub*plm/b/it}{} +%</OMLplr> +% \end{macrocode} +% +% \subsubsection{Computer Modern Math symbols} +% +% \begin{macrocode} +%<*OMSplsy> +\DeclareFontFamily{OMS}{plsy}{\skewchar\font48 } +\DeclareFontShape{OMS}{plsy}{m}{n} +%<*!any> + {<5><6><7><8><9><10>gen*plsy% + <10.95><12><14.4><17.28><20.74><24.88>plsy10% + }{} +%</!any> +%<*any> + {<-5.5> plsy5 <5.5-6.5> plsy6 + <6.5-7.5> plsy7 <7.5-8.5> plsy8 + <8.5-9.5> plsy9 <9.5-> plsy10 + }{} +%</any> +\DeclareFontShape{OMS}{plsy}{b}{n} +%<*disabled> +%<*!any> + {<5><6><7><8><9>gen*plbsy% + <10><10.95><12><14.4><17.28><20.74><24.88>plbsy10% + }{} +%</!any> +%<*any> + {<-5.5> plbsy5 <5.5-6.5> plbsy6 + <6.5-7.5> plbsy7 <7.5-8.5> plbsy8 + <8.5-9.5> plbsy9 <9.5-> plbsy10 + }{} +%</any> +%</disabled> +%<*!any> + {<5><6><7><8><9> + <10><10.95><12><14.4><17.28><20.74><24.88>plbsy10% + }{} +%</!any> +%<*any> + {<-> plbsy10 + }{} +%</any> +%</OMSplsy> +% \end{macrocode} +% +% \subsubsection{Computer Modern Roman Math symbols} +% +% Some text symbols like `\P' and `\dag' are kept in the OMS encoding, +% so we need font substititutions from OMS/plr to OMS/plsy. +% \begin{macrocode} +%<*OMSplr> +\DeclareFontFamily{OMS}{plr}{\skewchar\font48 } +\DeclareFontShape{OMS}{plr}{m}{n}% + {<->ssub*plsy/m/n}{} +\DeclareFontShape{OMS}{plr}{m}{it}% + {<->ssub*plsy/m/n}{} +\DeclareFontShape{OMS}{plr}{m}{sl}% + {<->ssub*plsy/m/n}{} +\DeclareFontShape{OMS}{plr}{m}{sc}% + {<->ssub*plsy/m/n}{} +\DeclareFontShape{OMS}{plr}{bx}{n}% + {<->ssub*plsy/b/n}{} +\DeclareFontShape{OMS}{plr}{bx}{it}% + {<->ssub*plsy/b/n}{} +\DeclareFontShape{OMS}{plr}{bx}{sl}% + {<->ssub*plsy/b/n}{} +\DeclareFontShape{OMS}{plr}{bx}{sc}% + {<->ssub*plsy/b/n}{} +%</OMSplr> +% \end{macrocode} +% +% \subsubsection{Computer Modern large symbols} +% +% \begin{macrocode} +%<*OMXplex> +\DeclareFontFamily{OMX}{plex}{} +\DeclareFontShape{OMX}{plex}{m}{n}{% + <->sfixed*plex10% + }{} +%</OMXplex> +% \end{macrocode} +% +% \subsubsection{Concrete Roman math italics} +% +% \begin{macrocode} +%<*OMLplcm> +\DeclareFontFamily{OML}{plcm}{\skewchar\font127 } +\DeclareFontShape{OML}{plcm}{m}{it} +%<-any> {<10><10.95><12> pcmi10 }{} +%<+any> {<-> pcmi10 }{} +%</OMLplcm> +% \end{macrocode} +% +% The next line goes into all files and in addition prevents \dst{} +% from adding any further code from the main source file (such as a +% character table). +% \begin{macrocode} +\endinput +% \end{macrocode} +% +% \Finale +% diff --git a/Master/texmf-dist/source/latex/platex/base/plprefix.dtx b/Master/texmf-dist/source/latex/platex/base/plprefix.dtx new file mode 100644 index 00000000000..c5819e2419a --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/plprefix.dtx @@ -0,0 +1,389 @@ +% \iffalse -*- doctex -*- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% Package plprefix %% +%% %% +%% Purpose: to provide various variants of prefix notation for %% +%% polish diacritical characters. %% +%% %% +%% Copyright (c) by Marcin Woli\'nski <2003/01/09> %% +%% wolinski@gust.org.pl %% +%% %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% The package may be used freely, but you are not allowed to modify %% +%% this file. If you wish to make any changes please make a copy %% +%% under a different name. %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \fi +% +% \CheckSum{255} +% \def\plpref{\textsf{plprefix}} +% \def\popolsku{\textsc{P\LaTeX}} +% +% \prefixing +% \title{Prefiksowa notacja polskich znak/ow diakrytycznych.\\ +% Pakiet \plpref} +% \author{Marcin Woli\'nski} +% \date{9 stycz/nia 2003} +% \maketitle +% +% +% \section*{Wst/ep} +% Notacja prefiksowa (,,ciachowa'') polega na zapisywaniu polskich +% znak/ow diakrytycznych w~postaci dw/och znak/ow: \textit{prefiks} +% oraz \textit{litera} (oba znaki o kodach $\leq127$). W~systemach, +% w~kt/orych nie daje si/e w~spos/ob naturalny wy/swietla/c na ekranie +% polskich znak/ow, taki zapis jest stosunkowo atrakcyjn/a alternatyw/a +% dla stosowania standardowych makr \LaTeX a dla akcent/ow (|\'|, |\.| +% i |\k|). +% +% Niestety w/sr/od polskich \TeX nik/ow nie ma zgodno/sci co do tego, +% jaki znak powinien s/lu/zy/c jako prefiks. W czasach +% prehistorycznych u/zywany bywa/l znak \texttt{@}, w /srodowiskach +% zbli/zonych do Wydzia/lu Matematyki UW nadal popularna jest notacja +% z czudzys/lowem (\texttt{"}), za/s od pojawienia si/e \MeX a na +% popularno/sci zaczyna zyskiwa/c slash (,,ciach'' \texttt{//}). To +% jednak nie koniec problemu, bowiem nie ma r/ownie/z zgodno/sci jak +% zapisywa/c litery /x i /z. Spotykane wersje to prefiks-x $\to$ /x i +% prefiks-z $\to$ /z oraz prefiks-z $\to$ /x i prefiks-r $\to$ /z. +% +% Pakiet \plpref\ stanowi dodatek do pakietu \popolsku, +% umo/zliwiaj/acy wyb/or u/zywanej notacji prefiksowej. Mnogo/s/c +% pogl/ad/ow w kwestii notacji nale/zy jednak uzna/c za niekorzystn/a +% i promowa/c jedn/a notacj/e (w/la/sciwym kandydatem wydaje si/e +% notacja \MeX a). Inaczej m/owi/ac stosowanie pakietu \plpref\ nie +% jest zalecane jako /ze ,,oficjaln/a'' notacj/e prefiksow/a +% obs/luguje pakiet \popolsku. Pakiet \plpref\ zosta/l stworzony z +% my/sl/a o umo/zliwieniu u/zytkowania \LaTeX a wszystkim +% nieszcz/e/snikom, kt/orzy po prostu nie s/a w stanie patrze/c na +% ciacha, marz/a za to o swojskim cudzys/lowie lub czym innym. +% +% \section{Instrukcja u/zytkownika} +% +% Pakiet \plpref\ /laduje si/e przy pomocy deklaracji |\usepackage|. +% Aby dokona/c wyboru notacji nale/zy poda/c jako opcj/e zamierzony +% spos/ob wprowadzania litery /z. Poni/zsza tabela przedstawia +% dost/epne mo/zliwo/sci. +% +% \begin{center} +% \nonprefixing +% \begin{tabular}{ccccccccccl} +% Opcja &\k a&\'c&\k e&\l&\'n&\'o&\'s&\'z&\.z\\ +% \tt/z &/a&/c&/e&/l&/n&/o&/s&/x&/z&domy\'slna, \MeX\\ +% \tt/r &/a&/c&/e&/l&/n&/o&/s&/z&/r\\ +% \tt"z &"a&"c&"e&"l&"n&"o&"s&"x&"z\\ +% \tt"r &"a&"c&"e&"l&"n&"o&"s&"z&"r\\ +% \tt@z &@a&@c&@e&@l&@n&@o&@s&@x&@z\\ +% \tt@r &@a&@c&@e&@l&@n&@o&@s&@z&@r +% \end{tabular} +% \end{center} +% +% Na przyk/lad nast/epuj/aca deklaracja zadaje notacj/e, w kt/orej +% prefiksem jest znak \texttt{@}, liter/e /z zapisuje si/e jako +% \texttt{@r}, natomiast /x jako \texttt{@z}: +% \begin{verbatim} +% \usepackage[@r]{plprefix} +% \end{verbatim} +% +% W ka/zdym przypadku aby uzyska/c znak u/zywany jako prefiks nale/zy +% napisa/c go dwa razy. W przyk/ladzie powy/zej aby uzyska/c +% znak ,,at'' (@) piszemy \texttt{@@}. +% +% Ponadto aby pozosta/c w zgodno/sci z pakietem \popolsku\ w +% wersji 1.01 zosta/ly dodane nast/epuj/ace kombinacje: +% \mbox{\emph{prefix}-\texttt{,}} --- otwieraj/acy cudzys/l/ow polski, +% \mbox{\emph{prefix}-\texttt{'}} --- zamykaj/acy cudzys/l/ow polski, +% \mbox{\emph{prefix}-\texttt{<}} --- otwieraj/acy cudzys/l/ow francuski, +% \mbox{\emph{prefix}-\texttt{>}} --- zamykaj/acy cudzys/l/ow francuski, +% \mbox{\emph{prefix}-\texttt{-}} --- \verb+\dywiz+. Na przyk/lad przy +% aktywnej deklaracji powy/zej nast/epuj/acy zapis jest poprawny: +% \begin{verbatim} +% Jan powiedzia@l: @,Marysia powiedzia@la: @<Wychyli@lam +% puchar @r@o@lto@-zielonej @r@o@lci@>@'. +% \end{verbatim} +% +% Pakiet w trakcie /ladowania nie uaktywnia notacji prefiksowej, +% poniewa/z je/zeli po nim /ladowane s/a jakie/s inne pakiety mog/loby +% to powodowa/c nieoczekiwane skutki. \DescribeMacro{\prefixing}% +% /Zeby uaktywni/c notacj/e prefiksow/a nale/zy jawnie u/zy/c +% polecenia |\prefixing|. Polecenie to jest zwyk/l/a lokaln/a +% deklaracj/a. U/zyte wewn/atrz grupy obejmuje swoim zasi/egiem tekst do +% ko/nca tej grupy. \DescribeMacro{\nonprefixing}Je/zeli +% zachodzi potrzeba wy/l/aczenia prefiksowania nale/zy u/zy/c polecenia +% |\nonprefixing|, kt/ore r/ownie/z jest deklaracj/a lokaln/a. +% +% Notacja prefiksowa nie podlega automatycznemu wy/l/aczeniu w obr/ebie +% /srodowiska \texttt{verbatim}. Jest to r/o/znica w stosunku do \MeX a, +% natomiast jest to zgodne z zachowaniem pakietu \popolsku. Zgodnie z +% argumentacj/a Mariusza Olko, taki uk/lad daje mo/zliwo/s/c uzyskania +% polskich znak/ow w obr/ebie /srodowiska \texttt{verbatim}, je/zeli za/s +% nasz/a intencj/a jest efekt jak w \MeX u, wystarczy jawnie wy/l/aczy/c +% prefiksowanie. +% +% +% \begin{small} +% \plpref\ pozwala na zastosowanie dowolnego znaku +% jako prefiksu. \DescribeMacro{\SetPrefixChar}Mo/zna to osi/agn/a/c przy +% pomocy deklaracji |\SetPrefixChar| podaj/ac jako argument znak, kt/ory +% od tej pory ma s/luzy/c jako prefiks. Oto przyk/lad sytuacji w kt/orej +% okaza/lo si/e to potrzebne (nieco egzotyczny ale prawdziwy): sk/ladamy +% w j/ezyku polskim dokumentacj/e programu komputerowego, program jest +% napisany z u/zyciem \texttt{CWEB}a. Znaki \texttt{//} i |"| maj/a +% istotne znaczenie dla j/ezyka C i ich podwajanie og/lupi/loby +% kompilator, natomiast |@| ma specjalne znaczenie dla +% \texttt{CWEB}a. W tym przypadku zastosowano do zapisywania polskich +% liter znak |`|, kt/ory szcz/e/sliwie nie by/l potrzebny do uzyskania +% cudzys/low/ow, bo tekst by/l \emph{po polsku}. +% +% Druga interesuj/aca mo/zliwo/s/c to definiowanie nowych kombinacji +% \emph{prefiks//litera}. \DescribeMacro{\Prefix} Osi/aga si/e to przy +% pomocy makra |\Prefix|. Na przyk/lad nast/epuj/ace linie definiuj/a +% kombinacj/e \emph{prefix}|<| (np. |//<| je/zeli prefiksem jest ciach) +% jako lewy cudzys/l/ow francuski, \emph{prefix}|>| jako prawy cudzys/l/ow +% francuski, natomiast \emph{prefix}|g| jako napis \texttt{g/lupi pomys/l?}. +% \begin{verbatim} +% \Prefix\let <\guillemotleft +% \Prefix\let >\guillemotright +% \Prefix\def g{g/lupi pomys/l?} +% \end{verbatim} +% Od tej pory zapis |Czy //<//zmir//lacz//> to //g| b/edzie znaczy/l +% ,,Czy \guillemotleft /zmir/lacz\guillemotright\ to g/lupi pomys/l?''. +% \end{small} +% +% \StopEventually{} +% \iffalse +%<*driver> + \documentclass{ltxdoc} +%<driver>% You may need to add an option to select font encoding here: + \usepackage[MeX]{polski} +%<driver>% Comment in next line if you don't want to print the code +%<driver>% \OnlyDescription + \begin{document} + \DocInput{plprefix.dtx} + \end{document} +%</driver> +% \fi +% \nonprefixing +% +% \language0 +% +% \section{Source code} +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e}[1996/06/01] +\ProvidesPackage{plprefix}[2003/01/09 v1.02 + Prefix notation for polish characters] +% \end{macrocode} +% \begin{macro}{\ThePrefixChar} +% Current prefix character of category 12 (other) will be saved in +% macro |\ThePrefixChar|. +% \begin{macrocode} +\newcommand\ThePrefixChar{1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\prefixing} +% +% \begin{macrocode} +\def\prefixing{\catcode\expandafter`\ThePrefixChar=\active + \bgroup \uccode`\~=\expandafter`\ThePrefixChar \uppercase{\egroup + \let~\PrefixMacro}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\nonprefixing} +% +% \begin{macrocode} +\def\nonprefixing{\catcode\expandafter`\ThePrefixChar=12 } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\SetPrefixChar} +% Now we can define operator for selecting prefix character +% \begin{macrocode} +\newcommand\SetPrefixChar[1]{% + \nonprefixing + \bgroup \uccode`2=`#1\uppercase{\egroup + \def\ThePrefixChar{2}}% + \prefixing + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PrefixMacro} +% Here we define prefix notation handler. The first thing we do is +% to check whether the prefix character is followed by an allowed +% token. The first test is for second identical character (or +% macro |\PrefixMacro|), in which case we just return a current +% prefix character with category code |<other>|. +% +% We assume that for all allowed prefix-token combinations there +% are defined macros named |\pref@<token>|. If comparison with +% |\relax| is true the macro is not defined. We issue an error +% message with some help. +% +% \begin{macrocode} +\newcommand\PrefixMacro[1]{\ifx#1\PrefixMacro + \ifx\protect\@typeset@protect\else\protect\string\fi\ThePrefixChar + \else + \expandafter\ifx\csname pref@\string#1\endcsname\relax + \PrefixingError{#1}% + \else \csname pref@\string#1\endcsname \fi\fi + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PrefixingError} +% When a prefixing error is encountered we ignore the prefix but +% leave the next token since in cases like |/\end| gobbling |/| is +% just what is needed, but gobbling both would cause a disaster. +% \begin{macrocode} +\newcommand\PrefixingError[1]{% + \ifx\protect\@typeset@protect + \PackageError{plprefix} + {The prefix-character combination + \ThePrefixChar\noexpand#1 is undefined}% + {I will ignore the prefix character.}% + \else \expandafter\protect\ThePrefixChar \fi + \expandafter\expandafter\expandafter#1% + } +% \end{macrocode} +% \end{macro} +% +% Now we can set default prefix character (slash). +% \begin{macrocode} +\SetPrefixChar\/ +\nonprefixing +% \end{macrocode} +% +% \begin{macro}{\Prefix} +% To declare prefix-character combinations we use this auxiliary +% macro. One says +% \begin{verbatim} +% \Prefix\def c{foo} +% \end{verbatim} +% to declare that prefix-|c| (eg. |/c|) should expand to +% \texttt{foo}. This can be used as well with |\let|, +% |\newcommand|, |\renewcommand|, |\ifx| etc. +% \begin{macrocode} +\newcommand\Prefix[2]{\expandafter#1\csname pref@#2\endcsname} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PlPrIeC} +% This macro is needed to protect against removing white space in +% TOC by Polish characters that have definition ending with a macro +% call (|\l| and |\L|). The macro is identical to |\IeC| from +% inputenc package, but we have to define it here not to depend on +% inputenc. The name is different not to cause conflict in case +% inputenc is loaded after plprefix. +% \begin{macrocode} +\def\PlPrIeC{% + \ifx\protect\@typeset@protect + \expandafter\@firstofone + \else + \noexpand\PlPrIeC + \fi +} +% \end{macrocode} +% \end{macro} +% +% Next come the declarations of all Polish diacritics. Polish +% characters are defined as normal accented letters, and we expect +% that they will expand according to their definitions in the +% current font encoding. +% +% Since \LaTeX\ redefines |\'| in |tabbing| environment, and prefix +% notation should work also there, we don't use |\'| but a nickname +% |\@acute| defined later on. +% \begin{macrocode} +\Prefix\def a{\k a} \Prefix\def A{\k A} +\Prefix\def c{\@acute c} \Prefix\def C{\@acute C} +\Prefix\def e{\k e} \Prefix\def E{\k E} +\Prefix\def l{\PlPrIeC{\l}} \Prefix\def L{\PlPrIeC{\L}} +\Prefix\def n{\@acute n} \Prefix\def N{\@acute N} +\Prefix\def o{\@acute o} \Prefix\def O{\@acute O} +\Prefix\def s{\@acute s} \Prefix\def S{\@acute S} +\Prefix\def x{\@acute z} \Prefix\def X{\@acute Z} +\Prefix\def z{\.z} \Prefix\def Z{\.Z} +% \end{macrocode} +% Some additional prefix combinations: +% \begin{macrocode} +\Prefix\def ,{\PlPrIeC{\quotedblbase}} +\Prefix\def '{\PlPrIeC{\textquotedblright}} +\Prefix\def <{\PlPrIeC{\guillemotleft}} +\Prefix\def >{\PlPrIeC{\guillemotright}} +\providecommand*\dywiz{% + \kern0sp\discretionary{-}{-}{-}\penalty10000\hskip0sp\relax} +\Prefix\def -{\PlPrIeC{\dywiz}} +% \end{macrocode} +% +% \begin{macro}{\prefZisZkropka} +% \begin{macro}{\prefZisZkreska} +% Two macros for toggling between notations using [prefix-|x| for +% \'z and prefix-|z| for \.z] and [prefix-|z| for \'z and +% prefix-|r| for \.z]. +% \begin{macrocode} +\newcommand\prefZisZkropka{% + \Prefix\let r\relax \Prefix\let R\relax + \Prefix\def x{\@acute z}\Prefix\def X{\@acute Z}% + \Prefix\def z{\.z}\Prefix\def Z{\.Z}% + } +\newcommand\prefZisZkreska{% + \Prefix\let x\relax \Prefix\let X\relax + \Prefix\def z{\@acute z}\Prefix\def Z{\@acute Z}% + \Prefix\def r{\.z}\Prefix\def R{\.Z}% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Package options} +% The options select requested notation for polish characters. +% +% \begin{macrocode} +\DeclareOption{/z}{\SetPrefixChar\/ \prefZisZkropka + \nonprefixing} +\DeclareOption{"z}{\SetPrefixChar\" \prefZisZkropka + \nonprefixing} +\DeclareOption{@z}{\SetPrefixChar\@ \prefZisZkropka + \catcode`\@=11} +\DeclareOption{/r}{\SetPrefixChar\/ \prefZisZkreska + \nonprefixing} +\DeclareOption{"r}{\SetPrefixChar\" \prefZisZkreska + \nonprefixing} +\DeclareOption{@r}{\SetPrefixChar\@ \prefZisZkreska + \catcode`\@=11} +% \end{macrocode} +% +% Font encoding current at begining of document can be assumed +% default for document so we will define the nickname for |\'| then +% (it will be slightly faster in this encoding). +% \begin{macrocode} +\ProcessOptions +\AtBeginDocument{\let\@acute\'} +%</package> +% \end{macrocode} +% +% \Finale +% +% \endinput +% \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 \~} diff --git a/Master/texmf-dist/source/latex/platex/base/plprefix.ins b/Master/texmf-dist/source/latex/platex/base/plprefix.ins new file mode 100644 index 00000000000..41892f9f498 --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/plprefix.ins @@ -0,0 +1,8 @@ +\def\batchfile{plprefix.ins} +\input docstrip +\preamble +\endpreamble + +\generate{\file{plprefix.sty}{\from{plprefix.dtx}{package}}} + +\endinput diff --git a/Master/texmf-dist/source/latex/platex/base/polski.dtx b/Master/texmf-dist/source/latex/platex/base/polski.dtx new file mode 100644 index 00000000000..ca5fd563f0a --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/polski.dtx @@ -0,0 +1,1389 @@ +% \iffalse meta-comment -*- doctex -*- +% +% Copyright (C) 1994 by Mariusz Olko. All rights reserved. +% Copyright (C) 1997,1998 by Mariusz Olko and Marcin Woli\'nski. +% Copyright (C) 2000,2001,2003 by Marcin Woli\'nski. +% All rights reserved. +% +% This file is part of the package `PLaTeX' +% ------------------------------------------------------------------ +% +% The file may be distributed under the terms of the LaTeX Project +% Public License, as described in lppl.txt in the base LaTeX +% distribution. Either version 1.2 or, at your option, any later +% version. +% +% \fi +% \iffalse +%<*driver> +\documentclass{ltxdoc} +%\errorcontextlines=1000 +\usepackage[MeX]{polski} +\makeatletter +\DeclareRobustCommand\PLaTeX{% after latex.dtx + P\kern-.08em L\kern-.36em + {\setbox0\hbox{T}% + \vbox to\ht0{\hbox{% + \csname S@\f@size\endcsname + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A} + \vss}% + }% + \kern-.15em + \TeX\@}% +\makeatother +%<driver>% Comment next line if you want to print the code +%<driver>%\OnlyDescription +\def\parsedate#1/#2/#3.{\day=#3 \month=#2 \year=#1 } +\parsedate 2003/05/09. +\author{\begin{tabular}[t]{c} + Mariusz Olko\\[4pt] + Litter\ae\\ + G\'orczewska 94\Slash96\Slash7\\ + 01--117 Warszawa\\ + \textsf{M.Olko@Litterae.com.pl}\\ + \end{tabular} +\hskip20pt +\begin{tabular}[t]{c} + Marcin Woli\'nski\\[4pt] + \textsf{wolinski@gust.org.pl}\\ +\end{tabular} +}%\\[4pt] + +\title{\LaTeXe\ po polsku czyli \PLaTeX\\ + wersja 1.3.1} + +\begin{document} +\maketitle +\tableofcontents +\DocInput{polski.dtx} +\end{document} +% +%</driver> +% +% \fi +% +% \CheckSum{1170} +% +% \def\PostScript{\textsc{PostScript}} +% \def\Polski{\textsc{Polski}} +% \def\polski{\textsc{polski}} +% \def\popolsku{P\LaTeX} +% \def\Babel{\textsc{Babel}} +% +% \prefixing +% \section{Informacje dla u/zytkownik/ow} +% \subsection{Kr/otki obraz ca/lo/sci} +% +% Pakiet \popolsku\ sk/lada si/e z kilku zasadniczych cz/e/sci. +% \begin{itemize} +% +% \item +% Pierwsz/a z nich stanowi/a pliki opisu czcionek maj/ace standardowo +% rozszerzenie |.fd|, a generowane przez program \textsf{DocStrip} z pliku +% |plfonts.fdd|. Znajduj/a si/e w nich informacje na temat czcionek +% |pl| czyli polskich wersji czcionek Computer Modern +% (dystrybuowanych z \LaMeX em) oraz czcionek |pc| czyli polskich +% wersji czcionek Computer Concrete. Dzi/eki zawartym tam informacjom +% czcionki te staj/a si/e dost/epne w Nowym Mechani/xmie Wyboru +% Czcionek (\emph{ang.} New Font Selection Scheme). +% Z pliku |plfonts.fdd| mo/zna wygenerowa/c pliki opisu +% czcionek zar/owno w Starym Uk/ladzie (OT1) jak i w Uk/ladzie Polskim +% (OT4). +% \iffalse +% Dodatkowo istnieje mo/zliwo/s/c wygenerowania plik/ow |fd|, kt/ore w +% miejsce czcionek Computer Modern w Starym Uk/ladzie podstawi/a +% odpowiednie wersje polskie. Podstawienie takie jest ingerencj/a w +% cz/e/s/c standardowego \LaTeX{}a i mo/ze, w bardzo rzadkich +% przypadkach, da/c inne wyniki sk/ladu ni/z przy u/zyciu oryginalnych +% czcionek Computer Modern. +% \fi +% +% \item +% Druga cz/e/s/c plik/ow zwi/azana jest z konfiguracj/a \LaTeX{}a. +% Na razie w sk/lad pakietu wchodzi jedynie cz/e/s/c pozwalaj/aca +% na do/l/aczenie do standardowego \LaTeX{}a polskich wzorc/ow +% przenoszenia wyraz/ow. Do tego celu zosta/l przewidziany w \LaTeX u +% plik o nazwie |hyphen.cfg|. Je/zeli podczas generowania formatu +% \LaTeX\ ma dost/ep do tego pliku, to u/zyje go zamiast swojego +% standardowego pliku /laduj/acego wzorce przenoszenia. +% W pakiecie dostarczony jest plik |hyphen.cfg| wzorowany na podobnym +% pliku z pakietu \Babel. Wczytuje on informacje o wzorcach, kt/ore +% maj/a by/c za/ladowane do formatu, z pliku |language.dat|. Na +% pocz/atku tego pliku znajduje si/e szczeg/o/lowy opis jego formatu. +% +% Wzorce przenoszenia, kt/ore znajduj/a si/e w pliku |plhyph.pl| s/a +% tymi samymi wzorcami przenoszenia, kt/ore znajduj/a si/e w ostatnich +% wersjach \MeX a. +% +% \item +% Ostatni/a cz/e/sci/a sk/ladow/a pakietu jest styl |polski.sty|, +% kt/ory dostarcza wszystkich (?) element/ow potrzebnych do sk/ladu +% w j/ezyku polskim. Pozwala na stosowanie w r/o/znych +% /srodowiskach, z polskimi wzorcami przenoszenia i bez, z polskimi +% czcionkami i bez. Posiada te/z mo/zliwo/s/c upodobnienia si/e na +% poziomie komend w 99\% do \LaMeX{}a. Jego szczeg/o/lowy opis znajduje +% si/e w nast/epnym rozdziale. +% +% \end{itemize} +% +% W pakiecie \popolsku\ wykorzystane zosta/ly wzorce przenoszenia +% wyraz/ow, kt/orych autorami s/a Hanna Ko/lodziejska, Marek Ry/cko i +% Bogus/law Jackowski. Sam kod stylu \polski ego bazuje na kodzie +% zawartym w pakiecie \MeX//\LaMeX\ autorstwa Marka Ry/cko i Bogus/lawa +% Jackowskiego. +% +% \subsection{Jak dzia/la styl \polski} +% +% Po za/ladowaniu stylu zmienione zostaj/a wewn/etrzne +% kody \TeX a dla odno/snych liter polskiego alfabetu w Nowym +% Uk/ladzie (T1). Te zmiany pozwalaj/a na definiowanie makrokomend, kt/ore +% maj/a w nazwie polskie litery, umo/zliwiaj/a prawid/low/a zamian/e +% liter ma/lych na du/ze, a tak/ze pozwalaj/a algorytmowi przenoszenia +% wyraz/ow traktowa/c polskie litery jako litery. Nast/epnie podj/ete +% zostaje poszukiwanie polskich wzorc/ow przenoszenia, kt/ore +% sprowadza si/e do sprawdzenia czy jest zdefiniowane makro |\polish| +% lub |\l@polish|. Pierwsze z nich jest definiowane w pliku +% |hyphen.cfg| dostarczonym z pakietem (a'la \MeX), drugie za/s jest +% definiowane standardowo dla j/ezyka polskiego przez format \Babel. +% Je/zeli makra (wzorce przenoszenia) nie zostan/a znalezione, \polski{} +% styl wypisuje na ekranie stosowne ostrze/zenie, je/zeli zostan/a to +% s/a u/zyte do prze/l/aczenia wzorc/ow przenoszenia na polskie. +% +% W kolejnym kroku zdefiniowana zostaje notacja /,ciachowa/'. Notacja +% ta, wprowadzona w \MeX u przez Ry/ck/e i Jackowskiego, pozwala na +% zapisywanie polskich liter w postaci dw/och znak/ow \textit{ciach} +% oraz \textit{litera}. Taki zapis pozwala na przesy/lanie tekst/ow +% poczt/a elektroniczn/a oraz na prac/e w miejscach gdzie nie ma +% wbudowanego w system wsparcia dla j/ezyka polskiego (wi/ekszo/s/c +% instalacji \texttt{UNIX}owych). Styl \polski\ uzyskuje wszystkie +% polskie litery zdefiniowane w standardowym \TeX u (tj. \textit{/o, +% /z} czy \textit{/l}) przy pomocy standardowych makr \TeX a +% (tzn. np. |\'o|, |\.z| czy te/z |\l|), natomiast litery takie jak +% \textit{/a} czy \textit{/e} za pomoc/a standardowego makra \LaTeX +% owego |\k|. Ca/la dalsza /l/aczno/s/c pomi/edzy komend/a +% \textit{ciach litera} a wydrukowanym znakiem jest zapewnione poprzez +% definicje uk/lad/ow czcionek. To w/la/snie w tych plikach jest +% zdefiniowane, /ze np. w Starym Uk/ladzie (OT1) liter/e \textit{/o} +% otrzymuje si/e przez z/lo/zenie akcentu \textit{\symbol{19}} oraz +% litery \textit{o} natomiast w Uk/ladach Nowym (T1) oraz Polskim +% (OT4) przez postawienie znaku o kodzie 161. Daje to du/z/a +% elastyczno/s/c i pozwala na bardzo /latwe u/zycie czcionek w +% dowolnym sensownym uk/ladzie. Do korzystania z czcionek |pl| +% zdefiniowany zosta/l nowy uk/lad czcionek nazwany |OT4|. +% Szczeg/o/lowe informacje o funkcjonowania uk/lad/ow czcionek mo/zna +% znale/x/c w plikach standardowej dystrybycji \LaTeX a |ltoutenc.dtx| +% oraz |fntguide.tex|. +% +% \Polski{} styl pozwala na sk/lad z r/o/znymi zestawami czcionek w +% r/o/znych uk/ladach. Pocz/atkowy uk/lad czcionek dokumentu mo/ze +% zosta/c wybrany przez dodanie do wywo/lania pakietu odpowiednich +% opcji (patrz~\ref{uzycie}) lub u/zycie standardowego stylu +% |fontenc|. +% Je/sli jednak nie zmieniono +% pocz/atkowego uk/ladu, \polski{} styl pr/obuje odszuka/c w +% systemie plik |ot4cmr.fd|, zawieraj/acy \LaTeX{}owe opisy czcionek +% |pl|. Je/zeli taki plik zostanie znaleziony, czynione jest +% za/lo/zenie, /ze w systemie zainstalowane s/a r/ownie/z same +% czcionki |pl| i styl sam zmienia pocz/atkowy uk/lad na |OT4|. +% Je/sli plik nie zostanie odszukany, to uk/lad pozostaje bez zmian. +% +% +% \Polski{} styl przedefiniowuje wszystkie napisy, kt/ore +% mog/a pojawi/c si/e wygenerowane \emph{automatycznie} przez \LaTeX +% a, takie jak: rozdzia/l, spis tre/sci itp. Zmieniona zostaje te/z +% definicja makra |\date| tak, aby data by/la drukowana po polsku. +% Poniewa/z w niekt/orych sytuacjach na ko/ncu daty pisze si/e ca/le +% s/lowo ,,roku'', czasami tylko sam/a liter/e ,,r.'', a~czasami nic, +% wprowadzone zosta/lo makro |\PLdateending|, kt/ore rozwija si/e +% zaraz za rokiem i~w~razie potrzeby mo/ze zosta/c /latwo +% przedefiniowane. Co wi/ecej zachowanie makra |\today| mo/zna +% zmieni/c za pomoc/a nast/epuj/acych opcji pakietu: |roku|, |r.|, +% |noroku| (ta ostatnia jest domy/slna, wi/ec +% domy/slnie po numerze roku nie jest nic dodawane). +% +% Dodatkowo styl definiuje makro |\dywiz|, kt/ore pozwala na +% poprawne przeniesienie wyraz/ow z/lo/zonych zapisanych jako +% |bia/lo\dywiz czerwony| i dzielonych jako +% \begin{quote} +% bia/lo-\\-czerwony. +% \end{quote} +% +% Kolejny problem to pauzy (my/slniki). Wed/lug polskich zwyczaj/ow +% my/slnik powinien by/c otoczony odst/epami wielko/sci 2pt, oraz nie +% nale/zy rozpoczyna/c wiersza tekstowego my/slnikiem. Zalecenia te +% realizuje makro |\pauza|. Makro to zawiera w~sobie potrzebne +% odst/epy, nale/zy wi/ec go u/zywa/c nast/epuj/aco: +% \begin{verbatim} +% By/lo zbyt ciemno\pauza powiedzia/la. +% \end{verbatim} +% Uwaga: definicj/e tego makra traktujemy jako prowizoryczn/a. Mo/ze +% ulec zmianie! +% +% W polskich zwyczajach typograficznych odst/ep po kropce mi/edzy +% zdaniami powinien by/c taki sam jak pomi/edzy +% wyrazami w /srodku zdania, dlatego styl wo/la makro |\frenchspacing|. +% +% Pewne zmiany dotycz/a r/ownie/z matematyki. +% Najwa/zniejszymi r/o/znicami w~sk/ladzie pomi/edzy matematycznymi +% wydawnictwami polskimi +% i~angielskoj/ezycznymi jest inny kszta/lt znak/ow +% \textit{mniejsze\dywiz r/owne} i \textit{wi/eksze\dywiz r/owne} oraz +% inne skr/oty stosowane na oznaczenie tangensa, cotangensa i funkcji +% transcendentalnych. Zmian/a kszta/ltu znak/ow +% \textit{mniejsze\dywiz r/owne} i \textit{wi/eksze\dywiz r/owne} +% jest dokonywana wtedy, je/sli dost/epne s/a matematyczne czcionki |pl|. +% Standardowo styl \polski{} definiuje nowe makra |\tg|, |\tgh|, +% |\ctg|, |\ctgh|, |\arc| oraz |\nwd| a nast/epnie\pauza uwaga\pauza zmienione +% zostaj/a +% symbole drukowane przez standardowe makra \LaTeX a |\tan|, |\cot|, +% |\tanh|, |\coth|, |\arcsin|, |\arccos|, |\arctan|, |\gcd|. Dla pe/lno/sci +% jest te/z definiowane makro |\arccot|, kt/orego z~tajemniczych +% przyczyn nie ma w~wersji oryginalnej. +% Przedefiniowanie tych makr pozwala na +% cytowanie tych samych wzor/ow w pracy polskiej i angielskiej bez +% konieczno/sci zmieniania ich zapisu. +% Standardowe symbole s/a zmieniane poniewa/z \LaTeX\ (czy te/z \TeX) +% dawno przesta/l by/c tylko systemem sk/ladu. Sta/l si/e obecnie +% j/ezykiem, w kt/orym zapisywane s/a wzory matematyczne i jest bardzo +% wa/zne jest aby, je/sli jest to mo/zliwe, nie zmienia/c +% ,,standardu'' zapisu tego j/ezyka, lecz co najwy/zej dostosowywa/c +% spos/ob w jaki jest on prezentowany na wydruku. +% +% +% \subsection{Do/l/aczenie \polski{}ego stylu do dokumentu} +% \label{uzycie} +% +% Styl \polski\ jest /ladowany przez +% umieszczenie w preambule dokumentu zlecenia +% \begin{verbatim} +% \usepackage[opcje]{polski}\end{verbatim} +% U/zycie w wywo/laniu stylu opcji pozwala na dopasowanie jego +% zachowania do istniej/acego /srodowiska i potrzeb. +% \begin{description} +% \item[OT1] /swiadomie nie chcemy zmienia/c uk/ladu czcionek z +% uk/ladu podstawowego wbudowanego w \LaTeX{}a. +% \item[OT4] prze/l/acza uk/lad czcionek na polski (OT4). Oznacza +% to, /ze w dokumencie b/ed/a wykorzystane czcionki +% |pl|. +% \item[T1] zmienia uk/lad czcionek na Nowy Uk/lad Czcionek. Opcja +% jest wygodna np. w po/l/aczeniu z pakietem czcionek +% \PostScript{}owych w uk/ladzie T1. +% \item[QX] zmienia uk/lad czcionek na QX. U/zyteczna przy sk/ladzie +% fontami produkcji JNS Team: QuasiTimes, QuasiSwiss, QuasiBookman itd. +% \item[plmath] prze/l/acza czcionki matematyczne na |pl|, tzn. +% przedefiniowuje alfabety matematyczne i zestawy symboli. Dodatkowo +% zmienia \LaTeX ow/a definicj/e symboli wi/eksze\dywiz r/owne oraz +% mniejsze\dywiz r/owne. +% \item[nomathsymbols] blokuje spolonizowanie przez styl znaczenia +% standardowych \LaTeX{}owych symboli okre/slaj/acych funkcje +% trygonometryczne oraz relacje wi/eksze\dywiz r/owne i mniejsze\dywiz +% r/owne +% \item[prefixinginverb] powoduje, /ze notacja prefiksowa nie jest +% wy/l/aczana w~obr/ebie /srodowiska \texttt{verbatim} i~w~argumencie +% polecenia \cs{verb}. (Domy/slnie aktywna). +% \item[noprefixinginverb] powoduje, /ze notacja prefiksowa jest +% wy/l/aczana w~tych kontekstach. +% \item[MeX] jest to tryb 100\% zgodno/sci z \MeX em. Ta opcja +% definiuje wszystkie makra, kt/ore s/a normalnie dost/epne dla +% u/zytkownika w \MeX u. Pozwala to na kompilacj/e dokument/ow \MeX +% owych bez dokonywania /zadnych zmian. +% \end{description} +% +% Je/zeli nie u/zyto /zadnej z opcji wyboru uk/ladu font/ow, +% \texttt{polski.sty} pr/obuje w/l/aczy/c fonty PL, je/zeli s/a one +% zainstalowane. Dotyczy to zar/owno font/ow tekstowych, jak i +% matematycznych. W~instalacji zawieraj/acej fonty PL wywo/lanie pakietu +% bez opcji jest r/ownowa/zne wywo/laniu +% \begin{verbatim} +% \usepackage[OT4,plmath]{polski} +% \end{verbatim} +% +% Opcja \texttt{OT1} s/lu/zy do powiedzenia pakietowi, /ze u/zytkownik +% /swiadomie u/zywa uk/ladu nie zawieraj/acego kompletu znak/ow potrzebnych +% do sk/ladu po polsku. +% +% \StopEventually{} +% +% Dalsza cz/e/s/c dokumentu opisuje kod samego stylu oraz plik/ow +% potrzebnych do instalacji czcionek polskich i wzorc/ow przenoszenia +% w \LaTeX u. Dokumentacja jest w j/ezyku angielskim. +% \nonprefixing +% \selecthyphenation{english} +% +% \iffalse=============================================================\fi +% \section{Source code of \texttt{polski.sty}} +% \subsection{Writing banners} +% This package should work only with \LaTeXe, so we make sure the +% appropriate message is displayed when another \TeX\ format is used. +% \begin{macrocode} +%<*style> +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +% \end{macrocode} +% Announce the name of the package to the world +% \begin{macrocode} +\ProvidesPackage{polski}[2003/05/09 v1.3.1 Polish language package] +% \end{macrocode} +% and write its banner on the display +% \begin{macrocode} +\typeout{Document Language Style `polski' v1.3.1 <2003/05/09>} +% \end{macrocode} +% \subsection{Category codes and all that} +% Here we will define the codes for Polish diacritical +% characters. There are several codes we need to set for each of them. +% The most important one is the category code (|catcode|), which +% identifies the character as a letter to \TeX. +% Other codes to set are lowercase and +% uppercase equivalents (|lccode| and |uccode|) used to determine the +% proper character when lower and upper casing the string. These are +% now properly set in the kernel. +% \begin{macrocode} +\@ifpackageloaded{inputenc}{\typeout{\space\space\space + Inputenc package detected. Catcodes not changed.}}{% +\catcode`\^^a1=11 %\lccode`\^^a1=`\^^a1 \uccode`\^^a1=`\^^81 % a ogonek +\catcode`\^^a2=11 %\lccode`\^^a2=`\^^a2 \uccode`\^^a2=`\^^82 % c acute +\catcode`\^^a6=11 %\lccode`\^^a6=`\^^a6 \uccode`\^^a6=`\^^86 % e ogonek +\catcode`\^^aa=11 %\lccode`\^^aa=`\^^aa \uccode`\^^aa=`\^^8a % l crossed +\catcode`\^^ab=11 %\lccode`\^^ab=`\^^ab \uccode`\^^ab=`\^^8b % n acute +\catcode`\^^f3=11 %\lccode`\^^f3=`\^^f3 \uccode`\^^f3=`\^^d3 % o acute +\catcode`\^^b1=11 %\lccode`\^^b1=`\^^b1 \uccode`\^^b1=`\^^91 % s acute +\catcode`\^^bb=11 %\lccode`\^^bb=`\^^bb \uccode`\^^bb=`\^^9b % z dot +\catcode`\^^b9=11 %\lccode`\^^b9=`\^^b9 \uccode`\^^b9=`\^^99 % z acute +% \end{macrocode} +% Now the same for uppercase letters. +% \begin{macrocode} +\catcode`\^^81=11 %\lccode`\^^81=`\^^a1 \uccode`\^^81=`\^^81 % A ogonek +\catcode`\^^82=11 %\lccode`\^^82=`\^^a2 \uccode`\^^82=`\^^82 % C accute +\catcode`\^^86=11 %\lccode`\^^86=`\^^a6 \uccode`\^^86=`\^^86 % E ogonek +\catcode`\^^8a=11 %\lccode`\^^8a=`\^^aa \uccode`\^^8a=`\^^8a % L crossed +\catcode`\^^8b=11 %\lccode`\^^8b=`\^^ab \uccode`\^^8b=`\^^8b % N accute +\catcode`\^^d3=11 %\lccode`\^^d3=`\^^f3 \uccode`\^^d3=`\^^d3 % O acute +\catcode`\^^91=11 %\lccode`\^^91=`\^^b1 \uccode`\^^91=`\^^91 % S acute +\catcode`\^^9b=11 %\lccode`\^^9b=`\^^bb \uccode`\^^9b=`\^^9b % Z dot +\catcode`\^^99=11 %\lccode`\^^99=`\^^b9 \uccode`\^^99=`\^^99 % Z acute +} +% \end{macrocode} +% We finish by setting space factor codes (|sfcode|) for uppercase +% letters. When French spacing is turned off, \TeX\ treats interword +% spacing after full stop in a special manner. If the last character before +% the period is lowercase letter then \TeX\ assumes it is the end of the +% sentence, and makes the space wider (and more stretchable). +% However, if the last letter is uppercase, then \TeX\ assumes it is an +% abbreviation and doesn't widen the space. (This is not the whole +% truth. Consult the \TeX book pages 285--287 for details.) We set +% |sfcode| for Polish capital letters. +% \begin{macrocode} +\sfcode`\^^81=999 % A ogonek +\sfcode`\^^82=999 % C acute +\sfcode`\^^86=999 % E ogonek +\sfcode`\^^8a=999 % L crossed +\sfcode`\^^8b=999 % N acute +\sfcode`\^^d3=999 % O acute +\sfcode`\^^91=999 % S acute +\sfcode`\^^9b=999 % Z dot +\sfcode`\^^99=999 % Z acute +% \end{macrocode} +% This provides for \mathit and friends to work correctly for Polish +% characters (when used with TCX). +% \begin{macrocode} +\DeclareMathSymbol{^^a1}{\mathalpha}{letters}{`^^a1} +\DeclareMathSymbol{^^a2}{\mathalpha}{letters}{`^^a2} +\DeclareMathSymbol{^^a6}{\mathalpha}{letters}{`^^a6} +\DeclareMathSymbol{^^aa}{\mathalpha}{letters}{`^^aa} +\DeclareMathSymbol{^^ab}{\mathalpha}{letters}{`^^ab} +\DeclareMathSymbol{^^f3}{\mathalpha}{letters}{`^^f3} +\DeclareMathSymbol{^^b1}{\mathalpha}{letters}{`^^b1} +\DeclareMathSymbol{^^bb}{\mathalpha}{letters}{`^^bb} +\DeclareMathSymbol{^^b9}{\mathalpha}{letters}{`^^b9} +\DeclareMathSymbol{^^81}{\mathalpha}{letters}{`^^81} +\DeclareMathSymbol{^^82}{\mathalpha}{letters}{`^^82} +\DeclareMathSymbol{^^86}{\mathalpha}{letters}{`^^86} +\DeclareMathSymbol{^^8a}{\mathalpha}{letters}{`^^8a} +\DeclareMathSymbol{^^8b}{\mathalpha}{letters}{`^^8b} +\DeclareMathSymbol{^^d3}{\mathalpha}{letters}{`^^d3} +\DeclareMathSymbol{^^91}{\mathalpha}{letters}{`^^91} +\DeclareMathSymbol{^^9b}{\mathalpha}{letters}{`^^9b} +\DeclareMathSymbol{^^99}{\mathalpha}{letters}{`^^99} +% \end{macrocode} +% +% +% \subsection{Hyphenation} +% +% \begin{macro}{\selecthyphenation} +% \changes{v1.01}{1998/04/20}{Macro added} +% \changes{v1.02}{2000/05/16}{New langauage allocated only if undefined. +% Name changed to be Babel compatible.} +% Here we define the hyphenation selecting operator. If a set of +% hyphenation patterns for a particular language is unavaiable, +% hyphenation in that language is turned off. For that we use +% following trick: a new language is allocated with no +% hyphenation patterns. Then switching to this language +% effectively switches hyphenation off (many thanks to Marek +% Ry\'cko). +% \begin{macrocode} +\ifx\l@nohyphenation\@undefined + \newlanguage\l@nohyphenation +\fi +\def\selecthyphenation#1{% + \expandafter\ifx\csname l@#1\endcsname\relax + \PackageError{polski}{No hyphenation patterns for language `#1'} + {Hyphenation in this language will be disabled.}% + \selecthyphenation{nohyphenation}% + \else + \language\csname l@#1\endcsname + \fi + } +% \end{macrocode} +% \end{macro} +% +% We try to switch to polish hyphenation patterns looking either for +% patterns name used by |hyphen.cfg| from old versions of \popolsku{} +% bundle or for new Babel-like name. +% \begin{macrocode} +\ifx\polish\undefined + \selecthyphenation{polish} +\else + \language\polish +\fi +\lefthyphenmin=2 +\righthyphenmin=2 +% \end{macrocode} +% \subsection{Slash notation} +% +% The slash notation was introduced in the macro package +% {L\kern-.111em\lower.6ex\hbox{E}\kern-.075emX} by +% Bogus\l{}aw Jackowski and Marek Ry\'cko. It has been used since then in +% many places and became Polish \TeX{} User's Group GUST ``standard''. +% What follows is the implementation of active slash or Polish slash macro. +% +% \DescribeMacro{\Slash} We start by storing slash character +% (catcode 12 meaning |<other>|) in apropriately named macro. +% \begin{macrocode} +\def\Slash{/} +% \end{macrocode} +% \DescribeMacro{\PLSlash} Now we define macro |\PLSlash| which will +% actually be used in input files to access polish letters. It does +% not need to be robust. If it is, it breaks kerns +% (pointed out by Marcin Woli\'nski). +% \changes{v1.2.3}{2002/03/05}{// caused errors in TOC if used with +% \cs{prefixing}} +% \begin{macrocode} +\def\PLSlash#1{% +% \end{macrocode} +% The first thing we do is to check whether +% the slash character is followed by an allowed character. The first test +% is for the second slash (or macro |\PLSlash|), in which case we just +% return \emph{slash} character with category code |<other>|. +% \begin{macrocode} + \ifx#1\PLSlash + \ifx\protect\@typeset@protect\else\protect\string\fi\Slash + \else +% \end{macrocode} +% If it was not a slash we test for a letter. We +% assume that there are defined macros which expand to the current +% definitions of Polish letters. We will give them names +% |\PLSlash@<character>|, so now we look if it is defined. +% If comparison with +% |\relax| is true the macro is not defined. We issue an error +% message with some help. +% \begin{macrocode} + \expandafter \ifx \csname PLSlash@\string#1\endcsname \relax + \PLSlash@error#1% + \else +% \end{macrocode} +% If we got here, we can now expand polish character. However, we +% do that after completing all |\if|s. +% \begin{macrocode} + \expandafter\expandafter\expandafter\PLSlash@letter + \expandafter\expandafter\expandafter#1% + \fi + \fi +} + +\def\PLSlash@error#1{\PackageError{polski}{% +Illegal pair of characters /\noexpand#1 occurred}{% +Only a character from the set [acelnosxzACELNOSXZ,'<>/-] + can appear after \Slash.\MessageBreak +Proceed, I will omit both \Slash\ and the character following it.\MessageBreak +You can also correct your mistake NOW, typing I followed by\MessageBreak +whatever should be in the place of the offending pair.}} +% \end{macrocode} +% +% \begin{macro}{\PlPrIeC} +% This macro is needed to protect against removing white space in +% TOC by Polish characters that have definition ending with a macro +% call (|\l| and |\L|). The macro is identical to |\IeC| from +% inputenc package, but we have to define it here not to depend on +% inputenc. The name is different not to cause conflict in case +% inputenc is loaded after plprefix. +% \begin{macrocode} +\def\PlPrIeC{% + \ifx\protect\@typeset@protect + \expandafter\@firstofone + \else + \noexpand\PlPrIeC + \fi +} +% \end{macrocode} +% \end{macro} +% +% \DescribeMacro{\PLSlash@letter} This macro is very simple: it just +% invokes another macro with some wild name. +% \begin{macrocode} +\def\PLSlash@letter#1{\csname PLSlash@#1\endcsname} +% \end{macrocode} +% +% Next come the definitions of all Polish diacritics and special symbols. +% For each ``slashed'' character we define a macro expanding to its +% proper definition. +% Polish characters are defined as normal accented +% letters, and we expect that they will expand according to their +% definitions in the current font encoding. This allows us to use the +% same slash notation with any (decent) font encoding. For example +% T1 and OT4 encodings will use letters, but OT1 will do what it can% +% ---ie.~insert simple accented characters (with |a| and |e| left +% untouched). For more information on +% the work of encoding engine consult \LaTeX\ file +% \texttt{ltoutenc.dtx}. +% +% The following macro is just a helper which will be undefined after use. +% \begin{macrocode} +\def\PL@accent@def#1#2{% + \expandafter\def \csname PLSlash@\string #1\endcsname{#2}} +% \end{macrocode} +% The real definition will take place at the beginning of the document. +% This is small optimization. We assume that the encoding at this +% stage is what will be default for the rest of the document. If +% document starts in OT1 encoding we warn user that he can loose some +% information from the printout. +% \begin{macrocode} +\PL@accent@def{a}{\k a} +\PL@accent@def{c}{\@tabacckludge'c} +\PL@accent@def{e}{\k e} +\PL@accent@def{l}{\PlPrIeC{\l}} +\PL@accent@def{n}{\@tabacckludge'n} +\PL@accent@def{o}{\@tabacckludge'o} +\PL@accent@def{s}{\@tabacckludge's} +\PL@accent@def{x}{\@tabacckludge'z} +\PL@accent@def{z}{\.z} +\PL@accent@def{A}{\k A} +\PL@accent@def{C}{\@tabacckludge'C} +\PL@accent@def{E}{\k E} +\PL@accent@def{L}{\PlPrIeC{\L}} +\PL@accent@def{N}{\@tabacckludge'N} +\PL@accent@def{O}{\@tabacckludge'O} +\PL@accent@def{S}{\@tabacckludge'S} +\PL@accent@def{X}{\@tabacckludge'Z} +\PL@accent@def{Z}{\.Z} +\PL@accent@def{<}{\PlPrIeC{\guillemotleft}} +\PL@accent@def{>}{\PlPrIeC{\guillemotright}} +\PL@accent@def{,}{\PlPrIeC{\quotedblbase}} +\PL@accent@def{'}{\PlPrIeC{\textquotedblright}} +\PL@accent@def{-}{\PlPrIeC{\dywiz}} +% +\let \PL@accent@def \undefined +% \end{macrocode} +% +% \DescribeMacro{\prefixing} The last touch is the definition of +% the |\prefixing| macro which activates the slash, but only if +% |plprefix| package was't loaded before. We manage prefixing flag +% |\pr@fix| for compatibility with \MeX. +% \begin{macrocode} +\@ifpackageloaded{plprefix}{}{% + \def\prefixing{\catcode`/=\active + \bgroup \uccode`\~=`/ \uppercase{\egroup \let~\PLSlash}% + \let\pr@fix=T} +% \end{macrocode} +% \DescribeMacro{\nonprefixing} and |\nonprefixing| macro which +% deactivates the slash. +% \begin{macrocode} + \def\nonprefixing{\catcode`/=12 \let\pr@fix=F} +} +% \end{macrocode} +% +% \subsection{Maths in Polish} +% \label{redefining-maths} +% +% The next few macros are provided to typeset maths in Polish. +% +% \DescribeMacro{\arc} In Polish, transcendental functions are written +% with a tiny space after |arc| or |ar|. Here we define macro |\arc| which +% when followed by eg. |\sin| typesets $\arc\sin$. +% \begin{macrocode} +\def\arc#1{\mathop{\operator@font + arc\thinspace\escapechar-1 \string#1}\nolimits} +\def\ar#1{\mathop{\operator@font + ar\thinspace\escapechar-1 \string#1}\nolimits} +% \end{macrocode} +% +% \DescribeMacro{\tg}\DescribeMacro{\tgh} +% \DescribeMacro{\ctg}\DescribeMacro{\ctgh} +% We also use different abbreviations for tangent and +% cotangent. +% \begin{macrocode} +\def\tg{\mathop{\operator@font tg}\nolimits} +\def\ctg{\mathop{\operator@font ctg}\nolimits} +\def\tgh{\mathop{\operator@font tgh}\nolimits} +\def\ctgh{\mathop{\operator@font ctgh}\nolimits} +\def\nwd{\mathop{\operator@font nwd}} +% \end{macrocode} +% +% Finally we take a drastic step and redefine \LaTeX's definitions +% of mathematical functions. This will allow us to keep the markup +% independent of the language in which the document is typeset. We think +% that this is very important, because \TeX\ is today much more than +% just a typesetting tool, it is also a language which is used to exchange +% mathematical formul\ae. Redefinition will be suppressed when option +% \texttt{nomathsnames} is used. +% \begin{macrocode} +\def\PL@redef@funcnames{% + \let\tan=\tg \let\cot=\ctg + \let\tanh=\tgh \let\coth=\ctgh + \def\arcsin{\arc\sin} + \def\arccos{\arc\cos} + \def\arctan{\arc\tg} + \def\arccot{\arc\ctg} + \let\gcd\nwd + } +% \end{macrocode} +% These redefinitions should be supplemented by appropriate +% greater-than-or-equal and less-than-or-equal symbols. They are +% introduced by the |plmath| option or autodetection, when we are sure +% we have those symbols available in our fonts. +% +% +% \subsection{Dashes} +% +% \DescribeMacro{\dywiz} +% When a Polish compound word is split at the hyphen, it should be +% typeset with two hyphens: one at the end of line and the second at +% the beginning of the new line. We provide macro +% |\dywiz| which gives proper hyphenation of compound words. Kerns +% before and after |\discretionary| allow both parts of the word to be +% considered for hyphenation. +% \begin{macrocode} +\def\dywiz{\kern0sp\discretionary{-}{-}{-}\penalty10000\hskip0sp\relax} +% \end{macrocode} +% +% +% \begin{macro}{\pauza} +% Polish typographical rules require to put a fixed space of .2em +% around dashes and forbid breaking a line before a dash. +% \begin{macrocode} +\newcommand*\pauza{\unskip\kern.2em\textemdash\hskip.2em\ignorespaces} +\newcommand*\ppauza{\unskip\kern.2em\textendash\hskip.2em\ignorespaces} +% \end{macrocode} +% \end{macro} +% +% \subsection{Teaching \LaTeX\ to speak Polish} +% +% In early versions of \LaTeX\ there were problems when one wanted to +% customize predefined texts which were inserted automatically by +% \LaTeX (such as \emph{Bibliography} or \emph{Chapter}). They were all +% hidden deep in the definitions of sectioning or other commands. Now +% they are all defined as simple macros which can easily be redefined +% in language packages. We will do that here. +% \begin{macrocode} +\def\prefacename{Przedmowa} +\def\refname{Literatura} +\def\abstractname{Streszczenie} +\def\bibname{Bibliografia} +\def\chaptername{Rozdzia\PLSlash l} % uppercasing in running head must work +\def\appendixname{Dodatek} +\def\contentsname{Spis tre\'sci} +\def\listfigurename{Spis rysunk\'ow} +\def\listtablename{Spis tabel} +\def\indexname{Skorowidz} +\def\figurename{Rysunek} +\def\tablename{Tabela} +\def\partname{Cz\k e\'s\'c} +\def\enclname{Za\l\k aczniki} +\def\ccname{Do wiadomo\'sci} +\def\headtoname{Do} +\def\pagename{Strona} +\def\seename{zob.} +\def\proofname{Dow\'od} +% \end{macrocode} +% \DescribeMacro{\today} +% Finally we redefine the macro |\today| to print the current date in Polish. +% In Polish documents in some situations it is more appropriate to use +% the full word \emph{roku} +% (meaning \emph{year}) at the end of the date and sometimes it is more +% natural to use an abbreviation. The macro |\PLdateending| which expands +% at the end of the date can be easily redefined to suit particular needs. +% \begin{macrocode} +\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 \PLdateending} +% \end{macrocode} +% +% \subsection{Macros needed later} +% This macro redefines all standard maths fonts. Now |pl| maths fonts will be +% used instead of |cm| maths fonts. +% \begin{macrocode} +\def\PL@setmaths{% +% \end{macrocode} +% We start by leaving sign that we have fonts avaiable to redefine +% |\ge| and |\le| macros. +% \begin{macrocode} + \def\PLm@ths{} +% \end{macrocode} +% We redefine math alphabets for both math versions. We don't have to +% redefine |\mathrm|, |\mathnormal| or |\mathcal| alphabets, as they +% bound to |operators|, |letters| and |symbols| fonts by default (see +% |fontdef.dtx|. +% +% We must define OT4 encoding if it is not defined yet. +% \begin{macrocode} + \@ifundefined{T@OT4}{% + \input ot4enc.def + }{} + \SetMathAlphabet{\mathbf}{normal}{OT4}{cmr}{bx}{n} + \SetMathAlphabet{\mathsf}{normal}{OT4}{cmss}{m}{n} + \SetMathAlphabet{\mathit}{normal}{OT4}{cmr}{m}{it} + \SetMathAlphabet{\mathtt}{normal}{OT4}{cmtt}{m}{n} +% \end{macrocode} +% We set math alphabets for bold version. +% \begin{macrocode} + \SetMathAlphabet{\mathsf}{bold}{OT4}{cmss}{bx}{n} + \SetMathAlphabet{\mathit}{bold}{OT4}{cmr}{bx}{it} +% \end{macrocode} +% We redeclare all standard symbol fonts. We change the definition of +% |\@font@warning| macro to not to scare the user with warning +% messages on the screen about encoding change. +% \begin{macrocode} + \bgroup\let\@font@warning\@font@info + \SetSymbolFont{operators} {normal}{OT4}{cmr} {m}{n} + \SetSymbolFont{letters} {normal}{OML}{plm} {m}{it} + \SetSymbolFont{symbols} {normal}{OMS}{plsy}{m}{n} + \SetSymbolFont{largesymbols}{normal}{OMX}{plex}{m}{n} + \SetSymbolFont{operators} {bold} {OT4}{cmr} {bx}{n} + \SetSymbolFont{letters} {bold} {OML}{plm} {b}{it} + \SetSymbolFont{symbols} {bold} {OMS}{plsy}{b}{n} + \egroup +% \end{macrocode} +% As we have just reloaded the maths fonts, we have some new symbols +% available. +% We redefine greater-than-or-equal and less-than-or-equal +% signs to conform to Polish typographical conventions. This is +% by analogy with that which was done in section~\ref{redefining-maths}. +% Redefinition will be suppressed when option \emph{nomathsnames} is used. +% \begin{macrocode} + \DeclareMathSymbol{\xleq}{3}{symbols}{172} + \DeclareMathSymbol{\xgeq}{3}{symbols}{173} +} +% +\def\PL@redef@relations{ + \let\leq=\xleq + \let\geq=\xgeq + \let\le=\leq + \let\ge=\geq +} +% \end{macrocode} +% +% +% \subsection{Options} +% +% Style \polski\ provides a number of options which customize +% it to the specific environment or needs. They switch \LaTeX\ to +% different encodings, provide additional macros,~etc. +% +% +% \subsubsection{Option \texttt{plmath}} +% \label{plmath} +% This option redefines all standard maths fonts. Now |pl| maths fonts will be +% used instead of |cm| maths fonts. +% \begin{macrocode} +\DeclareOption{plmath}{% + \PL@setmaths +} +% \end{macrocode} +% +% +% \subsubsection{Option \texttt{nomathsymbols}} +% \label{nomathsymbols} +% This option supresses redefinition of standard \LaTeX's macros for +% trigonometric functions and for less-or-equal signs. +% \begin{macrocode} +\DeclareOption{nomathsymbols}{% + \def\PLn@m@thsn@mes{} +} +% \end{macrocode} +% +% \subsubsection{Option \texttt{MeX}} +% +% This mode should prepare everything to be \emph{markup} compatible +% with \LaMeX. This includes macron redefinition. +% \begin{macrocode} +% \changes{v1.2.2}{2001/08/31}{Redefinition of macron was too early. OT4 +% may be not known yet.} +\DeclareOption{MeX}{% + \AtBeginDocument{% + \@ifundefined{T@OT1}{}{% + \DeclareTextCommand{\=}{OT1}{\dywiz}% + \DeclareTextAccent{\macron}{OT1}{22}}% + \@ifundefined{T@T1}{}{% + \DeclareTextCommand{\=}{T1}{\dywiz}% + \DeclareTextAccent{\macron}{T1}{9}}% + \@ifundefined{T@OT4}{}{% + \DeclareTextCommand{\=}{OT4}{\dywiz}% + \DeclareTextAccent{\macron}{OT4}{22}}% + \@ifundefined{T@QX}{}{% + \DeclareTextCommand{\=}{QX}{\dywiz}% + \DeclareTextAccent{\macron}{QX}{9}}% + }% + \let\xle\xleq + \let\xge\xgeq + \let\polish\l@polish + \let\english\l@english + \def\MeX{M\kern-.111em\lower.6ex\hbox{E}\kern-.075emX} + \DeclareRobustCommand\LaMeX{% after latex.dtx + L\kern-.36em + {\setbox0\hbox{T}% + \vbox to\ht0{\hbox{% + \csname S@\f@size\endcsname + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A} + \vss}% + }% + \kern-.15em + \MeX\@}% + } +% \end{macrocode} +% +% +% \subsubsection{Option {\ttfamily T1}} +% This will select T1 encoding for the document. +% \begin{macrocode} +\DeclareOption{T1}{% + \@ifundefined{T@T1}{\input{t1enc.def}}{} + \def\encodingdefault{T1}\fontencoding{T1}% + \def\PL@ncodingd@fined{} +} +% \end{macrocode} +% +% \subsubsection{Option {\ttfamily QX}} +% This will select QX encoding for the document. +% \begin{macrocode} +\DeclareOption{QX}{% + \@ifundefined{T@QX}{\input{qxenc.def}}{} + \def\encodingdefault{QX}\fontencoding{QX}% + \def\PL@ncodingd@fined{} +} +% \end{macrocode} +% +% \subsubsection{Option {\tt OT1}} +% This will select OT1 encoding for the document. +% \begin{macrocode} +\DeclareOption{OT1}{% + \def\encodingdefault{OT1}\fontencoding{OT1}% + \def\PL@ncodingd@fined{} +} +% \end{macrocode} +% +% +% \subsubsection{Option {\tt OT4}} +% This will select OT4 encoding for the document. +% \begin{macrocode} +\DeclareOption{OT4}{% + \@ifundefined{T@OT4}{\input{ot4enc.def}}{}% + \def\encodingdefault{OT4}% + \fontencoding{OT4}% + \def\PL@ncodingd@fined{}% +} +% \end{macrocode} +% +% \subsubsection{Options for prefixing in verbatim} +% These decide if prefixing is active in verbatim: +% \begin{macrocode} +\DeclareOption{prefixinginverb}{% + \def\PL@prefixinginverb{1}% +} +\DeclareOption{noprefixinginverb}{% + \def\PL@prefixinginverb{0}% +} +% \end{macrocode} +% +% \subsubsection{Options for date ending in \cs{today}} +% +% \begin{macrocode} +\DeclareOption{roku}{% + \def\PLdateending{\nobreakspace roku} +} +\DeclareOption{r.}{% + \def\PLdateending{\nobreakspace r.} +} +\DeclareOption{noroku}{% + \def\PLdateending{} +} +% \end{macrocode} +% +% \subsection{Taking off \dots} +% This is almost the end. We process all +% the options in the order of their definition and +% switch to french spacing which is also Polish traditional spacing. +% \begin{macrocode} +\ExecuteOptions{prefixinginverb,noroku} +\ProcessOptions +\frenchspacing +% \end{macrocode} +% +% We now try to autodetect whether the pl fonts reside on the system. +% We assume, that if there is \verb|OT4cmr.def| file on the system, +% there are also fonts installed. The autodetection is suppressed if +% any encoding was switched by package options, or redefined before +% the package was loaded. +% \begin{macrocode} +\def\tempa{OT1} +\ifx\tempa\f@encoding + \@ifundefined{PL@ncodingd@fined}{% + \IfFileExists{ot4cmr.fd}{% + \typeout{\space\space\space + Switching to Polish text encoding and Polish maths fonts.} + \@ifundefined{T@OT4}{% + \input ot4enc.def + }{}% + \def\encodingdefault{OT4} + \fontencoding{OT4}\selectfont + \PL@setmaths + }{% + \typeout{\space\space\space + Can't locate Polish fonts. Will use default encoding.} + }% +% \end{macrocode} +% +% We set a checkpoint to warn the user if she enters the document in +% OT1 encoding. +% \begin{macrocode} + \def\@PL@OT@check{% + \bgroup + \def\tempa{OT1}\ifx\tempa\cf@encoding + \@ifpackageloaded{ot1patch}{}{% + \PackageError{polski}{% +Zaczynasz skladac dokument uzywajac oryginalnych\MessageBreak +czcionek TeXa. Czcionki te nie maja kompletu polskich\MessageBreak +znakow. W zwiazku z tym LaTeX bedzie zglaszal bledy.\MessageBreak +\MessageBreak +Zainstaluj czcionki z dystrybucji MeXa dostepne\MessageBreak +na ftp://ftp.gust.org.pl, sprobuj uzyc czcionek EC\MessageBreak +dodajac opcje T1 do wywolania stylu polski'ego\MessageBreak +lub w ostatecznosci uzyj stylu ot1patch.}{}}% + \fi + \egroup + \let\@PL@OT@check=\undefined}% + \AtBeginDocument{\@PL@OT@check}% + }{% + \let\PL@ncodingd@fined=\undefined + }% +\fi +% \end{macrocode} +% Now we can redefine \LaTeX names for some maths functions and +% relations if it was not suppressed. +% \begin{macrocode} +\@ifundefined{PLn@m@thsn@mes}{ + \PL@redef@funcnames + \@ifundefined{PLm@ths}{}{\PL@redef@relations} + }{} +% \end{macrocode} +% If prefixing is not to be active in verb, we have to add slash to +% \cs{dospecials}: +% \begin{macrocode} +\if 0\PL@prefixinginverb + \expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\/} +\fi +% \end{macrocode} +% Cleaning up and undefining some local macros. +% \begin{macrocode} +\let\PLn@m@thn@mes=\undefined +\let\PLm@ths=\undefined +\let\PL@setmaths=\undefined +\let\PL@redef@relations=\undefined +\let\PL@redef@funcnames=\undefined +\let\PL@prefixinginverb=\undefined +%</style> +% \end{macrocode} +% +% \section{Configuring \LaTeX's hyphenation patterns} +% +% (This section was written by Marcin Woli\'nski. He is to be +% blamed for errors.) +% This code will go to file |hyphen.cfg| which, if found, will be +% read by Ini\TeX\ during format generation instead of the standard +% \LaTeX\ hyphenation patterns configuration. +% +% First we have to adjust language allocation counter (|\count19|) +% since kernel (incorrectly) causes |\newlanguage| to start +% allocation from 1. +% \begin{macrocode} +%<*hyphenation> +\global\count19=-1 +% \end{macrocode} +% The rest of actions is put into a group, so our auxiliary macros +% will automatically disappear when they are no longer needed. +% Allocations done by |\newlanguage| are global and so are +% |\patterns| and |\hyphenation|. +% \begin{macrocode} +\begingroup +% \end{macrocode} +% Here I define a few auxiliary macros needed to process +% |language.dat|. Every time \TeX\ sees a new name he puts it into +% his name pool and it is never freed. For that reason I don't +% want to introduce new names for my auxiliary macros. So my first +% idea was to use control sequences of length 1 (which are not put +% into the pool). But this approach is risky since ``hyphenation +% files'' commonly contain small pieces of code to adjust their +% behaviour to format or \TeX\ version used. So I've decided to +% redefine locally a few of standard \LaTeX\ macros. +% This causes code to be less readable, but I'll try to make these +% names somehow mnemonic. (I've chosen macros which contribute +% directly to the current page, which means for sure they're not +% used by hyphenation files.) +% +% |\@stopline| will be used as a sentinel delimiting line end. +% \begin{macrocode} +\def\@stopline{\@stopline} +% \end{macrocode} +% |\line| is main macro processing line read from +% |language.dat|. The line is passed to |\line| as argument +% with a space and |\@stopline| appended. |\line| checks +% if the line starts with |=| (synonym definition) and based on +% that passes the line to |\leftline| or |\rightline|. +% \begin{macrocode} +\def\line#1#2\@stopline{% + \ifx=#1% + \leftline#2\@stopline + \else + \rightline#1#2\@stopline + \fi + } +% \end{macrocode} +% |\leftline| is called for synonym lines (with |=| removed). +% Such lines should contain only a name for the synonym. So +% |\leftline| first checks if there is anything after the name +% and raises and error. +% \begin{macrocode} +\def\leftline#1 #2\@stopline{% + \ifx\@stopline#2\@stopline\else + \errhelp{The line should contain only an equals sign followed by + the synonym name.}% + \errmessage{Extra stuff on a synonym line in language.dat:^^J + =#1 #2}\fi +% \end{macrocode} +% Next check if the language name wasn't already used: +% \begin{macrocode} + \expandafter\ifx\csname l@#1\endcsname\relax \else + \errhelp{This probably means your ``language.dat'' contains many + lines starting with `#1' or `=#1'. ^^JThe language `#1' will + be redefined. This may not be what you want.}% + \errmessage{Language `#1' already defined}\fi +% \end{macrocode} +% Synonyms make no sense when no real language was defined yet. +% This is checked next. If |\count19| is $-1$ an error is raised +% and no definition takes place. +% \begin{macrocode} + \ifnum\count19=\m@ne + \errhelp{You cannot put synonyms before first real + language definition in language.dat.} + \errmessage{Cannot define `#1' as a language synonym: no language + defined yet}% + \else +% \end{macrocode} +% Finally the real definition takes place: |l@<language>| is +% defined with |\chardef| to be last allocated language number. +% \begin{macrocode} + \global\expandafter\chardef\csname l@#1\endcsname\count19 + \wlog{\string\l@#1=\string\language\number\count19} + \fi + } +% \end{macrocode} +% |\rightline| processes lines that don't start with |=|. Such +% lines instruct ini\TeX\ to read one or more hyphenation files. +% +% The line is split on first space, |#1| being language name, |#2| +% list of file names. Note that there is at least one space in +% input line since we've put one just before |\@stopline|. +% \begin{macrocode} +\def\rightline#1 #2\@stopline{% +% \end{macrocode} +% First check if the language is already defined. If the language +% name is new it is allocated. +% \begin{macrocode} + \expandafter\ifx\csname l@#1\endcsname\relax + \expandafter\newlanguage\csname l@#1\endcsname + \else + \errhelp{This probably means your ``language.dat'' contains many + lines starting with `#1' or `=#1'. ^^JThe patterns will be + merged with the ones already loaded. This may not be what you + want.}% + \errmessage{Language `#1' already defined}% + \fi +% \end{macrocode} +% Then the language is set as current to begin loading of +% hyphenation patterns. +% \begin{macrocode} + \language\csname l@#1\endcsname +% \end{macrocode} +% The language name is added to the list of defined languages kept +% in |\displaylines|. +% \begin{macrocode} + \edef\displaylines{\displaylines, #1}% +% \end{macrocode} +% For every language there should be at least one patterns file +% specified. So if |#2| is empty we raise an error. +% \begin{macrocode} + \ifx\@stopline#2\@stopline + \errhelp{Hyphenation will be inhibited in language `#1'.}% + \errmessage{No pattern files specified for language `#1'}% +% \end{macrocode} +% Now |\centerline| processes list of file names delimited with +% |\@stopline|. +% \begin{macrocode} + \else + \begingroup + \message{Loading hyphenation patterns for #1.} + \centerline#2\@stopline + \endgroup + \fi + } +% \end{macrocode} +% Macro |\centerline| calls itself recursively until no file name +% remains on input line. For each name it tries to load the file. +% Absence of file is considered to be a fatal error. +% \begin{macrocode} +\def\centerline#1 #2\@stopline{% + \InputIfFileExists{#1}{}{% + \errhelp{Your language.dat file says I should load a file named + `#1'.^^J Check whether this name is correct and the file is + installed. ^^JThe format will not be generated.}% + \errmessage{Fatal error: patterns file #1 not found}% + \endgroup\endgroup\@@end} + \ifx\@stopline#2\@stopline\else \centerline#2\@stopline\fi + } +% \end{macrocode} +% +% \begin{macro}{\addvspace} +% This macro is used to ensure that the line from language.dat ends +% with exactly one space character. +% \begin{macrocode} +\def\addvspace #1 \*#2\@stopline{% + \ifx\@stopline#2\@stopline + \expandafter\def\expandafter\*\expandafter{\* }% + \fi +} +% \end{macrocode} +% \end{macro} +% +% With these auxiliaries we can start actual processing. First the +% existence of file \texttt{language.dat} is checked and the file +% is opened. +% \begin{macrocode} +\openin1 = language.dat +\ifeof1 + \errhelp{You should have a file named language.dat on your system. + This file specifies for what languages hyphenation patterns should + be loaded and where these are kept. Without this file the format + will not be generated.}% + \errmessage{Fatal error: language.dat not found}% + \endgroup\@@end +\fi +% \end{macrocode} +% |\displaylines| is initialized in such a way that language list +% won't contain starting comma: +% \begin{macrocode} +\let\displaylines\@gobble +% \end{macrocode} +% Now lines from \texttt{language.dat} are read one by one. +% |\endlinechar| is set to $-1$ to avoid a space that may get on +% the end of input line. But after a line is read |\endlinechar| +% is reset again since code in patterns files may be fragile to +% such a condition. +% \begin{macrocode} +\loop + \endlinechar\m@ne + \read1 to \*% + \endlinechar`\^^M +% \end{macrocode} +% Empty lines are skipped and others are passed to |\line| +% with appended single space and the sentinel. Line is read to +% |\*|. This is safe since this macro is only used locally here, +% and normal value of |\*| is of no use for hyphenation files. +% \begin{macrocode} + \ifx\*\empty + \else + \expandafter\addvspace\*\* \*\@stopline + \expandafter\line\*\@stopline + \fi +% \end{macrocode} +% Processing takes place until end of \texttt{language.dat} is +% found. +% \begin{macrocode} + \ifeof1\else +\repeat +\closein1 +% \end{macrocode} +% Now another sanity check is made: any reasonable +% \texttt{language.dat} should contain at least one language +% definition. So we refuse to generate format without any +% hyphenation patterns. +% \begin{macrocode} +\ifnum\count19=-1 + \errhelp{Your language.dat does not instruct LaTeX to load any + hyphenation patterns. Since format with no hyphenation patterns + is hardly usable I refuse to generate it. Check your language.dat + and try again.}% + \errmessage{Fatal error: No languages defined in language.dat}% + \endgroup\@@end +\fi +% \end{macrocode} +% Then code to display list of loaded languages is added to +% |\everyjob| and the group ends. +% \begin{macrocode} +\edef\displaylines{\the\everyjob + \noexpand\wlog{Loaded hyphenation patterns for\displaylines.}} +\global\everyjob\expandafter{\displaylines} +\endgroup +\language0 +\lefthyphenmin=2 \righthyphenmin=3 +%</hyphenation> +% \end{macrocode} +% +% \section{Font encoding {\tt OT4}} +% +% Here we define a new encoding. Its main purpose is to provide the +% link between standard accents such as |\'|,|\.| or |\k| (ogonek), +% and the corresponding characters in the font. Jackowski's +% fonts will be called |cm|s and |cc|s in this encoding. +% +% \begin{macrocode} +%<*encoding> +\ProvidesFile{ot4enc.def}[2003/05/09 v1.3.1 Output encoding for polish fonts] +% \end{macrocode} +% Declare the encoding. +% \begin{macrocode} +\DeclareFontEncoding{OT4}{}{} +% \end{macrocode} +% Declare the accents. +% \begin{macrocode} +\DeclareTextAccent{\"}{OT4}{127} +\DeclareTextAccent{\'}{OT4}{19} +\DeclareTextAccent{\.}{OT4}{95} +\DeclareTextAccent{\=}{OT4}{22} +\DeclareTextAccent{\^}{OT4}{94} +\DeclareTextAccent{\`}{OT4}{18} +\DeclareTextAccent{\~}{OT4}{126} +\DeclareTextAccent{\H}{OT4}{125} +\DeclareTextAccent{\u}{OT4}{21} +\DeclareTextAccent{\v}{OT4}{20} +\DeclareTextAccent{\r}{OT4}{23} +% \end{macrocode} +% The ogonek accent is available only under a e A \& E. But we +% have to provide some definition for \cs{k}. Some accents have to +% be built by hand as in OT1: +% \begin{macrocode} +\DeclareTextCommand{\k}{OT4}[1]{% + \TextSymbolUnavailable{\k{#1}}#1} +\DeclareTextCommand{\b}{OT4}[1] + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}} +\DeclareTextCommand{\c}{OT4}[1] + {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% + \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} +\DeclareTextCommand{\d}{OT4}[1] + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}}} +% \end{macrocode} +% Declare the text symbols. +% \begin{macrocode} +\DeclareTextSymbol{\AE}{OT4}{29} +\DeclareTextSymbol{\OE}{OT4}{30} +\DeclareTextSymbol{\O}{OT4}{31} +\DeclareTextSymbol{\L}{OT4}{138} +\DeclareTextSymbol{\ae}{OT4}{26} +\DeclareTextSymbol{\guillemotleft}{OT4}{174} +\DeclareTextSymbol{\guillemotright}{OT4}{175} +\DeclareTextSymbol{\i}{OT4}{16} +\DeclareTextSymbol{\j}{OT4}{17} +\DeclareTextSymbol{\l}{OT4}{170} +\DeclareTextSymbol{\o}{OT4}{28} +\DeclareTextSymbol{\oe}{OT4}{27} +\DeclareTextSymbol{\quotedblbase}{OT4}{255} +\DeclareTextSymbol{\ss}{OT4}{25} +\DeclareTextSymbol{\textemdash}{OT4}{124} +\DeclareTextSymbol{\textendash}{OT4}{123} +\DeclareTextSymbol{\textexclamdown}{OT4}{60} +%\DeclareTextSymbol{\texthyphenchar}{OT4}{`\-} +%\DeclareTextSymbol{\texthyphen}{OT4}{`\-} +\DeclareTextSymbol{\textquestiondown}{OT4}{62} +\DeclareTextSymbol{\textquotedblleft}{OT4}{92} +\DeclareTextSymbol{\textquotedblright}{OT4}{`\"} +\DeclareTextSymbol{\textquoteleft}{OT4}{`\`} +\DeclareTextSymbol{\textquoteright}{OT4}{`\'} +% \end{macrocode} +% Some symbols are faked from others: +% \begin{macrocode} +\DeclareTextCommand{\aa}{OT4} + {{\accent23a}} +\DeclareTextCommand{\AA}{OT4} + {\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% + \rlap{\raise.67\dimen@\hbox{\char'27}}A} +\DeclareTextCommand{\SS}{OT4} + {SS} +% \end{macrocode} +% In the OT4 encoding, \pounds~and \$ share a slot. +% \begin{macrocode} +\DeclareTextCommand{\textdollar}{OT4}{\nfss@text{% + \ifdim \fontdimen\@ne\font >\z@ + \slshape + \else + \upshape + \fi + \char`\$}} +\DeclareTextCommand{\textsterling}{OT4}{\nfss@text{% + \ifdim \fontdimen\@ne\font >\z@ + \itshape + \else + \fontshape{ui}\selectfont + \fi + \char`\$}} +% \end{macrocode} +% Declare the composites. +% \begin{macrocode} +\DeclareTextComposite{\k}{OT4}{A}{129} +\DeclareTextComposite{\'}{OT4}{C}{130} +\DeclareTextComposite{\k}{OT4}{E}{134} +\DeclareTextComposite{\'}{OT4}{N}{139} +\DeclareTextComposite{\'}{OT4}{S}{145} +\DeclareTextComposite{\'}{OT4}{Z}{153} +\DeclareTextComposite{\.}{OT4}{Z}{155} +\DeclareTextComposite{\k}{OT4}{a}{161} +\DeclareTextComposite{\'}{OT4}{c}{162} +\DeclareTextComposite{\k}{OT4}{e}{166} +\DeclareTextComposite{\'}{OT4}{n}{171} +\DeclareTextComposite{\'}{OT4}{s}{177} +\DeclareTextComposite{\'}{OT4}{z}{185} +\DeclareTextComposite{\.}{OT4}{z}{187} +\DeclareTextComposite{\'}{OT4}{O}{211} +\DeclareTextComposite{\'}{OT4}{o}{243} +%</encoding> +% \end{macrocode} +% +% \Finale +% +\endinput +%% \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 \~} diff --git a/Master/texmf-dist/source/latex/platex/base/strony.dtx b/Master/texmf-dist/source/latex/platex/base/strony.dtx new file mode 100644 index 00000000000..981112479d1 --- /dev/null +++ b/Master/texmf-dist/source/latex/platex/base/strony.dtx @@ -0,0 +1,455 @@ +% \iffalse meta-comment -*- doctex -*- +% $Id: strony.dtx,v 0.5 2002/03/05 20:23:16 marcin Exp $ +% +% Copyright (C) 1994 by Mariusz Olko. All rights reserved. +% +% This file is part of the package `PLaTeX' +% ------------------------------------------------------------------ +% +% This system 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: +% +% You are not allowed to change this file. +% +% 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 +% \iffalse +% +%<*driver> +\documentclass{ltxdoc} +\begin{document} +\tableofcontents +\DocInput{stronyk.dtx} +\end{document} +%</driver> +% \fi +% \CheckSum{0} +% +%\section{Input encodings} +%\subsection{`Mazovia' encoding} +% \begin{macrocode} +%<*mazovia> +\ProvidesFile{mazovia.def} +\DeclareInputText{143}{\k A} +\DeclareInputText{149}{\@tabacckludge'C} +\DeclareInputText{144}{\k E} +\DeclareInputText{156}{\L} +\DeclareInputText{165}{\@tabacckludge'N} +\DeclareInputText{163}{\@tabacckludge'O} +\DeclareInputText{152}{\@tabacckludge'S} +\DeclareInputText{160}{\@tabacckludge'Z} +\DeclareInputText{161}{\.Z} +\DeclareInputText{134}{\k a} +\DeclareInputText{141}{\@tabacckludge'c} +\DeclareInputText{145}{\k e} +\DeclareInputText{146}{\l} +\DeclareInputText{164}{\@tabacckludge'n} +\DeclareInputText{162}{\@tabacckludge'o} +\DeclareInputText{158}{\@tabacckludge's} +\DeclareInputText{166}{\@tabacckludge'z} +\DeclareInputText{167}{\.z} +%</mazovia> +% \end{macrocode} +% +%\subsection{`Windows PL' encoding} +% +% This codepage prepared by Marcin Woli\'nski, covers full 1250 +% character set. It will be included in the next \LaTeX\ release. +% \begin{macrocode} +%<*windows> +\ProvidesFile{cp1250.def} +%\DeclareInputText{128}{} % not used +%\DeclareInputText{129}{} % n/u +\DeclareInputText{130}{\quotesinglbase} +%\DeclareInputText{131}{} % n/u +\DeclareInputText{132}{\quotedblbase} +\DeclareInputText{133}{\textellipsis} +\DeclareInputText{134}{\textdagger} +\DeclareInputText{135}{\textdaggerdbl} +%\DeclareInputText{136}{} % n/u +%\DeclareInputText{137}{\perthousand} % not avaiable +\DeclareInputText{138}{\v S} +\DeclareInputText{139}{\guilsinglleft} +\DeclareInputText{140}{\@tabacckludge'S} +\DeclareInputText{141}{\v T} +\DeclareInputText{142}{\v Z} +\DeclareInputText{143}{\@tabacckludge'Z} +%\DeclareInputText{144}{} % n/u +\DeclareInputText{145}{\textquoteleft} +\DeclareInputText{146}{\textquoteright} +\DeclareInputText{147}{\textquotedblleft} +\DeclareInputText{148}{\textquotedblright} +\DeclareInputText{149}{\textbullet} +\DeclareInputText{150}{\textendash} +\DeclareInputText{151}{\textemdash} +%\DeclareInputText{152}{} % n/u +\DeclareInputText{153}{\texttrademark} +\DeclareInputText{154}{\v s} +\DeclareInputText{155}{\guilsinglright} +\DeclareInputText{156}{\@tabacckludge's} +\DeclareInputText{157}{\v t} % t caron (t') ? +\DeclareInputText{158}{\v z} +\DeclareInputText{159}{\@tabacckludge'z} +\DeclareInputText{160}{\nobreakspace} +\DeclareInputText{161}{\v{}} +\DeclareInputText{162}{\u{}} +\DeclareInputText{163}{\L} +%\DeclareInputText{164}{\textcurrency} % not avaiable +\DeclareInputText{165}{\k A} +%\DeclareInputText{166}{\textbrokenbar} % not avaiable +\DeclareInputText{167}{\textsection} +\DeclareInputText{168}{\"{}} +\DeclareInputText{169}{\copyright} +\DeclareInputText{170}{\c S} +\DeclareInputText{171}{\guillemotleft} +\DeclareInputMath{172}{\lnot} +\DeclareInputText{173}{\-} % soft hyphen +\DeclareInputText{174}{\textregistered} +\DeclareInputText{175}{\.Z} +%\DeclareInputMath{176}{\mathdegree} % degree sign % not avaiable +\DeclareInputMath{177}{\pm} % plus-minus +\DeclareInputText{178}{\k{}} +\DeclareInputText{179}{\l} +\DeclareInputText{180}{\@tabacckludge'{}} +\DeclareInputMath{181}{\mu} % micro sign +\DeclareInputText{182}{\textparagraph} +\DeclareInputText{183}{\textperiodcentered} +\DeclareInputText{184}{\c{}} +\DeclareInputText{185}{\k a} +\DeclareInputText{186}{\c s} +\DeclareInputText{187}{\guillemotright} +\DeclareInputText{188}{\v L} % L caron (L') ? +\DeclareInputText{189}{\H{}} +\DeclareInputText{190}{\v l} % l caron (l') ? +\DeclareInputText{191}{\. z} +\DeclareInputText{192}{\@tabacckludge'R} +\DeclareInputText{193}{\@tabacckludge'A} +\DeclareInputText{194}{\^A} +\DeclareInputText{195}{\u A} +\DeclareInputText{196}{\"A} +\DeclareInputText{197}{\@tabacckludge'L} +\DeclareInputText{198}{\@tabacckludge'C} +\DeclareInputText{199}{\c C} +\DeclareInputText{200}{\v C} +\DeclareInputText{201}{\@tabacckludge'E} +\DeclareInputText{202}{\k E} +\DeclareInputText{203}{\"E} +\DeclareInputText{204}{\v E} +\DeclareInputText{205}{\@tabacckludge'I} +\DeclareInputText{206}{\^I} +\DeclareInputText{207}{\v D} +\DeclareInputText{208}{\DJ} % D stroke +\DeclareInputText{209}{\@tabacckludge'N} +\DeclareInputText{210}{\v N} +\DeclareInputText{211}{\@tabacckludge'O} +\DeclareInputText{212}{\^O} +\DeclareInputText{213}{\H O} +\DeclareInputText{214}{\"O} +\DeclareInputMath{215}{\times} +\DeclareInputText{216}{\v R} +\DeclareInputText{217}{\r U} +\DeclareInputText{218}{\@tabacckludge'U} +\DeclareInputText{219}{\H U} +\DeclareInputText{220}{\" U} +\DeclareInputText{221}{\@tabacckludge'Y} +\DeclareInputText{222}{\c T} +\DeclareInputText{223}{\ss} +\DeclareInputText{224}{\@tabacckludge'r} +\DeclareInputText{225}{\@tabacckludge'a} +\DeclareInputText{226}{\^a} +\DeclareInputText{227}{\u a} +\DeclareInputText{228}{\" a} +\DeclareInputText{229}{\@tabacckludge'l} +\DeclareInputText{230}{\@tabacckludge'c} +\DeclareInputText{231}{\c c} +\DeclareInputText{232}{\v c} +\DeclareInputText{233}{\@tabacckludge'e} +\DeclareInputText{234}{\k e} +\DeclareInputText{235}{\"e} +\DeclareInputText{236}{\v e} +\DeclareInputText{237}{\@tabacckludge'\i} +\DeclareInputText{238}{\^\i} +\DeclareInputText{239}{\v d} % d caron (d') ? +\DeclareInputText{240}{\dj} % d stroke +\DeclareInputText{241}{\@tabacckludge'n} +\DeclareInputText{242}{\v n} +\DeclareInputText{243}{\@tabacckludge'o} +\DeclareInputText{244}{\^o} +\DeclareInputText{245}{\H o} +\DeclareInputText{246}{\"o} +\DeclareInputMath{247}{\div} +\DeclareInputText{248}{\v r} +\DeclareInputText{249}{\r u} +\DeclareInputText{250}{\@tabacckludge'u} +\DeclareInputText{251}{\H u} +\DeclareInputText{252}{\"u} +\DeclareInputText{253}{\@tabacckludge'y} +\DeclareInputText{254}{\c t} +\DeclareInputText{255}{\.{}} +%</windows> +% \end{macrocode} +% +%\subsection{Amiga} +% This encoding contributed by Robert Ramiega +% \begin{macrocode} +%<*amigapl> +\ProvidesFile{amigapl.def} +\DeclareInputText{194}{\k A} +\DeclareInputText{202}{\@tabacckludge'C} +\DeclareInputText{203}{\k E} +\DeclareInputText{206}{\L} +\DeclareInputText{207}{\@tabacckludge'N} +\DeclareInputText{211}{\@tabacckludge'O} +\DeclareInputText{212}{\@tabacckludge'S} +\DeclareInputText{218}{\@tabacckludge'Z} +\DeclareInputText{219}{\.Z} +\DeclareInputText{226}{\k a} +\DeclareInputText{234}{\@tabacckludge'c} +\DeclareInputText{235}{\k e} +\DeclareInputText{238}{\l} +\DeclareInputText{239}{\@tabacckludge'n} +\DeclareInputText{243}{\@tabacckludge'o} +\DeclareInputText{244}{\@tabacckludge's} +\DeclareInputText{250}{\@tabacckludge'z} +\DeclareInputText{251}{\.z} +%</amigapl> +% \end{macrocode} +%\section{Font encodings} +%\subsection{QX encoding} +% \begin{macrocode} +%<*qx> +\ProvidesFile{qxenc.def}[2002/01/11 v0.05a QX font encoding definition] +\DeclareFontEncoding{QX}{}{} +\DeclareFontSubstitution{QX}{qtm}{m}{n} +\DeclareTextSymbol{\textalpha}{QX}{0} +\DeclareTextSymbol{\textDelta}{QX}{1} % TeX-math, Adobe +\DeclareTextSymbol{\textbeta}{QX}{2} % TeX-math, Adobe +\DeclareTextSymbol{\textdelta}{QX}{3} % TeX-math, Adobe +\DeclareTextSymbol{\textpi}{QX}{4} % TeX-math, Adobe +\DeclareTextSymbol{\textPi}{QX}{5} % TeX-math, Adobe +\DeclareTextSymbol{\textSigma}{QX}{6} % TeX-math, Adobe +\DeclareTextSymbol{\textmu}{QX}{7} % TeX-math, Adobe +\DeclareTextSymbol{\textellipsis}{QX}{8} % LaTeX + +\DeclareTextSymbol{\textOmega}{QX}{10} % TeX-math, Adobe + +\DeclareTextSymbol{\i}{QX}{16} % TeX +\DeclareTextComposite{\.}{QX}{i}{`\i} % LaTeX +\DeclareTextSymbol{\j}{QX}{17} % TeX +\DeclareTextAccent{\`}{QX}{18} % TeX +\DeclareTextAccent{\'}{QX}{19} % TeX +\DeclareTextAccent{\v}{QX}{20} % TeX +\DeclareTextAccent{\u}{QX}{21} % TeX +\DeclareTextAccent{\=}{QX}{22} % MeX +\DeclareTextCommand{\b}{QX}[1] + {\leavevmode\bgroup\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}\egroup} +\DeclareTextAccent{\r}{QX}{23} % LaTeX +\DeclareTextCommand{\c}{QX}[1] % TeX + {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% + \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} +\DeclareTextSymbol{\ss}{QX}{25} % TeX +\DeclareTextSymbol{\ae}{QX}{26} % TeX +\DeclareTextSymbol{\oe}{QX}{27} % TeX +\DeclareTextSymbol{\o}{QX}{28} % TeX +\DeclareTextSymbol{\AE}{QX}{29} % TeX +\DeclareTextSymbol{\OE}{QX}{30} % TeX +\DeclareTextSymbol{\O}{QX}{31} % TeX + +\DeclareTextSymbol{\textquotedblright}{QX}{34} % LaTeX +\DeclareTextSymbol{\textdollar}{QX}{36} % LaTeX +\DeclareTextSymbol{\textquoteright}{QX}{39} % LaTeX + +\DeclareTextCommand{\d}{QX}[1] % TeX + {\leavevmode\bgroup + \o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}\egroup} % \char46 + +\DeclareTextSymbol{\textexclamdown}{QX}{60} % LaTeX +\DeclareTextSymbol{\textquestiondown}{QX}{62} % LaTeX + +\DeclareTextSymbol{\textquotedblleft}{QX}{92} % LaTeX +\DeclareTextAccent{\^}{QX}{94} % TeX +\DeclareTextAccent{\.}{QX}{95} % TeX + +\DeclareTextSymbol{\textquoteleft}{QX}{96} % LaTeX +\DeclareTextSymbol{\textendash}{QX}{123} % LaTeX +\DeclareTextSymbol{\textemdash}{QX}{124} % LaTeX +\DeclareTextAccent{\H}{QX}{125} % TeX +\DeclareTextAccent{\~}{QX}{126} % TeX +\DeclareTextAccent{\"}{QX}{127} % TeX + +\DeclareTextSymbol{\texteuro}{QX}{128} % LaTeX (TS1 ?) +\DeclareTextSymbol{\textEuro}{QX}{128} % Adobe's name is `Euro' +\DeclareTextComposite{\k}{QX}{A}{129} +\DeclareTextComposite{\'}{QX}{C}{130} +\DeclareTextSymbol{\textgreater}{QX}{131} % LaTeX +\DeclareTextSymbol{\textxgeq}{QX}{132} % MeX-math +\DeclareTextSymbol{\textapprox}{QX}{133} % TeX-math +\DeclareTextComposite{\k}{QX}{E}{134} +\DeclareTextComposite{\k}{QX}{I}{135} + +\DeclareTextSymbol{\textless}{QX}{136} % LaTeX +\DeclareTextSymbol{\textxleq}{QX}{137} % MeX-math +\DeclareTextSymbol{\L}{QX}{138} % TeX +\DeclareTextComposite{\'}{QX}{N}{139} +\DeclareTextSymbol{\textasciitilde}{QX}{140} % LaTeX +\DeclareTextSymbol{\textasciicircum}{QX}{141} % LaTeX +\DeclareTextSymbol{\textell}{QX}{142} % TeX-math, Adobe +\DeclareTextSymbol{\textdagger}{QX}{143} % LaTeX +\DeclareTextSymbol{\textdaggerdbl}{QX}{144} % LaTeX +\DeclareTextComposite{\'}{QX}{S}{145} +\DeclareTextComposite{\v}{QX}{S}{146} +\DeclareTextComposite{\c}{QX}{S}{147} +\DeclareTextSymbol{\textdegree}{QX}{148} % Adobe +\DeclareTextComposite{\c}{QX}{T}{149} +\DeclareTextCommand{\k}{QX}[1]{% % LaTeX + \leavevmode\setbox0=\hbox{#1}\ifdim\ht0=1ex \accent150 #1% + \else{\ooalign{\hidewidth\char150\hidewidth\crcr\unhbox0}}\fi + } +\DeclareTextComposite{\k}{QX}{U}{151} +\DeclareTextComposite{\"}{QX}{Y}{152} +\DeclareTextComposite{\'}{QX}{Z}{153} +\DeclareTextComposite{\v}{QX}{Z}{154} +\DeclareTextComposite{\.}{QX}{Z}{155} + +\DeclareTextSymbol{\textbraceleft}{QX}{157} % LaTeX +\DeclareTextSymbol{\textbraceright}{QX}{158} % LaTeX +\DeclareTextSymbol{\textsection}{QX}{159} % LaTeX + +\DeclareTextComposite{\k}{QX}{a}{161} +\DeclareTextComposite{\'}{QX}{c}{162} +\DeclareTextSymbol{\textregistered}{QX}{163} % LaTeX +\DeclareTextSymbol{\copyright}{QX}{164} % TeX +\DeclareTextSymbol{\textdiv}{QX}{165} % TeX-math +\DeclareTextComposite{\k}{QX}{e}{166} +\DeclareTextComposite{\k}{QX}{i}{167} +\DeclareTextSymbol{\textminus}{QX}{168} % Adobe +\DeclareTextSymbol{\texttimes}{QX}{169} % TeX-math +\DeclareTextSymbol{\l}{QX}{170} % TeX +\DeclareTextComposite{\'}{QX}{n}{171} +\DeclareTextSymbol{\textpm}{QX}{172} % TeX-math +\DeclareTextSymbol{\textinfty}{QX}{173} % TeX-math +\DeclareTextSymbol{\guillemotleft}{QX}{174} % LaTeX +\DeclareTextSymbol{\guillemotright}{QX}{175} % LaTeX +\DeclareTextSymbol{\textparagraph}{QX}{176} % LaTeX +\DeclareTextComposite{\'}{QX}{s}{177} +\DeclareTextComposite{\v}{QX}{s}{178} +\DeclareTextComposite{\c}{QX}{s}{179} +\DeclareTextSymbol{\textbullet}{QX}{180} % LaTeX +\DeclareTextComposite{\c}{QX}{t}{181} + +\DeclareTextComposite{\k}{QX}{u}{183} +\DeclareTextComposite{\"}{QX}{y}{184} +\DeclareTextComposite{\'}{QX}{z}{185} +\DeclareTextComposite{\v}{QX}{z}{186} +\DeclareTextComposite{\.}{QX}{z}{187} +\DeclareTextSymbol{\textperiodcentered}{QX}{189}% LaTeX +\DeclareTextSymbol{\textquotedbl}{QX}{190} % LaTeX +\DeclareTextSymbol{\textquotesingle}{QX}{191} % Adobe +\DeclareTextComposite{\`}{QX}{A}{192} +\DeclareTextComposite{\'}{QX}{A}{193} +\DeclareTextComposite{\^}{QX}{A}{194} +\DeclareTextComposite{\~}{QX}{A}{195} +\DeclareTextComposite{\"}{QX}{A}{196} +\DeclareTextSymbol{\AA}{QX}{197} % TeX +\DeclareTextSymbol{\textbackslash}{QX}{198} % LaTeX +\DeclareTextComposite{\c}{QX}{C}{199} + +\DeclareTextComposite{\`}{QX}{E}{200} +\DeclareTextComposite{\'}{QX}{E}{201} +\DeclareTextComposite{\^}{QX}{E}{202} +\DeclareTextComposite{\"}{QX}{E}{203} +\DeclareTextComposite{\`}{QX}{I}{204} +\DeclareTextComposite{\'}{QX}{I}{205} +\DeclareTextComposite{\^}{QX}{I}{206} +\DeclareTextComposite{\"}{QX}{I}{207} + +\DeclareTextSymbol{\DH}{QX}{208} % LaTeX +\DeclareTextSymbol{\DJ}{QX}{208} % LaTeX +\DeclareTextComposite{\~}{QX}{N}{209} +\DeclareTextComposite{\`}{QX}{O}{210} +\DeclareTextComposite{\'}{QX}{O}{211} +\DeclareTextComposite{\^}{QX}{O}{212} +\DeclareTextComposite{\~}{QX}{O}{213} +\DeclareTextComposite{\"}{QX}{O}{214} +\DeclareTextSymbol{\textcurrency}{QX}{215} % Adobe + +\DeclareTextSymbol{\textperthousand}{QX}{216} % Adobe +\DeclareTextComposite{\`}{QX}{U}{217} +\DeclareTextComposite{\'}{QX}{U}{218} +\DeclareTextComposite{\^}{QX}{U}{219} +\DeclareTextComposite{\"}{QX}{U}{220} +\DeclareTextComposite{\'}{QX}{Y}{221} +\DeclareTextSymbol{\TH}{QX}{222} % LaTeX +\DeclareTextSymbol{\textbar}{QX}{223} % LaTeX + +\DeclareTextComposite{\`}{QX}{a}{224} +\DeclareTextComposite{\'}{QX}{a}{225} +\DeclareTextComposite{\^}{QX}{a}{226} +\DeclareTextComposite{\~}{QX}{a}{227} +\DeclareTextComposite{\"}{QX}{a}{228} +\DeclareTextSymbol{\aa}{QX}{229} % TeX +\DeclareTextComposite{\r}{QX}{a}{229} +\DeclareTextSymbol{\textunderscore}{QX}{230} % LaTeX +\DeclareTextComposite{\c}{QX}{c}{231} + +\DeclareTextComposite{\`}{QX}{e}{232} +\DeclareTextComposite{\'}{QX}{e}{233} +\DeclareTextComposite{\^}{QX}{e}{234} +\DeclareTextComposite{\"}{QX}{e}{235} +\DeclareTextComposite{\`}{QX}{i}{236} +\DeclareTextComposite{\`}{QX}{\i}{236} +\DeclareTextComposite{\'}{QX}{i}{237} +\DeclareTextComposite{\'}{QX}{\i}{237} +\DeclareTextComposite{\^}{QX}{i}{238} +\DeclareTextComposite{\^}{QX}{\i}{238} +\DeclareTextComposite{\"}{QX}{i}{239} +\DeclareTextComposite{\"}{QX}{\i}{239} + +\DeclareTextSymbol{\dh}{QX}{240} % LaTeX +\DeclareTextSymbol{\dj}{QX}{240} % LaTeX +\DeclareTextComposite{\~}{QX}{n}{241} +\DeclareTextComposite{\`}{QX}{o}{242} +\DeclareTextComposite{\'}{QX}{o}{243} +\DeclareTextComposite{\^}{QX}{o}{244} +\DeclareTextComposite{\~}{QX}{o}{245} +\DeclareTextComposite{\"}{QX}{o}{246} +\DeclareTextSymbol{\textanglearc}{QX}{247} % Adobe + +\DeclareTextSymbol{\textdiameter}{QX}{248} % Adobe +\DeclareTextComposite{\`}{QX}{u}{249} +\DeclareTextComposite{\'}{QX}{u}{250} +\DeclareTextComposite{\^}{QX}{u}{251} +\DeclareTextComposite{\"}{QX}{u}{252} +\DeclareTextComposite{\'}{QX}{y}{253} +\DeclareTextSymbol{\th}{QX}{254} % LaTeX +\DeclareTextSymbol{\quotedblbase}{QX}{255} % LaTeX +%</qx> +% \end{macrocode} +% +\endinput +%% \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 \~} |