summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls')
-rw-r--r--Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls346
1 files changed, 346 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls b/Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls
new file mode 100644
index 00000000000..dfa92b73f7e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls
@@ -0,0 +1,346 @@
+%%
+%% This is file `mluexercise.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mluexercise.dtx (with options: `class')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from mluexercise.cls.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file mluexercise.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mluexercise}[2020/11/12 v2.0]
+\newif\ifdataminingstyle\dataminingstylefalse
+\DeclareOption{dataminingstyle}{%
+ \dataminingstyletrue
+}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions*
+\LoadClass{scrartcl}
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{ifthen} % Conditional branches and loops.
+\RequirePackage{etoolbox} % Hooks for executing code.
+\RequirePackage{hyperref} % Hyperlinks.
+\RequirePackage{xcolor} % Color definitions.
+\RequirePackage{babel}
+\RequirePackage{iflang}
+\newcommand{\IfGerman}[2]{\IfLanguagePatterns{german}{#1}{%
+ \IfLanguagePatterns{ngerman}{#1}{#2}}}
+\newcommand{\@checkoption}[3]{%
+ \AtEndPreamble{%
+ \ifthenelse{\equal{\the#1}{}}{%
+ \ClassError{mluexercise}{Missing #2}{%
+ Set #2 using the \protect#3 command.%
+ }%
+ }{}%
+ }%
+}
+\newtoks\@lecture
+\newcommand{\lecture}[1]{\global\@lecture{#1}}
+\let\title\lecture % Redefine standard \title command.
+\@checkoption{\@lecture}{lecture name}{\lecture}
+\newtoks\@semester
+\newcommand{\semester}[1]{\global\@semester{#1}}
+\global\@semester{ % Automatically set semester based on current date.
+ \ifnum\month<4 % Winter semester, including previous year.
+ WS~{\advance\year by -1 \the\year\advance\year by 1}/\the\year%
+ \else\ifnum\month<10 % Summer semester.
+ SS~\the\year%
+ \else % Winter semester, including next year.
+ WS~\the\year/{\advance\year by 1 \the\year\advance\year by -1}%
+ \fi\fi%
+}
+\newtoks\@exercise
+\newcommand{\exercise}[1]{\global\@exercise{#1}}
+\@checkoption{\@exercise}{exercise number}{\exercise}
+\newtoks\@task
+\newcommand{\task}[1]{\global\@task{#1}}
+\global\@task{1}
+\newtoks\@group
+\newcommand{\group}[1]{\global\@group{#1}}
+\global\@group{0}
+\newtoks\@studentname
+\newcommand{\studentname}[1]{\global\@studentname{#1}}
+\let\author\studentname % Redefine standard \title command.
+\@checkoption{\@studentname}{student name}{\studentname}
+\newtoks\@studentnumber
+\newcommand{\studentnumber}[1]{\global\@studentnumber{#1}}
+\newtoks\@studentsymbol
+\newcommand{\studentsymbol}[1]{\global\@studentsymbol{#1}}
+\RequirePackage{calc}
+\RequirePackage[
+ a4paper,
+ inner=2cm,
+ outer=2cm,
+ top=3cm,
+ bottom=3cm,
+ head=0.75cm,
+ headsep=0.25cm,
+ foot=0.75cm,
+]{geometry}
+\renewcommand{\baselinestretch}{1.15}
+\setlength{\parindent}{0em} % Disable paragraph indentation.
+\setlength{\parskip}{1ex} % Instead enable paragraph margins.
+\RequirePackage{libertine}
+\RequirePackage{eulervm}
+\RequirePackage[ttdefault]{sourcecodepro}
+\RequirePackage{microtype}
+\DisableLigatures{family=tt*}
+\newcommand{\strong}[1]{\textbf{#1}}
+\newcommand{\italic}[1]{\textit{#1}}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\Underline}[1]{\underline{\underline{#1}}}
+\newcommand{\plural}[1]{\textsuperscript{\underline{#1}}}
+\newcommand{\pl}[1]{\plural{#1}}
+\RequirePackage[autostyle=true,german=quotes]{csquotes}
+\RequirePackage{relsize}
+\newcommand{\ttsmallfont}{\ttfamily\smaller}
+\renewcommand{\UrlFont}{\ttsmallfont}
+\newcommand{\textttsmall}[1]{{\ttsmallfont #1}}
+\newcommand{\query}[1]{{\ttsmallfont #1}}
+\newcommand{\domain}[1]{\href{http://#1}{\mbox{\ttsmallfont #1}}}
+\newcommand{\email}[1]{\href{mailto:#1}{\mbox{\ttsmallfont #1}}}
+\setkomafont{sectioning}{\sffamily\mdseries}
+\setkomafont{section}{\LARGE}
+\setkomafont{subsection}{\Large}
+\setkomafont{subsubsection}{\large}
+\setkomafont{paragraph}{\large}
+\setkomafont{subparagraph}{\normalsize}
+\renewcommand{\thesection}{%
+ \bfseries\upshape \IfGerman{Aufgabe}{Task} \arabic{section}}
+\renewcommand{\thesubsection}{%
+ \bfseries\upshape \alph{subsection})}
+\renewcommand{\thesubsubsection}{%
+ \upshape (\roman{subsubsection})}
+\renewcommand{\autodot}{}
+\newcommand{\Rom}[1]{\uppercase\expandafter{\romannumeral#1\relax}}
+\newcommand{\groupstring}{\ifnum\the\@group>0{,
+ \IfGerman{Gruppe}{Group} \Rom{\the\@group}}\fi}
+\author{}
+\setkomafont{title}{\sffamily\bfseries\huge\centering}
+\setkomafont{date}{\sffamily\large\centering}
+\newlength{\approxtitlewidth}
+\renewcommand{\maketitle}{%
+ \settowidth{\approxtitlewidth}{%
+ \usefontofkomafont{title}\the\@lecture}%
+ \ifthenelse{\lengthtest{\approxtitlewidth>\textwidth}}{%
+ \addtokomafont{title}{\LARGE}}{}%
+ \begin{center}%
+ \usefontofkomafont{title}\the\@lecture \\
+ \usefontofkomafont{date}\@date, \the\@semester\groupstring
+ \end{center}
+}
+\RequirePackage[headsepline,footsepline]{scrlayer-scrpage}
+\RequirePackage{totpages}
+\pagestyle{scrheadings}
+\clearscrheadfoot
+\setkomafont{pageheadfoot}{\sffamily}
+\setkomafont{pagenumber}{\sffamily}
+\ofoot{\thepage~von~\ref{TotPages}}
+\RequirePackage{amsmath}
+\RequirePackage{amsthm}
+\RequirePackage{amssymb}
+\RequirePackage{amstext}
+\RequirePackage{array}
+\RequirePackage{cancel}
+\newcommand{\union}{\cup}
+\newcommand{\disjunction}{\uplus}
+\newcommand{\intersection}{\cap}
+\newcommand{\intersect}{\cap}
+\newcommand{\infinity}{\infty}
+\newcommand{\corresponds}{\triangleq}
+\newcommand{\C}{\mathbb{C}} % Complex numbers.
+\newcommand{\complexnumbers}{\C}
+\newcommand{\R}{\mathbb{R}} % Real numbers.
+\newcommand{\realnumbers}{\R}
+\newcommand{\Q}{\mathbb{Q}} % Rational numbers.
+\newcommand{\rationalnumbers}{\Q}
+\newcommand{\Z}{\mathbb{Z}} % Whole numbers.
+\newcommand{\wholenumbers}{\Z}
+\newcommand{\N}{\mathbb{N}} % Natural numbers.
+\newcommand{\naturalnumbers}{\N}
+\newcommand{\B}{\mathbb{B}} % Binary numbers.
+\newcommand{\binarynumbers}{\B}
+\newcommand{\eqtransform}{\ensuremath{\qquad\big|\,\,}}
+\newcommand{\ditto}{\textquotedbl} \newcommand{\dito}{\ditto}
+\renewcommand{\qed}{\nopagebreak\hfill\ensuremath{\square}}
+\newcommand{\mland}{\(\land\)} % \land in text.
+\newcommand{\mlor}{\(\lor\)} % \lor in text.
+\let\tmp\mod \let\mod\bmod \let\bmod\tmp
+\let\varemptyset\emptyset \let\emptyset\varnothing
+\let\tmp\epsilon \let\epsilon\varepsilon \let\varepsilon\tmp
+\let\tmp\phi \let\phi\varphi \let\varphi\tmp
+\newcommand{\base}[1]{\mathcal{#1}} % Base (caligraphic)
+\DeclareMathOperator{\im}{im} % Image
+\DeclareMathOperator{\id}{id} % Identity
+\DeclareMathOperator{\sel}{sel} % Selection
+\DeclareMathOperator{\dom}{dom} % Domain
+\DeclareMathOperator{\ran}{ran} % Range
+\DeclareMathOperator{\Hom}{Hom} % Homomorphism
+\DeclareMathOperator{\End}{End} % Endomorphism
+\renewcommand{\O}{\mathcal{O}} % asymptotic O-Notation (Landau)
+\DeclareMathOperator{\indeg}{indeg} % Indegree
+\DeclareMathOperator{\outdeg}{outdeg} % Outdegree
+\renewcommand{\P}{\ifdataminingstyle p\else\mathbf{P}\fi}
+\newcommand{\E}{\ifdataminingstyle\mathbb{E}\else\mathbf{E}\fi}
+\DeclareMathOperator{\var}{var}
+\DeclareMathOperator{\Var}{Var}
+\DeclareMathOperator{\cov}{cov}
+\DeclareMathOperator{\Cov}{Cov}
+\DeclareMathOperator{\Bin}{Bin}
+\DeclareMathOperator{\Exp}{Exp}
+\DeclareMathOperator{\Dir}{Dir}
+\DeclareMathOperator{\Mult}{Mult}
+\newcommand{\Normal}{\mathcal{N}}
+\newcommand{\Norm}{\Normal}
+\newcolumntype{L}{>{\(}l<{\)}}
+\newcolumntype{R}{>{\(}r<{\)}}
+\newcolumntype{C}{>{\(}c<{\)}}
+\newcounter{calculusRowCount}
+\RequirePackage{pgfkeys}
+\newenvironment{calculus}[1]{
+\pgfkeys{/mlu/calculus/.cd,show index=false,
+ context=\Gamma,context command=context,#1}
+\setcounter{calculusRowCount}{0}
+\newcommand{\calculusSymbol}{\text{
+ \sffamily\itshape\pgfkeysvalueof{/mlu/calculus/symbol}}}
+\newcommand{\calculusContext}{\ensuremath{
+ \pgfkeysvalueof{/mlu/calculus/context}}}
+\expandafter\let\csname \pgfkeysvalueof{/mlu/calculus/context command}%
+ \endcsname\calculusContext
+\par\vspace{0.5em}
+\begin{minipage}{\textwidth}\begin{tabular}{
+ @{\stepcounter{calculusRowCount}
+ (\arabic{calculusRowCount})\hspace{1em}} R
+ @{\hspace{0.4em}
+ \(
+ \vdash_{%
+ \ifthenelse{%
+ \equal{\pgfkeysvalueof{/mlu/calculus/show index}}{true}
+ }{
+ \ifthenelse{%
+ \equal{\pgfkeysvalueof{/mlu/calculus/symbol}}{}%
+ }{}{%
+ \calculusSymbol%
+ }%
+ }{%
+ \hspace{-0.1em}%
+ }%
+ }%
+ \)\hspace{0.6em}}
+ L l
+ }
+}{
+\end{tabular}\end{minipage}\vspace{0.5em}
+\let\calculusContext\undefined \let\calculusSymbol\undefined
+\expandafter\let\csname \pgfkeysvalueof{/mlu/calculus/context command}%
+ \endcsname\undefined
+}
+\newenvironment{eqcalc}[1][]{\begin{calculus}[
+ symbol=E,show index=true,context={\calculusSymbol_{#1}},
+ context command=E]}{\end{calculus}} % Equation calculus
+\newenvironment{seqcalc}{\begin{calculus}[
+ symbol=S,show index=true, context={\calculusSymbol},
+ context command=seq]}{\end{calculus}} % Sequence calculus
+\RequirePackage[vlined,linesnumbered]{algorithm2e}
+\DontPrintSemicolon % Hide semicolons.
+\SetKwProg{Function}{function}{\ is}{end function}
+\SetKwComment{Comment}{\quad\(\triangleright\)~}{} % Comment style.
+\SetCommentSty{itshape} % Comment font.
+\SetKw{Continue}{continue}
+\SetKwBlock{Repeat}{repeat}{}
+\SetNlSty{tiny}{}{} % Line number font.
+\SetNlSkip{0.5em} % Line number skip.
+\SetAlgoNlRelativeSize{0}
+\SetAlFnt{\footnotesize}
+\RequirePackage{listings}
+\RequirePackage{listingsutf8} % UTF8 support in included listings.
+\definecolor{lsnumber}{rgb}{0,0,0} % Zeilennummerfarbe
+\definecolor{lscomment}{rgb}{0.25,0.5,0.35} % Kommentarfarbe
+\definecolor{lskeyword}{rgb}{0.5,0,0.35} % Schl^^c3^^bcsselw^^c3^^b6rterfarbe
+\definecolor{lsstring}{rgb}{0.6,0,0} % Zeichenkettenfarbe
+\lstset{
+ language=C,
+ basicstyle=\ttfamily,
+ breakatwhitespace=false,
+ breaklines=true,
+ prebreak={\mbox{\footnotesize\(\hookleftarrow\)}},
+ numbers=left,
+ numberstyle=\color{lsnumber}\tiny,
+ numbersep=0.5em,
+ stepnumber=1,
+ commentstyle=\color{lscomment},
+ morecomment=[s][\color{lscomment}]{/**}{*/},
+ keepspaces=true,
+ keywordstyle=\bfseries\color{lskeyword},
+ stringstyle=\color{lsstring},
+ showtabs=false, showspaces=false,
+ showstringspaces=false,
+ tabsize=2,
+}
+\lstdefinelanguage[Zimmermann]{haskell}[]{haskell}{
+ escapeinside={*'}{'*},
+ showstringspaces=false,
+ morecomment=[l]\%,
+ captionpos=b,
+ emphstyle={\bfseries},
+}
+\lstalias[]{zhaskell}[Zimmermann]{haskell}
+\lstdefinestyle{haskell}{language=zhaskell}
+\lstdefinelanguage[Molitor]{Assembler}[x86masm]{Assembler}{
+ morekeywords={
+ ldd,sto,shl,shr,rol,ror,sub,add,shli,shri,roli,rori,
+ subi,addi,or,and,xor,xnor,jmp,beq,bneq,bgt,bo,ldpc,stpc
+ },
+ comment=[l]{\#},
+}
+\lstalias[]{massembler}[Molitor]{Assembler}
+\lstdefinestyle{massembler}{language=massembler}
+\RequirePackage{booktabs}
+\RequirePackage{graphicx}
+\RequirePackage{float}
+\RequirePackage{subcaption}
+\RequirePackage{tikz}
+\RequirePackage{pgfplots}
+\RequirePackage{rotating}
+\usetikzlibrary{positioning}
+\usetikzlibrary{automata}
+\usetikzlibrary{trees}
+\tikzset{
+ >=latex,
+ font=\sffamily,
+}
+\pgfplotsset{compat=1.16}
+\AtEndPreamble{
+ \setcounter{section}{\the\@task} \addtocounter{section}{-1}
+ \newcommand{\@exercisestring}{\IfGerman{%
+ \the\@exercise.~^^c3^^9cbungsserie}{Exercise~\the\@exercise}}
+ \ihead{\the\@studentname}
+ \chead{\textbf{\@exercisestring}}
+ \ohead{
+ \the\@studentnumber%
+ \ifthenelse{\equal{\the\@studentnumber}{} \OR
+ \equal{\the\@studentsymbol}{}}{}{\ /\,}%
+ \the\@studentsymbol%
+ }
+ \hypersetup{
+ pdfauthor={\the\@studentname},
+ pdftitle={\@exercisestring - \the\@lecture}
+ }
+}
+\endinput
+%%
+%% End of file `mluexercise.cls'.