Skip to content
Snippets Groups Projects
vl-arbeitsanweisung.cls 6.95 KiB
Newer Older

\NeedsTeXFormat{LaTeX2e}[1999/12/01]
Rolf Niepraschk's avatar
Rolf Niepraschk committed
\ProvidesClass{vl-arbeitsanweisung}
    [2018/05/15 v1.0a Dokumentenklasse (RN/PTB)]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
\ProcessOptions\relax
\PassOptionsToPackage{headinclude,usegeometry}{typearea}
,twoside
,fontsize=12pt% ???
Rolf Niepraschk's avatar
Rolf Niepraschk committed
,headings=small
,toc=bibliographynumbered
,captions=oneline
Rolf Niepraschk's avatar
Rolf Niepraschk committed
,captions=tableheading
%,origlongtable
\RequirePackage[%
paper=a4paper,
headheight=16mm,
marginparwidth=5mm,
left=22mm,
right=16mm,
Rolf Niepraschk's avatar
Rolf Niepraschk committed
textheight=228mm,
top=20bp,
headsep=10mm,
Rolf Niepraschk's avatar
Rolf Niepraschk committed
footskip=25mm,
]{geometry}
Rolf Niepraschk's avatar
Rolf Niepraschk committed
\setlength{\footheight}{18.5pt}

\renewcommand*\maketitle[1][1]{%
  \begingroup
  \centering \noindent\usekomafont{title}
    \Large \@title \par \bigskip\medskip
  \endgroup
}

Rolf Niepraschk's avatar
Rolf Niepraschk committed
\RequirePackage[main=ngerman,english]{babel}
\RequirePackage{tabularx}
\let\ptb@endtabularx=\TX@endtabularx
\RequirePackage{amsmath,threeparttable,tabto,ltablex,grffile}
\RequirePackage{pdflscape,picture,trimspaces,url,varwidth,placeins}
\RequirePackage{zref-totpages,graphicx,booktabs,array,pdfpages}
Rolf Niepraschk's avatar
Rolf Niepraschk committed
\RequirePackage{longtable,siunitx,ragged2e,ifxetex,ifluatex,relsize}
%%%\RequirePackage[manualmark]{scrpage2}
\RequirePackage{siunitx-PTB}
\let\ptb@tempdima=\@clnwd
\let\ptb@tempdimb=\@clnht
\let\ptb@tempdimc=\@dashdim

\newcommand*\ptb@Devision{}
\newcommand*\ptb@Department{}
\newcommand*\ptb@WorkingGroup{}
\newcommand*\ptb@Object{}
\newcommand*\ptb@Ident{}
\newcommand*\ptb@Edition{}
\newcommand*\ptb@Date{}
\newcommand*\ptb@tempa{0}
\ifxetex
  \def\ptb@tempa{1}%
\else
  \ifluatex
    \def\ptb@tempa{1}%
  \fi
\fi

\ifcase\ptb@tempa % pdfTeX
  \input{vl-aa-old-engines.clo}
\or               % XeTeX oder luaTeX
  \input{vl-aa-new-engines.clo}
Rolf Niepraschk's avatar
Rolf Niepraschk committed
\RequirePackage[
,final=true
,babel=true
]{microtype}

