diff options
author | Karl Berry <karl@freefriends.org> | 2020-11-13 22:24:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-11-13 22:24:29 +0000 |
commit | ffb4036e9af173690e6faa322bee8bceefa7bcaa (patch) | |
tree | b4824a6fad109ee3a2ff4b288f808bb616203df1 /Master/texmf-dist/tex/latex/mluexercise | |
parent | b3a6bc1c4efa8d9f6e736a4d8d1afe77406ebfd9 (diff) |
mluexercise (13nov20)
git-svn-id: svn://tug.org/texlive/trunk@56927 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/mluexercise')
-rw-r--r-- | Master/texmf-dist/tex/latex/mluexercise/mluexercise.cls | 346 |
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'. |