From: zleyk@vila.anu.edu.au (Zbigniew Leyk)
Newsgroups: soc.culture.polish
Subject: Re: Tex/Latex po Polsku
Date: 28 Jan 93 16:24:57
Organization: Australian National University
NNTP-Posting-Host: 150.203.15.69

In article <1993Jan18.055159.8365@gmuvax2.gmu.edu>,
azaleski@gmuvax2.gmu.edu (Andrzej Zaleski) wrote:
> 
> Pytanie: Czy ktos lepiej poinformowany moglby podzielic sie ze mna (i
> pewnie jeszcze innymi) informacja o tym jak zmusic Tex/Latex do
> drukowania polskich liter?
> Z gory dziekuje,
> AZaleski

Mnie rowniez interesowala taka informacja. Chcialem uzyc macro, ktore
zamiescil Ole Michael Selberg, ale niestety wymaga to uzycia
niestandardowych fontow (Times w tym przypadku). Przejrzalem poprzednie
macra do tworzenia polskich liter i stworzylem nowe macro, ktore jak sadze,
jest juz dosc przyzwoite. Ma kilka zalet: 
 - ogonki powiekszaja sie gdy zwiekszamy fonty (magnification)
 - inaczej ustawiane sa wszystkie "poprzeczki" i "kropki" w foncie \tt, niz
   w pozostalych fontach
 - ogonki wygladaja poprawnie

Przetestowalem to macro uzywajac LaTeX'a. Nie zrobilem testow z TeX'em.
Aby uzyc go w LaTeX'u wystarczy uzyc nastepujacej konstrukcji

\documentstyle[poltex]{article}

\begin{document}
...
\end{document}


Do kodowania polskich liter uzylem konwencji zaproponowanej przez Ole
Michael Selberga, tzn.

    	+a :  a z ogonkiem
        +e :  e z ogonkiem
        +c :  c z kreska
itd.

W wypadku z wybralem, ze
    	+x daje z z kreska
        +z daje z z kropka
(mozna to zmienic).
Znak + w mathmode daje poprawny znak plus.


%----------------cut here------------------------
% poltex.sty 
%
% Macros for Polish letters
% 
%
% This is a modification of several files, mainly
% Leszek Holenderski's PLFONTS.STY, J. S. Bien's PLHB.STY
% and Ole Michael Selberg's (Universitetet i Oslo) message
% posted in soc.culture.polish
%
% Notation:
% +a is a with "ogonek", +c is c with "poprzeczka",...
% +z means z with dot and +x means z with acute accent.
% To deactivate '+' write \plusnormal. To activate '+' write \plusactive.
% In math mode '+' is interpreted correctly.
% In Latex "plusnormal" and "plusactive" can be used as environments, i.e.
% \begin{plusactive} ...  \end{plusactive}
%
%
% This is the ``macro'' version which can work with plain TeX (not tested) 
% and LaTeX (tested).
%


\dimendef\pl@left=0
\dimendef\pl@down=1
\dimendef\pl@right=2
\dimendef\pl@temp=3

\def\plusactive{\catcode`+=\active}
\def\plusnormal{\catcode`+=12}
\let\plus=+
\plusactive

% typeset `ogonek' box
\def\sob#1#2#3#4#5{%parameters: letter and fractions hl,ho,vl,vo
\setbox0\hbox{#1}\setbox1\hbox{$%
{}_{\displaystyle \mathchar"012C}$}\setbox2\hbox{p}%
\pl@right=#2\wd0 \advance\pl@right by-#3\wd1
\pl@down=#5\ht1 \advance\pl@down by-#4\ht0
\pl@left=\pl@right \advance\pl@left by\wd1
\pl@temp=-\pl@down \advance\pl@temp by\dp2 \dp1=\pl@temp
\kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}

% typeset `poprzeczka' box
\def\spb#1#2#3#4#5{%
\setbox0\hbox{#1}\setbox1\hbox{\char'023}%
\pl@right=#2\wd0 \advance\pl@right by-#3\wd1
\pl@down=#5\ht1 \advance\pl@down by-#4\ht0
\pl@left=\pl@right \advance\pl@left by\wd1
\ht1=\pl@down \dp1=-\pl@down
\kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}

% typeset `kropka' box
\def\skb#1#2#3#4#5{%
\setbox0\hbox{#1}\setbox1\hbox{\char'056}%
\pl@right=#2\wd0 \advance\pl@right by-#3\wd1
\pl@down=#5\ht1 \advance\pl@down by-#4\ht0
\pl@left=\pl@right \advance\pl@left by\wd1
\kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}

% `ogonek' boxes
% (first horizontal then vertical; first letter then `ogonek')
\def\aob{\sob a{.66}{.20}{0}{.90}}
\def\Aob{\sob A{.80}{.50}{0}{.90}}
\def\eob{\sob e{.50}{.35}{0}{.93}}
\def\Eob{\sob E{.60}{.35}{0}{.90}}

% `poprzeczka' and `kropka' boxes in text fonts
\def\textpl{%
\def\lpb{\lll}%
\def\Lpb{\LLL}%
\def\zkb{\accent'137z}%
\def\Zkb{\accent'137Z}}

\let\lll=\l \let\LLL=\L

% `poprzeczka' and `kropka' boxes in teletype font
\def\telepl{%
\def\lpb{\spb l{.45}{.5}{.4}{.8}}%
\def\Lpb{\spb L{.23}{.5}{.4}{.8}}%
\def\zkb{\skb z{.5}{.5}{1.2}{0}}%
\def\Zkb{\skb Z{.5}{.5}{1.1}{0}}}

% protected font style names
\def\rm{\protect\pprm}\def\pprm{\prm\textpl}
\def\it{\protect\ppit}\def\ppit{\pit\textpl}
\def\bf{\protect\ppbf}\def\ppbf{\pbf\textpl}
\def\sl{\protect\ppsl}\def\ppsl{\psl\textpl}
\def\sf{\protect\ppsf}\def\ppsf{\psf\textpl}
\def\sc{\protect\ppsc}\def\ppsc{\psc\textpl}
\def\tt{\protect\pptt}\def\pptt{\ptt\telepl}



\def\diakryt#1{\relax\leavevmode
  \ifx a#1\aob\else
  \ifx A#1\Aob\else
  \ifx c#1\accent'023 c\else
  \ifx C#1\accent'023 C\else
  \ifx e#1\eob\else
  \ifx E#1\Eob\else
  \ifx l#1\lpb\else
  \ifx L#1\Lpb\else
  \ifx n#1\accent'023 n\else
  \ifx N#1\accent'023 N\else
  \ifx o#1\accent'023 o\else
  \ifx O#1\accent'023 O\else
  \ifx z#1\zkb\else
  \ifx Z#1\Zkb\else
  \ifx s#1\accent'023 s\else
  \ifx S#1\accent'023 S\else
  \ifx x#1\accent'023 z\else
  \ifx X#1\accent'023 Z\else
    \errmessage{niepoprawna sekwencja: diakryt litera}
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\pdiakryt{\protect\diakryt} 

\def+#1{\ifmmode\plus#1%
\else\pdiakryt#1%
\fi}

\rm

%------------cut here----------------------



--
Zbigniew Leyk

--------------------
zleyk@orac.anu.edu.au			Australian National University
					     Canberra, ACT 2601
			
Newsgroups: soc.culture.polish