Skip to content
Snippets Groups Projects
HsH-standalone.cls 10.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • %%
    %% 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
    
    Jan Wille's avatar
    Jan Wille committed
    \NeedsTeXFormat{LaTeX2e}[2022-06-01]
    \ProvidesClass{HsH-standalone}
    
      [2024-08-10 3.03.dev0 HsH-class based on KOMA]
    
    Jan Wille's avatar
    Jan Wille committed
    \let\HsHClassName\@currname
    \def\HsHClassName@ParrentClass{%
      standalone%
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \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}%
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \newcommand{\HsH@Options@DeclareAlias}[3][HsH]{%
      \DeclareOption{#2}{\FamilyExecuteOptions{#1}{#3}}%
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \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
    
    Jan Wille's avatar
    Jan Wille committed
          \endgroup
        \fi
    
      \else
        \endgroup
        \FamilyKeyStateUnknownValue
      \fi
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \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},%
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \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
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \DefineFamilyKey{HsH}{@else@}{
      \HsH@Options@PassToParrent{#1}
      \FamilyKeyStateProcessed
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \DeclareOption*{
      \HsH@Options@PassToParrent{\CurrentOption}
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \FamilyExecuteOptions{HsH}{%
      fontfamily=sans-serif,
      faculty=none,
      margin=0.25cm,
      multi=tikzpicture,
      multi=circuitikz,
    
    Jan Wille's avatar
    Jan Wille committed
    \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}
    
    Jan Wille's avatar
    Jan Wille committed
    \if@todos
    
      \PassOptionsToPackage{svgnames}{xcolor}
      \AtEndOfClass{\RequirePackage{xcolor}}
      \RequirePackage[
    
    Jan Wille's avatar
    Jan Wille committed
        textsize=small,
        figwidth=.6\textwidth
    
      ]{todonotes}
      \setuptodonotes{
        backgroundcolor=orange!20!white,
        linecolor=orange,
        bordercolor=orange!60!white,
      }
    
    Jan Wille's avatar
    Jan Wille committed
    \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={,}}
    
    \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},
      }
    }
    
      \makeatletter
    
      \InputIfFileExists{HsH-classes.cfg}{
    
    Jan Wille's avatar
    Jan Wille committed
        \ClassInfo{\HsHClassName}{Local config file HsH-classes.cfg used.}
    
    Jan Wille's avatar
    Jan Wille committed
        \ClassInfo{\HsHClassName}{No HsH-classes.cfg!! I hope you configered it yourself.}
    
      }
      \makeatother
    
    Jan Wille's avatar
    Jan Wille committed
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \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
    }
    
    Jan Wille's avatar
    Jan Wille committed
    \AtBeginDocument{
      \begingroup
        \newcount\count@
        \count@=\z@
        \@for\tmp@:=\@author\do{\advance\count@\@ne}
    
        \ifnum\count@>\@ne\global\@singleauthorfalse\else\global\@singleauthortrue\fi
    
    Jan Wille's avatar
    Jan Wille committed
      \endgroup
    }
    
    \newcommand{\ifsingleauthor}[2]{\if@singleauthor#1\else#2\fi}
    
    Jan Wille's avatar
    Jan Wille committed
    \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$}
    
    Jan Wille's avatar
    Jan Wille committed
    \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$}}}
    
    Jan Wille's avatar
    Jan Wille committed
    \renewcommand{\labelitemiii}{\raisebox{-.1ex}{\scalebox{1.3}{$\cdot$}}}
    \renewcommand{\labelitemiv}{\raisebox{.1ex}{-}}
    
    Jan Wille's avatar
    Jan Wille committed
    \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'.