From d92f937cf11ef98b63515b19c98777e35902c088 Mon Sep 17 00:00:00 2001
From: niepra01 <rolf.niepraschk@ptb.de>
Date: Wed, 6 Mar 2019 16:23:34 +0100
Subject: [PATCH] Verbereitung KS-Version 2019 (1)

---
 kalibrierschein/PTB-Weitergabe-Logo.pdf       | Bin 0 -> 13690 bytes
 kalibrierschein/kalibrierschein-2019-test.tex |  33 ++
 kalibrierschein/kalibrierschein-2019.cls      | 436 ++++++++++++++++++
 3 files changed, 469 insertions(+)
 create mode 100644 kalibrierschein/PTB-Weitergabe-Logo.pdf
 create mode 100644 kalibrierschein/kalibrierschein-2019-test.tex
 create mode 100644 kalibrierschein/kalibrierschein-2019.cls

diff --git a/kalibrierschein/PTB-Weitergabe-Logo.pdf b/kalibrierschein/PTB-Weitergabe-Logo.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..320fd79e52fac6a5364788b4e53a67746c49cc25
GIT binary patch
literal 13690
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

literal 0
HcmV?d00001

diff --git a/kalibrierschein/kalibrierschein-2019-test.tex b/kalibrierschein/kalibrierschein-2019-test.tex
new file mode 100644
index 0000000..33aaf7a
--- /dev/null
+++ b/kalibrierschein/kalibrierschein-2019-test.tex
@@ -0,0 +1,33 @@
+%---------------------------+-
+\listfiles
+\documentclass[en,KK,2015]{kalibrierschein-2019}
+
+\missingEntries{ 0 }
+
+\object{ Helium Leak }
+\manufacturer{ Inficon }
+\type{ Permeation TL8 16557 }
+\serialNo{ 90001065998 }
+\applicant{ 
+  { National Institute of Metrology \\Laboratorul Presiuni } 
+  { Sos. Vitan Barzesti. nr. 11 }
+  {  }
+  { 042122 Bucharest }
+}
+\refNo{ 7.5-1.8-18-2-2 }
+\calibMark{ 75171~PTB~18 }
+\calibDate{ 2018-06-18 }
+\byOrder{ Dr. K. Jousten }
+\examiner{ U. Becker }
+\certificateDate{ 2018-06-20 }
+
+\begin{document}
+
+\printFirstPage
+
+\mbox{}\newpage
+\mbox{}\newpage
+
+\printLastPage
+\end{document}
+%---------------------------+-
diff --git a/kalibrierschein/kalibrierschein-2019.cls b/kalibrierschein/kalibrierschein-2019.cls
new file mode 100644
index 0000000..9fd5ec4
--- /dev/null
+++ b/kalibrierschein/kalibrierschein-2019.cls
@@ -0,0 +1,436 @@
+
+\setcounter{errorcontextlines}{100}
+\RequirePackage{ifdraft}
+\newcommand*\ks@location{Berlin}
+\newcommand*\ks@kalType{KK}
+\newcommand*\ks@layout{-2019}% derzeit nicht variabel
+\newcommand*\ks@langs{ngerman,main=english}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesClass{kalibrierschein}
+  [2019/03/06 v0.4a Dokumentenklasse (RN/PTB)]
+\DeclareOption{BS}{\def\ks@location{Braunschweig}}
+\DeclareOption{BLN}{\def\ks@location{Berlin}}
+\DeclareOption{KK}{\edef\ks@kalType{\CurrentOption}}
+\DeclareOption{IK}{\edef\ks@kalType{\CurrentOption}}
+%\DeclareOption{2015}{\edef\ks@layout{-\CurrentOption}}
+\DeclareOption{german}{\def\ks@langs{english,main=ngerman}}
+\DeclareOption{ngerman}{\def\ks@langs{english,main=ngerman}}
+\DeclareOption{de}{\def\ks@langs{english,main=ngerman}}
+\DeclareOption{english}{\def\ks@langs{ngerman,main=english}}
+\DeclareOption{en}{\def\ks@langs{ngerman,main=english}}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions\relax
+\PassOptionsToPackage{paper=a4,pagesize,twoside=false,headinclude}
+  {typearea}
+
+\newcommand*\ks@doc@style@code{391 00B o}% Kennung der Word-Vorlage
+
+\LoadClass[%
+,fontsize=11pt
+,headings=small
+,numbers=enddot
+,parskip=half
+]{scrartcl}
+
+\RequirePackage[%
+headheight=0bp,
+marginparwidth=0pt,
+left=69bp,
+right=40bp,
+textheight=669bp,
+top=85bp,
+headsep=0bp,
+footskip=0bp,
+]{geometry}
+
+\raggedbottom % ???
+
+%\RequirePackage{showframe}
+
+\RequirePackage[\ks@langs]{babel}
+\RequirePackage[autostyle=true,german=guillemets,maxlevel=3]{csquotes}%
+\RequirePackage{iflang}
+\IfLanguageName{ngerman}{%
+  \newcommand*\ks@draftName{Entwurf}%
+  \AtEndOfClass{\shorthandon{"}}
+  \defineshorthand{"`}{\openautoquote}
+  \defineshorthand{"'}{\closeautoquote}
+}{%
+  \newcommand*\ks@draftName{Draft}%
+}
+\MakeAutoQuote{»}{«}
+\AtEndOfClass{%
+  \@ifpackageloaded{inputenc}{}{%
+    \catcode`\»=\active
+    \catcode`\«=\active
+  }%
+}
+
+%\def\normalsize{...}
+\def\huge{\@setfontsize\huge{20.26}{25.3}}
+\def\large{\@setfontsize\large{12.17}{14.2}}
+\def\tiny{\@setfontsize\tiny\@viipt\@viiipt}
+
+\RequirePackage{textcomp}
+
+\RequirePackage{tabularx}
+\let\ks@TX@endtabularx=\TX@endtabularx
+\newcommand*\origTabularx{%
+  \let\TX@endtabularx=\ks@TX@endtabularx
+}
+\RequirePackage{ltablex}\keepXColumns{}
+\setcounter{LTchunksize}{100}
+
+\PassOptionsToPackage{final}{graphicx}
+\RequirePackage{eso-pic,graphicx,booktabs}
+\RequirePackage{zref-totpages}
+
+\newif\ifXeOrLua \XeOrLuafalse
+\RequirePackage{ifxetex,ifluatex,ifpdf}
+
+\ifxetex% XeTeX
+  \XeOrLuatrue
+\else
+  \ifluatex% LuaTeX
+    \XeOrLuatrue
+  \else
+    \ifpdf% pdfTeX
+    \else% TeX+dvips
+    \fi
+  \fi
+\fi
+
+\RequirePackage{amsmath}
+
+\ifXeOrLua% XeLaTeX oder luaLaTeX
+
+\typeout{#### XeLaTeX oder luaLaTeX}
+
+%\RequirePackage[no-math]{fontspec}
+\RequirePackage{unicode-math}
+\setmainfont{texgyreheros}[
+  Ligatures=TeX,
+  Extension=.otf,
+  UprightFont=*-regular,
+  BoldFont=*-bold,
+  ItalicFont=*-italic,
+  BoldItalicFont=*-bolditalic.otf]
+\setsansfont{texgyreheros}[
+  Ligatures=TeX,
+  Extension=.otf,
+  UprightFont=*-regular,
+  BoldFont=*-bold,
+  ItalicFont=*-italic,
+  BoldItalicFont=*-bolditalic.otf]
+\setmathfont{Asana-Math.otf}[math-style=ISO,bold-style=ISO]% damit sind Einheiten kursiv
+\setmathfont{texgyreheros-regular.otf}[range=\mathup,Scale=MatchLowercase]
+\setmathfont{texgyreheros-italic.otf}[range=\mathit,Scale=MatchLowercase]
+\setmathfont{texgyreheros-bold.otf}[range=\mathbfup,Scale=MatchLowercase]
+\setmathfont{texgyreheros-bolditalic.otf}[range=\mathbfit,Scale=MatchLowercase]
+\setmathfont{texgyreheros-regular.otf}[range=\mathsfup,Scale=MatchLowercase]
+\setmathfont{texgyreheros-italic.otf}[range=\mathsfit,Scale=MatchLowercase]
+\setmathfont{texgyreheros-bold.otf}[range=\mathbfsfup,Scale=MatchLowercase]
+\setmathfont{texgyreheros-bolditalic.otf}[range=\mathbfsfit,Scale=MatchLowercase]
+\setmathfont{texgyreheros-regular.otf}[range=\mathpunct]
+\setmathfont{Asana-Math.otf}[range=\int]
+% (Ulrike): )als letztes immer einen
+% richtiger Mathfont, damit diverse Werte korrekt gesetzt werden.
+% Wirklich nötig?
+
+\RequirePackage{newunicodechar}
+\newunicodechar{^^^^202f}{\,}% 'NARROW NO-BREAK SPACE' (\u202F, 8239)
+\newunicodechar{^^^^2009}{\,\hspace{0pt}}% 'THIN SPACE'
+\newunicodechar{^^^^00ad}{\-}% 'SOFT HYPHEN'
+\newunicodechar{^^^^2207}{{\setmathfont{Asana Math}^^^^2207}}% 'NABLA'
+
+%%% TODO: ^^^^ unschädlich machen für pdflatex
+
+\else
+
+\typeout{#### pdfLaTeX}
+
+\RequirePackage{fix-cm}% ???
+\RequirePackage[T1]{fontenc}
+\RequirePackage[utf8]{inputenc}
+\DeclareUnicodeCharacter{202F}{\,}
+\DeclareUnicodeCharacter{2009}{\,\hspace{0pt}}
+\DeclareUnicodeCharacter{22C5}{\cdot}
+\DeclareUnicodeCharacter{03B8}{\theta}
+\RequirePackage[scale=1]{tgheros}
+%%%\RequirePackage[scaled=1]{helvet}
+\renewcommand*\familydefault{\sfdefault}
+%%%\newcommand*\mathfamilydefault{\familydefault}
+%%\newcommand*\math@sfdefault{\sfdefault}
+
+\RequirePackage{sfmath}
+
+\fi
+
+\RequirePackage[neverdecrease]{paralist}
+\let\itemize\compactitem
+\let\enditemize\endcompactitem
+\let\enumerate\compactenum
+\let\endenumerate\endcompactenum
+\let\description\compactdesc
+\let\enddescription\endcompactdesc
+\pltopsep=\medskipamount
+\plitemsep=\smallskipamount
+
+\newcommand*\ks@PTB{Physikalisch-Technische Bundesanstalt}
+\newcommand*\ks@BSuB{Braunschweig und Berlin}
+
+\RequirePackage{picture}
+
+\let\@tempdimd=\@clnwd
+\let\@tempdime=\@clnht
+\let\@tempdimf=\@dashdim
+
+\newcommand*\ks@tempa{}
+\newcommand*\ks@tempb{}
+\newcommand*\ks@tempc{}
+\newcommand*\ks@tempd{}
+\newcommand*\ks@tempe{}
+
+\newtoks\ks@tab
+\newcommand*\ks@colSpec{}
+
+\newcommand*\ks@add[1]{%
+  \ks@tab\expandafter{\the\ks@tab#1}%
+}
+
+\newcommand*\ks@addTabLine[1]{%
+  \def\@tempc{}%  
+  \@for\@tempa:=#1\do{%
+    \edef\@tempb{\noexpand\ks@tab\noexpand\expandafter{%
+      \the\noexpand\ks@tab\@tempc\@tempa}}%
+    \@tempb
+    \def\@tempc{\noexpand&}% \noexpand hier unnötig, aber ...
+  }%
+}
+
+\newcommand*\ks@getColSpec[2]{%
+  \let#2=\@empty
+  \@for\@tempa:=#1\do{%
+    \edef#2{#2X}%
+  }%
+  \ifx#2\@empty
+    %\def#2{l}%
+    \def#2{X}%
+  \fi
+}
+
+\newcommand*\ks@printDevicesTable[3]{% #1 = width, #2 = 1. offset, #3 = 2. offset
+  \ks@tab{}%
+  \ks@getColSpec{\ks@type}{\ks@colSpec}%
+  \edef\@tempa{\noexpand\begin{tabularx}{#1}[t]{@{}\ks@colSpec @{}}}%
+  \ks@tab\expandafter{\@tempa}%
+  \ks@addTabLine{\ks@manufacturer}%
+  \ks@add{\tabularnewline[#2]}%
+  \ks@addTabLine{\ks@type}%
+  \ks@add{\tabularnewline[#3]}%
+  \ks@addTabLine{\ks@serialNo}%
+  %%\ks@add{\ks@serialNo}%
+  %%\ks@addCommaItems{\ks@serialNo}% ???
+  \ks@add{\end{tabularx}}%
+  \begingroup
+    \tabcolsep=1em %
+    \origTabularx
+    %\showthe\ks@tab
+    \the\ks@tab
+  \endgroup
+}
+
+%\RequirePackage[manualmark]{scrpage2}
+\RequirePackage[manualmark,draft=false]{scrlayer-scrpage}
+\clearpairofpagestyles
+\lohead{\ks@head}
+\lofoot{\ks@foot}
+
+\definecolor{PTBcolor}{RGB}{0,155,206}
+
+\input{\ks@kalType\ks@layout.clo}% Titelseiten- und Layout-Definition
+
+\newcommand*\ks@type{%
+  Typ des Ger\"ates}
+\newcommand*\type[1]{\xdef\ks@type{\trim@spaces{#1}}}
+
+\newcommand*\ks@manufacturer{Namen der Hersteller}
+\newcommand*\manufacturer[1]{%
+  \xdef\ks@manufacturer{\trim@spaces{\detokenize{#1}}}%
+}
+
+\newcommand*\ks@object{%
+  Name des Ger\"ates, kurze Charakterisierung}
+\newcommand*\object[1]{\xdef\ks@object{\trim@spaces{#1}}}
+
+\newcommand*\ks@applicant{%
+  Name des Auftraggebers, Stra\ss e, Firmensitz}
+\newcommand*\applicant[1]{\long\gdef\ks@applicant{#1}}
+
+\newcommand*\ks@serialNo{XXX,YYY}
+\newcommand*\serialNo[1]{%
+  \xdef\ks@serialNo{\trim@spaces{\detokenize{#1}}}%
+}
+
+\newcommand*\ks@refNo{YYY-ZZZZZZZZ}
+\newcommand*\refNo[1]{\xdef\ks@refNo{\trim@spaces{#1}}}
+
+\newcommand*\ks@calibMark{YYY-XXXXXXX}
+\newcommand*\calibMark[1]{\xdef\ks@calibMark{\trim@spaces{#1}}}
+
+\newcommand*\ks@referenceMark{YYY-XXXXXXX}
+\newcommand*\referenceMark[1]{\xdef\ks@referenceMark{\trim@spaces{#1}}}
+
+\newcommand*\ks@calibDate{????-??-??}
+\newcommand*\calibDate[1]{\xdef\ks@calibDate{\trim@spaces{#1}}}
+
+\newcommand*\ks@certificateDate{????-??-??}
+\newcommand*\certificateDate[1]{\xdef\ks@certificateDate{\trim@spaces{#1}}}
+
+\newcommand*\ks@byOrder{Peter Silie}
+\newcommand*\byOrder[1]{\xdef\ks@byOrder{\trim@spaces{#1}}}
+
+\newcommand*\ks@examiner{Ellen Bogen}
+\newcommand*\examiner[1]{\xdef\ks@examiner{\trim@spaces{#1}}}
+
+\newcommand*\ks@missingEntries{1}
+\newcommand*\missingEntries[1]{\xdef\ks@missingEntries{\trim@spaces{#1}}}
+
+\newcolumntype{C}{>{\centering\arraybackslash}X}
+
+\RequirePackage{siunitx-PTB}
+
+\newcommand\resultTable[3][]{%
+  %\begingroup
+  \@tempcnta=#2 %
+  \@tempcntb=\numexpr(\@tempcnta-1)*2 %
+  \@tempdimc=\dimexpr (\textwidth - \@tempcntb\tabcolsep) / \@tempcnta %
+  \@tempcntb=\@tempcnta
+  \def\@tempa{}%
+  \loop\ifnum\@tempcnta>\z@
+    %%%\edef\@tempa{\@tempa S[table-column-width=\the\@tempdimc]}% ???
+    \edef\@tempa{\@tempa r}%
+    \advance\@tempcnta\m@ne
+  \repeat
+  \edef\@tempa{\noexpand\begin{longtable}{@{}\@tempa @{}}}%
+  \expandafter\ks@add\expandafter{\@tempa}%
+  \ks@add{\\\toprule}%
+  \ifx\relax#1\relax\else
+    \ks@add{\multicolumn{\the\@tempcntb}{@{}c@{}}{#1}\\\toprule}%
+  \fi
+  \ks@add{#3}%
+  \ks@add{\bottomrule\end{longtable}}%
+  %\endgroup
+}
+
+\newcommand*\printFirstPage{%
+  \thispagestyle{empty}%
+  \AddToShipoutPicture*{\ks@printFirstPage}%
+  \mbox{}\clearpage
+  \global\let\ks@printFirstPage\@empty
+  \global\let\printFirstPage\@empty
+}
+
+\newcommand*\ks@@foot{}
+
+\newcommand*\printLastPage{%
+  \clearpage
+  \global\let\ks@@foot=\ks@foot@add
+  \ks@lastPage
+}
+
+\newcommand*\printResultTable{%
+  \begingroup
+    \LTleft=\fill \LTright=\fill% Tabelle zentriert
+    \sisetup{%
+      retain-zero-exponent
+    }%
+    \the\ks@tab
+  \endgroup
+}
+
+\newcommand*\ks@applicant@table{%
+  \begingroup
+    \let\ks@tempa=\\%
+    \let\\=\relax
+    \ks@tab{}%
+    \expandafter\@tfor\expandafter\ks@tempb\expandafter
+      :\expandafter=\ks@applicant\do{%
+      \expandafter\edef\expandafter\ks@tempb\expandafter{%
+        \expandafter\trim@spaces\expandafter{\ks@tempb}}%
+      \ifx\ks@tempb\@empty\else
+        \expandafter\ks@add\expandafter{\ks@tempb\tabularnewline}%
+      \fi  
+    }%
+    \let\\=\ks@tempa
+    \extrarowheight=-.1ex %
+    \begin{tabular}[t]{@{}l@{}}%
+      \the\ks@tab
+    \end{tabular}%
+  \endgroup
+}
+
+\AtBeginDocument{
+  \ifdraft{
+    \AddToShipoutPictureBG{%
+      \AtTextCenter{%
+        \makebox(0,0)[c]{\resizebox{\textwidth}{!}{%
+          \rotatebox{54.7}{%
+            \textnormal{\textsf{\textbf{%
+              \color{lightgray}\ks@draftName}}}}}}%
+      }%
+    }%
+  }{%
+    \ifnum\number\ks@missingEntries>0 %
+      \AddToShipoutPictureBG{%
+        \AtTextCenter{%
+          \makebox(0,0)[c]{\resizebox{\textwidth}{!}{%
+            \rotatebox{54.7}{%
+              \textnormal{\textsf{\textbf{%
+                \color{lightgray}Fehler:~\ks@missingEntries}}}}}}%
+        }%
+      }%
+    \fi  
+  }
+}
+
+\RequirePackage[
+% factor=1500
+% ,verbose=true
+,final=true
+% ,letterspace=100
+,babel=true
+]{microtype}
+
+\emergencystretch=1em %
+\pagestyle{scrheadings}
+
+\renewcommand\section{%
+  \@startsection{section}% name
+  {1}% level
+  {\z@}% indent
+  {-3ex \@plus -.5ex \@minus -.2ex}% beforeskip (abs.!)
+  {.6ex \@plus.2ex}%   afterskip
+  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+    \setlength{\parfillskip}{\z@ plus 1fil}\fi
+    \raggedsection\normalfont\sectfont\nobreak\size@section}%
+}
+
+\endinput
+%%
+%% End of file `kailbrierschein.cls'.
+
+sudo cp $(kpsewhich --var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
+
+sudo fc-cache -fsv
+
+mkluatexfontdb --force --verbose=-1 -vvv
+
+
+
+
+
+
+
+
+
-- 
GitLab