\RequirePackage[autostyle=true,babel=once,german=guillemets,maxlevel=3]{csquotes}%
\defineshorthand{"`}{\openautoquote}%
\defineshorthand{"'}{\closeautoquote}%
\MakeAutoQuote{»}{«}% Alt Gr + y / Alt Gr + x
\MakeAutoQuote{}{}% Alt Gr + v / Alt Gr + b

\newcommand*\Devision[1]{\xdef\ptb@Devision{\trim@spaces{#1}}}
\newcommand*\Department[1]{\xdef\ptb@Department{\trim@spaces{#1}}}
\newcommand*\WorkingGroup[1]{\xdef\ptb@WorkingGroup{\trim@spaces{#1}}}
\newcommand*\Object[1]{\xdef\ptb@Object{\trim@spaces{#1}}}
\newcommand*\Edition[1]{\xdef\ptb@Edition{\trim@spaces{#1}}}
\RequirePackage{tocstyle}
\usetocstyle{allwithdot}
\settocfeature{raggedhook}{\raggedright}% verhindert auch Trennung
\settocfeature{pagenumberbox}{\makebox[1.5em][r]}
\settocfeature{entryhook}{\overfullrule=\z@}
\BeforeStartingTOC[toc]{\microtypesetup{protrusion=false}}
\AfterStartingTOC[toc]{\microtypesetup{protrusion=true}}
\addtokomafont{caption}{\small}
\addtokomafont{captionlabel}{\bfseries\sffamily}
\setcapindent{1em}

\AtBeginDocument{%
  \edef\ptb@Ident{\ptb@Department-AA-\ptb@Object}%
  \edef\ptb@Date{\@date}%
  \date{}%
}

\newcommand*\ptb@rulewidth{.4mm}
\newcolumntype{C}{>{\centering}X}
\newcommand*\ptb@VWD[1]{%
  \begin{varwidth}{\linewidth}\centering #1\end{varwidth}}
  
\newcommand*\ptb@head@even{%
  \begin{picture}(0,0)
    \linethickness{\ptb@rulewidth}%
    \put(0,-2.5mm){\line(1,0){\textwidth}}%
  \end{picture}
  \normalfont\sffamily\bfseries\large
  PTB\hfill Qualit\"atsmanagement-Arbeitsanweisung\hfill\ptb@Ident 
Rolf Niepraschk's avatar
Rolf Niepraschk committed
}
\newcommand*\ptb@head@odd{%
Rolf Niepraschk's avatar
Rolf Niepraschk committed
  \begin{picture}(0,0)
    \linethickness{\ptb@rulewidth}%
    \put(0,-2.5mm){\line(1,0){\textwidth}}%
  \end{picture}
  \normalfont\sffamily\bfseries\large
  \ptb@Ident \hfill Qualit\"atsmanagement-Arbeitsanweisung \hfill PTB
Rolf Niepraschk's avatar
Rolf Niepraschk committed
}
\newcommand*\ptb@first@foot{%
  \raisebox{-4bp}[0pt][0pt]{% 
    \let\TX@endtabularx=\ptb@endtabularx
    \normalfont\sffamily\tiny\extrarowheight=.3\baselineskip
    \arrayrulewidth=\ptb@rulewidth \extratabsurround=0pt %
    \renewcommand\tabularxcolumn[1]{m{##1}}%
    \begin{tabularx}{\textwidth}[b]{@{}|C|C|C|c|c|c|@{}} \firsthline
      Erstellt: \\
      Abteilung~\ptb@Devision, Fachbereich~\ptb@Department \\
      AG~\ptb@WorkingGroup
    &
      Geprüft: \\ Leiter~\ptb@Department  \\~
    &
      Genehmigt: \\ QMV-\ptb@Devision \\~
    &
      \ptb@VWD{Ausgabe-Nr.: \\ \ptb@Edition\\~}
    &
      \ptb@VWD{Kurzbezeichnung: \\ \ptb@Ident\\~}
    &
      \ptb@VWD{Seite von Seiten \\ \thepage~von \ztotpages\\~}
    \tabularnewline

    &&&&& \tabularnewline
    &&&&& \tabularnewline

      am:~\dotfill
    &
      am:~\dotfill
    &
      am:~\dotfill
    &
    && \tabularnewline \lasthline
    \end{tabularx}%
  \endgroup
  }%
}
\newcommand*\ptb@foot@even{%
  \begingroup
    \let\TX@endtabularx=\ptb@endtabularx
    \normalfont\sffamily\tiny\extrarowheight=.3\baselineskip
    \arrayrulewidth=\ptb@rulewidth \extratabsurround=0pt %
    \renewcommand*\tabularxcolumn[1]{m{##1}}%
    \begin{tabularx}{\textwidth}[b]{@{}|C|C|C|C|C|@{}} \firsthline
      Erstellt: \\
      Abteilung~\ptb@Devision, Fachbereich~\ptb@Department
    &
      Ausgabe-Nr.: \\ \ptb@Edition
    &
      Datum: \\ \ptb@Date
    &
      Kurzbezeichnung: \\ \ptb@Ident
    &
      Seite von Seiten \\ \thepage~von \ztotpages
    \tabularnewline \lasthline
    \end{tabularx}%
  \endgroup
}
\newcommand*\ptb@foot@odd{%
  \begingroup
    \let\TX@endtabularx=\ptb@endtabularx
    \normalfont\sffamily\tiny\extrarowheight=.3\baselineskip
    \arrayrulewidth=\ptb@rulewidth \extratabsurround=0pt %
    \renewcommand*\tabularxcolumn[1]{m{##1}}%
    \begin{tabularx}{\textwidth}[b]{@{}|C|C|C|C|C|@{}} \firsthline
      Seite von Seiten \\ \thepage~von \ztotpages
    &
      Kurzbezeichnung: \\ \ptb@Ident
    &
      Datum: \\ \ptb@Date
    &
      Ausgabe-Nr.: \\ \ptb@Edition
    &
      Erstellt: \\
      Abteilung~\ptb@Devision, Fachbereich~\ptb@Department
    \tabularnewline \lasthline  
    \end{tabularx}%
\RequirePackage[manualmark,draft=false]{scrlayer-scrpage}
\pagestyle{scrheadings}
\clearpairofpagestyles
\cehead{\ptb@head@even}
\cohead{\ptb@head@odd}
\cefoot{\ptb@foot@even}
\cofoot{\ifnum\c@page=\@ne\ptb@first@foot\else\ptb@foot@odd\fi}
\setkomafont{pageheadfoot}{\normalfont\normalsize}
% Kompaktere Listen
\RequirePackage{enumitem}
\setlist{leftmargin=*}
\setlist[1]{labelindent=1em}
\renewcommand{\floatpagefraction}{.9}
\renewcommand{\textfraction}{.1}
\renewcommand{\topfraction}{.9}
\renewcommand{\bottomfraction}{.5}
\setcounter{topnumber}{3}
\setcounter{bottomnumber}{1}
\setcounter{totalnumber}{5}
\renewcommand{\dbltopfraction}{.8}
\renewcommand{\dblfloatpagefraction}{.6}
% Einzelne Abbildungen nicht auf dem leeren Blatt zentrieren.
\@fptop=0pt %
% TODO: nach  siunitx-PTB.sty ???
\sisetup{% Formatierung von Maßzahlen (z.B. Spaltentyp "S" in Tabellen)
  ,retain-zero-exponent=true
  ,retain-unity-mantissa=true
  ,add-decimal-zero=true
  ,add-integer-zero=true
  ,zero-decimal-to-integer=false
}

Rolf Niepraschk's avatar
Rolf Niepraschk committed
\addtokomafont{title}{\sisetup{detect-weight=true, detect-family=true}}
\addtokomafont{disposition}{\sisetup{detect-weight=true, detect-family=true}}
Rolf Niepraschk's avatar
Rolf Niepraschk committed
\RedeclareSectionCommand[
,tocindent=3em
,tocnumwidth=3.5em
]{section}

\emergencystretch=3em % 

\raggedbottom

\RequirePackage[final]{hyperref}