From 32db3f47a5adc6e592e6ec66c5b7feb2a5be1874 Mon Sep 17 00:00:00 2001 From: erichhasl Date: Mon, 18 Jun 2018 22:13:44 +0200 Subject: [PATCH] sasbase nach gesetze kopiert --- texed/gesetze/sasbase.cls | 300 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 texed/gesetze/sasbase.cls diff --git a/texed/gesetze/sasbase.cls b/texed/gesetze/sasbase.cls new file mode 100644 index 0000000..e848465 --- /dev/null +++ b/texed/gesetze/sasbase.cls @@ -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 } \\}