%%
%% This is file `HsH-standalone.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% HsH-classes.dtx  (with options: `standalone,localisation')
%% 
%% Copyright (C) 2024 by Jan Wille <mail@janiwlle.de>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License (LPPL), either
%% version 1.3c of this license or (at your option) any later
%% version.  The latest version of this license is in the file:
%% 
%% http://www.latex-project.org/lppl.txt
%% 
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesClass{HsH-standalone}
  [2024-08-10 3.03.dev0 HsH-class based on KOMA]
\let\HsHClassName\@currname
\def\HsHClassName@ParrentClass{%
  standalone%
}
\RequirePackage{scrbase}
\RequirePackage{setspace}
\DefineFamily{HsH}
\DefineFamilyMember{HsH}
\newcommand{\HsH@Options@PassToParrent}[1]{%
  \ClassInfoNoLine{\HsHClassName}{passing option to parrent class: #1}%
  \PassOptionsToClass{#1}{\HsHClassName@ParrentClass}%
}
\newcommand{\HsH@Options@DeclareAlias}[3][HsH]{%
  \DeclareOption{#2}{\FamilyExecuteOptions{#1}{#3}}%
}
\DefineFamilyKey{HsH}{fontfamily}{
  \begingroup
  \FamilySetNumerical{HsH}{parskip}{@tmp}{%
    {sans}{0}, {sans-serif}{0},%
    {roman}{1}, {serif}{1},%
  }{#1}
  \ifx\FamilyKeyState\FamilyKeyStateProcessed
    \aftergroup\FamilyKeyStateProcessed
    \ifcase\@tmp% 0
      \endgroup
      \renewcommand{\familydefault}{\sfdefault}
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 1
      \endgroup
      \renewcommand{\familydefault}{\rmdefault}
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \else% should never be
      \endgroup
    \fi
  \else
    \endgroup
    \FamilyKeyStateUnknownValue
  \fi
}
\HsH@Options@DeclareAlias{sans}{fontfamily=sans}
\HsH@Options@DeclareAlias{roman}{fontfamily=roman}
\def\HsH@opt@language{nil}
\FamilyStringKey{HsH}{language}{\HsH@opt@language}
\HsH@Options@DeclareAlias{english}{language=english}
\HsH@Options@DeclareAlias{german}{language=ngerman}
\HsH@Options@DeclareAlias{ngerman}{language=ngerman}
\def\HsH@opt@faculty{1}
\FamilyNumericalKey{HsH}{faculty}{HsH@opt@faculty}{%
  {0}{1}, {none}{1}, {false}{1}, {off}{1},%
  {1}{2}, {f1}{2},%
  {2}{3}, {f2}{3},%
  {3}{4}, {f3}{4},%
  {4}{5}, {f4}{5},%
  {5}{6}, {f5}{6},%
}
\HsH@Options@DeclareAlias{f1}{faculty=f1}
\HsH@Options@DeclareAlias{f2}{faculty=f2}
\HsH@Options@DeclareAlias{f3}{faculty=f3}
\HsH@Options@DeclareAlias{f4}{faculty=f4}
\HsH@Options@DeclareAlias{f5}{faculty=f5}
\FamilyBoolKey{HsH}{todos}{@todos}
\DefineFamilyKey{HsH}{fontsize}{%
  \ClassInfoNoLine{\HsHClassName}{The `fontsize' option is only a mock, its has not effect}
  \FamilyKeyStateProcessed
}
\DefineFamilyKey{HsH}{@else@}{
  \HsH@Options@PassToParrent{#1}
  \FamilyKeyStateProcessed
}
\DeclareOption*{
  \HsH@Options@PassToParrent{\CurrentOption}
}
\FamilyExecuteOptions{HsH}{%
  fontfamily=sans-serif,
  faculty=none,
  margin=0.25cm,
  multi=tikzpicture,
  multi=circuitikz,
}
\FamilyProcessOptions{HsH}\relax
\LoadClass{\HsHClassName@ParrentClass}
\RequirePackage[T1]{fontenc}
\RequirePackage{type1ec}
\RequirePackage[main=\HsH@opt@language]{babel}
\RequirePackage[autostyle=true]{csquotes}
\MakeOuterQuote{"}
\iflanguage{ngerman}{\RequirePackage{ziffer}}{}
\RequirePackage[hypcap=true]{caption}
\RequirePackage{graphicx}
\RequirePackage{amsmath,amssymb,amsfonts}
\RequirePackage{enumitem}
\if@todos
  \PassOptionsToPackage{svgnames}{xcolor}
  \AtEndOfClass{\RequirePackage{xcolor}}
  \RequirePackage[
    textsize=small,
    figwidth=.6\textwidth
  ]{todonotes}
  \setuptodonotes{
    backgroundcolor=orange!20!white,
    linecolor=orange,
    bordercolor=orange!60!white,
  }
\else
  \newcommand{\listoftodos}[1]{}
  \newcommand{\todo}[2][]{}
  \newcommand{\missingfigure}[2][]{}
\fi
\RequirePackage{xcolor}
\PassOptionsToPackage{free-standing-units}{siunitx}
\AddToHook{package/siunitx/after}{
  \sisetup{
    tight-spacing=true,
    per-mode=symbol,
    exponent-mode=engineering,
    round-mode=places,
    round-precision=3,
  }
  \iflanguage{ngerman}{
    \sisetup{output-decimal-marker={,}}
  }{}
}
\RequirePackage{scrhack}
\AddToHook{package/listings/before}{\RequirePackage{xcolor}}
\AddToHook{package/listings/after}{
  \lstset{
    commentstyle=\color{gray},
    keywordstyle=\color{FireBrick}\bfseries,
    stringstyle=\color{DodgerBlue},
    showstringspaces=false,
    basicstyle=\ttfamily,
    tabsize=4,
    escapeinside={(*@}{@*)},
  }
  \RequirePackage{lstautogobble}\lstset{autogobble=true}
  \iflanguage{ngerman}{
    \lstset{literate={Ö}{{\"O}}1{Ä}{{\"A}}1{Ü}{{\"U}}1{ß}{{\ss}}1{ü}{{\"u}}1{ä}{{\"a}}1{ö}{{\"o}}1}
  }{}
}
\PassOptionsToPackage{l3}{csvsimple}
\AddToHook{package/csvsimple/after}{
  \csvstyle{every csv}{separator=semicolon}
}
\AddToHook{package/pgfplots/after}{
  \usepgfplotslibrary{fillbetween}
  \usetikzlibrary{patterns}
  \pgfplotsset{
    compat=1.16,
    /pgf/number format/read comma as period,
    tick label style={font=\tiny},
    legend style={font=\footnotesize},
    MyPlots/.style = { % Style for all plots
      width=.6\textwidth,
      grid=major,
      grid style={loosely dotted,gray!50},
      legend pos=outer north east,
      FM1/.style = {blue, thick, mark=x, mark size=1.5,samples=100},   % Format 1
      FM2/.style = {orange, thick, mark=*, mark size=1,samples=100},  % Format 2
      FM3/.style = {green, thick, mark=square*, mark size=1,samples=100}, % Format 3
      FM4/.style = {red, thick, mark=diamond*, mark size=1,samples=100},  % Format 4
      FM5/.style = {pink, thick, mark=triangel*, mark size=1,samples=100},% Format 5
      errBars/.style = {error bars/.cd, y dir=both, y explicit, % ermöglicht Fehlerbalken
              error mark options={mark size=1pt,rotate=90}},
    }
  }
  \iflanguage{ngerman}{
    \pgfplotsset{/pgf/number format/use comma}
  }{}
}
\AddToHook{package/pgfplotstable/after}{
  \pgfplotstableset{
    col sep=semicolon, % global seperator for csv files
  }
}
\PassOptionsToPackage{
  european,
  EFvoltages,
  straightvoltages,
  betterproportions
}{circuitikz}
\AddToHook{package/circuitikz/after}{
  \ctikzset{
    font=\footnotesize,
    bipole annotation style/.style={font=\tiny ,inner sep=1pt},
  }
}
\AtBeginDocument{
  \makeatletter
  \InputIfFileExists{HsH-classes.cfg}{
    \ClassInfo{\HsHClassName}{Local config file HsH-classes.cfg used.}
  }{
    \ClassInfo{\HsHClassName}{No HsH-classes.cfg!! I hope you configered it yourself.}
  }
  \makeatother
}
\newcommand{\HsHlogoPath}{HSH-Logo.pdf}
\newcommand{\HsHlogoPage}{\HsH@opt@faculty}
\newcommand{\includeHsHlogohere}[1][5cm]{
  \IfFileExists{\HsHlogoPath}{
    \includegraphics[width=#1,page=\HsHlogoPage]{\HsHlogoPath}
  }{
    \ClassError{\HsHClassName}{\HsHlogoPath\space not found!}{
      The HsH Logo is necasary for the titlepage! Try putting it next to your source file or use \HsHlogoPath to define the file location
    }
  }
}
\RequirePackage{pgffor}
\newcommand{\declarationofauthorship}[1][b]{
  \if#1b
    \vspace*{\fill}
    \hrule
  \else\if#1t
    \vspace*{2em}
  \else
    \ClassError{\HsHClassName}{Wrong Parameter for `\declarationofauthorship'}{
      `\string\declarationofauthorship' only accepts `t' and `b' as parameters.
    }
  \fi\fi
  \vskip 3em
  {\centering\bfseries\usekomafont{section}{\decofauthname}\par}
  \vskip 3em
  \decofauthtext\par
  \begingroup
    \renewcommand{\thanks}{\sbox0}
    \raggedleft
    \foreach \tmp@ in \@author {
      \if\tmp@\empty\else
        \hskip 1em \parbox{4cm}{
          \vskip 4em
          \hrule\vskip 4pt
          \raggedleft\footnotesize\tmp@
        }%
      \fi
    }\par
  \endgroup
}
\newif\if@singleauthor
\AtBeginDocument{
  \begingroup
    \newcount\count@
    \count@=\z@
    \@for\tmp@:=\@author\do{\advance\count@\@ne}
    \ifnum\count@>\@ne\global\@singleauthorfalse\else\global\@singleauthortrue\fi
  \endgroup
}
\newcommand{\ifsingleauthor}[2]{\if@singleauthor#1\else#2\fi}
\def\declarationAuthorship{%
  \ClassWarning{\HsHClassName}{%
    Command \string\declarationAuthorship\space is deprecate.\MessageBreak
    Replace it with \string\declarationofauthorship.
  }%
  \declarationofauthorship%
}
\newlist{checklist}{itemize}{2}
\setlist[checklist]{label=$\square$}
\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}}
\def\@subinrm#1{\sb{\mathrm{#1}}}
{\catcode`\_=13 \global\let_=\@subinrm}
\newcommand\upsubscripts{\catcode`\_=12}
\newcommand\normalsubscripts{\catcode`\_=8}
\RequirePackage{lmodern}
\renewcommand{\labelitemi}{\raisebox{.3ex}{\scalebox{0.7}{$\bullet$}}}
\renewcommand{\labelitemii}{\raisebox{.3ex}{\scalebox{0.7}{$\circ$}}}
\renewcommand{\labelitemiii}{\raisebox{-.1ex}{\scalebox{1.3}{$\cdot$}}}
\renewcommand{\labelitemiv}{\raisebox{.1ex}{-}}
\upsubscripts
\raggedbottom
\defcaptionname{german,ngerman}\abstractname{Abstract}
\newcaptionname{english}\professorname{Professor}
\newcaptionname{german,ngerman}\professorname{Professor(in)/Lehrbeauftragte(r)}
\newcaptionname{english}\firstexaminername{First examiner}
\newcaptionname{german,ngerman}\firstexaminername{Erstpr{\"u}fer(in)}
\newcaptionname{english}\secondexaminername{Second examiner}
\newcaptionname{german,ngerman}\secondexaminername{Zweitpr{\"u}fer(in)}
\newcaptionname{english}\decofauthname{Declaration of Authorship}
\newcaptionname{german,ngerman}\decofauthname{Selbstst{\"a}ndigkeitserkl{\"a}rung}
\newcaptionname{english}\decofauthtext{%
  \ifsingleauthor{I}{We} hereby certify that the work \ifsingleauthor{I}{we}
  \ifsingleauthor{am}{are} submitting is entirely of \ifsingleauthor{my}{our}
  own making except where otherwise indicated. \ifsingleauthor{I}{We}
  \ifsingleauthor{am}{are} aware of regulations concerning plagiarism,
  including disciplinary actions that may result from it. Any use of the
  works of any other author, in any form, is properly acknowledged at
  their point of use.
}
\newcaptionname{german,ngerman}\decofauthtext{%
  Hiermit best{\"a}tige\ifsingleauthor{}{n} \ifsingleauthor{ich}{wir},
  dass die folgende Arbeit eigenst{\"a}ndig von \ifsingleauthor{mir}{uns}
  allein erstellt und unter Ber{\"u}cksichtigung der zur Verf{\"u}gung
  gestellten Aufgabenstellung sowie dem Arbeitsmaterial unter Angabe aller
  verwendeten Quellen erarbeitet wurde. Die Regelungen und Konsequenzen
  eines Plagiats, inklusive disziplinarischer Ma{\ss}nahmen, sind
  \ifsingleauthor{mir}{uns} bewusst. Insbesondere wurden alle Zitate und
  gedanklichen {\"U}bernahmen als solche kenntlich gemacht.
}
\newcaptionname{english}\keywordsname{Keywords}
\newcaptionname{german,ngerman}\keywordsname{Schl{\"u}sselw{\"o}rter}
\endinput
%%
%% End of file `HsH-standalone.cls'.