|
- \ProvidesClass{presentation}
- \LoadClass[notheorems]{beamer}
-
- \RequirePackage[utf8]{inputenc}
- \RequirePackage[T1]{fontenc}
- \RequirePackage{textcomp}
- \RequirePackage[german]{babel}
- \RequirePackage{amsmath, amssymb, amsthm}
- \RequirePackage{mdframed}
- \RequirePackage{fancyhdr}
- \RequirePackage{geometry}
- \RequirePackage{import}
- \RequirePackage{pdfpages}
- \RequirePackage{transparent}
- \RequirePackage{xcolor}
- \RequirePackage{array}
- \RequirePackage{tikz}
- \RequirePackage{pgfplots}
- %\RequirePackage[nobottomtitles]{titlesec}
- \RequirePackage{listings}
- \RequirePackage{mathtools}
- \RequirePackage{forloop}
- \RequirePackage{totcount}
- \RequirePackage{calc}
- \RequirePackage{wasysym}
- \RequirePackage{environ}
-
- \usetikzlibrary{quotes, angles}
- \pgfplotsset{
- compat=1.15,
- default 2d plot/.style={%
- grid=both,
- minor tick num=4,
- grid style={line width=.1pt, draw=gray!10},
- major grid style={line width=.2pt,draw=gray!50},
- axis lines=middle,
- enlargelimits={abs=0.2}
- },
- }
-
- % beamer specific proof envs without title or qed symbol
-
- % proof beginning (suppressing qed symbol)
- \NewEnviron{proofb}
- {
- \begin{proof}
- \renewcommand{\qedsymbol}{}
- \BODY
- \end{proof}
- }
-
- % proof intermediate (suppressing both)
- \NewEnviron{proofi}
- {
- \renewcommand{\proofname}{\hskip-\labelsep\spacefactor3000 }
- \begin{proof}
- \renewcommand{\qedsymbol}{}
- \BODY
- \end{proof}
- }
-
- % proof end (suppressing title)
- \NewEnviron{proofe}
- {
- \renewcommand{\proofname}{\hskip-\labelsep\spacefactor3000 }
- \begin{proof}
- \BODY
- \end{proof}
- }
-
-
- % PARAGRAPH no indent but skip
- \setlength{\parskip}{3mm}
- \setlength{\parindent}{0mm}
-
- \theoremstyle{plain}
- \newtheorem{satz}{Satz}[section]
- \newtheorem{lemma}[satz]{Lemma}
- \newtheorem{korollar}[satz]{Korollar}
-
- \theoremstyle{definition}
- \newtheorem{definition}[satz]{Definition}
-
- \theoremstyle{remark}
- \newtheorem{bsp}[satz]{Beispiel}
- \newtheorem{bem}[satz]{Bemerkung}
- \newtheorem{aufgabe}{Aufgabe}
-
- % enable aufgaben counting
- %\regtotcounter{aufgabe}
-
- % temporary calculation counter
- \newcounter{var}
-
- \newcommand{\N}{\mathbb{N}}
- \newcommand{\R}{\mathbb{R}}
- \newcommand{\Z}{\mathbb{Z}}
- \newcommand{\Q}{\mathbb{Q}}
- \newcommand{\C}{\mathbb{C}}
-
- % HEADERS
-
- %\pagestyle{fancy}
-
- \newcommand{\incfig}[1]{%
- \def\svgwidth{\columnwidth}
- \import{./figures/}{#1.pdf_tex}
- }
- \pdfsuppresswarningpagegroup=1
-
- % horizontal rule
- \newcommand\hr{
- \noindent\rule[0.5ex]{\linewidth}{0.5pt}
- }
-
- % punkte tabelle
- %\newcommand{\punkte}[1][1]{
- % \newcounter{k}
- % \setcounter{k}{#1}
- % \@punkten{\value{k}}{\totvalue{aufgabe}}
- % \setcounter{k}{#1-1}
- % \setcounter{aufgabe}{\value{k}}
- % \vspace{5mm}
- %}
- %
- %\def\@punkten#1#2{
- % \newcounter{n}
- % % create a temporary calculation counter
- % \setcounter{var}{#2-#1+1}
- % \begin{tabular}{|c|*{\value{var}}{m{1cm}|}m{1cm}|@{}m{0cm}@{}}
- % \hline
- % Aufgabe
- % \forloop{n}{#1}{\not{\value{n} > #2}}{
- % & \centering A\then
- % }
- % & \centering $\sum$ & \\[5mm] \hline
- % Punkte
- % \forloop{n}{#1}{\not{\value{n} > #2}}{
- % &
- % }
- % & & \\[5mm] \hline
- % \end{tabular}
- %}
-
- % code listings, define style
- \lstdefinestyle{mystyle}{
- commentstyle=\color{gray},
- keywordstyle=\color{blue},
- numberstyle=\tiny\color{gray},
- stringstyle=\color{black},
- basicstyle=\ttfamily\footnotesize,
- breakatwhitespace=false,
- breaklines=true,
- captionpos=b,
- keepspaces=true,
- numbers=left,
- numbersep=5pt,
- showspaces=false,
- showstringspaces=false,
- showtabs=false,
- tabsize=2
- }
-
- % activate my colour style
- \lstset{style=mystyle}
-
- % better stackrel
- \let\oldstackrel\stackrel
- \renewcommand{\stackrel}[2]{%
- \oldstackrel{\mathclap{#1}}{#2}
- }%
-
- % integral d sign
- \makeatletter \renewcommand\d[2][]{\ensuremath{%
- \,\mathrm{d}^{#1}#2\@ifnextchar^{}{\@ifnextchar\d{}{\,}}}}
- \makeatother
-
- % contradiction
- \newcommand{\contr}{\text{\Large\lightning}}
-
- % disjoint unions: provides cupdot and bigcupdot
- \makeatletter
- \def\moverlay{\mathpalette\mov@rlay}
- \def\mov@rlay#1#2{\leavevmode\vtop{%
- \baselineskip\z@skip \lineskiplimit-\maxdimen
- \ialign{\hfil$\m@th#1##$\hfil\cr#2\crcr}}}
- \newcommand{\charfusion}[3][\mathord]{
- #1{\ifx#1\mathop\vphantom{#2}\fi
- \mathpalette\mov@rlay{#2\cr#3}
- }
- \ifx#1\mathop\expandafter\displaylimits\fi}
- \makeatother
-
- \newcommand{\cupdot}{\charfusion[\mathbin]{\cup}{\cdot}}
- \newcommand{\bigcupdot}{\charfusion[\mathop]{\bigcup}{\cdot}}
-
- \ExplSyntaxOn
-
- % S-tackrelcompatible ALIGN environment
- % some might also call it the S-uper ALIGN environment
- % uses regular expressions to calculate the widest stackrel
- % to put additional padding on both sides of relation symbols
- \NewEnviron{salign}
- {
- \begin{align}
- \lec_insert_padding:V \BODY
- \end{align}
- }
- % starred version that does no equation numbering
- \NewEnviron{salign*}
- {
- \begin{align*}
- \lec_insert_padding:V \BODY
- \end{align*}
- }
-
- % some helper variables
- \tl_new:N \l__lec_text_tl
- \seq_new:N \l_lec_stackrels_seq
- \int_new:N \l_stackrel_count_int
- \int_new:N \l_idx_int
- \box_new:N \l_tmp_box
- \dim_new:N \l_tmp_dim_a
- \dim_new:N \l_tmp_dim_b
- \dim_new:N \l_tmp_dim_needed
-
- % function to insert padding according to widest stackrel
- \cs_new_protected:Nn \lec_insert_padding:n
- {
- \tl_set:Nn \l__lec_text_tl { #1 }
- % get all stackrels in this align environment
- \regex_extract_all:nnN { \c{stackrel}{(.*?)}{(.*?)} } { #1 } \l_lec_stackrels_seq
- % get number of stackrels
- \int_set:Nn \l_stackrel_count_int { \seq_count:N \l_lec_stackrels_seq }
- \int_set:Nn \l_idx_int { 1 }
- \dim_set:Nn \l_tmp_dim_needed { 0pt }
- % iterate over stackrels
- \int_while_do:nn { \l_idx_int <= \l_stackrel_count_int }
- {
- % calculate width of text
- \hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 1 }$}
- \dim_set:Nn \l_tmp_dim_a {\box_wd:N \l_tmp_box}
- % calculate width of relation symbol
- \hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 2 }$}
- \dim_set:Nn \l_tmp_dim_b {\box_wd:N \l_tmp_box}
- % check if 0.5*(a-b) > minimum padding, if yes updated minimum padding
- \dim_compare:nNnTF
- { 1pt * \dim_ratio:nn { \l_tmp_dim_a - \l_tmp_dim_b } { 2pt } } > { \l_tmp_dim_needed }
- { \dim_set:Nn \l_tmp_dim_needed { 1pt * \dim_ratio:nn { \l_tmp_dim_a - \l_tmp_dim_b } { 2pt } } }
- { }
- \quad
- % increment list index by three, as every stackrel produces three list entries
- \int_incr:N \l_idx_int
- \int_incr:N \l_idx_int
- \int_incr:N \l_idx_int
- }
- % replace all relations with align characters (&) and add the needed padding
- \regex_replace_all:nnN
- { (<&|&<|\c{iff}&|&\c{iff}|\c{impliedby}&|&\c{impliedby}|\c{implies}&|&\c{implies}|\c{approx}&|&\c{approx}|\c{equiv}&|&\c{equiv}|=&|&=|\c{le}&|&\c{le}|\c{ge}&|&\c{ge}|&\c{stackrel}{.*?}{.*?}|\c{stackrel}{.*?}{.*?}&|&\c{neq}|\c{neq}&) }
- { \c{kern} \u{l_tmp_dim_needed} \1 \c{kern} \u{l_tmp_dim_needed} }
- \l__lec_text_tl
- \l__lec_text_tl
- }
- \cs_generate_variant:Nn \lec_insert_padding:n { V }
- \ExplSyntaxOff
|