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 + + + + + + + + +