%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%    Stílusállomány			  	     		                    %%%	
%%    az "Elektronikus könyvtárak használata és fejlesztése" című tárgyhoz          %%%		 
%%    Budapest, 2007.                                                               %%%	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{Infalg}[2004/09/28]

\RequirePackage[latin2]{inputenc}
\RequirePackage{ifthen}
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{calc}
\RequirePackage{eurosym}


\RequirePackage{t1enc}
\RequirePackage[dvips]{graphicx}
\RequirePackage{makeidx}
\RequirePackage{multicol}
\RequirePackage{color}



%%
%% XFIG-GEL RAJZOLT ÁBRÁKHOZ SZÜKSÉGES CSOMAGOK
%%
\RequirePackage{graphics}
\RequirePackage{epic}
\RequirePackage{eepic}
\RequirePackage{epsfig}
\RequirePackage{alltt}
\RequirePackage{psfig}


%% HIPERLINKEKHEZ KITERJESZTETT HIVATKOZÁSOKHOZ SZÜKSÉGES CSOMAGOK
%%
\RequirePackage{xr}
\RequirePackage[bookmarksnumbered,colorlinks,plainpages,backref=false,pagebackref=true]{hyperref}
\RequirePackage{epsf}
\epsfclipon
\RequirePackage{psfrag}
%\raggedbottom                  2003. augusztus 30.
%% Memóriagazdálkodásos rész miatt (2004.08.31.)
%\RequirePackage{array}
%\RequirePackage{mycolortbl}

%% KERETHEZ SZÜKSÉGES DOLGOK
%% 
\newlength\cropeltol
\setlength\cropeltol{0in}
\RequirePackage[frame,noinfo,a4,center,dvips,pdflatex]{crop}
\setlength\cropeltol{-1in}

\fussy
\baselineskip=14 pt%ok
\lineskiplimit= 0 pt %ok
\lineskip=0.000 pt %ok
% fattyúsorok           2003. augusztus 30.
\global\widowpenalty=0
\global\displaywidowpenalty=0
\global\clubpenalty=0 

%%
%% KÉK SZÍNŰEK LEGYENEK A HIPERHIVATKOZÁSOK
%%
\def\@linkcolor{blue}           %%%  2003. szeptember 15.
%%\def\@anchorcolor{blue}
\def\@anchorcolor{blue}
\def\@citecolor{blue}
\def\@filecolor{blue}
%%\def\@urlcolor{blue}
\def\@urlcolor{blue}
\def\@menucolor{blue}
\def\@pagecolor{blue}

%%
%% MAGYAR ELNEVEZÉSEK
%%
\newcommand{\prefacename}{Előszó}
\renewcommand{\bibname}{Irodalomjegyzék}
\renewcommand{\chaptername}{Fejezet}
\renewcommand{\contentsname}{Tartalomjegyzék}
\renewcommand{\indexname}{Tárgymutató}
\newcommand{\nevindexname}{Névmutató}
\renewcommand{\figurename}{ábra}
\renewcommand{\tablename}{táblázat}
\renewcommand{\partname}{rész}
\newcommand{\enclname}{Melléklet}
\newcommand{\pagename}{oldal}
\renewcommand{\seename}{Lásd}
\renewcommand{\alsoname}{Lásd még}
\newcommand{\proofname}{bizonyítás}

