From 128b8c1def834c91386dd1b0c9168b6346153614 Mon Sep 17 00:00:00 2001
From: Nao Pross <naopross@thearcway.org>
Date: Wed, 6 May 2020 12:30:43 +0200
Subject: Update to  use hsrzf and hsrstud package and continue summary

---
 hsrzf.cls | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 236 insertions(+)
 create mode 100644 hsrzf.cls

(limited to 'hsrzf.cls')

diff --git a/hsrzf.cls b/hsrzf.cls
new file mode 100644
index 0000000..ad9417f
--- /dev/null
+++ b/hsrzf.cls
@@ -0,0 +1,236 @@
+%%
+%% This is file `hsrzf.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hsrstud-classes.dtx  (with options: `hsrzf')
+%% This document is part of the HSRStud LaTeX Package
+%% 
+%% THE FOLLOWING WORK IS UNDER THE CC BY-SA 4.0 LICENSE
+%% 
+%% You are free to
+%% ---------------
+%%   * Share -- Copy and redistribute the material in any medium or format
+%%   * Adapt -- Remix, transform, and build upon the material for any
+%%              purpose, even commercially
+%% 
+%% The licensor cannot revoke these freedoms as long as you follow the
+%% license terms.
+%% 
+%% Under the following terms
+%% -------------------------
+%%   * Attribution
+%%     You must give appropriate credit, provide a link to the license, and
+%%     indicate if changes were made. You may do so in any reasonable
+%%     manner, but not in any way that suggests the licensor endorses you
+%%     or your use.
+%% 
+%%   * ShareAlike
+%%     If you remix, transform, or build upon the material you must
+%%     distribute your contributions under the same license as the
+%%     original.
+%% 
+%%   * No additional restrictions
+%%     You may not apply legal terms or technological measures that
+%%     legally restrict others from doing anything the license permits.
+%% 
+%% Notice
+%% ------
+%% You do not have to comply with the license for elements of the material
+%% in the public domain or where your use is permitted by an applicable
+%% exception or limitation.
+%% 
+%% No warranties are given. The license may not give you all of the
+%% permissions necessary for your intended use. For example, other rights
+%% such as publicity, privacy, or moral rights may limit how you use the
+%% material.
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{hsrzf}[2020/04/05 v0.1 HSRStud Summary class]
+
+
+
+%% Coding Packages (Dependencies)
+\RequirePackage{iftex}
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+
+%% Class options
+\SetupKeyvalOptions{
+    family=hsrzf,
+    prefix=hsrzf@
+}
+
+%% Use header and footer
+\DeclareBoolOption[false]{header}
+\DeclareComplementaryOption{noheader}{header}
+
+%% Use a sans-serif font
+\DeclareBoolOption[false]{sans}
+\DeclareBoolOption[false]{concrete}
+
+%% Configures the geometry package
+%%
+%% Possible values:
+%%  - huge    (45mm, 40mm)
+%%  - large   (35mm, 35mm)
+%%  - big     (30mm, 30mm)
+%%  - normal  (25mm, 30mm)
+%%  - small   (20mm, 20mm)
+%%  - tiny    (10mm, 20mm)
+%%  - minimal ( 5mm, 20mm)
+\DeclareStringOption{margin}[huge]
+
+%% Configures the polyglossia package
+
+%% Pass other options to the class
+\DeclareDefaultOption{%
+    \ifx\CurrentOptionValue\relax
+        \PackageWarningNoLine{\@currname}{%
+            Unknown option ``\CurrentOption''\MessageBreak
+            is passed to class ``article''%
+        }%
+        % Pass the option to package color.
+        % Again it is better to expand \CurrentOption.
+        \expandafter\PassOptionsToClass
+            \expandafter{\CurrentOption}{article}
+    \else
+        % Package color does not take options with values.
+        % We provide the standard LaTeX error.
+        \@unknownoptionerror
+    \fi
+}
+
+\ProcessKeyvalOptions{hsrzf}
+
+%% Create new metadata fields
+
+%% Required fields
+\newcommand\course[1]{\gdef\hsr@course{#1}}
+\newcommand\hsr@course{\ClassError{hsrzf}{no \noexpand\course given}{}}
+\newcommand\thecourse{\hsr@course}
+
+\newcommand\module[1]{\gdef\hsr@module{#1}}
+\newcommand\hsr@module{\ClassError{hsrzf}{no \noexpand\module given}{}}
+\newcommand\themodule{\hsr@module}
+
+\newcommand\semester[1]{\gdef\hsr@semester{#1}}
+\newcommand\hsr@semester{\ClassError{hsrzf}{no \noexpand\semester given}{}}
+\newcommand\thesemester{\hsr@semester}
+
+%% Optional fields
+\newcommand\institute[1]{\gdef\hsr@institute{#1}}
+\newcommand\hsr@institute{\ClassWarning{hsrzf}{no \noexpand\institute given}{}}
+\newcommand\theinstitute{\hsr@institute}
+
+\newcommand\authoremail[1]{\gdef\hsr@authoremail{#1}}
+\newcommand\hsr@authoremail{\ClassWarning{hsrzf}{no \noexpand\authoremail given}{}}
+\newcommand\theauthoremail{\hsr@authoremail}
+
+\newcommand\maintainer[1]{\gdef\hsr@maintainer{#1}}
+\newcommand\hsr@maintainer{\ClassWarning{hsrzf}{no \noexpand\maintainer given}{}}
+\newcommand\themaintainer{\hsr@maintainer}
+
+\newcommand\contributors[1]{\gdef\hsr@contributors{#1}}
+\newcommand\hsr@contributors{\ClassWarning{hsrzf}{no \noexpand\contributors given}{}}
+\newcommand\thecontributors{\hsr@contributors}
+
+\LoadClass[a4paper]{article}
+
+%% Style deps
+\RequirePackage{geometry}
+\RequirePackage{fancyhdr}
+\RequirePackage{titling}
+\RequirePackage{lastpage}
+\RequirePackage{array}
+
+%% Insert metadata in the pdf
+\PassOptionsToPackage{plainpages=false, pdfpagelabels, pdfusetitle}{hyperref}
+\RequirePackage{hyperref}
+
+
+%% Configure Sans-Serif font
+\ifhsrzf@sans
+\renewcommand{\familydefault}{\sfdefault}
+\fi
+
+%% Configure concrete font
+\ifhsrzf@concrete
+\PassOptionsToPackage{T1}{fontenc}
+\RequirePackage{fontenc}
+\PassOptionsToPackage{boldsans,amssymb}{concmath}
+\RequirePackage{concmath}
+\fi
+
+%% configure geometry
+%% defaults to big
+\newlength{\hsr@hmarginwidth}
+\newlength{\hsr@vmarginheight}
+
+\ifx\hsrzf@margin\@empty
+    \setlength\hsr@hmarginwidth{30mm}
+    \setlength\hsr@vmarginheight{30mm}
+\else
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{huge}{
+        \setlength\hsr@hmarginwidth{45mm}
+        \setlength\hsr@vmarginheight{40mm}}{}
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{large}{
+        \setlength\hsr@hmarginwidth{35mm}
+        \setlength\hsr@vmarginheight{35mm}}{}
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{big}{
+        \setlength\hsr@hmarginwidth{30mm}
+        \setlength\hsr@vmarginheight{30mm}}{}
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{normal}{
+        \setlength\hsr@hmarginwidth{25mm}
+        \setlength\hsr@vmarginheight{30mm}}{}
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{small}{
+        \setlength\hsr@hmarginwidth{20mm}
+        \setlength\hsr@vmarginheight{20mm}}{}
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{tiny}{
+        \setlength\hsr@hmarginwidth{10mm}
+        \setlength\hsr@vmarginheight{20mm}}{}
+    \expandafter\ifstrequal\expandafter{\hsrzf@margin}{minimal}{
+        \setlength\hsr@hmarginwidth{ 5mm}
+        \setlength\hsr@vmarginheight{20mm}}{}
+\fi
+
+
+%% TODO: change vmarginheight if header is on
+\newgeometry{
+    hmargin=\hsr@hmarginwidth,
+    vmargin=\hsr@vmarginheight,
+    marginparsep=0pt,
+    marginpar=0pt,
+}
+
+\fancypagestyle{hsrzf}{%
+    \fancyhf{} % clear
+    \fancyhead[C]{\thetitle}
+    \fancyhead[R]{\rightmark}
+    \fancyhead[L]{\leftmark}
+    \fancyfoot[R]{\@date}
+    \fancyfoot[L]{\theauthor}
+    \renewcommand{\headrulewidth}{.5pt}
+    \renewcommand{\footrulewidth}{.5pt}
+}
+
+\fancypagestyle{hsrzf-norulers}{%
+    \fancyhf{} % clear
+    \fancyhead[C]{\thetitle}
+    \fancyhead[R]{\rightmark}
+    \fancyhead[L]{\leftmark}
+    \fancyfoot[R]{\@date}
+    \fancyfoot[L]{\theauthor}
+    \renewcommand{\headrulewidth}{0pt}
+    \renewcommand{\footrulewidth}{0pt}
+}
+
+\ifhsrzf@header
+\pagestyle{hsrzf}
+\fi
+
+\endinput
+%%
+%% End of file `hsrzf.cls'.
-- 
cgit v1.2.1

