% -----------------------------------------------------------------------
% pi3.cls
% Based on pi1-muster.tex and defs.tex used before 2003 for
% PI 1 in Bremen.
% Adapted by Thomas Röfer, Christoph Lüth and Klaus Hartke.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{pi3}[2006/10/27 $Revision: 1.6 $  PI3 document class]
\LoadClass[a4paper,11pt,twoside,onecolumn,final]{article}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage{listings}
\usepackage{fancyhdr}

\setlength\textwidth{160mm}
\setlength\textheight{240mm}
\setlength\topmargin{-5mm}
\setlength\evensidemargin{0mm}
\setlength\oddsidemargin{0mm}
\setlength\parskip{1ex}
\setlength\parindent{0ex}
\setlength\headheight{14pt}

\pagestyle{fancy}
\thispagestyle{empty}

\def\thismodule{\jobname}

\renewcommand\include[1]{\def\thismodule{#1}\input{#1.lhs}}

\lstnewenvironment{code}
    {\lstset{name=\thismodule,firstnumber=auto}%
     \csname\@lst @SetFirstNumber\endcsname}
    {\csname\@lst @SaveFirstNumber\endcsname}

\lstset{
  basicstyle=\ttfamily,
%% keywordstyle=\bfseries, 
  %identifierstyle=\bfseries,
  commentstyle=\rmfamily,
  texcl=true, 
  language=Haskell,
  flexiblecolumns=false,
  basewidth={0.5em,0.45em},
  extendedchars=true, 
%% frame=leftline, 
  numbers=left,
  numberstyle=\tiny,
  literate={+}{{$+$}}1 {/}{{$/$}}1 {*}{{$*$}}1 {=}{$=$}1
           {>}{{$>$}}1 {<}{{$<$}}1 
           {->}{{$\rightarrow$}}2 {>=}{{$\geq$}}2 {<-}{{$\leftarrow$}}2
           {<=}{{$\leq$}}2 {=>}{{$\Rightarrow$}}2 {\ .}{{ $\circ$}}2
           {::}{{${::}$}}2
} 

\renewcommand\thesection{Aufgabe \arabic{section}}
\renewcommand\labelenumi{\alph{enumi})}
\renewcommand\labelenumii{-}

\newcommand\thissemester{WS 2006/07}
\newcommand\thistitle{Praktische Informatik 3}
\newcommand\thisshorttitle{PI3}

%% Tutor, Gruppe, Teilnehmer:
\gdef\@tutor{\ClassError{pi3}{Kein Tutor angegeben}
                        {Bitte mit \@backslashchar tutor{} den Namen des Tutors angeben.}}
\gdef\@uebungsgruppe{\ClassError{pi3}{Kein Uebungsgruppe angegeben}
                        {Bitte mit \@backslashchar uebungsgruppe{} die Nummer der Uebungsgruppe angeben.}}
\gdef\@teilnehmer{\ClassError{pi3}{Keine Teilnehmer angegeben}
                        {Bitte mit \@backslashchar teilnehmer{} Namen der Teilnehmer der Uebungsgruppe angeben.}}
\newcommand{\tutor}[1]{\gdef\@tutor{#1}}
\newcommand{\uebungsgruppe}[1]{\gdef\@uebungsgruppe{#1}}
\newcommand{\teilnehmer}[1]{\gdef\@teilnehmer{#1}}

\renewcommand{\maketitle}[3]
{
  \hspace*{-3ex}
		\begin{tabular}[t]{l}
			\begin{tabular}[t]{@{}l@{\hskip 20mm}l@{}}
				\thistitle & \thissemester 
			\end{tabular} \vspace{5mm} \\
			{\Huge\sf Übungsblatt {#1} } \\[1.5ex]
			{\Large Aufgabenlösung} \\[1ex]
			{\Large Abgabe: {#2}} \\[1ex]
		\end{tabular}
                \hfill{}
		\begin{tabular}[t]{ll}
                  \textbf{Tutor}: & \@tutor \\
                  \textbf{Gruppe}: & \hspace*{-2ex}
                  \begin{tabular}[t]{l}
                  \@uebungsgruppe \\
                  \@teilnehmer 
                  \end{tabular}
		\end{tabular} \\[2ex]
	\rule{\linewidth}{1pt}
	
	\fancyhead{}
	\fancyhead[LO,RE]{\thisshorttitle, \thissemester}
	\fancyhead[RO,LE]{Tutor: \@tutor, Gruppe: \@uebungsgruppe}
	\fancyfoot{}
	\fancyfoot[RO,LE]{\thepage}
	
	\addtocounter{section}{#3}
	\addtocounter{section}{-1}
}

\endinput
