diff --git a/kalibrierschein/PTB-Weitergabe-Logo.pdf b/kalibrierschein/PTB-Weitergabe-Logo.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..320fd79e52fac6a5364788b4e53a67746c49cc25
Binary files /dev/null and b/kalibrierschein/PTB-Weitergabe-Logo.pdf differ
diff --git a/kalibrierschein/kalibrierschein-2019-test.tex b/kalibrierschein/kalibrierschein-2019-test.tex
new file mode 100644
index 0000000000000000000000000000000000000000..33aaf7a4638cff56edd867352165e9e398d3f522
--- /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 0000000000000000000000000000000000000000..9fd5ec445b682dc933e473fa3e38642faab49ae6
--- /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
+
+
+
+
+
+
+
+
+