\newsection
\section{Full Command Reference}
\subsection{Variables}
\begin{itemize}
    \item \textit{scope}: \texttt{minimal}, \texttt{most}, \texttt{recommended}, \texttt{all} or \texttt{letter}
    \item \textit{string}: Any normal text
    \item \textit{math}: Any math input
    \item \textit{number}: Any non-negative integer, i.e. no commas
    \item \textit{color}: Any of the \texttt{dvipsnames} colours of \texttt{xcolor}
    \item \textit{langauge}: 2-character country code (currently only \texttt{de} and \texttt{en} supported)
\end{itemize}

\subsection{Per-File config}
\label{sec:perFileConf}
\begin{itemize}
    \item \verb|\renewcommand{\authorTitle}|\{\textit{string}\} Change the author (in the title) for this document only
    \item \verb|\renewcommand{\authorHeaders}|\{\textit{string}\} Change the author (in the header) for this document only
    \item \verb|\renewcommand{\name}|\{\textit{string}\} Change the name (for letters) for this document only
    \item \verb|\renewcommand{\street}|\{\textit{string}\} Change the street (for letters) for this document only
    \item \verb|\renewcommand{\city}|\{\textit{string}\} Change the city (for letters) for this document only
    \item \verb|\renewcommand{\countrycode}|\{\textit{string}\} Change the country-code (for letters) for this document only
    \item \verb|\renewcommand{\theoremde}|\{\textit{string}\} Change the translation for theorem in German (usually either ``Satz'' or ``Theorem'')
    \item \verb|\setcounter{numberingConfig}|\{\textit{number}\} Change the numbering of definitions, lemmas, etc for this document. 0 = off, 1 = Separately, 2 = Combined (except for definition), 3 = Combined
    \item \verb|\setcounter{numberSubsections}|\{\textit{number}\} Change the format of the numbering of definition, lemma, etc.
          0 = $<$section$>$.$<$number$>$,\\
          1 = $<$section$>$.$<$subsection$>$.$<$number$>$,\\
          2 = $<$section$>$.$<$subsection$>$.$<$subsubsection$>$.$<$number$>$\\
          Changing this won't affect all of numbering prior to the command, only after. You can change this setting (and the one above) at any point in the document
    \item \verb|\setcounter{descriptorShadeStrength}|\{\textit{number}\} Change the colour saturation of the inline descriptors
    \item \verb|\setcounter{shadeStrength}|\{\textit{number}\} Change the colour saturation of the \verb|\shade| command
    \item \verb|\setLang|\{\textit{language}\} Change the language. Will automatically load babel in German. Can only be used once and only at the start of the document or in the preamble, as repeated usage leads to undefined behaviour
    \item To change the font for the entire document, load the font package using \verb|\usepackage|, then select it by using \verb|\setFont{<font name>}|. A list of fonts is available \color{Cyan}\href{https://www.overleaf.com/learn/latex/Font_typefaces#Reference_guide}{here}\color{black}. You may change the font only for a specific section, by enclosing \verb|\setFont| and the text that should be written in said typeface in curly braces.
\end{itemize}

\newpage
\subsection{Setup, Loading \& Translation}
\begin{itemize}
    \item \verb|\load|\{\textit{scope}\} Load the selected \textit{scope}
    \item \verb|\setup|\{\textit{string}\} Prepare the document with the \textit{string} being the title
    \item \verb|\setupCheatSheet|\{\textit{string}\} Prepare the document with smaller borders and no headers / footers. \textit{string} is the title
    \item \verb|\setupBarebones|\{\textit{string}\} Minimal setup, only borders and title set
    \item \verb|\startDocument| Initialize the document. Has to be called after \verb|\begin{document}|
    \item \verb|\usetcolorboxes| Initialize tcolorboxes. In main body, if you want to use fancy boxes. (requires \texttt{most} or up)
    \item \verb|\translate|\{\textit{string}\}\{\textit{string}\} First \textit{string} is English, second \textit{string} is German. Switches automatically based on language selected
    \item \verb|\tr|\{\textit{string}\}\{\textit{string}\} Shorthand for \verb|\translate|
\end{itemize}

\newpage
\subsection{Math-Commands}
All these have to be executed in the math environment.
\begin{itemize}
    \item \verb|\R| Prints $\R$. Same goes for \verb|\C| printing $\C$, etc.
    \item \verb|\floor|\{\textit{math}\} Round down symbol, e.g. $\floor{n}$
    \item \verb|\ceil|\{\textit{math}\} Round up symbol, e.g. $\ceil{n}$
    \item \verb|\hastoeq| or \verb|\mbeq| Has to equal symbol (non-standard), $\hastoeq$
    \item \verb|\Leftrightarrowequiv| Equivalence transformation symbol, $\Leftrightarrowequiv$.
    \item \verb|\Rightarrowequiv| Equivalence transformation symbol, $\Rightarrowequiv$.
    \item \verb|\Leftarrowequiv| Equivalence transformation symbol, $\Leftarrowequiv$.
    \item \verb|\defAs| Define as, i.e. $\defAs$
    \item \verb|\defEquiv| Define as, but with a two-sided implication instead of equality, i.e. $\defEquiv$
    \item \verb|\defImplies| Define as, but with one-sided implication, i.e. $\defImplies$
    \item \verb|\divides| Divider or divides symbol, e.g. $a \divides b$
    \item \verb|\lcm| Least common multiple, $\lcm$
    \item \verb|\arcsinh| Inverse of hyperbolic sine, $\arcsinh$
    \item \verb|\arccosh| Inverse of hyperbolic cosine, $\arccosh$
    \item \verb|\arctanh| Inverse of hyperbolic tangent, $\arctanh$
    \item \verb|\limit|\{\textit{math}\}\{\textit{math}\} Shortened limit notation, $\displaystyle \limit{x}{x_0}$
    \item \verb|\limni| Shortened limit notation for $n \rightarrow \infty$, $\displaystyle \limni$
    \item \verb|\liminfni| Shortened limit inferior notation for $n \rightarrow \infty$, $\displaystyle \liminfni$
    \item \verb|\limsupni| Shortened limit superior notation for $n \rightarrow \infty$, $\displaystyle \limsupni$
    \item \verb|\der|\{\textit{math}\} Derivative, $\displaystyle \der{x}$
    \item \verb|\dern|\{\textit{math}\}\{\textit{math}\} Higher derivative, $\displaystyle \dern{x}{2}$
\end{itemize}


\newpage
\subsection{CS-Commands}
These commands have to be executed inside math environment, except \verb|\timecomplexity| and \verb|\tc|.
\begin{itemize}
    \item \verb|\timecomplexity| Prints the word time complexity with a coloured box.
    \item \verb|\tc| Shorthand for \verb|\tct|. Deprecated
    \item \verb|\tct| Time complexity in $\tct{}$-notation (average case)
    \item \verb|\tco| Time complexity in $\tco{}$-notation (worst case / upper bound)
    \item \verb|\tcl| Time complexity in $\tcl{}$-notation (best case / lower bound)
    \item \verb|\t[R, C, N]| Simply prints a capital R, C or N in math mode as normal text. So e.g. use $\tR$ to print an R
    \item \verb|\wordbool| Prints $\wordbool$
    \item \verb|\words|\{\textit{string}\} Prints $\words{test}$
    \item \verb|\wordm|\{\textit{math}\} Prints $\wordm{1}$
    \item \verb|\alphabets|\{\textit{string}\} Prints $\alphabets{test}$
\end{itemize}

\fhlc{Aquamarine}{Algorithms}
\begin{minted}{latex}
\begin{algo}{functionName(A)}
    \Procedure{functionName}{$(A)$}
        \State\Return "Hello World"
    \EndProcedure
\end{algo}
\end{minted}

\begin{algo}{functionName(A)}
    \Procedure{functionName}{$(A)$}
        \State\Return "Hello World"
    \EndProcedure
\end{algo}

\newpage
\subsection{Style}
General styling commands. All other commands, except these ones require at least \texttt{most} to be the selected \textit{scope}
\begin{itemize}
    \item \verb|\TODO| Print a highlighted \TODO
    \item \verb|\background|\{\textit{color}\}\{\textit{number}\}\{\textit{string}\} Print \background{ForestGreen}{50}{shaded text, with colour saturation}
    \item \verb|\shade|\{\textit{color}\}\{\textit{string}\} Print \shade{ForestGreen}{shaded text}
    \item \verb|\backdrop|\{\textit{string}\} Print \backdrop{text with gray backdrop}
    \item \verb|\fhlc|\{\textit{color}\}\{\textit{string}\} Print \fhlc{ForestGreen}{bold, underlined text in a coloured box}
    \item \verb|\fhl|\{\textit{string}\} Print \fhl{bold, underlined text in a white box}
    \item \verb|\printtoc|\{\textit{color}\} Print the table of contents (as seen on the first page). The normal \verb|\tableofcontents| still works as expected
    \item \verb|\smallhspace| Prints a 2mm hspace
    \item \verb|\mediumhspace| Prints a 5mm hspace
    \item \verb|\largehspace| Prints a 10mm = 1cm hspace
\end{itemize}

\newpage
\subsubsection{Tcolorboxes}
\textit{Included in \texttt{most} and up}

Put \verb|\usetcolorboxes| right after \verb|\startDocument| (right after \verb|\begin{document}|) if you plan to use them.

\fhlc{Aquamarine}{General}
\begin{terms}[]{Title here}
    \begin{minted}{latex}
        \begin{terms}[]{Title here}
            
        \end{terms}
    \end{minted}
\end{terms}

\begin{notation}[]{Title here}
    \begin{minted}{latex}
        \begin{notation}[]{Title here}
            
        \end{notation}
    \end{minted}
\end{notation}

\begin{recall}[]{Title here}
    \begin{minted}{latex}
        \begin{recall}[]{Title here}
            
        \end{recall}
    \end{minted}
\end{recall}

\begin{remarks}[]{Title here}
    \begin{minted}{latex}
        \begin{remarks}[]{Title here}
            
        \end{remarks}
    \end{minted}
\end{remarks}

\begin{usage}[]{Title here}
    \begin{minted}{latex}
        \begin{usage}[]{Title here}
            
        \end{usage}
    \end{minted}
\end{usage}

\begin{guides}[]{Title here}{Tutorial}
    \begin{minted}{latex}
        \begin{guides}[]{Title here}{Tutorial} 
            % You can also change the right title on this one
            
        \end{guides}
    \end{minted}
\end{guides}

\begin{properties}[]{Title here}
    \begin{minted}{latex}
        \begin{properties}[]{Title here}
            
        \end{properties}
    \end{minted}
\end{properties}

\begin{restrictions}[]{Title here}
    \begin{minted}{latex}
        \begin{restrictions}[]{Title here}
            
        \end{restrictions}
    \end{minted}
\end{restrictions}

\begin{limitations}[]{Title here}
    \begin{minted}{latex}
        \begin{limitations}[]{Title here}
            
        \end{limitations}
    \end{minted}
\end{limitations}



\fhlc{Aquamarine}{Math-Specific}
\begin{formula}[]{Title here}
    \begin{minted}{latex}
        \begin{formula}[]{Title here}
            
        \end{formula}
    \end{minted}
\end{formula}


\vspace{1cm}
\fhlc{Aquamarine}{Counter-enabled}

These ones also have two settings, namely, you can change the counter behaviour and the inclusion of subsections in the numbering. See \ref{sec:perFileConf}.

See \ref{sec:counters} for a guide on how to change the current number.

\begin{definition}[]{Title here}
    \begin{minted}{latex}
        \begin{definition}[]{Title here}
            
        \end{definition}
    \end{minted}
\end{definition}

\begin{theorem}[]{Title here}
    \begin{minted}{latex}
        \begin{theorem}[]{Title here}
            
        \end{theorem}
    \end{minted}
\end{theorem}

\begin{lemma}[]{Title here}
    \begin{minted}{latex}
        \begin{lemma}[]{Title here}
            
        \end{lemma}
    \end{minted}
\end{lemma}

\begin{corollary}[]{Title here}
    \begin{minted}{latex}
        \begin{corollary}[]{Title here}
            
        \end{corollary}
    \end{minted}
\end{corollary}

\begin{proposition}[]{Title here}
    \begin{minted}{latex}
        \begin{proposition}[]{Title here}
            
        \end{proposition}
    \end{minted}
\end{proposition}

\newpage
\begin{fact}[]{Title here}
    \begin{minted}{latex}
        \begin{fact}[]{Title here}
            
        \end{fact}
    \end{minted}
\end{fact}

\begin{axiom}[]{Title here}
    \begin{minted}{latex}
        \begin{axiom}[]{Title here}
            
        \end{axiom}
    \end{minted}
\end{axiom}

\begin{example}[]{Title here}
    \begin{minted}{latex}
        \begin{example}[]{Title here}
            
        \end{example}
    \end{minted}
\end{example}

\begin{remark}[]{Title here}
    \begin{minted}{latex}
        \begin{remark}[]{Title here}
            
        \end{remark}
    \end{minted}
\end{remark}


\newpage
\fhlc{Aquamarine}{Language-Specific}
\begin{conjugation}[]{Title here}
    \begin{minted}{latex}
        \begin{conjugation}[]{Title here}
            
        \end{conjugation}
    \end{minted}
\end{conjugation}

\begin{forms}[]{Title here}
    \begin{minted}{latex}
        \begin{forms}[]{Title here}
            
        \end{forms}
    \end{minted}
\end{forms}


\fhlc{Aquamarine}{CS-Specific}
\textit{Coming soon!}


\fhlc{Aquamarine}{Flexible}
\begin{general}[]{title}{second title}{red}
    This Tcolorbox is flexible and can take any main and secondary title, as well as any colour.\\
    \begin{minted}{latex}
        \begin{general}[]{title}{second title}{red}
            
        \end{general}
    \end{minted}
\end{general}


\newpage
\subsubsection{Inline \& Shortened descriptors}
\textit{Included in \texttt{most} and up}

See \ref{sec:counters} for a guide on how to change the current number.

\fhlc{Aquamarine}{Inline}
\begin{tables}{ll}{Command              & Output}
              \verb|\inlineex|          & \inlineex          \\
              \verb|\inlinedef|         & \inlinedef         \\
              \verb|\inlinetheorem|     & \inlinetheorem     \\
              \verb|\inlinelemma|       & \inlinelemma       \\
              \verb|\inlinecorollary|   & \inlinecorollary   \\
              \verb|\inlineproposition| & \inlineproposition \\
              \verb|\inlinefact|        & \inlinefact        \\
              \verb|\inlineaxiom|       & \inlineaxiom       \\
              \verb|\inlineremark|      & \inlineremark      \\
              \verb|\inlineproof|       & \inlineproof       \\
\end{tables}

\fhlc{Aquamarine}{Shortened}
\begin{tables}{ll}{Command             & Output}
              \verb|\shortex|          & \shortex          \\
              \verb|\shortdef|         & \shortdef         \\
              \verb|\shorttheorem|     & \shorttheorem     \\
              \verb|\shortlemma|       & \shortlemma       \\
              \verb|\shortcorollary|   & \shortcorollary   \\
              \verb|\shortproposition| & \shortproposition \\
              \verb|\shortfact|        & \shortfact        \\
              \verb|\shortaxiom|       & \shortaxiom       \\
              \verb|\shortremark|      & \shortremark      \\
              \verb|\shortproof|       & \shortproof       \\
\end{tables}
\newpage

\fhlc{Aquamarine}{Inline (Named)}
\begin{tables}{ll}{Command                                & Output}
              \verb|\fancyex|\{\textit{string}\}          & \fancyex{Exercise}           \\
              \verb|\fancydef|\{\textit{string}\}         & \fancydef{Definition}        \\
              \verb|\fancytheorem|\{\textit{string}\}     & \fancytheorem{Theorem}       \\
              \verb|\fancylemma|\{\textit{string}\}       & \fancylemma{Lemma}           \\
              \verb|\fancycorollary|\{\textit{string}\}   & \fancycorollary{Corollary}   \\
              \verb|\fancyproposition|\{\textit{string}\} & \fancyproposition{Proposition} \\
              \verb|\fancyfact|\{\textit{string}\}        & \fancyfact{Fact}             \\
              \verb|\fancyaxiom|\{\textit{string}\}       & \fancyaxiom{Axiom}           \\
              \verb|\fancyremark|\{\textit{string}\}      & \fancyremark{Remark}         \\
              \verb|\fancyproof|\{\textit{string}\}       & \fancyproof{Proof}           \\
\end{tables}

\fhlc{Aquamarine}{Shortened (Named)}
\begin{tables}{ll}{Command                                  & Output}
              \verb|\compactex|\{\textit{string}\}          & \compactex{Exercise}           \\
              \verb|\compactdef|\{\textit{string}\}         & \compactdef{Definition}        \\
              \verb|\compacttheorem|\{\textit{string}\}     & \compacttheorem{Theorem}       \\
              \verb|\compactlemma|\{\textit{string}\}       & \compactlemma{Lemma}           \\
              \verb|\compactcorollary|\{\textit{string}\}   & \compactcorollary{Corollary}   \\
              \verb|\compactproposition|\{\textit{string}\} & \compactproposition{Proposition} \\
              \verb|\compactfact|\{\textit{string}\}        & \compactfact{Fact}             \\
              \verb|\compactaxiom|\{\textit{string}\}       & \compactaxiom{Axiom}           \\
              \verb|\compactremark|\{\textit{string}\}      & \compactremark{Remark}         \\
              \verb|\compactproof|\{\textit{string}\}       & \compactproof{Proof}           \\
\end{tables}


\subsubsection{Changing the counters}
\label{sec:counters}
\textit{Included in \texttt{most} and up}

You may set the current number for the elements by setting their corresponding counter to the selected number.
You can do this using \verb|\setcounter|\{\textit{name of the counter}\}\{\textit{number}\}, where you replace \textit{name of the counter} with one of the following:
\texttt{definitions}, \texttt{lemmas}, \texttt{theorems}, \texttt{corollaries}, \texttt{propositions}, \texttt{facts}, \texttt{axioms}, \texttt{examples}, \texttt{remarks}

This only applies if you have set numberingConfig to $1$ (for all of them) and $2$ (only for \texttt{definitions}).
To change the combined numbering, set \texttt{all} to your desired number.


\newpage
\subsection{Tables}
\textit{Included in \texttt{most} and up}

You can set up nice looking tables using the \texttt{booktab} and \texttt{tabulary} environments.

\begin{minted}{latex}
\begin{tables}{ll}{Left & Right}
    Left content & Right Content\\
\end{tables}
\end{minted}

This outputs as
\begin{tables}{ll}{Left    & Right}
              Left content & Right Content \\
\end{tables}

This doesn't use the \texttt{table} environment, so no captions are possible, as to why there is also
\begin{minted}{latex}
\begin{fullTable}{ll}{Left & Right}{This is a caption}
    Left content & Right Content\\
\end{fullTable}
\end{minted}

This outputs as

\begin{fullTable}{ll}{Left & Right}{This is a caption}
    Left content & Right Content\\
\end{fullTable}



\subsection{Index}
\textit{Included in \texttt{most} and up}

If you want to use index, add \verb|\prepareIndex| to the preamble. Using \verb|\addIndexBold|\{\textit{string}\}, you can add entries to the index. They are printed in bold typeface in your document.
Using \verb|\addIndex|\{\textit{string}\}, you can do the same, but the text remains normal and using \verb|\addIndexItalic|\{\textit{string}\}, it is printed in italics



\newpage
\subsection{Extras}
\subsubsection{BibTeX}
\textit{Included in \texttt{recommended} and up}

Use \verb|\setupBiber|\{\textit{/path/to/your/bib/sources.bib file}\} in the preamble to prepare, then use \verb|\printbib| to print your bibliography.

To add more sources, simply use bibter's built-in macro \verb|\addbibresource|\textit{\{filepath\}}, which will load your \texttt{.bib} file.
You need to use that inside the preamble as well.


\subsubsection{Glossary}
\textit{Included in \texttt{recommended} and up}

Use \verb|\setupGlossary| in the preamble to prepare, then use the normal glossary commands to add entries to the glossary. When you want to print it, use \verb|\printGlossary|.

\subsubsection{Minted}
\textit{Included in \texttt{full}}

Be sure to enable \texttt{shell-escape} for your compiler!

When \texttt{minted} is available via these helpers, you will also have access to the \texttt{codesnippet} macro:

\begin{minted}{latex}
\begin{code}{language}
    //Code goes here
\end{code}
\end{minted}

This is nothing different than a wrapper for a minted environment with a box drawn around it.

Example (in python):

\begin{code}{python}
    def hello_world():
        print("hello world!")
\end{code}

If you want to print code inline, use \verb|\inlinecode|\textit{\{string\}}, which redners to \inlinecode{code}.

\textit{Caveat: This is not using the \texttt{verbatim} environment due to various limitations of that environment and instead is simply using} \verb|\texttt{}|, so you cannot use this to print \LaTeX-commands
