diff --git a/README.md b/README.md index 65022943b81e59acb600389e49b935741d3c3e0e..7200f1ed700ef0615b370509e88e5427b3c9d2b1 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,12 @@ them with specific configurations and presets as well as providing commonly need **Provides classes are:** - HsH-article (planed) + HsH-article HsH-report HsH-book (planed) HsH-standalone -**Version:** BETA 0.2, 02.11.2020 +**Version:** BETA 0.3, 24.01.2021 ## Check out the **Example-Branche** diff --git a/src/HsH-article.cls b/src/HsH-article.cls new file mode 100644 index 0000000000000000000000000000000000000000..63ebdbdddf9b2b3e46da2cee5d51b47bc8162eea --- /dev/null +++ b/src/HsH-article.cls @@ -0,0 +1,501 @@ +\typeout{Adapted from KOMA script for use in Hochschule Hannover <2022-01-22> Jan Wille} +\NeedsTeXFormat{LaTeX2e} + +\newcommand{\myClassName}{HsH-article} +\ProvidesClass{\myClassName}[2021/01/22 HsH Article based on KOMA] +\LoadClass[bibliography=totoc,listof=totoc]{scrartcl} + +\newcommand{\HsHlogoPath}{HSH-Logo.pdf} +\newcommand{\HsHlogoPage}{1} +\newcommand{\includeHsHlogohere}{\includegraphics[width=5cm,page=\HsHlogoPage]{\HsHlogoPath}} + +\newif\if@german% +\DeclareOption{german}{% + \PassOptionsToPackage{ngerman}{babel} + \renewcaptionname{ngerman}{\figurename}{Abb.} %Figure + \renewcaptionname{ngerman}{\tablename}{Tab.} %Table + \@germantrue +} +\DeclareOption{ngerman}{% + \PassOptionsToPackage{\CurrentOption}{babel} + \renewcaptionname{ngerman}{\figurename}{Abb.} %Figure + \renewcaptionname{ngerman}{\tablename}{Tab.} %Table + \@germantrue +} +\DeclareOption{english}{% + \PassOptionsToPackage{\CurrentOption}{babel} + \renewcaptionname{english}{\figurename}{Fig.} %Figure + \renewcaptionname{english}{\tablename}{Tab.} %Table +} +\DeclareOption{f1}{% + \renewcommand{\HsHlogoPage}{2} +} +\DeclareOption{f2}{% + \renewcommand{\HsHlogoPage}{3} +} +\DeclareOption{f3}{% + \renewcommand{\HsHlogoPage}{4} +} +\DeclareOption{f4}{% + \renewcommand{\HsHlogoPage}{5} +} +\DeclareOption{f5}{% + \renewcommand{\HsHlogoPage}{6} +} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrreprt}} + +\@ifclasswith{\myClassName}{english}{}{\@ifclasswith{\myClassName}{ngerman}{}{\ExecuteOptions{ngerman}}} +\ProcessOptions\relax + +% standart options for packages +\PassOptionsToPackage{utf8}{inputenc} +\PassOptionsToPackage{T1}{fontenc} +\PassOptionsToPackage{left=3cm,right=2.5cm,top=3cm,bottom=3cm}{geometry} +\PassOptionsToPackage{hidelinks}{hyperref} +\PassOptionsToPackage{headsepline}{scrlayer-scrpage} +\PassOptionsToPackage{babel}{csquotes} +\if@german\PassOptionsToPackage{german=quotes}{csquotes}\fi + +\PassOptionsToPackage{backend=biber,style=alphabetic,sorting=nyt}{biblatex} +\PassOptionsToPackage{free-standing-units,abbreviations}{siunitx} +\PassOptionsToPackage{european,EFvoltages,straightvoltages}{circuitikz} + +% used packages: +\RequirePackage{inputenc} % inputencoding, utf8 recomendet +\RequirePackage{fontenc} % outputencoding, T1 recomendet +\RequirePackage{lmodern} % font +\RequirePackage{babel} % required for german names +\RequirePackage{geometry} % required for changing layout +\RequirePackage{scrlayer-scrpage} % required for header and footer +\RequirePackage{scrhack} % compatability with listings +\RequirePackage{pgffor} % foreach loops +\RequirePackage{graphicx} % required for importing images +\RequirePackage{hyperref} % references and lists are clikable +\RequirePackage{bookmark} % generat bookmarkes +\RequirePackage{amsmath} % a lot of nice Math +\RequirePackage{csquotes} % quotations +\if@german\RequirePackage{ziffer}\fi % german dezimal numbers + + + % config for title, header and footer +\InputIfFileExists{personal.tex}{ + \ClassInfo{\myClassName}{personal.tex was found. Using it...} +}{ + \ClassInfo{\myClassName}{no personal.tex! Configre the titlepage yourselfe} +} +\pagestyle{scrheadings} +\clearpairofpagestyles +\automark{section} +\ohead{\headmark} +\ihead{\@title} +\ofoot*{\pagemark} + + +% typesetting indexes upright or standart +\def\subinrm#1{\sb{\mathrm{#1}}} +{\catcode`\_=13 \global\let_=\subinrm} +\mathcode`_="8000 +\newcommand\upsubscripts{\catcode`\_=12 } % the toggle for upright subscripts +\newcommand\normalsubscripts{\catcode`\_=8 } % the toggle for italic subscripts +\upsubscripts % setting upright as default + +% styling for itemize +\renewcommand{\labelitemi}{$\bullet$} +\renewcommand{\labelitemii}{$\circ$} +\renewcommand{\labelitemiii}{$-$} +\renewcommand{\labelitemiv}{$\cdot$} + +% do stuff +\setlength\parindent{0pt} % indentation of new paragraphs +\raggedbottom +\renewcommand{\fps@figure}{h!t} % positioning of figures +\renewcommand{\fps@table}{h!t} % Positonierung of tables +\renewcommand{\layercontentsmeasure}{\empty} % rulers when using draft disabled +\MakeOuterQuote{"} % easy quotationmarks + +% custom commands +\providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Makro for vertical lines around absolute values +\newcommand\declarationAuthorship{ + \thispagestyle{plain} + \vspace*{\fill} + {\rule{\textwidth}{0.1pt}} + \vspace{0.5cm} + \renewcommand{\thanks}{\sbox0} + + \if@german{ + \newcommand{\pronomen}{ich} + \newcommand{\plutalendung}{} + \newcommand{\genitiv}{mir} + \foreach \x [count=\i] in \@author{ + \ifnum\i>1 + \gdef\pronomen{wir} + \gdef\plutalendung{n} + \gdef\genitiv{uns} + \else\fi + } + \begin{center} + \huge \textbf{Selbstständigkeitserklärung}\\ + \end{center} + \vspace{1cm}\normalsize + Hiermit bestätige\plutalendung\space\pronomen, dass die folgende Arbeit eigenständig von \genitiv\space allein erstellt und unter + Berücksichtigung der zur Verfügung gestellten Aufgabenstellung sowie dem Arbeitsmaterial unter Angabe aller verwendeten Quellen erarbeitet + wurde. Die Regelungen und Konsequenzen eines Plagiats, inklusieve disziplinarischer Maßnahmen, sind \genitiv\space bewusst. Insbesondere wurden + alle Zitate und gedanklichen Übernahmen als solche kenntlich gemacht. + }\else{ + \newcommand{\pronomen}{I} + \newcommand{\pronomenf}{I} + \newcommand{\genitiv}{my} + \newcommand{\proniomeverb}{am} + \foreach \x [count=\i] in \@author{ + \ifnum\i>1 + \gdef\pronomenf{We} + \gdef\pronomen{we} + \gdef\genitiv{our} + \gdef\proniomeverb{are} + \else\fi + } + \begin{center} + \huge \textbf{Declaration of Authorship}\\ + \end{center} + \vspace{1cm}\normalsize + \pronomenf\space hereby certify that the work \pronomen\space\proniomeverb\space submitting is entirely of \genitiv\space own making except + where otherwise indicated. \pronomenf\space\proniomeverb\space 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. + }\fi + \begin{flushright} + \foreach \x [count=\i] in \@author{ + \begin{tabular}[t]{r} + \\[3em] + \rule{4cm}{0.4pt} \\ + {\footnotesize\x} + \end{tabular} + } + \end{flushright} +} + +% load config at beginning of document +\AtBeginDocument { + \makeatletter + \InputIfFileExists{config.tex}{ + \ClassInfo{\myClassName}{config.tex was found. Using it...} + }{ + \ClassInfo{\myClassName}{no config.tex!! I hope you configered it yourself.} + } + \makeatother +} + +% reconfig Titlepage +\renewcommand\maketitle[1][1]{% + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \else + \def\and{% + \end{tabular}% + \hskip 1em \@plus.17fil% + \begin{tabular}[t]{c}% + }% + \fi + \if@titlepage + \begin{titlepage} + \setcounter{page}{% + #1% + }% + \if@titlepageiscoverpage + \edef\titlepage@restore{% + \noexpand\endgroup + \noexpand\global\noexpand\@colht\the\@colht + \noexpand\global\noexpand\@colroom\the\@colroom + \noexpand\global\vsize\the\vsize + \noexpand\global\noexpand\@titlepageiscoverpagefalse + \noexpand\let\noexpand\titlepage@restore\noexpand\relax + }% + \begingroup + \topmargin=\dimexpr \coverpagetopmargin-1in\relax + \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax + \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax + \textwidth=\dimexpr + \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax + \textheight=\dimexpr + \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax + \headheight=0pt + \headsep=0pt + \footskip=\baselineskip + \@colht=\textheight + \@colroom=\textheight + \vsize=\textheight + \columnwidth=\textwidth + \hsize=\columnwidth + \linewidth=\hsize + \else + \let\titlepage@restore\relax + \fi + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty + \else + \if@twoside\mbox{}\next@tpage\fi + \noindent\@frontispiece\next@tdpage + \fi + \else + \noindent\@extratitle + \ifx\@frontispiece\@empty + \else + \next@tpage + \noindent\@frontispiece + \fi + \next@tdpage + \fi + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative + % Customised: ----------------------------------------------------------- + \IfFileExists{\HsHlogoPath}{}{ + \ClassError{\myClassName}{HsH-Logo.pdf 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 + } + } + \vspace*{1cm} + \begin{minipage}[t]{\textwidth}% + \ifx\@titlehead\@empty \else + \usekomafont{titlehead}{\@titlehead}% + \fi + \hfill + \includeHsHlogohere + \end{minipage} + \raisebox{10pt}{\rule{\textwidth}{0.5pt}} + % end Customised: -------------------------------------------------------- + \null\vfill + \begin{center} + \ifx\@subject\@empty \else + {\usekomafont{subject}{\@subject\par}}% + \vskip 3em + \fi + {\usekomafont{title}{\huge \@title\par}}% + \vskip 1em + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% + \vskip 2em + {% + \usekomafont{author}{% + \lineskip 0.75em + \begin{tabular}[t]{c} + \parbox{\linewidth}{\centering\@author} + \end{tabular}\par + }% + }% + \vskip 1.5em + {\usekomafont{date}{\@date \par}}% + \vskip \z@ \@plus3fill + {\usekomafont{publishers}{\@publishers \par}}% + \vskip 3em + \end{center}\par + \@thanks\global\let\@thanks\@empty + \vfill\null + \if@twoside + \@tempswatrue + \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax + \else + \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty + \@tempswafalse + \fi\fi + \fi + \if@tempswa + \next@tpage + \begin{minipage}[t]{\textwidth} + \@uppertitleback + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \@lowertitleback + \end{minipage}\par + \@thanks\global\let\@thanks\@empty + \fi + \else + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi + \fi + \ifx\@dedication\@empty + \else + \next@tdpage\null\vfill + {\centering\usekomafont{dedication}{\@dedication \par}}% + \vskip \z@ \@plus3fill + \@thanks\global\let\@thanks\@empty + \cleardoubleemptypage + \fi + \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi + \end{titlepage} + \else + \par + \@tempcnta=% + #1% + \relax\ifnum\@tempcnta=1\else + \ClassWarning{\KOMAClassName}{% + Optional argument of \string\maketitle\space ignored\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% + }% + \fi + \begingroup + \let\titlepage@restore\relax + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% + \next@tdpage + \if@twocolumn + \ifnum \col@number=\@ne + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi + \@maketitle + \else + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \twocolumn[\@makeextratitle]% + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \twocolumn[\@makefrontispiece]% + \next@tdpage + \fi + \twocolumn[\@maketitle]% + \fi + \else + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else \mbox{}\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi + \@maketitle + \fi + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi + \@thanks\global\let\@thanks\@empty + \endgroup + \fi + \setcounter{footnote}{0}% + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \let\thanks\relax + \let\maketitle\relax + \let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@subtitle\@empty + \global\let\@extratitle\@empty + \global\let\@frontispiece\@empty + \global\let\@titlehead\@empty + \global\let\@subject\@empty + \global\let\@publishers\@empty + \global\let\@uppertitleback\@empty + \global\let\@lowertitleback\@empty + \global\let\@dedication\@empty + \global\let\author\relax + \global\let\title\relax + \global\let\extratitle\relax + \global\let\titlehead\relax + \global\let\subject\relax + \global\let\publishers\relax + \global\let\uppertitleback\relax + \global\let\lowertitleback\relax + \global\let\dedication\relax + \global\let\date\relax + \fi + \global\let\and\relax +}% + + +\renewcommand*{\@maketitle}{% + \global\@topnum=\z@ + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative + % Customised: ----------------------------------------------------------- + \IfFileExists{\HsHlogoPath}{}{ + \ClassError{\myClassName}{HsH-Logo.pdf 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 + } + } + \vspace*{1cm} + \begin{minipage}[t]{\textwidth}% + \ifx\@titlehead\@empty \else + \usekomafont{titlehead}{\@titlehead}% + \fi + \hfill + \includeHsHlogohere + \end{minipage} + \raisebox{10pt}{\rule{\textwidth}{0.5pt}} + % end Customised: -------------------------------------------------------- + \null + \vskip 2em% + \begin{center}% + \ifx\@subject\@empty \else + {\usekomafont{subject}{\@subject \par}}% + \vskip 1.5em + \fi + {\usekomafont{title}{\huge \@title \par}}% + \vskip .5em + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% + \vskip 1em + {% + \usekomafont{author}{% + \lineskip .5em% + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% + }% + \vskip 1em% + {\usekomafont{date}{\@date \par}}% + \vskip \z@ \@plus 1em + {\usekomafont{publishers}{\@publishers \par}}% + \ifx\@dedication\@empty \else + \vskip 2em + {\usekomafont{dedication}{\@dedication \par}}% + \fi + \end{center}% + \par + \vskip 2em +}% \ No newline at end of file diff --git a/src/HsH-report.cls b/src/HsH-report.cls index ea2301936332641c605b173f0f6d3f9d400b8267..09c65b3d1c55c13585d1d2f0f3f4d14f1d72de4c 100644 --- a/src/HsH-report.cls +++ b/src/HsH-report.cls @@ -1,14 +1,14 @@ -\typeout{Adapted from KOMA script for use in Hochschule Hannover <2020-08-21> Jan Wille} +\typeout{Adapted from KOMA script for use in Hochschule Hannover <2022-01-22> Jan Wille} \NeedsTeXFormat{LaTeX2e} \newcommand{\myClassName}{HsH-report} -\ProvidesClass{\myClassName}[2020/09/21 HsH Report based on KOMA] +\ProvidesClass{\myClassName}[2021/01/22 HsH Report based on KOMA] \LoadClass[bibliography=totoc,listof=totoc]{scrreprt} \newcommand{\HsHlogoPath}{HSH-Logo.pdf} \newcommand{\HsHlogoPage}{1} \newcommand{\includeHsHlogohere}{\includegraphics[width=5cm,page=\HsHlogoPage]{\HsHlogoPath}} -\providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Makro für Betragsstriche + \newif\if@german% \DeclareOption{german}{% @@ -48,13 +48,7 @@ \@ifclasswith{\myClassName}{english}{}{\@ifclasswith{\myClassName}{ngerman}{}{\ExecuteOptions{ngerman}}} \ProcessOptions\relax -\InputIfFileExists{personal.tex}{ - \ClassInfo{\myClassName}{personal.tex was found. Using it...} -}{ - \ClassInfo{\myClassName}{no personal.tex! Configre the titlepage yourselfe} -} - -% enforced options for packages +% standart options for packages \PassOptionsToPackage{utf8}{inputenc} \PassOptionsToPackage{T1}{fontenc} \PassOptionsToPackage{left=3cm,right=2.5cm,top=3cm,bottom=3cm}{geometry} @@ -84,10 +78,15 @@ \if@german\RequirePackage{ziffer}\fi % german dezimal numbers - % config for header and footer + % config for title, header and footer +\InputIfFileExists{personal.tex}{ + \ClassInfo{\myClassName}{personal.tex was found. Using it...} +}{ + \ClassInfo{\myClassName}{no personal.tex! Configre the titlepage yourselfe} +} \pagestyle{scrheadings} \clearpairofpagestyles -\renewcommand*{\chapterpagestyle}{scrheadings} % Kapitelanfang standart Kopf/Fußzeile +\renewcommand*{\chapterpagestyle}{scrheadings} % Chaptertitles get same header/footer as everything \automark{chapter} \ohead{\headmark} \ihead{\@title} @@ -116,6 +115,8 @@ \renewcommand{\layercontentsmeasure}{\empty} % rulers when using draft disabled \MakeOuterQuote{"} % easy quotationmarks +% custom commands +\providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Makro for vertical lines around absolute values \newcommand\declarationAuthorship{ \thispagestyle{plain} \vspace*{\fill} @@ -183,6 +184,7 @@ \endquotation } +% load config at beginning of document \AtBeginDocument { \makeatletter \InputIfFileExists{config.tex}{ @@ -193,6 +195,7 @@ \makeatother } +% reconfig Titlepage \renewcommand\maketitle[1][1]{% \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax \else diff --git a/src/HsH-standalone.cls b/src/HsH-standalone.cls index d8dc08fe1050ea3a229c7fc7ae5c822a8262ba1c..bd9faa5ab65f0519464f443ee38092532a09f057 100644 --- a/src/HsH-standalone.cls +++ b/src/HsH-standalone.cls @@ -1,14 +1,13 @@ -\typeout{Adapted from KOMA script for use in Hochschule Hannover <2020-08-21> Jan Wille} +\typeout{Adapted from KOMA script for use in Hochschule Hannover <2020-01-22> Jan Wille} \NeedsTeXFormat{LaTeX2e} \newcommand{\myClassName}{HsH-standalone} -\ProvidesClass{\myClassName}[2020/09/21 HsH Report based on KOMA] +\ProvidesClass{\myClassName}[2020/01/22 HsH Report based on KOMA] \LoadClass[multi=tikzpicture,multi=circuitikz]{standalone} \newcommand{\HsHlogoPath}{HSH-Logo.pdf} \newcommand{\HsHlogoPage}{1} \newcommand{\includeHsHlogohere}{\includegraphics[width=5cm,page=\HsHlogoPage]{\HsHlogoPath}} -\providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Makro für Betragsstriche \newif\if@german% @@ -62,7 +61,7 @@ \PassOptionsToPackage{free-standing-units}{siunitx} \PassOptionsToPackage{european,EFvoltages,straightvoltages}{circuitikz} -%used packages: +% used packages: \RequirePackage{inputenc} % inputencoding, utf8 recomendet \RequirePackage{fontenc} % outputencoding, T1 recomendet \RequirePackage{lmodern} % font @@ -82,6 +81,10 @@ % keep compatible \providecommand{\renewcaptionname}[3]{} +% custom commands +\providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Makro for vertical lines around absolute values + +% load config at beginning of document \AtBeginDocument { \makeatletter \InputIfFileExists{config.tex}{