%%
%% This is file `cclayout.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cclayout,chartab')
%% 
%% Copyright 2000-2010
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \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         \~}
\let\@contact\relax
\newcommand{\contact}[1]{\gdef\@contact{#1}}
\AtBeginDocument{\if@ccpublish
  \@ifundefined{@contact}{%
    \ClassWarningNoLine{cc}{Who is the contact author?\MessageBreak
      Use \protect\contact\space in the preamble!}%
    }{}%
  \fi}
\let\@received\relax
\newcommand{\received}[1]{\gdef\@received{#1}}
\AtBeginDocument{\if@ccpublish
  \@ifundefined{@received}{%
    \ClassWarningNoLine{cc}{Missing received date.\MessageBreak
      Use \protect\received\space in the preamble.}{}%
    }{}%
  \fi}
\let\@titlehead\relax
\newcommand{\titlehead}[1]{\gdef\@titlehead{#1}}
\let\@authorhead\@undefined
\newcommand{\authorhead}[1]{\gdef\@authorhead{#1}}
\let\@authorlist\@undefined
\newcommand{\authorlist}[1]{\gdef\@authorlist{#1}}
\newbox\@abstract
\let\abstract\@undefined\let\endabstract\@undefined
\babel\def\ccabstractname{Abstract}[%
  german=Zusammenfassung,french=R\'esum\'e]
\newenvironment{abstract}
  {\global\setbox\@abstract\@abstr{\ccabstractname}}
  {\end@abstr}
\newtoks\@abstract@toks
\newcommand{\Abstract}{\global\@abstract@toks}
\newbox\@keywords
\babel\def\cckeywordsname{Keywords}[%
  german=Stichworte,french=Mot-cl\'e]
\newenvironment{keywords}
  {\global\setbox\@keywords\@abstr{\cckeywordsname}}
  {\end@abstr}
\newbox\@subject
\babel\def\ccsubjectclassificationname{Subject classification}[%
  german=Klassifizierung,french=Classification de suj\`et]
\newenvironment{subject}
  {\global\setbox\@subject\@abstr{\ccsubjectclassificationname}}
  {\end@abstr}
\newdimen\@abstrwidth
\newenvironment{@abstr}[1]{%
  \vbox\bgroup
  \hsize\textwidth
  \@parboxrestore
  \leftmargin.5\textwidth \advance\leftmargin-.5\@abstrwidth
  \rightmargin\leftmargin
  \@trivlist\@newlistfalse\global\@inlabeltrue
  \advance\linewidth -\rightmargin
  \advance\linewidth -\leftmargin
  \advance\@totalleftmargin \leftmargin
  \parshape \@ne \@totalleftmargin \linewidth
  \small
  \def\@listi{\leftmargin\leftmargini
              \topsep 2\p@ \@plus2\p@ \@minus1\p@
              \parsep 1\p@
              \itemsep \parsep}%
%%%   \let\origcclist\list
%%%   \def\list{\ifnum\@listdepth>0\relax\@toodeep\fi\origcclist}%
  \let\@listii\@toodeep
  \let\@listiii\@toodeep
  \let\@listiv\@toodeep
  \let\@listv\@toodeep
  \let\@listvi\@toodeep
  \textbf{#1. }\ignorespaces}
{%
  %\strut
  \par
  %\vskip\z@
  \egroup
  \ignorespacesafterend}
\newif\if@abstractoptional
\if@ccpublish\@abstractoptionalfalse\else\@abstractoptionaltrue\fi
\newcommand{\noabstract}{\ClassWarning{cc}{You are using a non
    documented feature}\@abstractoptionaltrue}
\newif\if@keywordsoptional
\if@ccpublish\@keywordsoptionalfalse\else\@keywordsoptionaltrue\fi
\newcommand{\nokeywords}{\ClassWarning{cc}{You are using a non
    documented feature}\@keywordsoptionaltrue}
\newif\if@subjectoptional
\if@ccpublish\@subjectoptionalfalse\else\@subjectoptionaltrue\fi
\newcommand{\nosubject}{\ClassWarning{cc}{You are using a non
    documented feature}\@subjectoptionaltrue}
\def\@subtitle{}
\newcommand{\subtitle}[1]{\def\@subtitle{#1}}
\def\@version{}
\newcommand{\version}[1]{\def\@version{#1}}
\def\@cctxt{}
\newif\if@cchead
\newcommand{\ccpublish}[4]{%
  \global\@ccpublishtrue
  \global\@abstractoptionalfalse% Abstract required
  \global\@keywordsoptionalfalse% Keywords required
  \global\@subjectoptionalfalse% Subject class. required
  \global\@ccheadtrue
  \gdef\@ccyear{#1}%
  \gdef\@ccvolume{#2}%
  \gdef\@ccnumber{#3}%
  \gdef\@ccfirst{#4}%
  \gdef\@cctxt{cc \textbf{#2} (#1)}%
  \global\@autotitletrue
  \AtBeginDocument{\addtocounter{section}{-1}\refstepcounter{section}}%
  \AtEndDocument{\label{ccenddocument}}%
  }
\newcommand{\noccpublish}[1]{%
  \global\@ccpublishfalse
  \global\@abstractoptionaltrue% Abstract required
  \global\@keywordsoptionaltrue% Keywords required
  \global\@subjectoptionaltrue% Subject class. required
  \global\@ccheadfalse
  \gdef\@cctxt{#1}%
  %%\global\@twosidefalse
  }
\def\printed@issn{1016-3328}%
\def\electronic@issn{1420-8954}%
\newcommand{\printed}{\let\issn\printed@issn}
\newcommand{\electronic}{\let\issn\electronic@issn}
\printed
\@onlypreamble\ccpublish
\@onlypreamble\electronic
\@onlypreamble\printed
\def\extractnamesfr@m@author{%
  \@ifundefined{@authorlist}{%
    \let\and\ignorespaces
    \let\latest@name\relax
    \count@\z@
    \expandafter\extract@names\@author\and\and\@nil}{%
    \@authorlist
    }
  }
\def\extract@names#1\and#2\@nil{%
  \cc@ifempty{#1}{%
    \unskip\if\and\relax\else
    \ifnum\count@>\tw@\authorlastsepmany\else\authorlastsep\fi
    \fi\latest@name
    \let\next\gobble@nil}%
  {%
    \unskip\and\latest@name
    \ifx\latest@name\relax\else\let\and\authorsep\fi
    \extract@name#1\\\@nil
    \let\next\extract@names}%
  \next#2\@nil}
\def\gobble@nil#1\@nil{}
\def\extract@name#1\\#2\@nil{\advance\count@\@ne\def\latest@name{#1}}
\babel\def\ccAND{and}[german=und,french=et]
\def\authorsep{,\penalty-5\ }
\def\authorlastsep{\penalty-5\ \ccAND{} }
\def\authorlastsepmany{,\penalty-5\ \ccAND{} }
\newtoks\latest@lastname
\newtoks\@firstname
\let\@firstlastname\@temptokena
\def\extractauthorheadfr@m@author{%
  {%
    \let\and\@empty
    \latest@lastname{}%
    \toks@{}%
    \count@\m@ne
    \expandafter\extract@lastnames\@author\and\and\@nil
    \ifnum\count@<2
    \xdef\@authorhead{\the\@firstname}
    \else\ifnum\count@<4
    \xdef\@authorhead{\the\toks@}%
    \else
    \xdef\@authorhead{\the\@firstlastname\noexpand\textit{ et al.}}%
    \fi\fi
    }%
  \setbox0\hbox{\small\let\thanks\@gobble\@authorhead}%
  \ifdim\wd0>.7\textwidth
  \ClassWarningNoLine{cc}{Authorhead too long. Use
    \protect\authorhead\space to specify\MessageBreak a shortened
    author list for the headings!}%
  \fi
  }
\def\extract@lastnames#1\and#2\@nil{%
  \advance\count@\@ne
  \cc@ifempty{#1}{%
    \expandafter\cc@ifempty\expandafter{\the\toks@}{%
      \edef\@tempa{\the\latest@lastname}%
      }{%
      \edef\@tempa{\the\toks@\authorheadlastsep\the\latest@lastname}%
      }%
    \toks@\expandafter{\@tempa}%
    \let\next\gobble@nil
    }{%
    \expandafter\cc@ifempty\expandafter{\the\toks@}{%
      \edef\@tempa{\the\latest@lastname}%
      }{%
      \edef\@tempa{\the\toks@\authorheadsep\the\latest@lastname}%
      }%
    \toks@\expandafter{\@tempa}%
    \extract@lastname#1\\\@nil
    \let\next\extract@lastnames}%
  \ifnum\count@=\@ne\@firstlastname\expandafter{\the\toks@}\fi
  \next#2\@nil}
\def\gobble@nil#1\@nil{}
\def\extract@lastname#1\\#2\@nil{%
  \ifnum\count@=\z@\@firstname{#1}\fi
  \extract@lastname@#1 \@nil}
\def\extract@lastname@#1 #2\@nil{%
  \cc@ifempty{#2}{\latest@lastname{#1}}{\extract@lastname@#2\@nil}}
\def\authorheadsep{, }
\def\authorheadlastsep{ \& }
\def\authorheadlastsepmany{ \& }
\let\@author\relax
\AtBeginDocument{%
  \@ifundefined{@author}{\if@ccpublish
    \ClassError{cc}{No \protect\author\space given}{Define an author
      list in the preamble by \protect\author{...}}%
    \else
    \ClassWarningNoLine{cc}{No \protect\author\space given}%
    \fi}{}
  \@ifundefined{@authorhead}{\extractauthorheadfr@m@author}{}}
\let\@title\relax
\AtBeginDocument{%
  \@ifundefined{@title}{\if@ccpublish
    \ClassError{cc}{No \protect\title\space given}{Define a title in
      the preamble by \protect\title{...}}%
    \else
    \ClassWarningNoLine{cc}{No \protect\title\space given}%
    \fi}{}
  \setbox0\hbox{\small\let\thanks\@gobble
    \@ifundefined{@titlehead}{\let\\\ \@title}{\@titlehead}}%
  \ifdim\wd0>.7\textwidth
  \ClassError{cc}{Title too long for running head.\MessageBreak
    Use \protect\titlehead\space to specify\MessageBreak a shortened
      title for the headings!}{}%
  \fi}
\def\extractaffilsfr@om@author{%
  \parindent\z@
  \init@affils
  \begin{tabular}{@{}ll@{}}%
    \expandafter\extract@affils\@author\and\and\@nil
  \end{tabular}
  \par
}
\def\init@affils{%
  \let\and\relax
  \@oddaffiltrue
  }
\def\extract@affils#1\and#2\@nil{%
  \cc@ifempty{#1}{\let\next\gobble@nil}{%
    \extract@affil#1\\\@nil
    \let\next\extract@affils}%
  \next#2\@nil}
\def\extract@affil#1\\#2\@nil{%
  \def\currentaddress{\otheraddress
    Current address of \textsc{\ignorespaces#1}:\\}%
  \begin{@ffiliation}
    \textsc{\ignorespaces#1}\\#2
  \end{@ffiliation}
  \affilsep}
\newcommand{\otheraddress}{\end{@ffiliation}\affilsep
  \begin{@ffiliation}}
\def\affilsep{%
  \if@oddaffil\odd@sep\@oddaffilfalse
  \else\even@sep\@oddaffiltrue
  \fi
  }
\newif\if@oddaffil
\def\odd@sep{&}%
\def\even@sep{\end{tabular}\par\begin{tabular}{@{}ll@{}}}%
\newenvironment{@ffiliation}
               {%
                 \minipage[t]{.48\hsize}
                 \dimen@\hsize \advance\dimen@ -1.5em
                 \everypar{\parshape 2 \z@ \hsize 1.5em \dimen@}%
                 \def\\{\unskip\par}%
                 }
               {\strut\par\medskip\endminipage}
\if@cctextarea
\textwidth=141mm
\@abstrwidth=120mm
\textheight=200mm
\topmargin=0mm
\oddsidemargin=12mm
\evensidemargin=12mm
\marginparwidth=25mm
\headheight=1.25\headheight
\ifnum\@marginmode<\z@\@marginmode\z@\fi
\else
\@abstrwidth0.85\textwidth
\fi
%%% \if@ccpublish
%%% \expandafter\xdef\csname ver@fullpage.sty\endcsname{9999}%
%%% \expandafter\xdef\csname ver@a4wide.sty\endcsname{9999}%
%%% \ClassWarning{cc}{The packages fullpage, a4wide are ignored
%%%   when publishing in the journal \cc.}{}%
%%% \fi
\AtBeginDocument{%
  \if@ccpublish\@tempswafalse
  \ifdim\topmargin=0mm\relax\else\@tempswatrue\fi
  \ifdim\textwidth=141mm\relax\else\@tempswatrue\fi
  \ifdim\textheight=200mm\relax\else\@tempswatrue\fi
  \if@tempswa
  \ClassError{cc}{FATAL ERROR! For publishing in cc the page and text
    dimension must not be manipulated. Remove any packages that
    modify the text or page dimensions. In particular: remove the
    packages^^J
    fullpage.sty,^^J
    a4wide.sty,^^J
    geometry.sty,^^J
    vmargin.sty,^^J
    typearea.sty}{}%
  \endinput
  \fi
  \fi
}
\typeout{Now adjusting margins.}
\ifcase\@marginmode
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\advance\oddsidemargin-\evensidemargin}
\or
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\evensidemargin=5mm
\advance\oddsidemargin-\evensidemargin}
\or
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\oddsidemargin.5\oddsidemargin
\evensidemargin\oddsidemargin}
\fi
\AtEndOfClass{%
\marginparwidth1in
\advance\marginparwidth-5mm
\advance\marginparwidth-2\marginparsep
\ifdim\evensidemargin<\oddsidemargin
\advance\marginparwidth\evensidemargin
\else
\advance\marginparwidth\oddsidemargin
\fi
}
\newskip\headerindent \headerindent=10mm
\newdimen\headrulewidth \headrulewidth.4pt
\def\ps@cc{\let\@mkboth\markboth
     \def\@oddhead{\vbox{\hbox to\textwidth{\reset@font\strut
         {\small\@cctxt}%
         \hfil
         {\small
           \@ifundefined{@titlehead}{%
             \let\\\ %
             \@title
             }{%
             \@titlehead
             }}%
         \hbox to\headerindent{\hfil\thepage}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     \def\@oddfoot{}
     \def\@evenhead{\vbox{\hbox to\textwidth{\reset@font\strut
         \hbox to\headerindent{\thepage\hfil}%
         {\small\@authorhead}%
         \hfil
         {\small\@cctxt}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     \let\@evenfoot\@oddfoot
     }
\AtEndOfClass{\pagestyle{cc}}
\AtEndOfClass{%
  \AtBeginDocument{\@onlypreamble{\author{\if@autotitle\maketitle\fi}}}
  %\AtBeginDocument{\if@autotitle\maketitle\fi}
  \AtEndDocument{\if@autotitle\makeendtitle\fi}
  }
\def\fourdigits#1{\ifnum#1<10\relax000#1\else
  \ifnum#1<100\relax00#1\else
  \ifnum#1<1000\relax0#1\else
  #1\fi\fi\fi}
\def\twodigits#1{\ifnum#1<10\relax0#1\else
  \ifnum#1<100\relax#1\else
  #1\fi\fi}
\def\vertrulea{\rule[-7.583pt]{0pt}{7.583pt}}
\def\vertruleb{\rule{2.25pt}{10.2pt}}
\newtoks\cite@hook
\renewcommand{\maketitle}{%
  \global\@topnum\z@   % Prevents figures from going at top of page.
  \cite@hook{}%
  \if@cchead
  \vbox to\z@{\vss
    \@ifundefined{r@ccenddocument}{\@tempcnta\z@}{%
      \@tempcnta\@ne
      \advance\@tempcnta-\@ccfirst
      \edef\@tempa{\csname r@ccenddocument\endcsname}%
      \ifx\@secondoffive\@@@@undefined% hyperref launches this!
      \edef\@tempa{\expandafter\@secondoftwo\@tempa{}{}{}{}{}}%
      \else
      \edef\@tempa{\expandafter\@secondoffive\@tempa{}{}{}{}{}}%
      \fi%
      \advance\@tempcnta\@tempa%
    }%
    \setcounter{page}{\@ccfirst}%
    \hbox to\textwidth{%
      \vbox to\z@{\vss
        \baselineskip=12pt%
        \halign{\ixpt##\hfil\cr
          comput. complex.~\textbf{\@ccvolume}~(\@ccyear),
          \thepage\ -- \pageref{ccenddocument}\cr
          \issn/\expandafter\@gobbletwo\@ccyear%
          %% use + instead                            --?
          /\twodigits{\@ccnumber}\fourdigits{\thepage}--\the\@tempcnta\
          \$ 1.50+0.20/0\cr}}\hss
      \vbox to\z@{\vss
        \offinterlineskip%
        \halign{##&##\hfil\cr
          \vertrulea&\ixpt
          \copyright{} Birkh{\"{a}}user Verlag, Basel \@ccyear\cr
          \noalign{\hrule}
          \vertruleb\hskip1mm&%
          \vbox to\z@{\vbox to\z@{\vss
              \hbox{\xptsfbx computational complexity}}\vss}%
          \cr}}}\vskip47.333pt}
  \fi
  \hrule\@height\z@
  \vskip2.2ex% 4.0mm
  \relax
  \begin{center}
    \if@ccpublish
      \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{%
          There are no footnotes allowed in title or author.\MessageBreak
          Your command is ignored.\MessageBreak
          Think about moving your remark to the acknowledgements}}%
      \let\thanks\footnote
    \else
      \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{%
          In title or author \string\footnote\space does not work.\MessageBreak
          Avoid footnotes or use \string\thanks}}%
      \renewcommand{\thefootnote}{\@fnsymbol\c@footnote}%
      \def\@makefnmark{%
        \rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
      \long\def\@makefntext##1{\parindent 1em\noindent
        \hb@xt@1.8em{%
          \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
    \fi
    {%
      \Large\bfseries
      \def\\{\penalty-\@M}%
      \expandafter\MakeUppercase\expandafter{\@title}%
      \par
      }%
    \@ifundefined{@subtitle}{}{{%
        \large\itshape
        \@subtitle
        \par
        }}
    \@ifundefined{@version}{}{{%
        \large\itshape
        \@version
        \par
        }}
    \bigskip
    \vskip1.21ex% 2.2mm
    \vskip\z@
    {%
      \large\scshape
      \extractnamesfr@m@author
      \par
      }%
    \if@ccpublish
    \ifx\@date\today\else
    \ClassWarningNoLine{cc}{Date ignored! (\@date)}%
    \fi
    \else{%
      \vskip1ex
      \large\@date\par
      }\fi
    \def\@tempa{\vskip5.5ex\let\@tempa\relax}%
    \expandafter\cc@ifempty\expandafter{\the\@abstract@toks}{%
      \ifvoid\@abstract
        \if@abstractoptional
        \ClassWarningNoLine{cc}{Missing abstract}%
        \else
        \ClassError{cc}{Missing abstract}
        {Define an abstract in the preamble using
          \protect\begin{abstract} ... \protect\end{abstract}.}%
        \fi
      \else
        \@tempa\leavevmode\unvbox\@abstract\par
      \fi
      }{%
      \ifvoid\@abstract\else
      \ClassWarningNoLine{cc}{Two abstracts,
        using the one defined by \protect\Abstract}%
      \fi
      \global\setbox\@abstract
      \@abstr{\ccabstractname}
        \the\@abstract@toks
      \end@abstr
      \@tempa\leavevmode\unvbox\@abstract\par
      }
    \ifvoid\@keywords
      \if@keywordsoptional
      \ClassWarningNoLine{cc}{Missing keywords}%
      \else
      \ClassError{cc}{Missing keywords}
      {Define keywords in the preamble using
        \protect\begin{keywords} ... \protect\end{keywords}.}%
      \fi
    \else
      \@tempa\leavevmode\unvbox\@keywords\par
    \fi
    \ifvoid\@subject
      \if@subjectoptional
      \ClassWarningNoLine{cc}{Missing subject classification}%
      \else
      \ClassError{cc}{Missing subject classification}
      {Define a subject classification in the preamble using
        \protect\begin{subject} ... \protect\end{subject}.}%
      \fi
    \else
      \@tempa\leavevmode\unvbox\@subject\par
    \fi
    \@thanks
    \ifx\@tempa\relax\vskip3ex\fi
  \end{center}
  \thispagestyle{empty}
  \setcounter{footnote}{0}%
  \global\let\maketitle\relax
  \global\let\thanks\@gobble
  \global\let\@thanks\relax
  \global\let\author\@notprerr
  \global\let\title\@notprerr
  \global\let\abstract\@notprerr
  \global\let\Abstract\@notprerr
  \global\let\keywords\@notprerr
  \global\let\subject\@notprerr
  \global\let\titlehead\@notprerr
  \global\let\authorhead\@notprerr
  \global\let\received\@notprerr
  \vskip\z@
  \par\@afterindentfalse\@afterheading
  }
\let\@maketitle\@undefined
\let\and\@undefined
\babel\def\ManuscriptReceived{Manuscript received }[%
  german=Manuskript erhalten: ,%
  french=Manuscrit re\c{c}u: ]
\newcommand{\makeendtitle}{%
  \par
  \parindent\z@
  \bigskip
  \@ifundefined{@received}{}{%
    \noindent{\small
      \ManuscriptReceived\@received
      \par}%
    \medskip
    }%
  {\small
    \extractaffilsfr@om@author
    }%
  %%\clearpage
  \gdef\makeendtitle{\ClassWarning{cc}{\protect\makeendtitle\space
      multiply used!}}%
  }
\endinput
%%
%% End of file `cclayout.sty'.
