
\ProvidesClass{booknotes}
\LoadClass{report}

\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\RequirePackage{stmaryrd}
\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n}
\RequirePackage{url}
\RequirePackage{float}
\RequirePackage{booktabs}
\RequirePackage{emptypage}
\RequirePackage{subcaption}
\RequirePackage{multicol}
\RequirePackage{cancel}
\RequirePackage{mathrsfs}
\RequirePackage{minted}
\usemintedstyle{monokai}
\RequirePackage{listings}
\RequirePackage{systeme}
\RequirePackage{amsfonts, amsmath, mathtools, amssymb, amsthm}
\RequirePackage{enumitem}
\RequirePackage{bm}
\RequirePackage{listings}
\RequirePackage{geometry}
\RequirePackage{graphicx}
\RequirePackage[usenames,dvipsnames]{xcolor}
\RequirePackage{bm}
\RequirePackage{siunitx}
\RequirePackage{physics}
\let\qty\SI%
\RequirePackage{etoolbox}
\RequirePackage{xifthen}
\RequirePackage{import}
\RequirePackage{pdfpages}
\RequirePackage{fancyhdr}
\RequirePackage{tikz}
\RequirePackage{tikz-cd}
\RequirePackage{pgfplots}

\pgfplotsset{
    compat=newest,
}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{patterns, intersections, angles, quotes, calc, positioning}
\usetikzlibrary{arrows.meta}
\RequirePackage{thmtools}
\RequirePackage[framemethod=TikZ]{mdframed}
\mdfsetup{skipabove=1em, skipbelow=0em, innertopmargin=5pt, innerbottommargin=6pt}

\newcommand\N{\ensuremath{\mathbb{N}}}
\newcommand\R{\ensuremath{\mathbb{R}}}
\newcommand\Z{\ensuremath{\mathbb{Z}}}
\newcommand\Q{\ensuremath{\mathbb{Q}}}
\newcommand\C{\ensuremath{\mathbb{C}}}

\let\sidesum\sum%
\let\sidelim\lim%
\renewcommand\sum{\sidesum\limits}
\renewcommand\lim{\sidelim\limits}


\theoremstyle{definition}
\makeatletter

\declaretheoremstyle[
    headfont=\bfseries\sffamily\color{ForestGreen!70!black}, bodyfont=\normalfont,
    mdframed={
        linecolor=ForestGreen,
        backgroundcolor=ForestGreen!5,
    }
]{thmdef}

\declaretheoremstyle[
    headfont=\bfseries\sffamily\color{RawSienna!70!black}, bodyfont=\normalfont,
    mdframed={
        linecolor=RawSienna,
        backgroundcolor=RawSienna!5,
    }
]{thmthm}

\declaretheoremstyle[
    headfont=\bfseries\sffamily\color{NavyBlue!70!black}, bodyfont=\normalfont,
    mdframed={
        linewidth=2pt,
        rightline=false, topline=false, bottomline=false,
        linecolor=NavyBlue, backgroundcolor=NavyBlue!5,
    }
]{thmexample}

\declaretheoremstyle[
    headfont=\bfseries\sffamily, bodyfont=\normalfont,
    mdframed={
        linewidth=2pt,
        rightline=false, topline=false, bottomline=false,
        linecolor=Black, backgroundcolor=Black!5,
    }
]{thmremark}

\declaretheoremstyle[
    headfont=\bfseries\sffamily\color{RawSienna!70!black}, bodyfont=\normalfont,
    mdframed={
        linewidth=2pt,
        rightline=false, topline=false, bottomline=false,
        linecolor=RawSienna,
    },
    qed=\qedsymbol%
]{thmproof}


\declaretheoremstyle[
    headfont=\bfseries\sffamily\color{NavyBlue!70!black}, bodyfont=\normalfont,
    mdframed={
        linewidth=2pt,
        rightline=false, topline=false, bottomline=false,
        linecolor=NavyBlue,
    },
    qed=\qedsymbol%
]{thmexpl}


\declaretheorem[style=thmdef, name=Definition]{definition}
\declaretheorem[style=thmthm, name=Lemma]{lemma}
\declaretheorem[style=thmthm, name=Theorem]{theorem}
\declaretheorem[style=thmthm, name=Proposition]{proposition}
\declaretheorem[style=thmthm, numbered=no, name=Corollary]{corollary}
\declaretheorem[style=thmexample, numbered=no, name=Example]{eg}


\declaretheorem[style=thmproof, name=Proof]{thmproof}
\renewenvironment{proof}[1][\proofname]{\begin{thmproof}}{\end{thmproof}}
\declaretheorem[style=thmexpl, numbered=no, name=Proof]{thmexpl}
\newenvironment{expl}[1][]{\vspace{-12pt}\begin{thmexpl}}{\end{thmexpl}}


\declaretheorem[style=thmremark, numbered=no, name=Remark]{remark}
\declaretheorem[style=thmremark, numbered=no, name=Note]{note}

\newcommand{\exercise}[1]{%
    \def\@exercise{#1}%
    \subsection*{Exercise #1}
}

\newcommand{\subexercise}[1]{%
    \subsubsection*{Exercise \@exercise.#1}
}

\newcommand{\sect}[1]{
    \def\@section{#1}
    \section{#1}
}

\def\@lecture{}
\newcommand{\lecture}[2]{
    \ifthenelse{\isempty{#2}}{
        \def\@lecture{Lecture #1}%
    }{%
        \def\@lecture{Lecture #1: #2}%
    }%
    \subsection*{\@lecture}
}

\pagestyle{fancy}
\fancyhead[RO,L]{\@section}
\fancyhead[R,LO]{\leftmark}

\newcommand{\fullpagebreak}{\pagebreak}

\newcommand{\incfig}[1]{%
    \def\svgwidth{\columnwidth}
    \import{./}{#1.pdf_tex}
}


\definecolor{MintedBg}{RGB}{38, 38, 38}


\newenvironment{code}[1]{\color{white}\VerbatimEnvironment\begin{minted}[bgcolor=MintedBg]{#1}}{\end{minted}}

\newcommand{\inlinecode}[2]{\color{white}\mintinline[bgcolor=MintedBg]{#1}|#2|}

\newcommand{\importcode}[2]{\color{white}\VerbatimEnvironment\inputminted[bgcolor=MintedBg]{#1}{#2}}

\DeclareMathOperator{\GL}{GL}
\DeclareMathOperator{\Imm}{Im}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\Aut}{Aut}
\DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\Hol}{Hol}


\makeatother

