% definicje srodowisk dla dokumentow na konferencje 
% (-autor- P.O.)
%
%  srodowiska: referat i abstrakt


\makeatletter
\newfont{\titf@nt}{cmbxsl10 at 24pt}
\newif\ifCentN@gl\CentN@glfalse
\newcommand{\N@gl}{\begin{minipage}{0.5\textwidth}%
\mbox{}\hfill{X Konferencja}\ifCentN@gl\hfill\mbox{}\fi\\ 
\mbox{}\hfill{\bfseries Matematyka w naukach technicznych}
\ifCentN@gl\hfill\mbox{}\fi\\%
\mbox{}\hfill{\bfseries i przyrodniczych}\ifCentN@gl\hfill\mbox{}\fi\\% 
\mbox{}\hfill{Krynica, 26 -- 30 wrze\'snia 2007}\ifCentN@gl\hfill\mbox{}\fi%
\end{minipage}}
\newcommand{\titst@mp}%
{\ifodd\c@page\parbox{\textwidth}%
               {\hfill\N@gl\vspace{5pt}\par\noindent
                \rule{\textwidth}{\hruleheight}}%
  \else\parbox{\textwidth}%
               {\hfill\N@gl\vspace{5pt}\par\noindent
                \rule{\textwidth}{\hruleheight}}%
  \fi}
\newcommand{\hruleheight}{0.4pt}
\newcommand{\str@n@tytul@w@}%
{\begin{minipage}{\textwidth}
 \mbox{}\hfill{\titf@nt\@tytul}\hfill\mbox{}\\[1em]
 \mbox{}\hfill{\bfseries\@autor}\hfill\mbox{}\\[0.5em]
 \mbox{}\hfill{\@instytucja}\hfill\mbox{}
 {\setbox0=\vbox{\@email}\ifdim\wd0=0pt\else
  \\[0.3em]\mbox{}\hfill{\tt\@email}\hfill\mbox{}\fi}%
 \end{minipage} }
\newdimen\st@mpt@tit\st@mpt@tit=2cm
\newdimen\titt@txt\titt@txt=1.7cm
\def\ps@makrstl{%
    \def\@oddfoot{\hfil\thepage}\def\@evenfoot{\thepage\hfil}%
    \let\@evenhead\empty \let\@oddhead\empty
    \let\@mkboth\@gobbletwo
    \let\sectionmark\@gobble
    \let\subsectionmark\@gobble
    }
\pagestyle{makrstl}
\newif\ifr@fN@gluz
\newcommand{\r@fNaglowek}%
{\ifenv@referat\else\ifenv@abstrakt\else
    \@mkr@error%
         {Komenda \noexpand\r@fNaglowek nie powinna wystepowac poza srodowiskiem
          \noexpand\referat.}   
         {Komenda \noexpand\r@fNaglowek jest dedykowana dla srodowiska
          \noexpand\referat.^^J%
          Prosimy nie uzywac jej w innych okolicznosciach.^^J%
          \r@fpominiecie{\r@fNaglowek} \r@fniepowolany}
 \fi\fi
 \ifr@fN@gluz
 \@mkr@error
 {Wielokrotne uzycie komendy \noexpand\r@fNaglowek.}
 {Naglowek jest generowany na poczatku srodowiska \noexpand\referat.^^J% 
  Ponowna jego generacja zepsuje zakladany uklad strony.^^J%
  \r@fpominiecie{\r@fNaglowek} \r@fniepowolany}
  %Nalezy usunac z tekstu referatu wywolania komendy \noexpand\r@fNaglowek i 
  %przekompilowac zrodla od nowa.
  %\batchmode\input.\relax
 \else
   \noindent\titst@mp\vspace{\st@mpt@tit}\par\r@fN@gluztrue
 \fi
}
\newcommand{\str@n@tytul@w@r@f@r@tu}%
{\begin{minipage}{\textwidth}
 \mbox{}\hfill{\titf@nt\r@f@tytul}\hfill\mbox{}\\[1em]
 \mbox{}\hfill{\bfseries\r@f@autor}\hfill\mbox{}\\[0.5em]
 \mbox{}\hfill{\r@f@instytucja}\hfill\mbox{}
 {\setbox0=\vbox{\r@f@email}\ifdim\wd0=0pt\else
  \\[0.3em]\mbox{}\hfill{\tt\r@f@email}\hfill\mbox{}\fi}%
 \end{minipage}
 }
\newcommand{\StronaTytulowaReferatu}%
{\ifenv@referat
    \noindent\str@n@tytul@w@r@f@r@tu\vspace{\titt@txt}\par
    \ifx\r@f@streszcz\@empty\else\noindent{\em Streszczenie. \r@f@streszcz}
        \vspace{1em}\par\fi
 \else
    \ifenv@abstrakt
       \noindent\str@n@tytul@w@r@f@r@tu\vspace{\titt@txt}\par
       \noindent\mbox{}\hfill{\bf Streszczenie.}\hfill\mbox{}\vspace{1em}\par
    \else

 \@mkr@error{Komenda \noexpand\StronaTytulowaReferatu moze byc uzyta^^J%
             wylacznie w srodowiskach referat i abstrakt.}
            {Usun komendy \noexpand\StronaTytulowaReferatu wystepujace poza 
             srodowiskami referat ^^Ji abstrakt.^^J%
             \r@fpominiecie{\StronaTytulowaReferatu}}
\fi\fi}
\newcommand{\TytulReferatu}[1]{\gdef\r@f@tytul{#1}}
\newcommand{\AutorReferatu}[1]{\gdef\r@f@autor{#1}}
\newcommand{\Instytucja}[1]{\gdef\r@f@instytucja{#1}}
\newcommand{\Email}[1]{\gdef\r@f@email{#1}}
\newcommand{\StreszczenieReferatu}[1]{\gdef\r@f@streszcz{#1}}
\newif{\ifr@fpggu@rd}
\newcounter{r@fp@g@}
\newif{\ifr@fshipped}
\newcommand{\antyr@fshipout}[1]{\setbox0#1}
\newcommand{\r@foutputpage}
           {\@utputp@ge
            \ifr@fshipped\message{(\ther@fpage)}
            \else
              \message{^^JZa duzo stron}
              \ifenv@referat\message{dla jednego referatu!}\fi
              \ifenv@abstrakt\message{dla jednego abstraktu!}\fi
              \message{(\ther@fpage)}
            \fi
            \stepcounter{r@fpage}}
\newcommand{\r@fshipout}%
{\ifr@fpggu@rd
    \global\r@fshippedfalse\stepcounter{r@fp@g@}
    \ifnum\value{r@fp@g@}>0\antyr@fshipout
    \else\global\r@fshippedtrue\n@rmshipout\fi
 \else\global\r@fshippedtrue\n@rmshipout\fi}
\newcommand{\r@fspec@outputroutine}{\let\@utputp@ge\@outputpage
                                    \let\@outputpage\r@foutputpage
                                    \let\n@rmshipout\shipout 
                                    \let\shipout\r@fshipout}
\newcommand{\r@fnorm@outputroutine}{\let\shipout\n@rmshipout
                                    \let\@outputpage\@utputp@ge}

\newcommand{\r@fchk@embed}[1]%
{\ifenv@referat\r@ferr@embed{#1}{referat}\fi
 \ifenv@abstrakt\r@ferr@embed{#1}{abstrakt}\fi}
\newcommand{\r@fpuryfikacja}%
{\gdef\r@f@tytul{%
     \@mkr@error{\noexpand\TytulReferatu nie zostal zdefiniowany}\r@f@gogh
     \batchmode\input.\relax}
 \gdef\r@f@autor{%
     \@mkr@error{\noexpand\AutorReferatu nie zostal zdefiniowany}\r@f@gogh
     \batchmode\input.\relax}
 \gdef\r@f@instytucja{%
     \@mkr@error{\noexpand\Instytucja nie zostala zdefiniowana}\r@f@gogh
     \batchmode\input.\relax}
 \gdef\r@f@email{}
 \gdef\r@f@streszcz{}}
\newcounter{r@fsection}
\newcounter{r@fpart}
\newcommand{\r@fsect@zero}{\setcounter{r@fsection}{\value{section}}
  \setcounter{r@fpart}{\value{part}}\setcounter{section}{0}\setcounter{part}{0}}
\newcommand{\r@fsect@reset}
 {\setcounter{section}{\value{r@fsection}}\setcounter{part}{\value{r@fpart}}}
\newif\ifenv@abstrakt \env@abstraktfalse
\newif\ifenv@referat  \env@referatfalse
\newcounter{r@fnumerabstraktu}\setcounter{r@fnumerabstraktu}{0}
\newcounter{r@fnumerreferatu}\setcounter{r@fnumerreferatu}{0}
\newcounter{M@xStrRefer@u}\setcounter{M@xStrRefer@u}{-1}
\newcommand{\maxr@fpage}[1]{\r@fpggu@rdtrue\setcounter{r@fp@g@}{-#1}}
\newcommand{\MaksymalnaObjetoscReferatu}[1]{\setcounter{M@xStrRefer@u}{#1}}
\newcounter{r@fpage}

\newenvironment{abstrakt}%
%%% begin {abstrakt}
{\r@fchk@embed{abstrakt}\clearpage\stepcounter{r@fnumerabstraktu} 
 \message{^^JNowy abstrakt (nr \ther@fnumerabstraktu).^^J} 
 \env@abstrakttrue\setcounter{r@fpage}{1}\r@fN@gluzfalse\r@fNaglowek       
 \maxr@fpage{1}\r@fspec@outputroutine\r@fpuryfikacja\r@fsect@zero}
%%% end {abstrakt}
{\env@abstraktfalse\r@fpggu@rdfalse\r@fnorm@outputroutine\r@fsect@reset
 \message{^^JKoniec abstraktu (nr \ther@fnumerabstraktu).^^J}} 

\newenvironment{referat}%
%%%%begin{referat}
{\r@fchk@embed{referat}\clearpage\stepcounter{r@fnumerreferatu}
 \message{^^JNowy referat (nr \ther@fnumerreferatu).^^J}
 \env@referattrue\setcounter{r@fpage}{1}\r@fN@gluzfalse\r@fNaglowek
 \ifnum\value{M@xStrRefer@u}=-1\else\maxr@fpage{\value{M@xStrRefer@u}}\fi
 \r@fspec@outputroutine\r@fpuryfikacja\r@fsect@zero}
%%%%end{referat}
{\env@referatfalse\r@fpggu@rdfalse\r@fnorm@outputroutine\r@fsect@reset
 \message{^^JKoniec referatu (nr \ther@fnumerreferatu).^^J}} 



\gdef\@env@error#1#2{\GenericError{\space\space\space\@spaces\@spaces\@spaces}%
                    {(ERROR) Blad uzycia srodowiska: #1.}{}{#2}}
\gdef\@mkr@error#1#2{\GenericError{\space\space\space\@spaces\@spaces\@spaces}
                    {(ERROR) Blad uzycia komendy: #1.}{}{#2}}
\gdef\r@f@gogh{%
Przed uzyciem komendy \noexpand\StronaTytulowaReferatu powinienes okreslic
tytul, autorai instytucje.
Sluza do tego komendy: \noexpand\TytulReferatu, \noexpand\AutorReferatu ^^Ji 
\noexpand\Instytucja.^^J^^J%
Dodatkowo mozesz skorzystac z komend \noexpand\Email oraz 
\noexpand\StreszczenieReferatu.^^J%
Za pomoca pierwszej okreslisz adres poczty elektronicznej do korespondencji 
^^Jz autorem.
Natomiast druga --uzywana wylacznie w srodowisku referat-- dodaje 
^^Jprzed tekstem referatu streszczenie.^^J}
\newcommand{\r@fpominiecie}[1]%
{^^J--- Komenda ( \noexpand#1) zostala pominieta. ---^^J}
\newcommand{\r@fniepowolany}%
{^^J%
(Jezeli nie wiesz o co chodzi, to znaczy ze pewnie ktos niepowolany grzebal^^J
 w zrodlach pakietu).}
\newcommand{\r@ferr@embed}[2]%
{\@env@error{^^JSrodowisko #1 nie moze byc zagniezdzane w srodowisku
 #2.}{Usun zagniezdzone srodowiska i skompiluj plik zrodlowy jeszcze
 raz.^^J}\batchmode\input.\relax}
\MaksymalnaObjetoscReferatu{6}
\makeatother