%%
%% PARANCSOK A KIS RÖVIDÍTÉSHEZ A TÁRGYMUTATÓBAN (2003.02.15.)
%% 
\newcommand{\gyakindex}[1]{\index{#1|gyak}}
\newcommand{\abraindex}[1]{\index{#1|abra}} 
\newcommand{\felindex}[1]{\index{#1|fel}}
\newcommand{\pelindex}[1]{\index{#1|pel}}   
\newcommand{\labindex}[1]{\index{#1|lab}}  

%%
%% HIPERCÍM A TÁRGYMUTATÓBAN (2003.02.28.)										
%% 
\newcommand{\bibcim}[2]{\ifthenelse{\equal{#2}{}} 
									{#1}
									{\hrefun{#2}{#1}\hspace*{-0.6pt}}}

%%
%% SEGÉDFÜGGVÉNYEK (2003.03.18.)
%%
\newcommand{\nagybetu}[1]{\sc{#1}} 
\newcommand{\knagybetu}[1]{\textbf{#1}} 

%%
%% KIS RÖVIDÍTÉSEK A TÁRGYMUTATÓBAN AZ OLDALSZÁM UTÁN (2003.02.28.)										
%% 
%% MILYEN MÉRETBEN ÍRJÁK KI
%%
\def\style{\footnotesize\it}
%%
%% MIT ÍRJANAK KI
%% 
\def\gyakkiir{{\style gy}}  
\def\abrakiir{{\style áb}}
\def\felkiir{{\style fe}}
\def\pelkiir{{\style pe}} 
\def\labkiir{{\style lá}}  
%%
%% AZ OLDALSZÁMTÓL MILYEN TÁVOL ÍRJÁK KI
%%
\def\jeltav{\hspace*{0mm}} 
\def\baselineskip@table{%
  <\@vpt>6%        5 pt, \tiny         =>    6 pt sort^^e1vols^^e1g (6)
  <\@viipt>8%      7 pt, \scriptsize   =>    8 pt sort^^e1vols^^e1g (8)
  <\@viiipt>9.5%     8 pt, \footnotesize =>    9 pt sort^^e1vols^^e1g (10)  |
  <\@ixpt>10.3984375%      9 pt, \small        =>   10 pt sort^^e1vols^^e1g (11)  |
  <\@xpt>12%      10 pt, \normalsize   =>   11 pt sort^^e1vols^^e1g (12)  |
  <\@xipt>12%     11 pt                =>   12 pt sort^^e1vols^^e1g (13.6)|
  <\@xiipt>14%    12 pt, \large        =>   14 pt sort^^e1vols^^e1g (14)
  <\@xivpt>24%    14 pt, \Large        =>   18 pt sort^^e1vols^^e1g (18)
  <\@xviipt>22%   17 pt, \LARGE        =>   22 pt sort^^e1vols^^e1g (22)
  <\@xxpt>24%     20 pt, \huge         =>   25 pt sort^^e1vols^^e1g (25)
  %<\@xxvpt>30%    25 pt, \Huge         =>   30 pt sort^^e1vols^^e1g (30)
}  

%%
%% MÉRETEK BEÁLLÍTÁSA 
%%
%% VÁGOTT MÉRET (2003.03.13.)
%%
\setlength\paperwidth{168mm}
\setlength\paperheight{238mm}
%%
%% ÉLŐFEJ BETŰVONALA (2002.03.13.)
%%
\setlength\headsep{26mm-18.7mm}
%%
%% TÜKÖR MÉRET (2003.03.13.) 
%%
\setlength\textwidth{128mm}
\setlength\textheight{195mm}

%%
%% MARGÓK MÉRETE (2003.03.13)
%%
\setlength\topmargin{\cropeltol+26mm-\headsep-13pt}
\setlength\footskip{17mm}
\setlength\evensidemargin{\cropeltol+22mm}
\setlength\oddsidemargin{\cropeltol+18mm}
\setlength\parindent{6mm}

%%
%% TÁRGYMUTATÓBAN A BETŰ (2003.03.16.)
%%
%% KEZDŐ NAGYBETŰK MÉRETE
%%
\newcommand{\betumeret}{\Large}
%%
%% VÍZSZINTES TÉRKÖZ A NAGYBETŰ ELŐTT (2003. július 26.) 								  
%%
\newlength{\betuelott}
\setlength{\betuelott}{12pt}        
%%
%% VÍZSZINTES TÉRKÖZ A NAGYBETŰ UTÁN (2003. július. 26.) 							  
%%
\newlength{\betuutan}
\setlength{\betuutan}{0mm}
%%
%% PARANCSOK A BETŰ KÖRÜL (2003.03.16.)
%%
\newsavebox{\ujdb}
\newenvironment{betukorny}
{
\vspace{\betuelott}
\bf
}
{
\rm
\vspace{\betuutan}
}
\def\prebetu{\begin{betukorny}}
\def\postbetu{\end{betukorny}}
        
%%
%% HA NINCS FLEQN
%%
\newdimen\mathindent
\setlength{\mathindent}{4mm}

%%
%% MONDATKÖZÖK BEÁLLÍTÁSA
%%
\frenchspacing

%%
%% KÉPLETEK UTÁNI KÖZ (2004. augusztus 8.)
%%
\newcommand{\koz}{\hspace{.3em}}


%%
%% SZÁMLÁLÓK, HOSSZOK, DOBOZOK
%% 	
\newcounter{examp}
\newcounter{peldacount}

\newcounter{allcount}
\newcounter{protcount}
\newcounter{eljcount}
\newsavebox{\iroddoboz}
\newlength{\temp}

%%
%% BEKEZDÉSEK KÖZTI TÁVOLSÁG
%%
\setlength{\parskip}{0pt} 	 %% Bekezdések közötti távolság (nincs köz a bekezdések között)
						
%%
%% BETŰMÉRETEK (2003.03.14.)
%%	
\def\footnotesize{\@setsize\footnotesize{8pt}\viiipt\@viiipt
  \topsep=2pt plus 1pt minus1pt
  \abovedisplayskip 1pt plus 1pt minus 1pt
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus 1pt
  \belowdisplayshortskip \abovedisplayshortskip
  \def\@listi{\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt
    \itemsep \parsep}%
} 
\def\nagy{\@setsize\scriptsize{10pt}\xiipt\@xpt}
%\def\normalsize{\@setsize\large{10pt}\xiipt\@xpt}
\def\large{\@setsize\large{11pt}\xiipt\@xiipt}
\def\Large{\@setsize\Large{14pt}\xivpt\@xivpt}
\def\LARGE{\@setsize\LARGE{22pt}\xviiipt\@xviiipt}
\def\huge{\@setsize\huge{20pt}\xxpt\@xxpt}
\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}

%%
%% BETŰMÉRET SPEC KÖRNYEZETEKBEN (2003.03.14)
%%
\def\tabular{
 	\def\arraystretch{1.5}
 	\footnotesize\let\@halignto\@empty\@tabular
} 	

\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
 \let\@classiv\@arrayclassiv
 \let\\\@arraycr\let\@halignto\@empty\@tabarray}

\def\captionarray{\footnotesize\let\@acol\@arrayacol \let\@classz\@arrayclassz
 \let\@classiv\@arrayclassiv
 \let\\\@arraycr\let\@halignto\@empty\@tabarray}
\def\endcaptionarray{\crcr\egroup\egroup}

%%
%% PART ÚJRADEFINIÁLÁSA (2003.07.30.)
%%
%% DUPLA OLDAL KIHAGYÁS HELYESEN (2003.augusztus 9.)
%%
%\def\cleardoublepage{\clearpage\thispagestyle{empty}\if@twoside \ifodd\c@page\else   
%\hbox{}\thispagestyle{empty}\newpage\thispagestyle{empty}\if@twocolumn\hbox{}\newpage\fi\fi\fi}
%%
%% VÍZSZINTES HELYKÖZ A PART ELŐTT (2003.03.14.)
%%
\newlength{\partskip}
\setlength{\partskip}{\cropeltol+88.6mm-26pt-2mm}
%%
%%
%% 
\renewcommand\part{
\ifodd\c@page
	 \clearpage

  \else
	\clearpage\ \thispagestyle{empty}\clearpage

  \fi
  \thispagestyle{empty}

  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  
  \null\vspace*{\partskip}
  \secdef\@part\@spart}
%%
%%
%%
\def\@endpart{\vfil
              \if@twoside
               \if@openright
                \null
                %\newpage  %%% 2002. július 30., nincs üres oldal a part után
               \fi
                   \thispagestyle{empty}%
              \fi
              \if@tempswa
                \twocolumn
              \fi}

\def\@part[#1]#2{\thispagestyle{empty}
        \ifnum \c@secnumdepth >-2\relax
          \refstepcounter{part}
          \addcontentsline{toc}{part}{\thepart.\hspace{0.68em}#1}
        \else
          \addcontentsline{toc}{part}{#1}
        \fi
        \markboth{}{}
        {\centering
		\baselineskip34pt 
         \interlinepenalty \@M
         \normalfont
         \ifnum \c@secnumdepth >-2\relax		   
           \huge{\sf \knagybetu{\thepart.}}
         \fi
         {\huge {\sf\knagybetu{#2}}\csname par\endcsname}}
        \@endpart}
%%
%% CHAPTER ÚJRADEFINIÁLÁSA (2003.03.14.)
%%
%% VÍZSZINTES HELYKÖZ A CHAPTER ELŐTT (2003.03.14.)
%%
\newlength{\chapterskip}
\setlength{\chapterskip}{\partskip-38.1mm-09.5mm} %%% 2004.08.15.
%%
%% VÍZSZINTES HELYKÖZ A CHAPTER UTÁN (2003.03.14.)
%%
\newlength{\afterchapterskip}
\setlength{\afterchapterskip}{\partskip-\chapterskip-20pt+2mm-09.5mm} %%% 2002. július 30.
%\setlength{\afterchapterskip}{\partskip-\chapterskip-20pt+2mm-29.5mm} %%% 2004. augusztus 27.
%%
%%
%%
\renewcommand\chapter{%\clearpage
					\setcounter{peldacount}{0}
					\newpage
                    \thispagestyle{empty}
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@chapter\@schapter}
%%
%%
%%

\renewcommand{\@chapter}[2][]{\ifnum \c@secnumdepth >\m@ne
                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter.}#1}%
                       \else
                         \addcontentsline{toc}{chapter}{#1}%
                       \fi
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#2}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}

%%
%%	HA KÉT SOROS A CHAPTER, AKKOR CSÖKKENTI AZ UTÁNA LÉVŐ KÖZT (2002. július 30.) 
%%
\newcommand{\haketsor}[1]
{
  \sbox\@tempboxa{#1}%
  \ifdim \wd\@tempboxa >\hsize
  	\vspace{-20pt}	%% ez a huge mérete 
  \else
  \fi
}

\renewcommand{\@makechapterhead}[1]{
  \vspace*{\chapterskip}
  {\parindent \z@ \centering \normalfont
    \interlinepenalty\@M
	
  {\huge \sf \knagybetu{\thechapter.\ #1}}\par
  \haketsor{{\huge \sf \knagybetu{\thechapter.\ #1}}}%%% 2002. július 30.
   \vspace{\afterchapterskip}
   \noindent\ignorespaces
  }
}

%%
%% CSILLAGOS FEJEZET IS BEKERÜL A FEJLÉCBE, DE A TARTALOMJEGYZÉKBE NEM (2003.02.28.)
%%  
\def\@schapter#1{
				 \@mkboth{#1}{#1}				 
				 \if@twocolumn
                   \@topnewpage[\@makeschapterhead{#1}]
                 \else
                   \@makeschapterhead{#1}
                   \@afterheading
                 \fi}
%%
%%
%%
\def\@makeschapterhead#1{
  \vspace*{\chapterskip}
  {\parindent \z@ \centering
    \normalfont
    \interlinepenalty\@M

    {\huge \sf \knagybetu{#1}}\par\nobreak
  \haketsor{{\huge \sf \knagybetu{\thechapter.\ #1}}}%%% 2002. július 30.
    \vspace{\afterchapterskip}
	\noindent\ignorespaces
  }
}

%%
%% TÁRGYMUTATÓHOZ+NÉVMUTATÓHOZ KELL (2003.02.18.) 
%%
\newcommand{\csapter}[1]{
\newpage
\thispagestyle{empty}
  \vspace*{\chapterskip}
  {\parindent \z@ \centering
    \normalfont
    \interlinepenalty\@M
    {\huge \sf{\knagybetu{#1}}}\par\nobreak
    \vspace{\afterchapterskip}
  }}
%%
%%
%%  
\renewcommand{\chaptermark}[1]{
	  \setcounter{protcount}{0}
      \markboth{\ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
              \thechapter.\
          \fi
        \fi
      #1}{
        \ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
              \thechapter.\
          \fi
        \fi
      #1}
}

%%
%% SECTIONOK ÚJRA (2003.03.14.)
%%
\def\@startsection#1#2#3#4#5#6{%
  \if@noskipsec \leavevmode \fi
  \par
  \@tempskipa #4\relax
  \@afterindentfalse
  \ifdim \@tempskipa <\z@
    \@tempskipa -\@tempskipa \@afterindentfalse
  \fi
  \if@nobreak
    \everypar{}%
  \else
    \addpenalty\@secpenalty\addvspace\@tempskipa
  \fi
  \@ifstar
    {\@ssect{#3}{#4}{#5}{#6}}%
    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
%%
%%
%%
\def\@seccntformat#1{\csname the#1\endcsname.\ }
%%
%%
%%
\def\@sect#1#2#3#4#5#6[#7]#8{%
    \ifnum #2>\c@secnumdepth
      \let\@svsec\@empty
    \else
      \refstepcounter{#1}%
      \protected@edef\@svsec{\@seccntformat{#1}\relax}%
    \fi
    \@tempskipa #5\relax
    \ifdim \@tempskipa>\z@
      \begingroup
        #6{%
          \@hangfrom{\hskip #3\relax\@svsec}%
            \interlinepenalty \@M #8\@@par}%
      \endgroup
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumdepth \else
          \protect\numberline{\csname the#1\endcsname.}%
        \fi
        #7}%
    \else
      \def\@svsechd{%
        #6{\hskip #3\relax
        \@svsec #8\\}%
        \csname #1mark\endcsname{#7}%
        \addcontentsline{toc}{#1}{%
          \ifnum #2>\c@secnumdepth \else
            \protect\numberline{\csname the#1\endcsname.}%
          \fi
          #7}}%
    \fi
    \@xsect{#5}}
%%
%%
%%
\def\@ssect#1#2#3#4#5{%
    \@tempskipa #3\relax
    \ifdim \@tempskipa>\z@
      \begingroup
        #4{%
          \@hangfrom{\hskip #1}%
            \interlinepenalty \@M #5\@@par}%
      \endgroup
    \else
      \def\@svsechd{#4{\hskip #1\relax #5\\}}%
    \fi
    \@xsect{#3}}


\newcounter{hardsection}[chapter]
\newcounter{hardsubsection}[section]	

\renewcommand\section{\@startsection {section}{1}{\z@}
                                   {24pt}
                                   {12pt}
                                   {\centering\Large\sf\knagybetu}}
								   
\newcommand{\csillag}{\ \lower-.17em\hbox{$\bigstar$}}
\newcommand{\kiscsillag}{\ \lower-.13em\hbox{\small$\bigstar$}}
\newcommand{\picicsillag}{\lower-.13em\hbox{$\star$}}

								   
\newcommand\hardsection{\@startsection {hardsection}{1}{\z@}
                                   {24pt}
                                   {12pt}
                                   {\centering\csillag\quad\sf\Large\knagybetu}}



\renewcommand\subsection{\@startsection{subsection}{2}{-6mm}
                                    {18pt}
                                    {6pt}
                                    {\large\sf\knagybetu}}

\newcommand\hardsubsection{\@startsection{hardsubsection}{2}{\z@} 
                                    {18pt}
                                    {6pt}
                                    {\hspace{-7.5mm}\csillag\quad\large\sf\knagybetu}}
									 
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}
                                     {12pt}
                                     {0pt}
                                     {\normalsize\knagybetu}}

\renewcommand{\sectionmark}[1]{
	  \setcounter{examp}{0}
	  \setcounter{allcount}{0}
	  \stepcounter{hardsection}
      \markright{
        \ifnum \c@secnumdepth >\z@
           \thesection.\		   
       \fi
        #1}
}
									 
\newcommand{\hardsectionmark}[1]{
	  \setcounter{examp}{0}
	  \setcounter{allcount}{0}
	  \stepcounter{section}
      \markright{
        \ifnum \c@secnumdepth >\z@
           \thesection.\		   
       \fi
        #1}		
}

%%
%% Belényesi Viktor (2004.03.18)
%%
\newcommand{\hardsubsectionmark}[1]{  
	  \stepcounter{subsection}
}
%%
%% Belényesi Viktor (2004.03.18)
%%
\renewcommand{\subsectionmark}[1]{
	  \stepcounter{hardsubsection}
}

   
%%
%% FEJLÉC (2003.05.27.)
%%
\renewcommand{\@oddhead} {\noindent {\textit{\rightmark}} \hfill {\sf \thepage}}
\renewcommand{\@evenhead}{\noindent {\sf \thepage} \hfill {\textit{\leftmark}}}

%%
%% TÁBLA (2003.03.15.)
%%
\def\fnum@table{\thetable.~\tablename}
%%
%%
%%
\renewcommand{\thefigure}
     {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}

\newenvironment{@idez}
{
\vspace{-12pt}
\begin{list}{}{\setlength{\leftmargin}{0mm}\setlength{\rightmargin}{0mm}}
\item[]
}
{
\end{list}
}

\newenvironment{@idez2}
{
\vspace*{-12pt}
\begin{itemize}
\item[]
}
{
\end{itemize}
}

%%
%%  AZ EPSKÉP ALÁÍRÁSÁHOZ KELL
%%
\def\captionmath{%
   \ifx\@captype\@undefined
     \@latex@error{\noexpand\caption outside float}\@ehd
     \expandafter\@gobble
   \else
     \refstepcounter\@captype
     \expandafter\@firstofone
   \fi
   {\@dblarg{\@captionmath\@captype}}%  
}

\long\def\@captionmath#1[#2]#3{%
    \csname par\endcsname
    \begingroup
      \@parboxrestore
      \if@minipage
        \@setminipage
      \fi
      \normalsize
      \@makecaptionmath{\csname fnum@#1\endcsname}{\ignorespaces #3}\csname par\endcsname
    \endgroup}
	
\long\def\@makecaptionmath#1#2{%							
  \setlength\baselineskip{9pt}
  \vskip\abovecaptionskip
  \begin{@idez}
  {\footnotesize \textbf{#1.} #2}  
  \end{@idez}
  \vskip\belowcaptionskip
  \setlength\baselineskip{12pt}
}

%%
%% ÁBRA ALÁÍRÁS (2003.05.27.)
%%	 
\def\fnum@figure{\thefigure.~\figurename}

%%
%% SPECIÁLIS ÁBRA A 32. FEJEZETBEN
%%
\newenvironment{specabra}
{
\def\tempcommand{}
\let\tempcommand\nfss@text
\let\nfss@text\mbox
}
{
\let\nfss@text\tempcommand
}
 
  
%%
%% IRODALOMJEGYZÉK
%%
\renewenvironment{thebibliography}[2][\bibname]
     {\csapter{#1}
	  \footnotesize
	
      \list{\@biblabel{\@arabic\c@enumiv}}
           {\settowidth\labelwidth{\@biblabel{#2}}
			\leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000
      \sfcode`\.\@m
%%
%% hogy jól ugorjon a tartalomjegyzékből  (2004. március 24.)
%%
\refstepcounter{chapter}
\addcontentsline{toc}{chapter}{#1}\markboth{#1}{#1}

}
{
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}
\endlist
\usebox{\iroddoboz}

 
}

\newcommand{\irodoutro}[1]{
\sbox{\iroddoboz}{
\begin{minipage}{\textwidth}
#1
\end{minipage}
}
}
\renewcommand\newblock{\hskip .11em}

%%
%% TÁRGYMUTATÓ
%%
\renewenvironment{theindex}
{
\footnotesize
\begin{multicols}{2}
\def\@idxitem{\par\hangindent 4mm} 
\def\subitem{\par\hangindent 8mm \hspace*{4mm}}
\def\subsubitem{\par\hangindent 12mm \hspace*{8mm}} 
\let\item\@idxitem

}
{
\end{multicols}
\if@restonecol\onecolumn\else\clearpage\fi
}

%%
%% TÁRGY és NÉVMUTATÓ (2003.01.10.)
%%
\def\makeindexs#1{\begingroup
  \makeatletter
  \if@filesw \expandafter\newwrite\csname #1@idxfile\endcsname
  \expandafter\immediate\openout \csname #1@idxfile\endcsname #1.idx\relax
  \typeout{Writing index file #1.idx }\fi \endgroup}
%%
%%
%%
\def\indexs#1{\@bsphack\begingroup
               \def\protect##1{\string##1\space}\@sanitize
               \@wrindexs{#1}}
%%
%%
%%
\def\@wrindexs#1#2{\let\thepage\relax
   \xdef\@gtempa{\@ifundefined{#1@idxfile}{}{\expandafter
      \write\csname #1@idxfile\endcsname{\string
      \indexentry{#2}{\thepage}}}}\endgroup\@gtempa
   \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
%%
%%
%%
\newcommand\tempviktor\indexname
\newenvironment{indexkorny}[1]
{
 \if@twocolumn
 \@restonecolfalse
 \else
 \@restonecoltrue
 \fi
 \footnotesize				
 \columnseprule \z@
 \columnsep 28\p@
 \renewcommand{\tempviktor}{#1}
%%
%% hogy jól ugorjon a tartalomjegyzékből       %%   2004. 03. 31.
%%

\csapter{#1}
\refstepcounter{chapter}
\addcontentsline{toc}{chapter}{#1}\markboth{#1}{#1}

 		
}
{
 \hspace*{-\parindent}\hspace*{-0.3em}		
 \setlength{\columnwidth}{(\textwidth-\columnsep)/2}
 \renewcommand{\indexspace}{\par\vskip 4\p@\relax}
 \renewcommand\@idxitem  {\par\hangindent 0\p@}
 \ifthenelse{\equal{\tempviktor}{\indexname}}{\@input{\jobname.ind}}{\@input{\jobname_nev.ind}}

}

\renewenvironment{printindex}
{\begin{indexkorny}{\indexname}}
{\end{indexkorny}

}
%%
%%
%%
\newenvironment{printnevindex}
{\begin{indexkorny}{\nevindexname}}
{\end{indexkorny}
}


%%
%%
%%
\renewcommand{\makeindex}{\makeindexs{\jobname}\makeindexs{\jobname_nev}}  %% megcsinálja a névindexet is
\renewcommand{\index}[1]{\indexs{\jobname}{#1}}
\newcommand{\nevindex}[1]{\indexs{\jobname_nev}{#1}}

%%
%% TARTALOMJEGYZÉK ÁTALAKÍTÁSA, PONTOK A PART UTÁN ÉS A CHAPTER UTÁN IS
%%
\setcounter{tocdepth}{1}
\renewcommand*\l@part[2]{
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}
       \vspace{1.25em} %% ITT LEHET SZABÁLYOZNI A PART ELŐTTI KÖZT   2003. szeptember 11.
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode
       \textbf{#1}\nobreak
     \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill
     \nobreak
     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor \textbf{#2}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}
    \endgroup
  \fi}


%%
%%
%%  
\renewcommand*\l@chapter[2]{
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}
	
       \vspace*{0.3em}  %% ITT LEHET SŰRÍTENI A TARTALOMJEGYZÉKET 2003. szeptember 11.
	     
    \setlength\@tempdima{1.5em}
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      \textbf{#1}\nobreak
     \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill
     \nobreak
     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor \textbf{#2}}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
%%
%%
%%
\newcommand*\l@hardsection[2]{
\ifnum 1>\c@tocdepth \else
    \vskip \z@ \@plus.2\p@
    {\leftskip 1.5em\relax \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent 1.5em\relax\@afterindenttrue
     \interlinepenalty\@M
     \leavevmode
     \@tempdima 2.3em\relax
     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
     {\hspace{-1.8em}\kiscsillag\hspace{0.6em}#1}\nobreak
     \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill
     \nobreak
     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}%
     \par}%
}

\newcommand*\l@hardsubsection[2]{
\ifnum 2>\c@tocdepth \else
    \vskip \z@ \@plus.2\p@
    {\leftskip 3.8em\relax \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent 3.8em\relax\@afterindenttrue
     \interlinepenalty\@M
     \leavevmode
     \@tempdima 3.2em\relax
     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
     {\hspace{-4.1em}\kiscsillag\hspace{3em}#1}\nobreak
     \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill
     \nobreak
     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}%
     \par}%
}


\renewcommand{\thehardsection}{\thechapter.\@arabic\c@hardsection} 
\renewcommand{\thehardsubsection}{\thesection.\@arabic\c@hardsubsection}


%%
%%
%% 
\renewcommand\tableofcontents{
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
	
	 \csapter{\contentsname}\markboth{\contentsname}{\contentsname}

    \@starttoc{toc}
    \if@restonecol\twocolumn\fi
	\rm\newpage
   }

%%
%% CÍMKÉK
%%
\long\def\@makecaption#1#2{%
							
  \setlength\baselineskip{9pt}
  \vskip\abovecaptionskip
  \sbox\@tempboxa{\footnotesize\textbf{#1.} #2}%
  \ifdim \wd\@tempboxa >\hsize
  \begin{@idez}
    {\footnotesize\textbf{#1.} #2}\par
  \end{@idez}

  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip
  \setlength\baselineskip{12pt}
}


\long\def\@caption#1[#2]#3{%
    \csname par\endcsname
    \begingroup
      \@parboxrestore
      \if@minipage
        \@setminipage
      \fi
      \normalsize
      \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\csname par\endcsname
    \endgroup}
   
%%
%% TÉTELEK, SORSZÁM HELYES KIÍRÁSA
%%
\renewcommand{\@begintheorem}[2]{\trivlist
   \item[\hskip \labelsep{\bfseries #2.~#1.\ }]\itshape\hspace{-0.5em}}
   
\renewcommand{\@opargbegintheorem}[3]{\trivlist
      \item[\hskip \labelsep{\textbf {#2.~#1\ }(#3).\ }]\itshape\hspace{-0.5em}}


%%
%% ALGORITMUS (2003. augusztus 7.)
%%
\newcommand{\alge}{%
\begin{tabbing}%
99 \= xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx \+ \kill 
}

\newcommand{\algeN}{%
\settowidth{\temp}{199}
\setlength{\temp}{6mm-\temp}
\begin{tabbing}%
\hspace*{1pt}999\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx\=xxx \+ \kill  %%2003. augusztus 13.
}

\newcommand{\algv}{%
\end{tabbing}
}
%%
%% NÉV NÉLKÜLI ALGORITMUS (2003.05.14.)
%%
\newenvironment{algg}[1]{%
\vspace{5 mm}\vbox\bgroup\noindent#1%
\alge}{\algv\egroup}

\newenvironment{alggN}[1]{%
\vspace{5 mm}\vbox\bgroup\noindent#1%
\algeN}{\algv\egroup}


\newenvironment{alg}[1]{%
\vspace{4mm}  %% itt lehet az algoritmus előtti közt változtatni
\vbox\bgroup\noindent\textsc{#1}%
\vspace*{-1mm}  %% itt lehet az algoritmusnevek utáni közt csökkenteni
\alge}
{
\algv\egroup
\vspace{0mm}  %% itt lehet az algoritmus utáni közt változtatni
}

\newenvironment{algN}[1]{%
\vspace{4mm}  %% itt lehet az algoritmus előtti közt változtatni
\vbox\bgroup\noindent\textsc{#1}%
\vspace*{-1mm}  %% itt lehet az algoritmusnevek utáni közt csökkenteni
\algeN}
{
\algv\egroup
\vspace{0mm}  %% itt lehet az algoritmus utáni közt változtatni
}


%%
%% ÚJ OLDAL AZ ALGORITMUSOKBAN (2003.04.29.)
%%
\def\algnewpage
{
\algv\egroup
\newpage
\vbox\bgroup
\alge
}

\def\algnewpageN
{
\algv\egroup
\newpage
\vbox\bgroup
\algeN
}

\newcommand{\algkoz}[1]{
\algv\egroup
\pushtabs
\vspace{-11mm}
\vspace{#1}
\vbox\bgroup
\alge
\poptabs}


%%
%% TÉTEL, DEFINÍCIÓ, ...
%%
\newcommand{\pref}[1]{\ref{#1}.}
\newtheorem{tetel}{tétel}[chapter]
\newtheorem{lemma}[tetel]{lemma}
\newtheorem{allit}[tetel]{állítás}
\newtheorem{defi}[tetel]{definíció}
\newtheorem{kov}[tetel]{következmény}
\newtheorem{sejtes}[tetel]{sejtés}
\newtheorem{megj}[tetel]{megjegyzés}
\newtheorem{dogma}[tetel]{dogma}   %%  Jörg Rothe (2004. március 20.)


%%
%% KOCKA   2004. augusztus 9.
%%
\newcommand{\@kocka}[1]{\mbox{\vrule height #1 width #1\relax}} 
%%\newcommand{\fkocka}{\scriptsize\nobreak\hspace*{\fill}\nobreak$\@kocka{5pt}$\par\smallskip}
\newcommand{\fkocka}{{\nobreak\hspace*{\fill}\nobreak$\@kocka{5pt}$\par\smallskip}}


%%
%% BIZONYÍTÁS FEKETE KOCKÁVAL A VÉGÉN
%%
\newenvironment{biz}[1][]{
\par\noindent{\textbf{Bizonyítás.}}\textbf{#1}
\normalsize\lineskip=3pt         %% 2003. augusztus 9.
}
{\fkocka
\lineskip=6pt  %% 2003. július 27.
\noindent\ignorespaces
\vspace{0mm}
}





%%
%% BIZONYÍTÁS FEKETE KOCKA NÉLKÜL  2003. augusztus 24.
%%
\newenvironment{biznel}[1][]{%
  \par\noindent{\textbf{Bizonyítás.}}\textbf{#1}
  \global\qedtrue \global\mathqedfalse
}{%
\vspace{0pt}
}



%%
%% CIKLUSINVARIÁNS
%%
\newenvironment{ciklinv}
{
\vspace{-0pt}
\begin{list}{}{\setlength{\leftmargin}{6mm}\setlength{\rightmargin}{6mm}}
\item[]
}
{
\end{list}
}
%% QUOTE 
\renewenvironment{quote}
{
	   \begin{@idez}
}
{
 	   \end{@idez}
}

%%
%%	CIKLUSINVARIÁNS KÉTOLDALI BEHÚZÁSSAL
%%
\newenvironment{ciklus}[1]
{
\vspace{2mm}
\setlength{\temp}{\rightmargin}
\setlength{\temj}{\leftmargin}
\noindent\hspace*{\rightmargin}\textbf{#1}
\vspace{2mm}
\begin{list}{}{\setlength{\leftmargin}{1.6em}\setlength{\rightmargin}{1.6em}}
\item[]
}
{
\setlength{\rightmargin}{\temp}
\setlength{\leftmargin}{\temj}
\end{list}
}

%%
%% GYAKORLATOK KÖRNYEZET
%%
\newcounter{gyakcounter}[section]

\newenvironment{gyak}
{

  \vspace*{12pt}
  {\noindent\sf\large\textbf{Gyakorlatok}}%
  \setcounter{gyakcounter}{0}
}
{
}


%%
%%	ÚJ GYAKORLAT a gyakorlatok környezeten belül
%%
\newcommand{\ujgyak}{\refstepcounter{gyakcounter}
  \def\@currentlabel{\thechapter.\@arabic\c@section-\thegyakcounter.}  
  \ \newline\noindent\textbf{\thechapter.\@arabic\c@section-\thegyakcounter.}\hspace*{1mm}
}  %%% 2003. július 30.

\newcommand{\ujgyakk}{\refstepcounter{gyakcounter}
  \def\@currentlabel{\thechapter.\@arabic\c@section-\thegyakcounter.}  
  \noindent\textbf{\thechapter.\@arabic\c@section-\thegyakcounter.}\hspace*{1mm}
} 


\newcommand{\hardgyak}{\refstepcounter{gyakcounter}
  \def\@currentlabel{\thechapter.\@arabic\c@section-\thegyakcounter.}
\ \newline\noindent\textbf{\thechapter.\@arabic\c@section-\thegyakcounter.\picicsillag}\hspace*{1mm}
} %%% 2003. július 30. 

%%
%%  EGY GYAKORLAT MEGOLDÁSA
%%
\newcommand{\ujgyakmeg}[1]{%\refstepcounter{gyakcounter}
\@mywrite{\ \newline\noindent\textbf{\thechapter.\@arabic\c@section-\thegyakcounter. megoldása.}\hspace*{1mm} #1}
}  %%% 2004. 03. 30. by bvic    2004. április 10.


%%
%% FELADATOK KÖRNYEZET
%%
\newcounter{fldcounter}
\newenvironment{fld}{\section*{Feladatok}%

\setcounter{fldcounter}{0}
     { \markright {%
        \ifnum \c@secnumdepth >\z@
           \thechapter.\ \ % 
       \fi
        Feladatok}}}{}
		
		
%\newcommand{\ujfld}[2]{
%\refstepcounter{fldcounter}\smallbreak\noindent%
%\def\@currentlabel{\textit{\thechapter-\thefldcounter.}}
%\textbf{\textit{\thechapter-\thefldcounter.\ {#1}}}\\
%\@afterindentfalse #2
%}

\newcommand{\ujfld}[2]{
\refstepcounter{fldcounter}
\def\@currentlabel{\thechapter-\thefldcounter.}\ \newline
\textbf{\textit{\thechapter-\thefldcounter.\ {#1}}}\\
\@afterindentfalse #2
}



%%
%%  EGY FELADAT MEGOLDÁSA
%%
\newcommand{\ujfldmeg}[1]{                 %%2004. március 31.
  \@mywrite{
  \ \newline\smallbreak\noindent%
  \textbf{\textit{\thechapter-\thefldcounter.\ megoldása. }}#1} %% 2004. április 6.
}

%%
%%  FELADATOK, GYAKORLATOK  MEGOLDÁSA 
%%



%%
%%  FÁJLBA ÍRÁS 2004.03.30. by bvic
%%

\long\def\addtocontents#1#2{%
  \protected@write\@auxout
      {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
      {\string\@writefile{#1}{#2}}}
\newcommand{\@mywrite}[1]{\addtocontents{mof}{#1}}



\newcommand{\printmegoldas}{
\chapter*{Megoldások}                          %%  2004. március 31.
\addcontentsline{toc}{chapter}{Megoldások}
\@starttoc{mof}
}

%%
%% FEJEZET MEGJEGYZES
%%
\newenvironment{fejmegj}{\section*{Megjegyz\'esek a fejezethez}
     { \markright {%
        \ifnum \c@secnumdepth >\z@
           \thechapter.\ \ % 
       \fi
        Megjegyz\'esek a fejezethez}}}{}
		
%%
%% SZÖVEGKIEMELÉSEK
%%
\newcommand{\ki}[1]{\textbf{\textit{#1}}}
\newcommand{\key}[1]{\textbf{#1}}
\newcommand{\idez}[1]{{\ideze}#1''}
\newcommand{\ideze}{\setbox0=\hbox{\lower1.38ex\hbox{''}}\dp0=0pt\box0}

%%
%% ALÁHÚZÓS href
%%
\newcommand{\hrefun}[2]{\href{#1}{\underline{#2}}}

%%  
%% ÁLLÓ SZÖVEG ÁLLÍTÁSBAN
%%
\newcommand{\allo}[1]{\textrm{#1}}

%%
%%	SEE ÚJRA
%%
\renewcommand{\see}[2]{\emph{lásd} #1}
\newcommand{\lmeg}[2]{\emph{lásd még} #1}

%%
%% TERMÉSZETES ÉS VALÓS SZÁMOK  %% 2004. május 6.
%%
%\newcommand{\N}{\mathbf{N}}
%\newcommand{\R}{\mathbf{R}}
%\newcommand{\Z}{\mathbf{Z}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\C}{\mathbb{C}}

%% VÁLTOZÓ
%%
\newcommand{\var}[1]{\textit{#1}}


%%
%% DEFÍNÍCIÓ DŐLT OLDALSZÁMMAL A TÁRGYMUTATÓBAN
%%
\newcommand{\inddef}[1]{\index{#1|textit}}

%%
%% ÁBRA ELŐTTI KÖZ (2003.03.15.) 
%%
\newlength{\abraskip}
\setlength{\abraskip}{4mm}


%%
%% eps KÉP BESZÚRÁSA 
%%
\newif\iffileexists
\newcommand{\checkfile}[1]{\openin2=#1 \ifeof2 \fileexistsfalse\else\fileexiststrue\fi\closein2}
\newcommand{\epskep}[3][]{
\vspace*{\abraskip}
\begin{figure}[!t]   %%% 2003. július 25.
  \begin{center}
    \checkfile{#2_psfrag.eps}
    \iffileexists
  %??        \vspace*{\abraskip}
      \epsfbox{#2_psfrag.eps}
    \else
      \checkfile{#2.psfrag}
      \iffileexists
        \typeout{Command epskep Warning: #2_psfrag.eps fajl hianyzik, ezert a PDF output hibas lesz!}
  %??     \vspace*{\abraskip}     %%% 2003. augusztus 9.
       \input{#2.psfrag}
        \epsfbox{#2.eps}
      \else
        \checkfile{#2.pstex_t}
        \iffileexists
  %??        \vspace*{\abraskip}
          \input{#2.pstex_t}
        \else
  %??        \vspace*{\abraskip}
          \epsfbox{#2.eps}
        \fi % #2.pstex_t
      \fi % #2.psfrag
    \fi % #2_psfrag.eps
  \end{center}
\vspace*{-4mm}

\ifthenelse{\equal{#1}{}}
{
   \ifthenelse{\equal{#2}{}}
   {} %nem csinál semmit
   {\caption{#3}} 
}
{
   \captionmath{#3}
}
\end{figure}
\vspace*{-4mm}
}

%%
%% eps KÉP BESZÚRÁSA 
%%
\newcommand{\epskepnagyfrag}[4][]{

\vspace*{\abraskip}
\begin{figure}[!t]   %%% 2003. július 25.
  \begin{center}
    \checkfile{#2.psfrag}
    \iffileexists
     \input{#2.psfrag}
	 \epsfxsize=#4
      \epsfbox{#2.eps}
    \else
      \checkfile{#2.pstex_t}
      \iffileexists
        \input{#2.pstex_t}
      \else
        \epsfbox{#2.eps}
      \fi
    \fi
  \end{center}
\vspace*{-4mm}

\ifthenelse{\equal{#1}{}}
{
   \ifthenelse{\equal{#2}{}}
   {} %nem csinál semmit
   {\caption{#3}} 
}
{
   \captionmath{#3}
}
\end{figure}
\vspace*{-4mm}

}


%%
%% NAGY eps ÁBRA BESZÚRÁSA
%%
\newcommand{\epskepnagy}[3]{
\begin{figure}[!t]
\begin{center}
	\epsfig{file=#1,#3}
	\caption{#2}
\end{center}
\end{figure}
}



%%
%% eps KÉP BESZÚRÁSA a 13. fejezetbe   2003. szeptember 6. 
%%
\newif\iffileexists
%%\newcommand{\checkfile}[1]{\openin2=#1 \ifeof2 \fileexistsfalse\else\fileexiststrue\fi\closein2}
\newcommand{\epskeph}[3][]{
\vspace*{\abraskip}
\begin{figure}[!t]   %%% 2003. július 25.
  \begin{center}
    \checkfile{#2.psfrag}
    \iffileexists
%??     \vspace*{\abraskip}     %%% 2003. augusztus 9.
     \input{#2.psfrag}
      \epsfbox{#2.eps}
    \else
      \checkfile{#2.pstex_t}
      \iffileexists
%??        \vspace*{\abraskip}
        \input{#2.pstex_t}
      \else
%??        \vspace*{\abraskip}
        \epsfbox{#2.eps}
      \fi
    \fi
  \end{center}
%%\vspace*{-4mm}

\ifthenelse{\equal{#1}{}}
{
   \ifthenelse{\equal{#2}{}}
   {} %nem csinál semmit
   {\caption{#3}} 
}
{
   \captionmath{#3}
}
\end{figure}
%%\vspace*{-4mm}
}


%%
%% KÉTRÉSZES eps KÉP BESZÚRÁSA (RÉGI)
%%
%%\newcommand{\epskepp}[2]{
%%\vspace*{\abraskip}
%%\begin{figure}[!t]     %%% 2003. július 25.
%%  \begin{center}
%%??    \vspace*{\abraskip}
%%    \epsffile{#1.eps}
%%  \end{center}
%%\vspace*{-4mm}
%% \caption{#2}
%%\end{figure}
%%\vspace*{-4,2mm}
%%}

%%
%% KÉTRÉSZES eps KÉP BESZÚRÁSA (ÚJ: 2003. szeptember 7.)
%%
\newcommand{\epskepp}[1]{
\vspace*{\abraskip}
\begin{figure}[!t]   %%% 2003. július 25.
  \begin{center}
    \checkfile{#1.psfrag}
    \iffileexists
     \input{#1.psfrag}
      \epsfbox{#1.eps}
    \else
      \checkfile{#1.pstex_t}
      \iffileexists
        \input{#1.pstex_t}
      \else
        \epsfbox{#1.eps}
      \fi
    \fi
  \end{center}
\end{figure}
\vspace*{-4mm}
}

%%
%%
%%
\newcommand{\eepickep}[2]{
\vspace*{\abraskip}
\begin{figure}[!t]    %%% 2003. július 25.
 \begin{center}
    \input{#1.eepic}
  \end{center}
\vspace*{-4mm}
   \caption{#2}
\end{figure}
}

%%
%% PÁRHUZAMOS eepic KÉP BESZÚRÁSA  March 11, 2004
%%
\newcommand{\parkep}[2]{
\begin{figure}[!t]
  \vspace{1mm}
  \begin{center}
    \input{#1.eepic}
  \end{center}
  \vspace*{-4mm}
%%  \vspace*{-9mm}
  \begin{center}
    \caption{#2}
  \end{center}
  \vspace*{-8mm}
\end{figure}
}



%% LISTÁK TÖMÖRÍTÉSE                 
%%
\def\enumhook{}
\def\enumhooki{}
\def\enumhookii{}
\def\enumhookiii{}
\def\enumhookiv{}
\def\itemhook{}
\def\itemhooki{}
\def\itemhookii{}
\def\itemhookiii{}
\def\itemhookiv{}
\def\descripthook{}

%%
%% LISTÁK TÖMÖRÍTÉSE (belső köz)
%%
%% ENUMERATE belső közei
\renewcommand{\enumhook}{
\setlength{\topsep}{0pt}
\setlength{\itemsep}{0pt}
%%%\setlength{\itemsep}{-1pt}
\settowidth{\labelwidth}{$1.$}
\setlength{\itemindent}{0mm}
\setlength{\labelsep}{6mm-\labelwidth}
\setlength{\leftmargin}{6mm}

}
  
%% DESCRIPTION belső közei  
\renewcommand{\descripthook}{
\setlength{\topsep}{0pt}
\setlength{\itemsep}{-1pt}
\setlength{\labelwidth}{6mm}
\setlength{\itemindent}{0mm}
\setlength{\labelsep}{\parindent-\labelwidth}
\setlength{\leftmargin}{\parindent}

}
  
%% ITEMIZE belső közei  
\renewcommand{\itemhook}{
\setlength{\topsep}{0pt}  
\setlength{\itemsep}{-1pt}
\settowidth{\labelwidth}{\textbullet}
\setlength{\labelsep}{6mm-\labelwidth}
\setlength{\leftmargin}{6mm}
}
\renewcommand{\itemhookii}{
\settowidth{\labelwidth}{$-$}
%\setlength{\itemindent}{0mm}
\setlength{\labelsep}{6mm-\labelwidth}
\setlength{\leftmargin}{6mm}
}



\renewenvironment{enumerate}{%
\vspace*{3pt}            %% első köz    %%% 2003. augusztus 9..              
  \ifnum \@enumdepth >\thr@@\@toodeep\else
    \advance\@enumdepth\@ne
    \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
      \expandafter
      \list
        \csname label\@enumctr\endcsname
        {\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}%
          \enumhook \csname enumhook\romannumeral\the\@enumdepth\endcsname}%
  \fi
  }
  {
  \endlist
  \vspace*{3pt} %%  hátsó köz    %%% 2003. augusztus 9.
  }

%%
%% ITEMIZE
%%
\renewenvironment{itemize}{%
\vspace*{3pt}  %% első köz      %%% 2003. augusztus 11.
  \ifnum \@itemdepth >\thr@@\@toodeep\else
    \advance\@itemdepth\@ne
    \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
    \expandafter
    \list
      \csname\@itemitem\endcsname
      {\itemhook \csname itemhook\romannumeral\the\@itemdepth\endcsname
	  \def\makelabel##1{\hss\llap{##1}}%
      }%
  \fi
  }
 {
 \endlist
 \vspace*{4pt} %hátsó köz          %%% 2003. augusztus 25.
 }
  
\renewenvironment{description}{
	 \vspace*{1mm} %első köz      %%%  2003. július 25.
	 \list{}{\labelwidth\z@ \itemindent-\leftmargin
      \let\makelabel\descriptionlabel\descripthook}
}
{
 	\endlist
	\vspace*{1.5mm} %% hátsó köz
}


%%
%%  LÁBJEGYZET (2003.04.21.)
%%
\renewcommand\footnoterule{%
  \kern-3\p@
  \vspace{5mm}
  \hrule\@width 1\columnwidth
  \kern2.6\p@}

\renewcommand\@makefntext[1]{%
    \parindent 2em%
    \noindent
    \hb@xt@0.5em{\hss\@makefnmark}#1} 

%%
%% SZINEK DEFINIALASA																 
%%
\definecolor{A}{rgb}{0.3,0.8,1} %% kék
\definecolor{C}{named}{Yellow}  %% sárga
\definecolor{H}{rgb}{1,0.7,0} %% %%okker
\definecolor{I}{rgb}{0.8,0.5,0.5} %%téglavörös
\definecolor{N}{named}{Green} %%világoszöld
\definecolor{S}{rgb}{0.3,0.7,0.4}  %%sötétzöld
\definecolor{R}{rgb}{0.5,0.65,0.55} 
\definecolor{W}{rgb}{0.2,0.8,0.9} 
\definecolor{B}{rgb}{0.2,0.5,0.5}
\definecolor{E}{rgb}{0.5,0.5,0}
\definecolor{V}{rgb}{0,0.5,0.5}
\definecolor{Z}{rgb}{0.3,1,0.55} %%világoszöld
\definecolor{P}{named}{Red} %%piros
\definecolor{D}{cmyk}{0,1,0,0}
\definecolor{O}{named}{Cyan}
\definecolor{M}{rgb}{0.5,0.5,0}
\definecolor{F}{rgb}{0.5,0,0.5}
\definecolor{G}{rgb}{0.2,0.3,0.5}
\definecolor{J}{rgb}{0.5,0.3,0.2}
\definecolor{K}{cmyk}{0.5,0.5,0,0}
\definecolor{L}{cmyk}{0,0,0.5,0.5}
\definecolor{Q}{rgb}{0.4,0.7,0.5}
\definecolor{S}{rgb}{0.3,0.7,0.4}
\definecolor{T}{rgb}{0.4,0.3,0.1}
\definecolor{U}{rgb}{0.3,0.4,0.2}


%%
%% CLRS-BŐL ÁTVETT PARANCSOK
%%

\newcommand{\twodots}{\mathinner{\ldotp\ldotp}} % KÉT PONT DEKLARÁCIÓKBAN

\newcommand{\matxspace}{\hspace*{-0.25pc}} % 3 MÁTRIXOS PARANCS (SZILI-FÉLE MÓDOSÍTÁSSAL)

\newcommand{\matx}[2]{%
  \left(\matxspace\begin{array}{*{#1}{c}}#2\end{array}\matxspace\right)%
}
\newcommand{\matxx}[2]{%
  \left(\matxspace\begin{captionarray}{*{#1}{c}}#2\end{captionarray}\matxspace\right)%
}
\newcommand{\rmatxx}[2]{%
  \left(\matxspace\begin{captionarray}{*{#1}{r}}#2\end{captionarray}\matxspace\right)%
} 

\newcommand{\rmatx}[2]{%
  \left(\matxspace\begin{array}{*{#1}{r}}#2\end{array}\matxspace\right)%
} 

%%% The "codebox" environment produces an unbreakable section of code
\newenvironment{codebox}{\global\procnamefalse%
\code@init%
\savebox{\savecode}\bgroup%
\begin{minipage}[t]{\codeboxwidth}%
\def\ifthentab{\textbf{if} \=\textbf{then} }%
\begin{tabbing}%
99\=\ \ifthentab \=\ifthentab \=\ifthentab \=\ifthentab \=\ifthentab
    \=\textbf{if} \=\+\kill%
}{%
\ifnum\value{indent}=0\else\typeout{Warning: indentation ends at \theindent in codebox on page \thepage}\fi%
\end{tabbing}\end{minipage}\egroup%
\addtolength{\topsep}{0.5ex}\begin{trivlist}\item\parindent=0pt%
\ifprocname\saveprocname\nopagebreak\\[0.5ex] \nopagebreak\fi%
\ifnum\value{codelinenumber}>9\hspace*{2\digitwidth}\else\hspace*{1\digitwidth}\fi%
\usebox{\savecode}\end{trivlist}\addtolength{\topsep}{-0.5ex}\global\procnamefalse}

\newenvironment{codewithcostbox}{\global\procnamefalse%
\code@init%
\savebox{\savecode}\bgroup%
\begin{minipage}[t]{\codeboxwidth}%
\def\ifthentab{\textbf{if} \=\textbf{then} }%
\begin{tabbing}%
99\=\ \ifthentab \=\ifthentab \=\ifthentab \=\hspace*{1.5in}\=\hspace*{0.5in}\=\+\kill%
}{%
\ifnum\value{indent}=0\else\typeout{Warning: indentation problem in codebox on page \thepage}\fi%
\end{tabbing}\end{minipage}\egroup%
\addtolength{\topsep}{0.5ex}\begin{trivlist}\item\parindent=0pt%
\ifprocname\saveprocname\nopagebreak\\[0.5ex] \nopagebreak\fi%
\ifnum\value{codelinenumber}>9\hspace*{2\digitwidth}\else\hspace*{1\digitwidth}\fi%
\usebox{\savecode}\end{trivlist}\addtolength{\topsep}{-0.5ex}\global\procnamefalse}

\newcommand{\Procname}[1]{\global\def\saveprocname{#1}\global\procnametrue}

\newcounter{indent}
\newcounter{thisindent}
\newcommand{\Indent}{\setcounter{thisindent}{\value{indent}}\putindents}
\newcommand{\putindents}{\ifnum\value{thisindent}>0{\>\>}\addtocounter{thisindent}{-1}\putindents\fi}

\newcommand{\For}{\textbf{for} }
\newcommand{\To}{\textbf{to} }
\newcommand{\By}{\textbf{by} }
\newcommand{\Downto}{\textbf{downto} }
\newcommand{\While}{\textbf{while} }
\newcommand{\Repeat}{\textbf{repeat}\>\>\addtocounter{indent}{1}}
\newcommand{\Until}{\kill\addtocounter{indent}{-1}\liprint\>\>\textbf{until}\hspace*{-0.7em}\'}
\newcommand{\If}{\textbf{if} }
\newcommand{\Then}{\>\textbf{then}\>\addtocounter{indent}{1}}
\newcommand{\Else}{\kill\addtocounter{indent}{-1}\liprint\>\textbf{else}\>\addtocounter{indent}{1}}
\newcommand{\End}{\addtocounter{indent}{-1}}
\newcommand{\ElseIf}{\kill\addtocounter{indent}{-1}\liprint\textbf{elseif} }
\newcommand{\ElseNoIf}{\kill\addtocounter{indent}{-1}\liprint\textbf{else} \addtocounter{indent}{1}}
\newcommand{\Do}{\>\>\textbf{do}\hspace*{-0.7em}\'\addtocounter{indent}{1}}
\newcommand{\Return}{\textbf{return} }
\newcommand{\Comment}{$\hspace*{-0.075em}\rhd$ }
\newcommand{\RComment}{\`\Comment}
\newcommand{\Goto}{\textbf{goto} }
\newcommand{\Error}{\textbf{error} } % optionally followed by string argument

\newcommand{\Indentmore}{\addtocounter{indent}{1}}
\newcommand{\Flushright}{\`}

\newcommand{\li}{\iffirstcodeline\global\firstcodelinefalse\else\\ \fi
\stepcounter{codelinenumber}%
\liprint}

\newcommand{\lispace}[1]{\iffirstcodeline\global\firstcodelinefalse\else\\[#1] \fi
\stepcounter{codelinenumber}%
\liprint}

\newcommand{\liprint}{\protected@xdef\@lilabel{\thecodelinenumber}%
\thecodelinenumber\'\Indent%
}

\newcommand{\setlinenumber}[1]{\setcounter{codelinenumber}{\numref{#1}}%
\addtocounter{codelinenumber}{-1}}
\newcommand{\setlinenumberplus}[2]{\setcounter{codelinenumber}{\numref{#1}}%
\addtocounter{codelinenumber}{-1}\addtocounter{codelinenumber}{#2}}

\newcommand{\zi}{\iffirstcodeline\global\firstcodelinefalse\else\\ \fi
\ziprint}

\newcommand{\ziprint}{\protected@xdef\@lilabel{\thecodelinenumber}%
\'\Indent%
}

% \newenvironment{widetable}{\table}{\endtable}

% \newcommand{\widecodebox}[1]{\vskip1sp
%   \hbox to\textwidth{\llap{\hbox to \textwidthextra{%
%     \parbox{35.5pc}{\vspace{6pt}%
%       \begin{code}#1\end{code}%
%       \vskip6pt}\hss}}\hfill
%   }%
% }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\ang}[1]{\langle#1\rangle}
\newcommand{\floor}[1]{\lfloor#1\rfloor}
\newcommand{\ceil}[1]{\lceil#1\rceil}
\newcommand{\set}[1]{\{#1\}}

\newcommand{\ndash}{--}
\newcommand{\indexproc}[1]{}
\newcommand{\eqnref}[1]{??}
\newcommand{\defn}{\ki}
%\newcommand{\End}{}
\newenvironment{loopinv}{\begin{quote}}{\end{quote}}
\newenvironment{loopinvproof}{\begin{description}}{\end{description}}
\newcommand{\loopinvinit}{\item[Initialization:] }
\newcommand{\loopinvmaint}{\item[Maintenance:] }
\newcommand{\loopinvterm}{\item[Termination:] }
\newcommand{\imod}{\bmod}
\def\normaltype{\global\bigtablefontstrue} 


%%
%%  Marx Dánieltől (2003. júlis 29.)
%%
\newcommand{\indic}[1]{\textup{I}\left\{#1\right\}}
\newcommand{\prob}[1]{\textup{Pr}\left\{#1\right\}}
\newcommand{\expect}[1]{\textup{E}\left[#1\right]}

\newlength{\savearraycolsep} 
\newcommand{\normalarray}{\setlength{\arraycolsep}{\savearraycolsep}}
\newcommand{\narrowarray}[1]{%
  \setlength{\savearraycolsep}{\arraycolsep}%
  \setlength{\arraycolsep}{#1\arraycolsep}%
}

\newcommand{\wrong}[1]{\hspace*{#1}\Longleftarrow\mbox{\textit{hiba!!}}}
\newcommand{\bigpar}[1]{\left(#1\right)}

\newcommand{\lar}{\leftarrow}

%%Chapter 11
\newcommand{\expectshift}[2]{{\operator@font E}\raisebox{-#1}{$\displaystyle\left[ \raisebox{#1}{$\displaystyle #2$} \right]$}}
\newcommand{\card}[1]{\left| #1\right|}
\newcommand{\load}{\alpha}
\newcommand{\Zp}{\integers_p}
\newcommand{\Zq}{\integers_q}
\newcommand{\Zm}{\integers_m}
\newcommand{\abs}[1]{\left| #1\right|}
\renewcommand{\choose}[2]{{{#1}\atopwithdelims(){#2}}}
\newcommand{\variance}[1]{{\operator@font Var}\left[ #1 \right]}

%%
%%	PÉLDA FEKETE KOCKÁVAL A VÉGÉN A VÉGÉN
%%  behűzás és fekete kocka nem kell (2004.03.31 by bvic)
%%
\newenvironment{pelda}{
\stepcounter{peldacount} %% 2004. Junius 30.
\def\@currentlabel{\thechapter.\thepeldacount.}   %% 2004. Junius 30.
\vspace{4mm}\small           %% 2004. április 2.
\noindent{\bf{\thechapter.\thepeldacount. példa. }}\rm%% 2004. Junius 30.
}
{
\par\normalsize
\vspace{4mm}                 %% 2004. április 4.
}

%%
%% EGY SZÁMOZOTT SORT ELŐÁLLÍTÓ PARANCS
%%

\newcommand{\itelj}{ 
	\stepcounter{eljcount}
	\ifthenelse{\value{eljcount}<10}{\textrm{0\theeljcount\ }}{\textrm{\theeljcount\ }}
}

%%
%% ELJÁRÁS
%%
\newenvironment{elj}[6]
{
\vspace*{2mm}  %%köz előtte
\setcounter{eljcount}{0}
\par\noindent\textsc{#1}(#2)\hfill\textit{#3}\\
\noindent\textit{Számítási modell}:\ #4\\
\noindent\textit{Bemenet}:\ #5\\
\noindent\textit{Kimenet}:\ #6
\begin{tabbing}
\hspace{7mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm}
\= \hspace{4mm} \= \kill
}
{
\end{tabbing}
\vspace*{0mm}  %%köz utána
}

%%
%% ÚJ OLDAL AZ ELJÁRÁSBAN
%%
\def\eljnewpage
{
\end{tabbing}
\newpage
\begin{tabbing}
\hspace{7mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm} \= \hspace{4mm}
\= \hspace{4mm} \= \kill
}

%%
%% Irodalomjegyzék oldalszáma kattintós (2004.02.09.)
%%
\long\def\hyper@page@backref#1#2#3{\hyperlink{page.#1}{\underline{#1}}}
\def\backref{}\let\backrefxxx\hyper@page@backref


%%
%% CLAUDIA LEOPOLD (PÁRHUZAMOS SZÁMÍTÁSOK című FEJEZETHEZ) 2004. március 12.
%%
\def\id#1{\ensuremath{\mathit{#1}}}
\newcommand{\fract}[2]{\frac{^{\textstyle #1}}{_{\textstyle #2}}}
\newcommand{\nbx}{\hfill{$\rule{2mm}{2mm}$}}

%%
%% JÖRG ROTHE (KRIPTOGRÁFIA)
%%
\newcommand{\startofproof}{\noindent{\bf Proof}\quad}
\newcommand{\sproof}{\noindent{\bf Proof}\quad}
\newcommand{\startofproofof}[1]{\noindent{\bf Proof of {#1}}\quad}
\newcommand{\sproofof}[1]{\noindent{\bf Proof of {#1}}\quad}
\newcommand{\eproofof}[1]{\noindent{\hspace*{0.1in} \hfil \hfill \mbox{\qed{} {#1}}}\quad}
\newcommand{\chapterref}[1]{Chapter~\ref{#1}}
\newcommand{\sectionref}[1]{Section~\ref{#1}}
\newcommand{\equationref}[1]{Equation~\ref{#1}}
\newcommand{\blob}{\mbox{\rule[-1.5pt]{5pt}{10.5pt}}}
\newcommand{\lindent}{\qquad}
\newcommand{\qedblob}{\mbox{\rule[-1.5pt]{5pt}{10.5pt}}}
\def\literalqed{{\ \nolinebreak\hfill\mbox{\qedblob\quad}}}
\def\qedcareful{\literalqed}
\def\qed{\literalqed}

\newtheorem{theorem}{Satz}[chapter]
\newtheorem{corollary}[theorem]{Korollar}
\newtheorem{claim}[theorem]{Behauptung}
\newtheorem{method}[theorem]{Methode}
\newtheorem{openquestion}[theorem]{Offene Frage}
%\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{observation}[theorem]{Beobachtung}
\newtheorem{fact}[theorem]{Fakt}
\newtheorem{proposition}[theorem]{Behauptung}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{remark}[theorem]{Bemerkung}
\newtheorem{example}[theorem]{Beispiel}
\newtheorem{uebung}[theorem]{Übung}
%\newtheorem{dogma}[theorem]{Dogma}

\newcommand{\polynomials}{\mbox{\rm I\!Pol}}
\newcommand{\scriptpolynomials}{\mbox{\protect\scriptsize\rm I\!Pol}}
\newcommand{\naturalnumber}{\ensuremath{{  \mathbf{N} }}}
\newcommand{\naturalnumberpositive}{\ensuremath{{  \mathbb{N}^+ }}}
\newcommand{\naturalfromtwo}{\ensuremath{{  \mathbb{N}^{\geq 2} }}}
\newcommand{\naturalfromthree}{\ensuremath{{  \mathbb{N}^{\geq 3} }}}
\makeatletter %{
\renewcommand{\theequation}{\thechapter.\arabic{equation}}
%\renewcommand{\theequation}{\arabic{equation}$'$}
\makeatother
\newcommand{\sharpp}{{\rm \#P}}
\newcommand{\sharpsat}{{\rm \#SAT}}
%\newcommand{\sat}{{\rm SAT}}
\newcommand{\qbf}{{\rm QBF}}
\newcommand{\parityp}{{\rm \oplus P}}
\newcommand{\up}{\mbox{\rm UP}}
\newcommand{\us}{{\rm US}}
\newcommand{\fewnp}{{\rm FewNP}}
\newcommand{\fewp}{{\rm FewP}}
\newcommand{\coup}{\mbox{\rm coUP}}
\newcommand{\e}{{\rm E}}
\newcommand{\E}{{\rm E}}
\renewcommand{\exp}{{\rm EXP}}
\newcommand{\NE}{{\rm NE}}
\renewcommand{\ne}{{\rm NE}}
\newcommand{\nexp}{{\rm NEXP}}
\newcommand{\p}{\mbox{\rm P}}
\newcommand{\littlep}{{\rm p}}
\newcommand{\scriptp}{\mbox{\protect\scriptsize\rm P}}
\newcommand{\tinyp}{\mbox{\protect\tiny\rm P}}
\newcommand{\NP}{{\rm NP}}
\newcommand{\ssf}{{\rm SSF}}
\newcommand{\np}{\mbox{\rm NP}}
\newcommand{\scriptnp}{\mbox{\protect\scriptsize\rm NP}}
\newcommand{\tinynp}{\mbox{\protect\tiny\rm NP}}
\newcommand{\ip}{\mbox{\rm IP}}
\newcommand{\am}{\mbox{\rm AM}}
\newcommand{\ma}{\mbox{\rm MA}}
\newcommand{\ama}{\mbox{\rm AMA}}
\newcommand{\mam}{\mbox{\rm MAM}}
\newcommand{\lh}{{\rm LH}}
\newcommand{\elh}{{\rm ELH}}
\newcommand{\hh}{{\rm HH}}
\newcommand{\nt}{{\rm NT}}
\newcommand{\nnt}{{\rm NNT}}
\newcommand{\parityoptp}{{\rm \oplus{}OptP}}
\newcommand{\optp}{{\rm OptP}}
\newcommand{\diffp}{{\rm D^P}}
\newcommand{\pp}{\mbox{\rm PP}}
\newcommand{\bpp}{\mbox{\rm BPP}}
\newcommand{\zpp}{\mbox{\rm ZPP}}
\newcommand{\rp}{\mbox{\rm RP}}
\newcommand{\corp}{\mbox{\rm coRP}}
\newcommand{\npc}{$\np$-com\-plete}
\newcommand{\conp}{\mbox{\rm coNP}}
\newcommand{\pspace}{\mbox{\rm PSPACE}}
\newcommand{\eespace}{{\rm EESPACE}}
\newcommand{\dspace}{{\rm DSPACE}}
\newcommand{\co}{\mbox{{\rm co}}}
\newcommand{\psp}{\ensuremath{\pspace}}
\newcommand{\pnexp}{\ensuremath{\p^\nexp}}
\newcommand{\npnexp}{\ensuremath{\np^\nexp}}
\newcommand{\nenp}{\ensuremath{\ne^\np}}
\newcommand{\enp}{\ensuremath{\e^\np}}
\newcommand{\pnp}{\ensuremath{\p^\np}}
\newcommand{\pnplog}{\ensuremath{\p^{\np[\log ]}}}
\newcommand{\nexpnp}{\ensuremath{\nexp^\np}}
\newcommand{\coNP}{\ensuremath{{\rm coNP}}}
\newcommand{\cone}{\ensuremath{{\rm coNE}}}
\newcommand{\pitwozero}{\ensuremath{\Pi_2^0}}
\newcommand{\pithreezero}{\ensuremath{\Pi_3^0}}
\newcommand{\sigmathreezero}{\ensuremath{\Sigma_3^0}}
\newcommand{\sigmak}{\ensuremath{\Sigma_k^p}}
\newcommand{\sigmaka}{\ensuremath{\Sigma_k^{p,A}}}
\newcommand{\deltaka}{\ensuremath{\Delta_k^{p,A}}}
\newcommand{\deltazero}{\ensuremath{\Delta_0^{p}}}
\newcommand{\deltazeroa}{\ensuremath{\Delta_0^{p,A}}}
\newcommand{\thetazero}{\ensuremath{\Theta_0^{p}}}
\newcommand{\thetazeroa}{\ensuremath{\Theta_0^{p,A}}}
\newcommand{\deltakaW}{\ensuremath{\Delta_k^{p,A \oplus W}}}
\newcommand{\deltak}{\ensuremath{\Delta_k^{p}}}
\newcommand{\thetaka}{\ensuremath{\Theta_k^{p,A}}}
\newcommand{\pitwo}{\ensuremath{\Pi_2^p}}
\newcommand{\thetatwo}{\ensuremath{\Theta_2^p}}
\newcommand{\deltatwo}{\ensuremath{\Delta_2^p}}
\newcommand{\poly}{\ensuremath{{\rm poly}}}
\newcommand{\linear}{\ensuremath{{\rm linear}}}
\newcommand{\quadratic}{\ensuremath{{\rm quadratic}}}
\newcommand{\ph}{\ensuremath{\mbox{\rm PH}}}
\newcommand{\few}{{\ensuremath{\rm Few}}}
\newcommand{\const}{{\ensuremath{\rm Const}}}
\newcommand{\littleconst}{{\ensuremath{\rm const}}}
\newcommand{\fewch}{\ensuremath{{\rm FewCH}}}
\newcommand{\eh}{\ensuremath{{\rm EH}}}

\newcommand{\magicnum}{{ n^{\frac{1-\epsilon}{\epsilon}+\delta}}}
\newcommand{\fsup}{{\,f_{super}\,}}
\newcommand{\fred}{{\,f_{reduced}\,}}
\newcommand{\pne}{\ensuremath{\p^\ne}}
\newcommand{\npne}{\ensuremath{\np^\ne}}
\newcommand{\nnexarg}{\ensuremath{\nxx^\nexx (x) }}
\newcommand{\nnexx}{\ensuremath{\nxx^\nexx  }}
\newcommand{\nnex}{\ensuremath{\nxx^\nexx }}
\newcommand{\expnp}{\ensuremath{\exp^\np }}
\newcommand{\dtime}{\ensuremath{{\rm DTIME}}}
\newcommand{\nxx}{\ensuremath{{\rm N_{17}}}}
\newcommand{\nexx}{\ensuremath{{\rm NE_{21}}}}
\newcommand{\seh}{\ensuremath{{\rm SEH}}}
\newcommand{\ppoly}{\ensuremath{\p/\poly}}
\newcommand{\sexph}{\ensuremath{{\rm SEXPH}}}
\newcommand{\pstar}{\ensuremath{\p_\star}}
\newcommand{\mstar}{\ensuremath{M^\star}}
\newcommand{\nestar}{\ensuremath{\ne_{\,\star}}}
\newcommand{\superset}{\supset}
\newcommand{\superseteq}{\supseteq}

\def\unionfromc{\,\textstyle\bigcup_{\scriptstyle c}\,}
\def\unionfromk{\,\textstyle\bigcup_{\scriptstyle k}\,}


\newcommand{\cardJR}[1]{\mathopen{|@,@,@,@,\!|}#1\mathclose{|@,@,@,@,\!|}}
%\newcommand{\card}[1]{{ \mathopen\parallel {#1} \mathclose\parallel }}
\newcommand{\ceiling}[1]{{{\lceil {#1} \rceil}}}
%\newcommand{\floor}[1]{{{\lfloor {#1} \rfloor}}}
\newcommand{\floorJR}[1]{{{\lfloor {#1} \rfloor}}}
%macros for 1-way-vs-iso-robust-stoc-draft
%\newcommand{\pairs}[1]{\mbox{$\langle\!\!~#1~\!\!\rangle$}}
%\newcommand{\pair}[1]{\mbox{$\langle\!\!~#1~\!\!\rangle$}}
%\def\pair#1{{\mbox{$\langle\!\!~#1~\!\!\rangle$}}}
%\def\pair#1{{{\langle\!\!~#1~\!\!\rangle}}}
%\def\pairs#1{{{\langle\!\!~#1~\!\!\rangle}}}
%%\newcommand{\pairs}[1]{\mathopen\langle{#1}\mathclose\rangle}
%%\newcommand{\pair}[1]{\mathopen\langle{#1}\mathclose\rangle}
\newcommand{\pair}[1]{\mathopen({#1}\mathclose)}
%  \def\floor#1{{{\lfloor #1 \rfloor}}}
\newcommand{\piso}{\ensuremath{\p-{\rm isomorphic}}}
\newcommand{\manyonea}{\ensuremath{\,\leq_{m}^{{\littlep},\,A}\,}}
\newcommand{\manyone}{\ensuremath{\,\leq_{\rm m}^{{\littlep}}\,}}
\newcommand{\manyonetext}{\ensuremath{\mbox{$\leq_{\rm m}^{{\littlep}}$}}}
% \newcommand{\manyonered}{\ensuremath{\,\leq_{m}^{{\littlep}}\,}}
% \newcommand{\turingred}{\ensuremath{\,\leq_{T}^{{\littlep}}\,}}
% \newcommand{\snred}{\ensuremath{\,\leq_{T}^{{sn}}\,}}
\newcommand{\turing}{\ensuremath{\mbox{$\,\leq_{\rm T}^{{\littlep}}$\,}}}
\newcommand{\turingtext}{\ensuremath{\mbox{$\leq_{\rm T}^{{\littlep}}$}}}
\newcommand{\turingnp}{\ensuremath{\mbox{$\,\leq_{\rm T}^{{\scriptnp}}$\,}}}
\newcommand{\turingnptext}{\ensuremath{\mbox{$\leq_{\rm T}^{{\scriptnp}}$}}}
\newcommand{\strongturingnp}{\ensuremath{\mbox{$\,\leq_{\rm sT}^{{\scriptnp}}$\,}}}
\newcommand{\strongturingnptext}{\ensuremath{\mbox{$\leq_{\rm sT}^{{\scriptnp}}$}}}
\newcommand{\ttred}{\ensuremath{\,\leq_{tt}^{{\littlep}}\,}}
\newcommand{\pttred}{\ensuremath{\,\leq_{ptt}^{{\littlep}}\,}}
\newcommand{\postt}{\ensuremath{\,\leq_{ptt}^{{\littlep}}\,}}
\newcommand{\cred}{\ensuremath{\,\leq_{c}^{{\littlep}}\,}}
\newcommand{\bred}{\ensuremath{\,\leq_{b}^{{\littlep}}\,}}
\newcommand{\dred}{\ensuremath{\,\leq_{d}^{{\littlep}}\,}}
\newcommand{\notpttred}{\ensuremath{\,\nleq_{ptt}^{{\littlep}}\,}}
\newcommand{\pos}{\ensuremath{\,\leq_{pos}^{{\littlep}}\,}}
\newcommand{\posred}{\ensuremath{\,\leq_{pos}^{{\littlep}}\,}}
\newcommand{\locallyposred}{\ensuremath{\,\leq_{\widehat{pos}}^{{\littlep}}\,}}
\newcommand{\notposred}{\ensuremath{\,\nleq_{pos}^{{\littlep}}\,}}
\newcommand{\abred}{\ensuremath{\,\leq_{a}^{{b}}\,}}

\newcommand{\linearturingsubscript}{\ensuremath{{\bigo(n)\hbox{-}T}}}
\newcommand{\linearturingred}{\ensuremath{\,\leq_{\linearturingsubscript}^{{\littlep}}\,}}
\newcommand{\redlinearturingpsel}{\ensuremath{{\red{\linearturingsubscript}{p}{\psel}}}}

\newcommand{\paiso}{\ensuremath{$\p^A$-iso\-mor\-phic}}
\newcommand{\pisoa}{\paiso}
\newcommand{\pisoam}{\ensuremath{$\p^A$\hbox{-isomorphism}}}
\newcommand{\ndet}{nondeterministic\xspace}
\newcommand{\pisom}{\ensuremath{$\p$\hbox{-isomorphism}}}
%\newcommand{\pselective}{\ensuremath{{\rm P\hbox{-}selective}}}
%\newcommand{\pselect}{\pselective}
\newcommand{\calfselector}{\calf\hbox{-}selector\xspace}
\newcommand{\npsvselector}{\npsv\hbox{-}selector\xspace}
\newcommand{\npsvtselector}{\npsvt\hbox{-}selector\xspace}
\newcommand{\npmvselector}{\npmv\hbox{-}selector\xspace}
\newcommand{\npmvtselector}{\npmvt\hbox{-}selector\xspace}
\newcommand{\calfselectivity}{\calf\hbox{-}selectivity\xspace}
\newcommand{\npsvselective}{\npsv\hbox{-}selective\xspace}
\newcommand{\npsvtselective}{\npsvt\hbox{-}selective\xspace}
\newcommand{\npmvselective}{\npmv\hbox{-}selective\xspace}
\newcommand{\npmvtselective}{\npmvt\hbox{-}selective\xspace}
\newcommand{\npsvselectivity}{\npsv\hbox{-}selectivity\xspace}
\newcommand{\psel}{\ensuremath{{\rm P\!@,@,@,@,@,\hbox{-}sel}}}
\newcommand{\calfsel}{\ensuremath{{\calf\hbox{-}\rm{}sel}}}
\newcommand{\dashsel}{\ensuremath{{\rm\hbox{-}sel}}}
\newcommand{\pwsel}{\ensuremath{{{\rm P}^W\rm{}\!\hbox{-}sel}}}
\newcommand{\calfselective}{\calf\hbox{-}selective\xspace}
\newcommand{\pclose}{\ensuremath{{\rm P\hbox{-}close}}}
\newcommand{\apt}{\ensuremath{{\rm APT}}}
\newcommand{\itleft}{\ensuremath{{\mathit{left}}}}
\newcommand{\quasip}{\ensuremath{{\rm qP}}}
\newcommand{\semirecursive}{\ensuremath{{\rm SEMIRECURSIVE}}}
\newcommand{\sigmastar}{\ensuremath{\Sigma^\ast}}
\newcommand{\pisnp}{\ensuremath{\p=\np}}
\newcommand{\usuba}{\ensuremath{U_A}}
\newcommand{\univsuba}{\ensuremath{Univ_A}}
\newcommand{\pisnotnp}{\ensuremath{\p\neq\np}}
\newcommand{\lb}{\ensuremath{\{}}
\newcommand{\rb}{\ensuremath{\}}}
%\newcommand{\equivclassslash}{\ensuremath{/_{\!\!equiv}^{equiv}}}
\newcommand{\equivclassslash}{\ensuremath{\wr}}
\newcommand{\equivclass}[1]{\ensuremath{cl({#1})}}
\newcommand{\pa}{\ensuremath{\p^A}}
\newcommand{\calf}{\ensuremath{{\cal F}}}
\newcommand{\calc}{\ensuremath{{\cal C}}}
\newcommand{\npa}{\ensuremath{\np^A}}
\newcommand{\fpa}{\ensuremath{\fp^A}}
\newcommand{\npw}{\ensuremath{\np^W}}
\newcommand{\conpa}{\ensuremath{\conp^A}}


\newcommand{\upa}{\ensuremathTEMP{\up^A}}
\newcommand{\sparses}{\ensuremathTEMP{{\rm sparse} S\,}}
%\newcommand{\bigo}{\ensuremathTEMP{{\cal O}}}
%\newcommand{\bigo}{{\protect\cal O}}
%\newcommand{\bigoh}{{\protect\cal O}}
\newcommand{\bigoh}{{O}}


\makeatletter%
\def\nottoobig#1{{\hbox{$\left#1\vcenter to1.111\ht\strutbox{}\right.\n@space$}}}
\makeatother%

\newcommand{\condition}{\,\nottoobig{|}\:}
%\newcommand{\condition}{\,\mid \:}
 
\def\land{{\; \wedge \;}}
\newcommand{\change[1]}{\protect\footnote{{\bf CHANGED! The change is:} {#1}}}
\newcommand\integers{{\mathbb{Z}}}
\def\Z{\integers}
\newcommand{\counting}{\mbox{\tt Counting}}
\newcommand{\seq}{\subseteq}
\newcommand{\spp}{\mbox{\rm SPP}}
\newcommand{\scriptspp}{\mbox{\protect\scriptsize\rm SPP}}
\newcommand{\fp}{\mbox{\rm FP}}
\def\nats{\naturalnumber}
\newcommand{\bh}{{\rm BH}}
\newcommand{\cp}[1]{{{\rm CP}_{\{{#1}\}}}}

\newcommand\la{\ \leftarrow \ }
\newcommand\ra{\ \rightarrow \ }
\newcommand\lra{\ \leftrightarrow \ }
\newcommand\La{\ \Leftarrow \ }
\newcommand\Ra{\ \Rightarrow \ }
\newcommand\Lra{\ \Leftrightarrow \ }
\newcommand\lola{\ \longleftarrow \ }
\newcommand\lora{\ \longrightarrow \ }
\newcommand\lolra{\ \longleftrightarrow \ }
\newcommand\Lola{\ \Longleftarrow \ }
\newcommand\Lora{\, \Longrightarrow \ }
\newcommand\Lolra{\ \Longleftrightarrow \ }
\newcommand\Lolradef{\ :\Longleftrightarrow \ }
%\newcommand{\equalsdef}{\stackrel{\mbox{\protect\scriptsize\rm df}}{=}}
%\newcommand{\equalsdeffootnote}{\stackrel{\mbox{\protect\tiny\rm df}}{=}}
\def\equalsdef{=}
\def\equalsdeffootnote{=}
\newcommand{\weakaowf}{A$^{\!\!\mbox{\protect\scriptsize w}\!}$OWF}
\newcommand{\weakaowfmath}{A$^{\!\mbox{\protect\scriptsize w}\!}$OWF}
\newcommand{\weakaowfs}{A$^{\!\!\mbox{\protect\scriptsize w}\!}$OWFs}
\newcommand{\weakaowfsmath}{A$^{\!\mbox{\protect\scriptsize w}\!}$OWFs}
\newcommand{\weakaowffootnote}{A$^{\!\!\mbox{\protect\tiny w}\!}$OWF}
\newcommand{\weakaowfsfootnote}{A$^{\!\!\mbox{\protect\tiny w}\!}$OWFs}

\newcommand{\image}{\mbox{\rm{}image}}
\newcommand{\domain}{\mbox{\rm{}domain}}
\newcommand{\sigmabot}{\stackrel{\mbox{\tiny $\bot$}}{\sigma}}
\newcommand{\sigmabots}[1]{\stackrel{\mbox{\tiny $\bot$}}{\sigma}\!\!(#1)}
\newcommand{\ggT}[1]{\mbox{\rm{}ggT}(#1)}
\newcommand{\idJR}{\mbox{\rm{}id}}
\newcommand{\boldid}{\mbox{\rm\bf{}id}}
\newcommand{\probJR}[1]{{\mbox{\rm Prob}}(#1)}
\newcommand{\gap}[1]{\mbox{\rm{}gap}_{#1}}
\newcommand{\acc}[1]{\mbox{\rm{}acc}_{#1}}
\newcommand{\rej}[1]{\mbox{\rm{}rej}_{#1}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%% 
%%%%%%%%%%  Jim's construction macros.
%%%%%%%%%% 


%%% The follow are macros for displaying block structured programs and
%%% constructions.  Basically, they are dressed up lists, like the
%%% enumerate and itemize environments.  Use  the construction environment
%%% for the outermost ``list'' of instruction and for ``sublists'' of
%%% instructions use the block environment.  E.g., 
%%%     
%%% \begin{construction}
%%%   \item {\bf Program for} $M_{p,a}$. 
%%%   \begin{block}
%%%     \item Input $x$.
%%%     \item Instructions.  Instructions.  Instructions.  Instructions.
%%%           Instructions.  Instructions.  Instructions.  Instructions.
%%%     \begin{block}
%%%        \item More instructions.  More instructions.  More
%%%             instructions.   More instructions.  
%%%        \item More instructions.  More instructions.  More
%%%             instructions.   More instructions.  
%%%     \end{block}
%%%     \item Instructions.  Instructions.  Instructions.  Instructions.
%%%     \item Instructions.  Instructions.  Instructions.  Instructions.
%%%   \end{block}
%%%   \item {\bf End program for} $M_{p,a}$.
%%% \end{construction}


\newenvironment{construction}{\bigbreak\begin{block}}{\end{block}
    \bigbreak}

\newenvironment{block}{\begin{list}{\hbox{}}{\leftmargin 1em
    \itemindent -1em \topsep 0pt \itemsep 0pt \partopsep 0pt}}{\end{list}}


%%% If you want to label the statements/blocks in your construction,  use
%%% the lblock environment instead of the block environment and for each
%%% item macro, use \item[YOUR_LABEL].  Note that labels are
%%% do-it-yourself.
%%% 
%%% Note that in the following, the basic indentation of an lblock at
%%% level i of nesting (i>0) is (\dimen15 + i * \dimen16).  The default 
%%% value of both \dimen15 and \dimen16 is  0.75em.

\dimen15=0.75em
\dimen16=0.75em

\newcommand{\lblocklabel}[1]{\rlap{#1}\hss}

\newenvironment{lblock}{\begin{list}{}{\advance\dimen15 by \dimen16
    \leftmargin \dimen15
    \itemindent -1em
    \topsep 0pt
    \labelwidth 0pt
    \labelsep \leftmargin
    \itemsep 0pt
    \let\makelabel\lblocklabel
    \partopsep 0pt}}{\end{list}}


%%% The lconstruction is an alternative to the construction environment
%%% which lets you temporarily change the values of \dimen15 and \dimen16.

\newenvironment{lconstruction}[2]{\dimen15=#1 \dimen16=#2
  \bigbreak\begin{block}}{\end{block}\bigbreak}


%\newcommand{\Comment}[1]{{\sl (\  #1\ )}}
\newcommand{\CommentJR}[1]{{\sl (\  #1\ )}}

%%%%%%%%%% 
%%%%%%%%%% End of Jim's construction macros.
%%%%%%%%%% 

\newenvironment{algorithm}{\begin{list}
   {{\bf Step~\arabic{alg}}.}
   {\usecounter{alg}}}{\end{list}}
\newcounter{alg}




% \category{E.3}{Data Encryption}{Public-key Cryptosystems}
% 
% \category{F.1.3}{Computation by Abstract Devices}{Complexity Measures and
%   Classes}[Complexity hierarchies \and Relations among complexity classes]
% 
% \category{F.2.2}{Analysis of Algorithms and Problem Complexity}{Nonnumerical
%   Algorithms and Problems}[Computations on discrete structures]
% 
% \terms{Algorithms, Theory, Security}
% 
% \keywords{algorithms, complexity theory, public-key cryptography, secret-key
%   agreement, digital signatures, interactive proof systems, zero-knowledge
%   protocols, one-way functions}

\newcommand\tweak{\hspace*{1.5pt}}
\newcommand{\gansfuss}[1]{\mbox{,$\!\tweak$,}{#1}\mbox{``}}

\newenvironment{aufgaben}{\begin{list}
   {{\bf Aufgabe~\thesection.\arabic{aufg}}}
   {\usecounter{aufg}
    \setlength{\labelwidth}{-2mm}
    \setlength{\leftmargin}{0mm}
    \setlength{\rightmargin}{0mm}
    \setlength{\itemsep}{1ex}
    \setlength{\parsep}{.5ex}
}}{\end{list}}
\newcounter{aufg}

\newenvironment{problems}{\begin{list}
   {{\bf Problem~\thechapter.\arabic{probl}}}
   {\usecounter{probl}
    \setlength{\labelwidth}{-2mm}
    \setlength{\leftmargin}{0mm}
    \setlength{\rightmargin}{0mm}
    \setlength{\itemsep}{1ex}
    \setlength{\parsep}{.5ex}
}}{\end{list}}
\newcounter{probl}

\newcommand{\certificate}[2]{{\tt Certificates}_{#1}({#2})}

\newcommand{\anvec}[2]{\mbox{$#1_1, \ldots, #1_{#2}$}}
\newcommand{\anvecplus}[2]{\mbox{$#1_1, #1_2, \ldots, #1_{#2}$}}
\newcommand{\anvecplusupper}[2]{\mbox{$#1^1, #1^2, \ldots, #1^{#2}$}}

\newcommand{\sat}{{\tt SAT}}
\newcommand{\threesat}{{{\tt 3\mbox{-}SAT}}}
\newcommand{\ksat}[1]{{{\tt {#1}\mbox{-}SAT}}}
\newcommand{\graphiso}{{\tt GI}}
\newcommand{\graphauto}{{\tt GA}}
\newcommand{\treeiso}{{\tt TI}}
\newcommand{\nongraphiso}{{\tt GNI}}
\newcommand{\quadrest}{{\tt QR}}
\newcommand{\quadnonrest}{{\tt QNR}}
\newcommand{\threematching}{3\mbox{-}{\tt DM}}
\newcommand{\threecolor}{{\tt Graph\mbox{-}Three\mbox{-}Colorability}}
\newcommand{\primes}{{\tt PRIMES}}
\newcommand{\genauto}{{\tt AUTO}}

\newcommand{\witness}[2]{{\mbox{\rm Sol}}_{#1}(#2)}
\newcommand{\iso}[1]{{\mbox{\rm Iso}}(#1)}
\newcommand{\auto}[1]{{\mbox{\rm Aut}}(#1)}
\newcommand{\footnoteauto}[1]{{\mbox{\footnotesize\rm Aut}}(#1)}
\newcommand{\prefixiso}{{\mbox{\rm Pre-Iso}}}
\newcommand{\scriptprefixiso}{{\mbox{\rm\scriptsize Pre-Iso}}}

\newcommand{\Euklid}{{\mbox{\sc Euklid}}}
\newcommand{\ErweiterterEuklid}{{\mbox{\sc Erweiterter-Euklid}}}
\newcommand{\SquareandMultiply}{{\mbox{\sc Square\_and-Multiply}}}
\newcommand{\MillerRabin}{{\mbox{\sc Miller\_Rabin}}}
\newcommand{\BacktrackingSAT}{{\mbox{\sc Backtracking-SAT}}}
\newcommand{\RandomSAT}{{\mbox{\sc Random-SAT}}}
\newcommand{\LERC}{{\mbox{\sc LERC}}}



% COMPLEXITY CLASSES
\newcommand{\DTIME}[1]{{\mbox{\rm DTIME}}(#1)}
\newcommand{\DSPACE}[1]{{\mbox{\rm DSPACE}}(#1)}
\newcommand{\NTIME}[1]{{\mbox{\rm NTIME}}(#1)}
\newcommand{\NSPACE}[1]{{\mbox{\rm NSPACE}}(#1)}
\newcommand{\ATIME}[1]{{\mbox{\rm ATIME}}(#1)}
\newcommand{\ASPACE}[1]{{\mbox{\rm ASPACE}}(#1)}

% HIERARCHIEN
\newcommand\sigmalevel[1]{{\mbox\rm{}\Sigma^p_{#1}}}
\newcommand\sigmalevelrel[2]{{\mbox\rm{}\Sigma^{p,#2}_{#1}}}
\newcommand\pilevel[1]{{\mbox\rm{}\Pi^p_{#1}}}
\newcommand\deltalevel[1]{{\mbox\rm{}\Delta^p_{#1}}}
\newcommand\thetalevel[1]{{\mbox\rm{}\Theta^p_{#1}}}
\newcommand{\stwo}{\mbox{\rm S}_{2}^{p}}
\newcommand\low[1]{{\mbox{\rm{}Low}}_{#1}}
\newcommand{\lowh}{{{\mbox{\rm{}LH}}}}
\newcommand\high[1]{{\mbox{\rm{}High}}_{#1}}
\newcommand{\highh}{{{\mbox{\rm{}HH}}}}

% COMPLEXITY MEASURES
\newcommand{\Time}[2]{{\mbox{\rm Time}}_{#1}(#2)}
\newcommand{\timefcn}[2]{{\mbox{\rm time}}_{#1}(#2)}
\newcommand{\Space}[2]{{\mbox{\rm Space}}_{#1}(#2)}
\newcommand{\spacefcn}[2]{{\mbox{\rm space}}_{#1}(#2)}
\newcommand{\NTime}[2]{{\mbox{\rm NTime}}_{#1}(#2)}
\newcommand{\ntime}[2]{{\mbox{\rm ntime}}_{#1}(#2)}
\newcommand{\NSpace}[2]{{\mbox{\rm NSpace}}_{#1}(#2)}
\newcommand{\nspace}[2]{{\mbox{\rm nspace}}_{#1}(#2)}

%%%
%%% SZÍNES EGYETEMI ISMERTETŐK   2004. augusztus 16.
%%%
\definecolor{A}{rgb}{0.3,0.8,1} %% kék
\definecolor{C}{named}{Yellow}  %% sárga
\definecolor{H}{rgb}{1,0.7,0} %% %%okker
\definecolor{I}{rgb}{0.8,0.5,0.5} %%téglavörös
\definecolor{N}{named}{Green} %%világoszöld
\definecolor{S}{rgb}{0.3,0.7,0.4}  %%sötétzöld
\definecolor{R}{rgb}{0.5,0.65,0.55} 
\definecolor{W}{rgb}{0.2,0.8,0.9} 
\definecolor{B}{rgb}{0.2,0.5,0.5}
\definecolor{E}{rgb}{0.5,0.5,0}
\definecolor{V}{rgb}{0,0.5,0.5}
\definecolor{Z}{rgb}{0.3,1,0.55} %%világoszöld
\definecolor{P}{named}{Red} %%piros
\definecolor{D}{cmyk}{0,1,0,0}
\definecolor{O}{named}{Cyan}
\definecolor{M}{rgb}{0.5,0.5,0}
\definecolor{F}{rgb}{0.5,0,0.5}
\definecolor{G}{rgb}{0.2,0.3,0.5}
\definecolor{J}{rgb}{0.5,0.3,0.2}
\definecolor{K}{cmyk}{0.5,0.5,0,0}
\definecolor{L}{cmyk}{0,0,0.5,0.5}
\definecolor{Q}{rgb}{0.4,0.7,0.5}
\definecolor{S}{rgb}{0.3,0.7,0.4}
\definecolor{T}{rgb}{0.4,0.3,0.1}
\definecolor{U}{rgb}{0.3,0.4,0.2}
