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