aboutsummaryrefslogtreecommitdiffstats
path: root/tex
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2021-10-10 15:08:11 +0200
committerNao Pross <np@0hm.ch>2021-10-10 15:08:11 +0200
commit928cf3167ba8f46f7c7307467d1ebecaa7ba860b (patch)
tree4e87eb697bd38fd23d3b8d72a7ba8989a745050c /tex
downloadElMag-928cf3167ba8f46f7c7307467d1ebecaa7ba860b.tar.gz
ElMag-928cf3167ba8f46f7c7307467d1ebecaa7ba860b.zip
Initial commit
Diffstat (limited to 'tex')
-rw-r--r--tex/hsrstud.sty286
-rw-r--r--tex/hsrzf.cls298
2 files changed, 584 insertions, 0 deletions
diff --git a/tex/hsrstud.sty b/tex/hsrstud.sty
new file mode 100644
index 0000000..5c1ddfc
--- /dev/null
+++ b/tex/hsrstud.sty
@@ -0,0 +1,286 @@
+%%
+%% This is file `hsrstud.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hsrstud.dtx (with options: `package')
+%% 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}
+\ProvidesPackage{hsrstud}[2021/08/04 v0.2 HSR-Stud Macros]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% Dependencies ((
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{bm}
+
+\RequirePackage{esint}
+\PassOptionsToPackage{b}{esvect}
+\RequirePackage{esvect}
+
+\RequirePackage{xcolor}
+\RequirePackage{hyperref}
+\RequirePackage{listings}
+
+\RequirePackage{iftex}
+\RequirePackage{kvoptions}
+%% ))
+
+\SetupKeyvalOptions{
+ family=hsr,
+ prefix=hsr@
+}
+
+%% Do not renew LaTeX Macros
+\DeclareBoolOption[false]{dontrenew}
+
+%% Vector style
+\DeclareBoolOption[false]{arrowvec}
+\DeclareComplementaryOption{boldvec}{arrowvec}
+
+%% Vector derivative style
+\DeclareBoolOption[false]{textvecdiff}
+\DeclareComplementaryOption{delvecdiff}{textvecdiff}
+
+%% Process options
+\ProcessLocalKeyvalOptions*
+
+%% TODO: change letters in german
+\newcommand{\bookref}[1]{\texttt{\textcolor{hsr-mauve}{P.#1}}}
+\newcommand{\notesref}[1]{\texttt{\textcolor{hsr-blue}{S.#1}}}
+\newcommand{\lectureref}[1]{\texttt{\textcolor{hsr-lakegreen}{L.#1}}}
+
+%% Theming for hyperref and listings ((
+\hypersetup{
+ colorlinks=true,
+ linkcolor=hsr-black,
+ citecolor=hsr-mauve,
+ filecolor=hsr-black,
+ urlcolor=hsr-blue,
+}
+
+%% Common listings settings
+\lstdefinestyle{hsr-base}{
+ belowcaptionskip=\baselineskip,
+ breaklines=true,
+ frame=none,
+ inputencoding=utf8,
+ % margin
+ xleftmargin=\parindent,
+ % numbers
+ numbers=left,
+ numbersep=5pt,
+ numberstyle=\ttfamily\footnotesize\color{hsr-black40},
+ % background
+ backgroundcolor=\color{white},
+ showstringspaces=false,
+ % default language
+ language=[LaTeX]TeX,
+ % break long lines, and show an arrow where the line was broken
+ breaklines=true,
+ postbreak=\mbox{\textcolor{hsr-blue}{$\hookrightarrow$}\space},
+ % font
+ basicstyle=\ttfamily\small,
+ identifierstyle=\color{hsr-black},
+ keywordstyle=\color{hsr-blue},
+ commentstyle=\color{hsr-black40},
+ stringstyle=\color{hsr-mauve80},
+}
+
+%% Define missing languages / aliases
+\lstdefinelanguage{LaTeX}{
+ language=[LaTeX]Tex
+}
+
+%% Set style
+\lstset{style=hsr-base, escapechar=`}
+%%))
+
+%% Vector ((
+\newcommand{\hsrvecbold}[1]{\mathbf{\bm{#1}}}
+\newcommand{\hsrvecarrow}[1]{\vv{\mathrm{#1}}} % from esvect
+
+\newcommand{\@hsrvecf}[1]{\hsrvecbold{#1}}
+\ifhsr@arrowvec
+ \renewcommand{\@hsrvecf}[1]{\hsrvecarrow{#1}}
+\fi
+
+\newcommand{\vc}{\@hsrvecf}
+\ifhsr@dontrenew\else
+ % save previous command
+ \newcommand{\vaccent}{\v}
+ \newcommand{\oldvec}{\vec}
+ % redefine
+ \renewcommand{\v}[1]{\@hsrvecf{#1}}
+ \renewcommand{\vec}[1]{\@hsrvecf{#1}}
+\fi
+%%))
+
+%% Unit vector ((
+\newcommand{\hsruvecbold}[1]{\vec{\hat{#1}}}
+\newcommand{\hsruvecarrow}[1]{\hat{\mathrm{#1}}}
+\newcommand{\@hsruvecf}[1]{\hsruvecbold{#1}}
+\ifhsr@arrowvec
+ \renewcommand{\@hsruvecf}[1]{\hsruvecarrow{#1}}
+\fi
+
+\newcommand{\uv}[1]{\@hsruvecf{#1}}
+\newcommand{\uvec}[1]{\@hsruvecf{#1}}
+%%))
+
+%% Products ((
+\newcommand{\dotp}{\boldsymbol\cdot}
+\newcommand{\crossp}{\boldsymbol\times}
+%%))
+
+\newcommand{\mx}[1]{\bm{\mathrm{#1}}}
+
+\newcommand{\heq}{\stackrel{\hat{\texttt{H}}}{=}}
+
+\newcommand{\dd}[2][]{\mathrm{d}^{#1} #2}
+\newcommand{\di}[2][]{\,\dd[#1]{#2}}
+
+\newcommand{\deriv}[3][]{\frac{\dd[#1]{#2}}{\dd[]{#3^{#1}}}}
+\newcommand{\pderiv}[3][]{\frac{\partial^{#1} #2}{\partial #3^{#1}}}
+
+%% Gradient ((
+\ifhsr@textvecdiff
+ \DeclareMathOperator{\grad}{grad}
+\else
+\newcommand{\grad}{\vec{\nabla}}
+\fi
+%% ))
+
+%% Divergence ((
+\ifhsr@textvecdiff
+ \newcommand{\@hsrdivf}{div}
+\else
+\newcommand{\@hsrdivf}{\vec{\nabla}\dotp}
+\fi
+
+\DeclareMathOperator{\divg}{\@hsrdivf}
+\ifhsr@dontrenew\else
+ \let\divsymb=\div
+ \renewcommand{\div}{\operatorname{\@hsrdivf}}
+\fi
+%% ))
+
+%% Curl ((
+\ifhsr@textvecdiff
+ \DeclareMathOperator{\curl}{curl}
+\else
+\DeclareMathOperator{\curl}{\vec{\nabla}\crossp}
+\fi
+%% ))
+
+%% laplacian ((
+\ifhsr@textvecdiff
+ \DeclareMathOperator{\laplacian}{div grad}
+\else
+ \DeclareMathOperator{\laplacian}{\nabla^2}
+\fi
+
+\ifhsr@textvecdiff
+ \DeclareMathOperator{\vlaplacian}{div grad}
+\else
+\DeclareMathOperator{\vlaplacian}{\vec{\nabla}^2}
+\fi
+%% ))
+
+\definecolor{hsr-blue}{HTML}{0065A3}
+\definecolor{hsr-blue80}{HTML}{3384B5}
+\definecolor{hsr-blue60}{HTML}{66A3C8}
+\definecolor{hsr-blue40}{HTML}{99C1DA}
+\definecolor{hsr-blue20}{HTML}{CCE0ED}
+
+\definecolor{hsr-mauve}{HTML}{6E1C50}
+\definecolor{hsr-mauve80}{HTML}{8B4973}
+\definecolor{hsr-mauve60}{HTML}{A87796}
+\definecolor{hsr-mauve40}{HTML}{C5A4B9}
+\definecolor{hsr-mauve20}{HTML}{E2D2DC}
+
+\definecolor{hsr-lakegreen}{HTML}{548C86}
+\definecolor{hsr-lakegreen80}{HTML}{76A39E}
+\definecolor{hsr-lakegreen60}{HTML}{98BAB6}
+\definecolor{hsr-lakegreen40}{HTML}{BBD1CF}
+\definecolor{hsr-lakegreen20}{HTML}{DDE8E7}
+
+\definecolor{hsr-reed}{HTML}{7B6951}
+\definecolor{hsr-reed80}{HTML}{958774}
+\definecolor{hsr-reed60}{HTML}{B0A597}
+\definecolor{hsr-reed40}{HTML}{CAC3B9}
+\definecolor{hsr-reed20}{HTML}{E5E1DC}
+
+\definecolor{hsr-petrol}{HTML}{00738D}
+\definecolor{hsr-petrol80}{HTML}{338FA4}
+\definecolor{hsr-petrol60}{HTML}{66ABBB}
+\definecolor{hsr-petrol40}{HTML}{99C7D1}
+\definecolor{hsr-petrol20}{HTML}{CCE3E8}
+
+\definecolor{hsr-basswood}{HTML}{BABD5D}
+\definecolor{hsr-basswood80}{HTML}{C8CA7D}
+\definecolor{hsr-basswood60}{HTML}{D6D79E}
+\definecolor{hsr-basswood40}{HTML}{E3E5BE}
+\definecolor{hsr-basswood20}{HTML}{F1F2DF}
+
+\definecolor{hsr-lightgrey}{HTML}{C6C7C8}
+\definecolor{hsr-lightgrey80}{HTML}{D1D2D3}
+\definecolor{hsr-lightgrey60}{HTML}{DDDDDE}
+\definecolor{hsr-lightgrey40}{HTML}{E8E8E9}
+\definecolor{hsr-lightgrey20}{HTML}{F4F4F4}
+
+\definecolor{hsr-black}{HTML}{1A171B}
+\definecolor{hsr-black80}{HTML}{484549}
+\definecolor{hsr-black60}{HTML}{767476}
+\definecolor{hsr-black40}{HTML}{A4A2A4}
+\definecolor{hsr-black20}{HTML}{D1D1D1}
+
+\endinput
+%%
+%% End of file `hsrstud.sty'.
diff --git a/tex/hsrzf.cls b/tex/hsrzf.cls
new file mode 100644
index 0000000..3717e27
--- /dev/null
+++ b/tex/hsrzf.cls
@@ -0,0 +1,298 @@
+%%
+%% 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}
+
+%% Default font
+\RequirePackage{lmodern}
+
+%% Class options
+\SetupKeyvalOptions{
+ family=hsr,
+ prefix=hsr@
+}
+
+%% Use header and footer
+\DeclareBoolOption[false]{header}
+\DeclareComplementaryOption{noheader}{header}
+
+%% Use a sans-serif slab-serif or concrete font
+\DeclareBoolOption[false]{sans}
+\DeclareBoolOption[false]{slab}
+\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{hsr}
+
+%% 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{totpages}
+\RequirePackage{array}
+
+%% Insert metadata in the pdf
+\PassOptionsToPackage{plainpages=false, pdfpagelabels, pdfusetitle}{hyperref}
+\RequirePackage{hyperref}
+
+
+%% Configure Sans-Serif font
+\ifhsr@sans
+ \ifhsr@slab
+ \PackageError{hsrzf}{%
+ sans ans slab options cannot be used at the same time
+ }
+ \fi
+ \ifhsr@concrete{hsrzf}{%
+ sans and concrete options cannot be used at the same time
+ }
+ \fi
+
+ \PassOptionsToPackage{T1}{fontenc}
+ \RequirePackage{fontenc}
+ \RequirePackage{cmbright}
+ \RequirePackage{sfmath}
+\fi
+
+%% Configure Slab-Serif font
+\ifhsr@slab
+ \ifhsr@sans
+ \PackageError{hsrzf}{%
+ slab and sans options cannot be used at the same time
+ }
+ \fi
+ \ifhsr@concrete{hsrzf}{%
+ slab and concrete options cannot be used at the same time
+ }
+ \fi
+
+ \PassOptionsToPackage{T1}{fontenc}
+ \RequirePackage{fontenc}
+ \PassOptionsToPackage{rm,light}{roboto}
+ \RequirePackage{roboto}
+\fi
+
+%% Configure (secret) concrete font
+\ifhsr@concrete
+ \ifhsr@sans{hsrzf}{%
+ concrete and sans options cannot be used at the same time
+ }
+ \fi
+ \ifhsr@slab
+ \PackageError{hsrzf}{%
+ concrete ans slab options cannot be used at the same time
+ }
+ \fi
+
+ \PassOptionsToPackage{boldsans,amssymb}{concmath}
+ \RequirePackage{concmath}
+ \PassOptionsToPackage{T1}{fontenc}
+ \RequirePackage{fontenc}
+\fi
+
+%% configure geometry
+%% defaults to big
+\newlength{\hsr@hmarginwidth}
+\newlength{\hsr@vmarginheight}
+
+\ifx\hsr@margin\@empty
+ \setlength\hsr@hmarginwidth{30mm}
+ \setlength\hsr@vmarginheight{30mm}
+\else
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{huge}{
+ \setlength\hsr@hmarginwidth{45mm}
+ \setlength\hsr@vmarginheight{40mm}}{}
+%%
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{large}{
+ \setlength\hsr@hmarginwidth{35mm}
+ \setlength\hsr@vmarginheight{35mm}}{}
+%%
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{big}{
+ \setlength\hsr@hmarginwidth{30mm}
+ \setlength\hsr@vmarginheight{30mm}}{}
+%%
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{normal}{
+ \setlength\hsr@hmarginwidth{25mm}
+ \setlength\hsr@vmarginheight{30mm}}{}
+%%
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{small}{
+ \setlength\hsr@hmarginwidth{20mm}
+ \setlength\hsr@vmarginheight{20mm}}{}
+%%
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{tiny}{
+ \setlength\hsr@hmarginwidth{10mm}
+ \setlength\hsr@vmarginheight{20mm}}{}
+%%
+ \expandafter\ifstrequal\expandafter{\hsr@margin}{minimal}{
+ \setlength\hsr@hmarginwidth{ 5mm}
+ \setlength\hsr@vmarginheight{20mm}}{}
+%%
+ % TODO: fix this
+ % \ClassError{hsrzf}{Invalid margin size}
+ % \setlength\hsr@hmarginwidth{30mm}
+ % \setlength\hsr@vmarginheight{30mm}
+\fi
+
+
+%% TODO: change vmarginheight if header is on
+\newgeometry{
+ hmargin=\hsr@hmarginwidth,
+ vmargin=\hsr@vmarginheight,
+ marginparsep=0pt,
+ marginpar=0pt,
+}
+
+\fancypagestyle{hsrzf}{%
+ \fancyhf{} % clear
+ \fancyhead[L]{\leftmark}
+ \fancyhead[C]{\themodule}
+ \fancyhead[R]{\@date}
+
+ \fancyfoot[L]{\href{https://github.com/HSR-Stud/}{\texttt{HSR-Stud}}}
+ \fancyfoot[C]{\texttt{CC BY-NC-SA}}
+ \fancyfoot[R]{\thepage ~/ \pageref{TotPages}}
+
+ \renewcommand{\headrulewidth}{.5pt}
+ \renewcommand{\footrulewidth}{.5pt}
+}
+
+\fancypagestyle{hsrzf-norulers}{%
+ \fancyhf{} % clear
+ \fancyhead[L]{\leftmark}
+ \fancyhead[C]{\themodule}
+ \fancyhead[R]{\@date}
+
+ \fancyfoot[L]{\href{https://github.com/HSR-Stud/}{\texttt{HSR-Stud}}}
+ \fancyfoot[C]{\texttt{CC BY-NC-SA}}
+ \fancyfoot[R]{\thepage ~/ \pageref{TotPages}}
+
+ \renewcommand{\headrulewidth}{0pt}
+ \renewcommand{\footrulewidth}{0pt}
+}
+
+\ifhsr@header
+\pagestyle{hsrzf}
+\fi
+
+\endinput
+%%
+%% End of file `hsrzf.cls'.