latex-packages/mymath.sty

321 lines
9.1 KiB
Text
Raw Permalink Normal View History

2021-04-27 00:20:45 +02:00
\NeedsTeXFormat{LaTeX2e}
2021-05-07 12:17:03 +02:00
\ProvidesPackage{mymath}[2021/03/31 - Math package by Maximilian Keßler (private use)]
%%%%%%Provides the basic math packages used for my lecture-note write-ups
2021-04-27 00:20:45 +02:00
%The language to pass to babel
\newif\ifenglish\englishtrue
\DeclareOption{german}{\englishfalse}
\DeclareOption{english}{\englishtrue}
% When working with beamer some things have to be done differently
\newif\ifbeamer\beamerfalse
\DeclareOption{nobeamer}{\beamerfalse}
\DeclareOption{beamer}{\beamertrue}
2021-08-26 09:18:18 +02:00
\newif\ifsubfig\subfigtrue
\DeclareOption{nosubfig}{\subfigfalse}
2021-04-27 00:20:45 +02:00
%Options for onehalf-spacing of lines
\newif\ifonehalfspacing\onehalfspacingfalse %default is normalspace
\DeclareOption{onehalfspacing}{\onehalfspacingtrue}
\DeclareOption{normalspacing}{\onehalfspacingfalse}
%Options for utf8 or utf8x - encoding
\newif\ifutf\utftrue %by default, utf8 is not enabled
\DeclareOption{utf8x}{\utffalse}
\DeclareOption{utf8}{\utftrue}
%Options for lukas
\newif\iflukas\lukasfalse
\DeclareOption{lukas}{\lukastrue}
%Options for including theorem-environments or not.
\newif\iffancythm\fancythmfalse
\DeclareOption{fancythm}{\fancythmtrue}
\DeclareOption*{\PackageWarning{mymath}{Unknown '\CurrentOption'}}
\ProcessOptions\relax
\RequirePackage[\ifenglish english \else ngerman\fi]{babel}
\RequirePackage[T1]{fontenc}
% When using utf8x, we have to load ucs and inputenc with utf8x option and must exclude bibtex
% When not using utf8x (plan utf8), we must NOT load ucs, and then load inputenc with utf8-option as well as bibtex
% also, when using plain utf8, we want to load the newunicodechar package
\ifutf
\RequirePackage{newunicodechar}
\newunicodechar{α}{\ensuremath\alpha}
\newunicodechar{β}{\ensuremath\beta}
\newunicodechar{γ}{\ensuremath\gamma}
\newunicodechar{δ}{\ensuremath\delta}
\newunicodechar{ε}{\ensuremath\epsilon}
\newunicodechar{ζ}{\ensuremath\zeta}
\newunicodechar{η}{\ensuremath\eta}
\newunicodechar{θ}{\ensuremath\theta}
\newunicodechar{ι}{\ensuremath\iota}
\newunicodechar{κ}{\ensuremath\kappa}
\newunicodechar{λ}{\ensuremath\lambda}
\newunicodechar{μ}{\ensuremath\mu}
\newunicodechar{ν}{\ensuremath\nu}
\newunicodechar{ξ}{\ensuremath\xi}
\newunicodechar{π}{\ensuremath\pi}
\newunicodechar{ρ}{\ensuremath\rho}
\newunicodechar{σ}{\ensuremath\sigma}
\newunicodechar{τ}{\ensuremath\tau}
\newunicodechar{υ}{\ensuremath\upsilon}
\newunicodechar{φ}{\ensuremath\phi}
\newunicodechar{χ}{\ensuremath\chi}
\newunicodechar{ψ}{\ensuremath\psi}
\newunicodechar{ω}{\ensuremath\omega}
2021-05-12 20:15:34 +02:00
\ifbeamer\else
2021-04-27 00:20:45 +02:00
\RequirePackage[backend=biber,style=alphabetic]{biblatex}
2021-05-12 20:15:34 +02:00
\fi
2021-04-27 00:20:45 +02:00
\else
\RequirePackage[mathletters]{ucs}
\fi
\RequirePackage[\ifutf utf8\else utf8x\fi]{inputenc}
\RequirePackage{anyfontsize}
\RequirePackage{lmodern}
\RequirePackage{amsmath}
\RequirePackage{mathtools}
\RequirePackage{amsthm}
\RequirePackage{amssymb}
2021-05-12 20:15:34 +02:00
\ifbeamer\else
2021-04-27 00:20:45 +02:00
\RequirePackage{bm} % bold math symbols
2021-05-12 20:15:34 +02:00
\fi
2021-04-27 00:20:45 +02:00
\RequirePackage{comment}
\RequirePackage{soul}
2021-08-26 09:18:18 +02:00
\ifsubfig
\RequirePackage{subfig}\else\fi
2021-05-07 12:17:03 +02:00
\RequirePackage{mathrsfs}
\RequirePackage{bbm}
2021-04-27 00:20:45 +02:00
\ifbeamer
\else \RequirePackage[shortlabels]{enumitem}\fi
2021-05-12 20:15:34 +02:00
\ifbeamer\else
2021-04-27 16:01:23 +02:00
\RequirePackage[colorlinks=true]{hyperref} % Hyperlinks
2021-05-12 20:15:34 +02:00
\fi
2021-04-27 00:20:45 +02:00
% TIKZ
\RequirePackage{tikz}
\usetikzlibrary{calc, intersections, through, quotes, angles, babel, positioning}
\RequirePackage{tkz-euclide}
\RequirePackage[export]{adjustbox}
%Commutative diagrams
\RequirePackage{tikz-cd}
%%for small diagrams, similar to tikz-cd
\usepackage{xy} % for small diagrams, e.g. arrows
\xyoption{all}
%%% AMSTHM
\iffancythm
2021-08-26 09:18:18 +02:00
\RequirePackage{mkessler-fancythm}
2021-04-27 00:20:45 +02:00
\else
\theoremstyle{plain}
\ifbeamer\else
\newtheorem{theorem}{\ifenglish Theorem\else Satz\fi}
\newtheorem{corollary}{\ifenglish Corollary\else Korollar\fi}
\newtheorem*{lemma}{Lemma}
\newtheorem{proposition}{Proposition}
2021-08-26 09:18:18 +02:00
\fi
2021-04-27 00:20:45 +02:00
\theoremstyle{definition}
\ifbeamer\else
\newtheorem{definition}{Definition}
\newtheorem{example}{\ifenglish Example\else Beispiel\fi}
\newtheorem*{remark}{\ifenglish Remark\else Bemerkung\fi}
\newtheorem*{notation}{Notation}
2021-08-26 09:18:18 +02:00
\fi
2021-04-27 00:20:45 +02:00
%%Theorems needed in any case (fancy or not fancy theorems)
\theoremstyle{plain}
\newtheorem{claim}{\ifenglish Claim\else Behauptung\fi}
\newtheorem{variant}{\ifenglish Variant\else Variante\fi}
\newtheorem{assumption}{\ifenglish Assumption\else Annahme\fi}
\theoremstyle{definition}
2021-05-12 20:15:34 +02:00
\ifbeamer\else
2021-04-27 00:20:45 +02:00
\newtheorem*{fact}{\ifenglish Fact\else Fakt\fi}
\newtheorem*{note}{\ifenglish Note\else Anmerkung\fi}
2021-05-12 20:15:34 +02:00
\newtheorem*{problem}{Problem}
\fi
2021-04-27 00:20:45 +02:00
\newtheorem*{warning}{\color{red}\ifenglish Warning \else Warnung\fi}
\newtheorem*{goal}{\ifenglish Goal \else Ziel\fi}
2021-04-27 08:46:46 +02:00
\newtheorem*{question}{\ifenglish Question \else Frage \fi}
2021-04-27 00:20:45 +02:00
\newtheorem*{info}{Information}
\newtheorem*{moral}{Moral}
\newtheorem*{answer}{\ifenglish Answer\else Antwort\fi}
\newtheorem*{observe}{\ifenglish Observe\else Beobachte\fi}
\newtheorem*{property}{\ifenglish Property\else Eigenschaft\fi}
\newtheorem*{intuition}{Intuition}
\newtheorem*{recall}{\ifenglish Recall\else Erinnerung\fi}
\newtheorem*{idea}{\ifenglish Idea\else Idee\fi}
\newtheorem{exercise}{\ifenglish Exercise\else Aufgabe\fi}
2021-08-26 09:18:18 +02:00
\ifbeamer\else\newenvironment{solution}[1][]{\begin{proof}[\ifenglish{}Solution\else{}Lösung\fi{}#1]}{\end{proof}}\fi
\fi %end of theorem definitions
2021-04-27 00:20:45 +02:00
% Für Formeln
\RequirePackage{mathabx}
\RequirePackage{faktor}
\RequirePackage[mathscr]{eucal}
\RequirePackage{blindtext}
\RequirePackage{tabto}
2021-05-12 20:15:34 +02:00
\ifbeamer\else
2021-04-27 00:20:45 +02:00
\RequirePackage{lastpage} %\pageref{LastPage} for reference on the last page
2021-05-12 20:15:34 +02:00
\fi
2021-04-27 00:20:45 +02:00
% Für Tabulatoren
\RequirePackage{pdfpages} % PDF-Dateien einbinden
% Für Zeilenumbruch
\RequirePackage{microtype}
\RequirePackage{changepage}
%Für Zeilenabstand 1,5
\ifonehalfspacing
\RequirePackage[onehalfspacing]{setspace} \else
\fi
%For setting counters of itemns in \enemerate
\makeatletter
\newcommand\setItemnumber[1]{\setcounter{enum\romannumeral\@enumdepth}{\numexpr#1-1\relax}}
\makeatother
%Make circled symbols
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
%Print a warning sign
\newcommand\Warning{%
\makebox[1.4em][c]{%
\makebox[0pt][c]{\raisebox{.1em}{\small!}}%
\makebox[0pt][c]{\color{red}\Large$\bigtriangleup$}}}%
% Add \contra symbol to denote contradiction
\usepackage{stmaryrd} % for \lightning
\newcommand\contra{\scalebox{1.5}{$\lightning$}}
%Emphasize \vocabulary
\newcommand{\vocab}[1]{\textbf{\color{blue} #1}}
%%%%math operators
\usepackage{operators}
%Short commands for \mathbb{}
\newcommand{\C}{\ensuremath{\mathbb{C}}}
\newcommand{\F}{\ensuremath{\mathbb{F}}}
\newcommand{\K}{\ensuremath{\mathbb{K}}}
\newcommand{\N}{\ensuremath{\mathbb{N}}}
\newcommand{\Q}{\ensuremath{\mathbb{Q}}}
\newcommand{\R}{\ensuremath{\mathbb{R}}}
\newcommand{\Z}{\ensuremath{\mathbb{Z}}}
%Paired Delimiters
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
%Norm and absolute value
%Make them scaling by default and have \abs*{} as the non-scaling version of the command
\DeclarePairedDelimiter\abs{\lvert}{\rvert}
\makeatletter
\let\oldabs\abs
\def\abs{\@ifstar{\oldabs}{\oldabs*}}
\DeclarePairedDelimiter\norm{\lVert}{\rVert}
\let\oldnorm\norm
\def\norm{\@ifstar{\oldnorm}{\oldnorm*}}
\makeatother
%Fixes of common misbehaviour
\renewcommand{\degree}{^\circ}
%Used to start an exercise and resetting the equation number
\newcommand{\nr}[1]{\setcounter{equation}{0}\section*{\ifenglish Exercise \else Aufgabe \fi #1}~}
\ifbeamer\else\RequirePackage{esint}\fi
\RequirePackage{IEEEtrantools}
2021-08-26 09:18:18 +02:00
\RequirePackage[ngerman,ruled,vlined]{algorithm2e}
2021-04-27 00:20:45 +02:00
\iflukas
\newcommand{\RrClA}{\begin{IEEEeqnarray*}{RrCl}}
\newcommand{\RrClZ}{\end{IEEEeqnarray*}}
\newcommand{\RrCla}{\begin{IEEEeqnarray}{RrCl}}
\newcommand{\RrClz}{\end{IEEEeqnarray}}
\newcommand{\ud}{\,\mathrm{d}}
\newcommand{\dLx}[1]{\;\ud\mathcal{L}^{#1}(x)}
\setenumerate[1]{label=(\alph*)}
%%%%%%%%%%%%% INDUKTION %%%%%%%%%%%%%%%%%
\newcommand{\its}{Das gilt offentsichtlich.}
\newcommand\induktion[6][\its]{
\def\n{#2}
\def\kn{#2}
Es sei $P(\n)$ die Aussage, dass:
\RrClA
P(\n) : \equiv \qquad \left(#5 \right)
\RrClZ
Diese soll nun per Induktion über $#3$ gezeigt werden.
\begin{enumerate}
\item [\underline{IA:}]Für den Induktionsanfang muss $P(#4)$ gezeigt werden, d.h.:
\def\n{#4}
\def\kn{#4}
\RrClA
P(#4) \equiv \qquad \left(#5\right)
\RrClZ
#1\ Also ist der Induktionsanfang gezeigt.
\def\n{#2}
\def\kn{#2}
\item [\underline{IV:}] Angenommen $P(\n)$ gilt für ein $\n \in #3$, d.h. es gilt:
\RrClA
P(\n) \equiv \qquad \left(#5\right)
\RrClZ
\item [\underline{IS:}]
Im Induktionsschritt von $\n$ auf $\n+1$ muss gezeigt werden, dass unter Annahme der Induktionsvoraussetzung auch die Induktionsbehauptung gilt:
\def\n{#2+1}
\def\kn{(#2+1)}
\RrClA
P(\n) \equiv \qquad \left(#5\right)
\RrClZ
#6
\def\n{#2}
\def\kn{#2}
Damit ist der Induktionsschritt erbracht und es gilt für alle $#2$ in $#3$:
\RrClA
\forall \n \in #3 : #5
\RrClZ
\end{enumerate}
}
%[Begründung IA]{$Variablenname$}{$Ursprungsmenge$}{$Startwert$}{$Aussage (variable ist \n, \kn)$}{Begründung IS}
%\n ist n oder n+1, \kn ist n oder (n+1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\else
\fi