349 lines
9.6 KiB
TeX
349 lines
9.6 KiB
TeX
|
|
\ProvidesClass{booknotes}
|
|
\LoadClass[twoside]{report}
|
|
|
|
\RequirePackage{tex-macros}
|
|
\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}
|
|
\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}[=v2]
|
|
\RequirePackage{physics}
|
|
\RenewCommandCopy\qty\SI%
|
|
\RequirePackage{etoolbox}
|
|
\RequirePackage{xifthen}
|
|
\RequirePackage{import}
|
|
\RequirePackage{pdfpages}
|
|
\RequirePackage{fancyhdr}
|
|
\RequirePackage{tikz}
|
|
\RequirePackage{tikz-cd}
|
|
\RequirePackage{pgfplots}
|
|
\RequirePackage{hyperref}
|
|
\RequirePackage{algpseudocode}
|
|
\RequirePackage{algorithm}
|
|
|
|
\hypersetup{
|
|
colorlinks=true,
|
|
linkcolor=blue,
|
|
filecolor=blue,
|
|
urlcolor=blue,
|
|
}
|
|
|
|
|
|
\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}
|
|
|
|
\theoremstyle{definition}
|
|
\makeatletter
|
|
|
|
\@ifclasswith{booknotes}{nocolor}{
|
|
|
|
\usemintedstyle{bw}
|
|
\declaretheoremstyle[
|
|
headfont=\bfseries\sffamily, bodyfont=\normalfont,
|
|
mdframed={nobreak}
|
|
]{thmboxed}
|
|
|
|
\declaretheoremstyle[
|
|
headfont=\bfseries\sffamily, bodyfont=\normalfont,
|
|
]{thmsimple}
|
|
|
|
\declaretheoremstyle[
|
|
headfont=\bfseries\sffamily, bodyfont=\normalfont,
|
|
numbered=no,
|
|
mdframed={
|
|
rightline=false, topline=false, bottomline=false,
|
|
},
|
|
qed=\qedsymbol,
|
|
]{thmproof}
|
|
|
|
|
|
\declaretheoremstyle[
|
|
headfont=\bfseries\sffamily, bodyfont=\normalfont,
|
|
numbered=no,
|
|
mdframed={
|
|
rightline=false, topline=false, bottomline=false,
|
|
}
|
|
]{thmline}
|
|
|
|
\declaretheorem[style=thmboxed, name=Definition]{definition}
|
|
\declaretheorem[style=thmboxed, name=Lemma]{lemma}
|
|
\declaretheorem[style=thmboxed, name=Theorem]{theorem}
|
|
\declaretheorem[style=thmboxed, name=Proposition]{proposition}
|
|
\declaretheorem[style=thmboxed, numbered=no, name=Corollary]{corollary}
|
|
\declaretheorem[style=thmsimple, numbered=no, name=Example]{eg}
|
|
|
|
\AtEndEnvironment{eg}{\null\hfill$\diamond$}
|
|
|
|
\declaretheorem[style=thmproof, name=Proof]{thmproof}
|
|
\renewenvironment{proof}[1][\proofname]{\begin{thmproof}}{\end{thmproof}}
|
|
\declaretheorem[style=thmline, numbered=no, name=Proof]{expl}
|
|
\declaretheorem[style=thmline, numbered=no, name=Solution]{answ}
|
|
|
|
\declaretheorem[style=thmsimple, numbered=no, name=Remark]{remark}
|
|
\declaretheorem[style=thmsimple, numbered=no, name=Note]{note}
|
|
|
|
|
|
\newenvironment{code}[1]{\VerbatimEnvironment\begin{minted}[fontfamily=courier, frame=lines,framesep=7pt, linenos, breaklines]{#1}}{\end{minted}}
|
|
|
|
\newcommand{\inlinecode}[2]{\mintinline{#1}|#2|}
|
|
|
|
\newcommand{\importcode}[2]{\inputminted[fontfamily=courier, frame=lines, framesep=7pt, linenos, breaklines]{#1}{#2}}
|
|
|
|
|
|
\newcommand{\specialquote}[2]
|
|
{
|
|
\begin{flushright}
|
|
|
|
\begin{tikzpicture}
|
|
\draw (0,0) node [right,text width=8.75cm] {
|
|
\begin{mdframed}[
|
|
linecolor=black,
|
|
rightline=false,
|
|
topline=false,
|
|
bottomline=false,
|
|
linewidth=2pt
|
|
]
|
|
|
|
{``#1''}
|
|
\vspace{1mm}
|
|
|
|
\hfill-- \small{#2}
|
|
\end{mdframed}
|
|
};
|
|
\end{tikzpicture}
|
|
\end{flushright}
|
|
}
|
|
|
|
\newcommand{\specialnoquote}[2]
|
|
{
|
|
\begin{flushright}
|
|
|
|
\begin{tikzpicture}
|
|
\draw (0,0) node [right,text width=8.75cm] {
|
|
\begin{mdframed}[
|
|
linecolor=black,
|
|
rightline=false,
|
|
topline=false,
|
|
bottomline=false,
|
|
linewidth=2pt
|
|
]
|
|
|
|
{#1}
|
|
\vspace{1mm}
|
|
|
|
\hfill-- \small{#2}
|
|
\end{mdframed}
|
|
};
|
|
\end{tikzpicture}
|
|
\end{flushright}
|
|
}
|
|
|
|
}{
|
|
|
|
\usemintedstyle{monokai}
|
|
\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=thmexpl, numbered=no, name=Solution]{thmansw}
|
|
\newenvironment{answ}[1][]{\vspace{-12pt}\begin{thmansw}}{\end{thmansw}}
|
|
|
|
|
|
\declaretheorem[style=thmremark, numbered=no, name=Remark]{remark}
|
|
\declaretheorem[style=thmremark, numbered=no, name=Note]{note}
|
|
\definecolor{MintedBg}{RGB}{38, 38, 38}
|
|
|
|
|
|
\newenvironment{code}[1]{\color{white}\VerbatimEnvironment\begin{minted}[breaklines, bgcolor=MintedBg]{#1}}{\end{minted}}
|
|
|
|
\newcommand{\inlinecode}[2]{\color{white}\mintinline[breaklines, bgcolor=MintedBg]{#1}|#2|}
|
|
|
|
\newcommand{\importcode}[2]{\color{white}\inputminted[breaklines, bgcolor=MintedBg]{#1}{#2}}
|
|
|
|
|
|
\newcommand{\specialquote}[2]
|
|
{
|
|
\begin{flushright}
|
|
|
|
\begin{tikzpicture}
|
|
\draw (0,0) node [right,text width=8.75cm] {
|
|
\begin{mdframed}[
|
|
linecolor=RoyalPurple,
|
|
rightline=false,
|
|
topline=false,
|
|
bottomline=false,
|
|
backgroundcolor=RoyalPurple!5,
|
|
linewidth=2pt
|
|
]
|
|
``#1''
|
|
\vspace{1mm}
|
|
|
|
\hfill-- \small{#2}
|
|
\end{mdframed}
|
|
};
|
|
\end{tikzpicture}
|
|
\end{flushright}
|
|
}
|
|
|
|
\newcommand{\specialnoquote}[2]
|
|
{
|
|
\begin{flushright}
|
|
|
|
\begin{tikzpicture}
|
|
\draw (0,0) node [right,text width=8.75cm] {
|
|
\begin{mdframed}[
|
|
linecolor=RoyalPurple,
|
|
rightline=false,
|
|
topline=false,
|
|
bottomline=false,
|
|
backgroundcolor=RoyalPurple!5,
|
|
linewidth=2pt
|
|
]
|
|
|
|
{#1}
|
|
\vspace{1mm}
|
|
|
|
\hfill-- \small{#2}
|
|
\end{mdframed}
|
|
};
|
|
\end{tikzpicture}
|
|
\end{flushright}
|
|
}
|
|
}
|
|
|
|
\newcommand{\exercise}[2][]{%
|
|
\def\@exercise{#2}%
|
|
\subsection*{Exercise #2. #1}
|
|
}
|
|
|
|
\newcommand{\subexercise}[2][]{%
|
|
\subsubsection*{Exercise \@exercise.#2. #1}
|
|
}
|
|
|
|
\newcommand{\sect}[1]{
|
|
\def\@section{#1}
|
|
\section{#1}
|
|
}
|
|
|
|
\newcommand{\subsect}[1]{
|
|
\def\@subsection{#1}
|
|
\subsection{#1}
|
|
}
|
|
|
|
\def\@lecture{}
|
|
\newcommand{\lecture}[2]{
|
|
\ifthenelse{\isempty{#2}}{
|
|
\def\@lecture{Lecture #1}%
|
|
}{%
|
|
\def\@lecture{Lecture #1: #2}%
|
|
}%
|
|
\subsection*{\@lecture}
|
|
}
|
|
|
|
\pagestyle{fancy}
|
|
\fancyhead[RO,LE]{\@section}
|
|
\fancyhead[RE,LO]{\leftmark}
|
|
|
|
\newcommand{\fullpagebreak}{\pagebreak}
|
|
|
|
\newcommand{\toc}{\tableofcontents\raggedbottom}
|
|
|
|
\newcommand{\incfig}[1]{%
|
|
\def\svgwidth{\columnwidth}
|
|
\import{./figures/}{#1.pdf_tex}
|
|
}
|
|
|
|
\makeatother
|
|
|