2025-11-18 02:09:44 +01:00
|
|
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
|
|
|
|
\ProvidesClass{uebung}[Sem3 Web Engineering Exercise Sheet Class]
|
|
|
|
|
|
|
|
|
|
|
|
% Base class with options
|
|
|
|
|
|
\LoadClass[11pt,a4paper]{article}
|
|
|
|
|
|
|
|
|
|
|
|
% Required packages
|
|
|
|
|
|
\RequirePackage[german]{babel}
|
|
|
|
|
|
\RequirePackage{geometry}
|
|
|
|
|
|
\RequirePackage{fancyhdr}
|
|
|
|
|
|
\RequirePackage{titlesec}
|
|
|
|
|
|
\RequirePackage{enumitem}
|
|
|
|
|
|
\RequirePackage{listings}
|
|
|
|
|
|
\RequirePackage{xcolor}
|
|
|
|
|
|
\RequirePackage{graphicx}
|
|
|
|
|
|
\RequirePackage{amsmath}
|
|
|
|
|
|
\RequirePackage{hyperref}
|
2025-12-06 08:46:55 +01:00
|
|
|
|
\RequirePackage{minted}
|
|
|
|
|
|
|
|
|
|
|
|
% Minted config
|
|
|
|
|
|
\usemintedstyle{default}
|
2025-11-18 02:09:44 +01:00
|
|
|
|
|
|
|
|
|
|
% Define chapter counter for exercise sheets
|
|
|
|
|
|
\newcounter{chapter}
|
|
|
|
|
|
\renewcommand{\thechapter}{\arabic{chapter}}
|
|
|
|
|
|
|
|
|
|
|
|
% Page geometry
|
|
|
|
|
|
\geometry{a4paper, left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm}
|
|
|
|
|
|
|
|
|
|
|
|
% Colors for code listings
|
|
|
|
|
|
\definecolor{codegreen}{rgb}{0,0.6,0}
|
|
|
|
|
|
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
|
|
|
|
|
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
|
|
|
|
|
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
|
|
|
|
|
|
|
|
|
|
|
% Code listing style
|
|
|
|
|
|
\lstdefinestyle{mystyle}{
|
|
|
|
|
|
backgroundcolor=\color{backcolour},
|
|
|
|
|
|
commentstyle=\color{codegreen},
|
|
|
|
|
|
keywordstyle=\color{magenta},
|
|
|
|
|
|
numberstyle=\tiny\color{codegray},
|
|
|
|
|
|
stringstyle=\color{codepurple},
|
|
|
|
|
|
basicstyle=\ttfamily\footnotesize,
|
|
|
|
|
|
breakatwhitespace=false,
|
|
|
|
|
|
breaklines=true,
|
|
|
|
|
|
captionpos=b,
|
|
|
|
|
|
keepspaces=true,
|
|
|
|
|
|
numbers=left,
|
|
|
|
|
|
numbersep=5pt,
|
|
|
|
|
|
showspaces=false,
|
|
|
|
|
|
showstringspaces=false,
|
|
|
|
|
|
showtabs=false,
|
|
|
|
|
|
tabsize=2,
|
|
|
|
|
|
frame=single,
|
|
|
|
|
|
framesep=5pt
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
\lstset{style=mystyle}
|
|
|
|
|
|
|
|
|
|
|
|
% Header and footer setup
|
|
|
|
|
|
\pagestyle{fancy}
|
|
|
|
|
|
\fancyhf{}
|
|
|
|
|
|
\fancyhead[L]{\textbf{Übung Web-Engineering}}
|
|
|
|
|
|
\fancyhead[R]{\textbf{Aufgabenblatt zu Kapitel \thechapter}}
|
|
|
|
|
|
\fancyfoot[C]{\thepage}
|
|
|
|
|
|
|
|
|
|
|
|
% Title format
|
|
|
|
|
|
\renewcommand{\maketitle}{
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
|
\LARGE\textbf{Übung Web-Engineering}\\
|
|
|
|
|
|
\Large\textbf{Aufgabenblatt zu Kapitel \thechapter}
|
|
|
|
|
|
\vspace{1cm}
|
|
|
|
|
|
|
|
|
|
|
|
\large\textbf{Aufgaben – \@author}
|
|
|
|
|
|
\end{center}
|
|
|
|
|
|
\vspace{0.5cm}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
% Section formatting
|
|
|
|
|
|
\titleformat{\section}
|
|
|
|
|
|
{\large\bfseries}
|
|
|
|
|
|
{}
|
|
|
|
|
|
{0em}
|
|
|
|
|
|
{}
|
|
|
|
|
|
[\titlerule]
|
|
|
|
|
|
|
|
|
|
|
|
% Exercise item formatting
|
|
|
|
|
|
\newlist{exercises}{enumerate}{1}
|
|
|
|
|
|
\setlist[exercises]{
|
|
|
|
|
|
label=\arabic*),
|
|
|
|
|
|
leftmargin=*,
|
|
|
|
|
|
itemsep=1em,
|
|
|
|
|
|
before=\vspace{1.0cm}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
% Java code environment
|
|
|
|
|
|
\lstnewenvironment{javaCode}[1][]
|
|
|
|
|
|
{\lstset{style=mystyle, language=Java, #1}}
|
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
% JSP/HTML code environment
|
|
|
|
|
|
\lstnewenvironment{htmlCode}[1][]
|
|
|
|
|
|
{\lstset{style=mystyle, language=HTML, #1}}
|
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
% XML code environment
|
|
|
|
|
|
\lstnewenvironment{xmlCode}[1][]
|
|
|
|
|
|
{\lstset{style=mystyle, language=XML, #1}}
|
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
% Subsection for code examples
|
|
|
|
|
|
\newcommand{\codeexample}[1]{
|
|
|
|
|
|
\vspace{0.5em}
|
|
|
|
|
|
\noindent\textbf{Beispiel:}
|
|
|
|
|
|
\vspace{0.3em}
|
|
|
|
|
|
#1
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
% Environment for multi-page content
|
|
|
|
|
|
\newenvironment{multipagecontent}
|
|
|
|
|
|
{\par\vspace{1em}}
|
|
|
|
|
|
{\par\vspace{1em}}
|
|
|
|
|
|
|
|
|
|
|
|
% Command for page breaks with continuation marker
|
|
|
|
|
|
\newcommand{\continuepage}{
|
|
|
|
|
|
\vfill
|
|
|
|
|
|
\centerline{\textit{Fortsetzung auf nächster Seite...}}
|
|
|
|
|
|
\newpage
|
|
|
|
|
|
\centerline{\textit{Fortsetzung von vorheriger Seite...}}
|
|
|
|
|
|
\vspace{1em}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
% Hyperref setup
|
|
|
|
|
|
\hypersetup{
|
|
|
|
|
|
colorlinks=true,
|
|
|
|
|
|
linkcolor=blue,
|
|
|
|
|
|
filecolor=magenta,
|
|
|
|
|
|
urlcolor=cyan,
|
|
|
|
|
|
pdftitle={Web Engineering Übungen},
|
|
|
|
|
|
pdfauthor={Linus Nagel}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
% Chapter command for exercise sheets
|
|
|
|
|
|
\newcommand{\chapter}[1]{\setcounter{chapter}{#1}}
|
|
|
|
|
|
|
|
|
|
|
|
\endinput
|