| @@ -0,0 +1,300 @@ | |||||
| \ProvidesClass{sasbase}[2017/11/6 SaS base class] | |||||
| \LoadClass[twocolumn]{article} | |||||
| \RequirePackage[utf8]{inputenc} | |||||
| \RequirePackage[shortlabels]{enumitem} | |||||
| \RequirePackage{environ} | |||||
| \RequirePackage{geometry} | |||||
| \RequirePackage{booktabs} | |||||
| \RequirePackage{mathptmx} | |||||
| \RequirePackage[12pt]{moresize} | |||||
| \RequirePackage{array} | |||||
| \RequirePackage{titlesec} | |||||
| \RequirePackage[titles]{tocloft} | |||||
| \RequirePackage[rm={lining,proportional},sf={lining, proportional},tt={lining, proportional, variable}]{cfr-lm} | |||||
| \RequirePackage[T1]{fontenc} | |||||
| \RequirePackage{indentfirst} | |||||
| \RequirePackage{fancyhdr} | |||||
| \RequirePackage{bm} | |||||
| \RequirePackage{roboto} | |||||
| \RequirePackage{varwidth} | |||||
| % SET PAGE GEOMETRY | |||||
| \geometry{ | |||||
| left=13mm, | |||||
| right=13mm, | |||||
| top=8mm, | |||||
| bottom=8mm, | |||||
| includeheadfoot} | |||||
| % ENABLE FANCY HEADERS | |||||
| \pagestyle{fancy} | |||||
| \fancyhf{} | |||||
| % DISABLE HEADER RULE | |||||
| \renewcommand{\headrulewidth}{0pt} | |||||
| % ADD PAGE NUMBER TO TOP RIGHT / LEFT (ODD / EVEN) | |||||
| \fancyhead[R]{\sffamily\bfseries\large{\textbf{\thepage}} \ifodd\value{page}\else\hfill\fi} | |||||
| % SET COLUMN GAP OF TWOCOLUMN LAYOUT | |||||
| \setlength{\columnsep}{6mm} | |||||
| % SET PLACE COMMAND | |||||
| \makeatletter | |||||
| \newcommand{\place}[1]{ | |||||
| \def\@place{#1} | |||||
| } | |||||
| \makeatother | |||||
| % SET DATE COMMAND (COLLIDES WITH BUILTIN) | |||||
| \makeatletter | |||||
| \newcommand{\datum}[1]{ | |||||
| \def\@datum{#1} | |||||
| } | |||||
| \makeatother | |||||
| % SET NUMBER COMMAND (COLLIDES WITH BUILTIN) | |||||
| \makeatletter | |||||
| \newcommand{\edition}[1]{ | |||||
| \def\@edition{#1} | |||||
| } | |||||
| \makeatother | |||||
| % HELPER TO EXTRACT YEAR FROM DATE | |||||
| \newcommand*\TheLastWord[1]{\expandafter\xreverseit\expandafter{\expandafter}#1 \relax} | |||||
| \def\xreverseit#1#2 #3{% | |||||
| \ifx\relax#3% | |||||
| #2% | |||||
| \expandafter\xthree | |||||
| \fi | |||||
| \xreverseit{#1 #2}#3% | |||||
| } | |||||
| \def\xthree#1#2#3{} | |||||
| % ------------------ | |||||
| % SECTION FORMATTING | |||||
| % ------------------ | |||||
| \titleformat | |||||
| {\section} | |||||
| {\centering\normalfont\bf\large\ostyle} | |||||
| {\thesection} | |||||
| {1em} | |||||
| {} | |||||
| \titleformat | |||||
| {\subsection} | |||||
| {\centering\normalfont\bf} | |||||
| {\thesubsection} | |||||
| {1em} | |||||
| {} | |||||
| \titleformat | |||||
| {\subsubsection} | |||||
| {\normalfont\bf} | |||||
| {\thesubsubsection} | |||||
| {1em} | |||||
| {} | |||||
| % ----------------- | |||||
| % TABLE OF CONTENTS | |||||
| % ----------------- | |||||
| % DISABLE BOLD | |||||
| \renewcommand{\cftsecfont}{\normalfont\ostyle} | |||||
| % ONLY SHOW SECTIONS IN TOC | |||||
| \setcounter{tocdepth}{1} | |||||
| % HIDE NUMBERING OF SECTIONS | |||||
| \setcounter{secnumdepth}{0} | |||||
| % DEFINE SPACING BETWEEN ITEMS | |||||
| \setlength{\cftbeforesecskip}{1mm} | |||||
| \setlength{\cftbeforetoctitleskip}{0mm} | |||||
| \setlength{\cftaftertoctitleskip}{5cm} | |||||
| % SET DOTS FOR SECTIONS | |||||
| \renewcommand{\cftsecdotsep}{\cftdotsep} | |||||
| % Redefinition of ToC command to remove heading | |||||
| \makeatletter | |||||
| \renewcommand\tableofcontents{% | |||||
| \vspace{-4mm} | |||||
| \@starttoc{toc} | |||||
| } | |||||
| \makeatother | |||||
| % CUSTOM TOC COMMAND | |||||
| \newcommand{\mycontents}{% | |||||
| \vspace{4mm} | |||||
| \ostyle | |||||
| \begin{tabular}{lp{.9\textwidth}} | |||||
| \textbf{Inhalt:} & \tableofcontents \\ | |||||
| \end{tabular} | |||||
| } | |||||
| % --------------------------------------- | |||||
| % TITLE (THIS IS WHERE THE MAGIC HAPPENS) | |||||
| % --------------------------------------- | |||||
| % SET WIDTH OF RULES IN TABULAR | |||||
| \setlength{\arrayrulewidth}{.3mm} | |||||
| % SET CELL HEIGHT | |||||
| %\renewcommand{\arraystretch}{2.5} | |||||
| % DEFINE OWN COLUMN TYPE | |||||
| \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} | |||||
| \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}} | |||||
| \makeatletter | |||||
| \def\@maketitle{ | |||||
| \vspace*{-10mm} | |||||
| \begin{center} | |||||
| \textbf{\ostyle{\HUGE{\@title}}} | |||||
| \end{center} | |||||
| \vspace{5mm} | |||||
| \begin{tabular}{M{\dimexpr.1\textwidth-2\tabcolsep}|M{\dimexpr.8\textwidth-2\tabcolsep}|M{\dimexpr.1\textwidth-2\tabcolsep}@{}m{0pt}@{}} | |||||
| \hline | |||||
| \large \ostyle{\TheLastWord{\@datum}} & | |||||
| \large \ostyle{Ausgegeben in {\@place} am {\@datum}} & | |||||
| \large \ostyle{Nr. {\@edition}} | |||||
| &\\[5mm] \hline | |||||
| \multicolumn{3}{m{\dimexpr\textwidth-2\tabcolsep}}{\mycontents} \\ \hline | |||||
| \end{tabular} | |||||
| \vspace{10mm} | |||||
| %\thispagestyle{fancy} | |||||
| } | |||||
| \makeatother | |||||
| \newcommand{\mytitle}{ | |||||
| \maketitle | |||||
| \thispagestyle{fancy} | |||||
| } | |||||
| % --------------------------- | |||||
| % DEFINITION OF USEFUL MACROS | |||||
| % --------------------------- | |||||
| % OPTION TO ENABLE SQUARE BRACKETS OR ADDITIONS TO THE ARTICLES NAME | |||||
| \newif\ifsquare\squarefalse | |||||
| \newcommand{\squarestyle}{\squaretrue} | |||||
| \newcommand{\parensstyle}{\squarefalse} | |||||
| % ARTICLE COUNTER | |||||
| \newcounter{articleno} | |||||
| \setcounter{articleno}{1} | |||||
| \makeatletter | |||||
| \newenvironment{article}[1][nil]{ | |||||
| \begin{@paraorarticle}{#1}{Artikel} | |||||
| } | |||||
| { | |||||
| \end{@paraorarticle} | |||||
| } | |||||
| \makeatother | |||||
| \makeatletter | |||||
| \newenvironment{lawparagraph}[1][nil]{ | |||||
| \begin{@paraorarticle}{#1}{§} | |||||
| } | |||||
| { | |||||
| \end{@paraorarticle} | |||||
| } | |||||
| \makeatother | |||||
| \makeatletter | |||||
| % A GENERAL ARTICLE, PARAGRAPH, etc. ENVIRONMENT | |||||
| \newenvironment{@paraorarticle}[2]{ | |||||
| \def\val{#1} | |||||
| \def\null{nil} | |||||
| \ifsquare | |||||
| \subsubsection{#2 {\thearticleno}} | |||||
| \ifx\val\null | |||||
| \else | |||||
| \vspace*{-2mm} | |||||
| \noindent\bracketed{\textbf{#1}} | |||||
| \fi | |||||
| \else | |||||
| \subsubsection{#2 {\thearticleno} \ifx\val\null\else(#1)\fi} | |||||
| \fi | |||||
| \stepcounter{articleno} | |||||
| \begin{enumerate}[(1)] | |||||
| } | |||||
| { | |||||
| \end{enumerate} | |||||
| } | |||||
| \makeatother | |||||
| % LAW COMMAND | |||||
| \newcommand{\law}[1]{ | |||||
| \section{#1} | |||||
| \setcounter{articleno}{1} | |||||
| } | |||||
| % JUST TO MAKE CLEAR WHICH LEVEL TO USE | |||||
| \newcommand{\segmentoflaw}[1]{\subsection{#1}} | |||||
| % TEXT IN SQUARE BRACKETS | |||||
| \newcommand{\bracketed}[1]{$\left[\varwidth{\linewidth}#1\endvarwidth\right]$} | |||||
| % INCREASE HEIGHT OF BRACKETS | |||||
| \setlength\delimitershortfall{-2pt} | |||||
| % --- | |||||
| % FAQ | |||||
| % --- | |||||
| \newcommand{\topic}[1]{\subsection{#1}} | |||||
| % QUESTION ENVIRONMENT | |||||
| \newenvironment{question}[1]{ | |||||
| \subsubsection{Q: #1} | |||||
| \noindent\textbf{A:} | |||||
| } | |||||
| { | |||||
| } | |||||
| % ---------- | |||||
| % WIRTSCHAFT | |||||
| % ---------- | |||||
| \newcounter{total} | |||||
| \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} | |||||
| \newenvironment{kostenrechnung}[0]{ | |||||
| \setcounter{total}{0} | |||||
| \begin{tabular}{p{2cm}p{4.5cm}p{8.5cm}R{2cm}} | |||||
| \toprule | |||||
| Posten & Berechnung & Kommentar & Kosten in €\\ | |||||
| \midrule | |||||
| } | |||||
| { | |||||
| \bottomrule | |||||
| Gesamt & & & \thetotal \\ | |||||
| \bottomrule | |||||
| \end{tabular} | |||||
| } | |||||
| \newenvironment{lohnrechnung}[0]{ | |||||
| \setcounter{total}{0} | |||||
| \begin{tabular}{p{8cm}p{3.5cm}p{3.5cm}R{2cm}} | |||||
| \toprule | |||||
| Stelle & Anzahl & Lohn pro Tag & Gesamt in €\\ | |||||
| \midrule | |||||
| } | |||||
| { | |||||
| \bottomrule | |||||
| Gesamt & & & \thetotal \\ | |||||
| \bottomrule | |||||
| \end{tabular} | |||||
| } | |||||
| \newcommand{\posten}[4]{\addtocounter{total}{#4} #1 & #2 & \textit{#3} & { \raggedleft #4 } \\} | |||||