Skip to content
Snippets Groups Projects
kalibrierschein.cls 12.13 KiB

\setcounter{errorcontextlines}{100}
\newcommand*\ks@location{Berlin}
\newcommand*\ks@kalType{KK}
\newcommand*\ks@layout{-0000}
\newcommand*\ks@LANG{0}
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{kalibrierschein}
  [2015/02/19 v0.1t 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{ngerman}{\def\ks@LANG{0}}
\DeclareOption{german}{\def\ks@LANG{0}}
\DeclareOption{english}{\def\ks@LANG{1}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
\ProcessOptions\relax
\PassOptionsToPackage{paper=a4,pagesize,twoside=false,headinclude}{typearea}

% Wegen bug in fontspec v2.4a
\RequirePackage{fixltx2e}

\LoadClass[%
,fontsize=11pt
,headings=small
,numbers=enddot
,parskip=half
]{scrartcl}

%\RequirePackage{showframe}

\ifcase\ks@LANG
  \RequirePackage[english,ngerman]{babel}
  \AtBeginDocument{\sisetup{locale=DE}}
\or
  \RequirePackage[ngerman,english]{babel}
  \AtBeginDocument{\sisetup{locale=US}}
\or
% ...
\fi

\def\huge{\@setfontsize\huge{20.26}{25.3}}
\def\large{\@setfontsize\large{12.17}{14.2}}
\def\tiny{\@setfontsize\tiny\@viipt\@viiipt}

\raggedbottom% ???


\RequirePackage{textcomp}
%%%\RequirePackage[standard-baselineskips]{cmbright}
%%%\RequirePackage[math]{iwona}
%%%\RequirePackage[math]{kurier}
%%%\RequirePackage{lxfonts}
% 1 %\RequirePackage{arevmath}



%\let\celsius=\relax \let\ohm=\relax
%\RequirePackage{gensymb}



%%%\RequirePackage[T1,small]{eulervm}

%%%\RequirePackage{ziffer}

\RequirePackage{tabularx}
\let\ks@TX@endtabularx=\TX@endtabularx
\newcommand*\origTabularx{%
  \let\TX@endtabularx=\ks@TX@endtabularx
}
\RequirePackage{ltablex}\keepXColumns{}
\setcounter{LTchunksize}{100}

\RequirePackage{eso-pic,graphicx,booktabs}
\RequirePackage{zref-totpages}

%%%\RequirePackage{babel}
\RequirePackage{gensymb} %% ???
\let\ks@celsius=\celsius
\let\celsius=\relax
\let\ohm=\relax
\RequirePackage{siunitx}
\let\celsius=\ks@celsius

\iffalse
\AtBeginDocument{%
  \RequirePackage[babel=once,german=guillemets]{csquotes}
  \defineshorthand{"`}{\openautoquote}
  \defineshorthand{"'}{\closeautoquote}
}
\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}
\RequirePackage[manualmark]{scrpage2}

\let\@tempdimd=\@clnwd
\let\@tempdime=\@clnht
\let\@tempdimf=\@dashdim

\newtoks\ks@tab
\newcommand*\ks@colSpec{}

\newcommand*\ks@add[1]{%
  \ks@tab\expandafter{\the\ks@tab#1}%
}

\newcommand*\ks@addTabLineX[1]{%
  \def\@tempc{}%
  \@for\@tempa:=#1\do{%
    \edef\@tempb{\the\ks@tab\@tempc\noexpand\smash{%
      \noexpand\parbox[t]{\hsize}{\noexpand\raggedright\@tempa}}}%
    \ks@tab\expandafter{\@tempb}%
    \def\@tempc{&}%
  }%
}

\newcommand*\ks@addTabLine[1]{%
  \def\@tempc{}%
  \@for\@tempa:=#1\do{%
    \edef\@tempb{\the\ks@tab\@tempc\@tempa}%
    \ks@tab\expandafter{\@tempb}%
    \def\@tempc{&}%
  }%
}

\newcommand*\ks@getColSpec[2]{%
  \let#2=\@empty
  \@for\@tempa:=#1\do{%
    \edef#2{#2l}%
  }%
  \ifx\ks@colSpec\@empty
    \def#2{l}%
  \fi
}

\newcommand*\ks@printTabLines[2]{%
  \typeout{#1,#2}%
  \ks@tab{}%
  \ks@getColSpec{\ks@type}{\ks@colSpec}%
  \edef\@tempa{\noexpand\begin{tabularx}{#1}[t]{@{}\ks@colSpec @{}}}%
  \ks@tab\expandafter{\@tempa}%
  \ks@addTabLine{\ks@type}%
  \ks@add{\tabularnewline[#2]}%
  \ks@addTabLine{\ks@serialNo}%
  \ks@add{\end{tabularx}}%
  \begingroup
    \tabcolsep=1em %
    \origTabularx
    \the\ks@tab
  \endgroup
}

\defpagestyle{headings}%
{%        Kopf
  %(OLL,OLD)% Linie
  {\pagemark\hfill}% Gerade Seiten
  {\hfill\pagemark}% Ungerade Seiten
  {% Einseitig
    \ks@head
  }
  %(\textwidth,.8pt)% Linie
}%
{%        Fuss
  %(OLL,OLD)% Linie
  {}% Gerade Seiten
  {}% Ungerade Seiten
  {% Einseitig
    \ks@foot
  }
  %(ULL,ULD)% Linie
}

\newcommand*\ks@foot{}

\input{\ks@kalType\ks@layout.clo}% Titelseiten- und Layout-Definition

\RequirePackage{trimspaces}

\newcommand*\ks@type{%
  \{Typ des Ger\"ates\}}
\newcommand*\type[1]{\xdef\ks@type{\trim@spaces{#1}}}

\newcommand*\ks@manufacturer{%
  \{Name des Herstellers, Auftraggebers\}}
\newcommand*\manufacturer[1]{\xdef\ks@manufacturer{\trim@spaces{#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]{\xdef\ks@applicant{\trim@spaces{#1}}}
\newcommand*\ks@serialNo{%
  \{Nummer des untersuchten Ger\"ates, Normals, Pr\"aparats\}}
\newcommand*\serialNo[1]{\xdef\ks@serialNo{\trim@spaces{#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}

\newcommand*\ks@resultTable{%
\begin{tabularx}{\textwidth}{CCC}
  aaaaaaaa & aaaaaaaa & aaaaaaaa \\
  $p$      & $p$      & $p$      \\ \toprule
  00000000 & 00000000 & 00000000 \\
  00000000 & 00000000 & 00000000 \\
  00000000 & 00000000 & 00000000 \\
  00000000 & 00000000 & 00000000 \\
  00000000 & 00000000 & 00000000
\end{tabularx}
}

%%%\AtBeginDocument{%
\sisetup{%
  %%%,exponent-product = \ensuremath { \cdot }  % wird per "locale" gesetzt
  %,output-exponent-marker=\text{E}
  ,table-alignment = center
  %%%,table-number-alignment = center
  %%%,table-text-alignment = center
  ,table-align-exponent = false
  ,table-parse-only = true % ?!
  %,parse-numbers = false
  ,table-format = +1.3e+1
  %%%,table-figures-integer = 1
  %%%,table-figures-decimal = 3
  %%%,table-figures-exponent = 2
  %%%,input-uncertainty-signs = +-
  %%%,output-open-uncertainty =
  %%%,output-close-uncertainty =
  ,separate-uncertainty = true
  ,bracket-numbers = true
}%
%%%}

\newcommand\resultTable[2]{%
  \ks@tab{}%
  \@tempcnta=#1 %
  \@tempcntb=\numexpr(\@tempcnta-1)*2 %
  \@tempdimc=\dimexpr (\textwidth - \@tempcntb\tabcolsep) / \@tempcnta %
  \loop\ifnum\@tempcnta>\z@
    \ks@add{S[table-column-width=\@tempdimc]}%
    \advance\@tempcnta\m@ne
  \repeat %         Evtl. direkt longtable?
  \edef\@tempa{\noexpand\begin{longtable}{@{}\the\ks@tab @{}}}%
  \ks@tab\expandafter{\@tempa}%
  \ks@add{#2}%
  \ks@add{\end{longtable}}%
  \edef\ks@resultTable{\the\ks@tab}%
}

\newcommand*\printFirstPage{%
  \thispagestyle{empty}%
  \AddToShipoutPicture*{\ks@printFirstPage}%
  \mbox{}\clearpage
  \global\let\ks@printFirstPage\@empty
  \global\let\printFirstPage\@empty
}

\newcommand*\printLastPage{%
  \clearpage
  \global\let\ks@foot=\ks@@foot
  \ks@lastPage
}

\newcommand*\printResultTable{%
  \ks@resultTable
}

\newcommand*\ks@applicant@table{%
  \begingroup
    \begin{tabular}[t]{@{}l@{}}%
    \expandafter\@tfor\expandafter\reserved@b\expandafter
      :\expandafter=\ks@applicant\do{%
      \ignorespaces\reserved@b\\[.3ex]%
    }%
    \end{tabular}%
  \endgroup
}

\AtBeginDocument{%
  \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{url}
\DeclareUrlCommand\ks@@shielded{\urlstyle{same}}
\newcommand*\ks@shielded[1]{%
  \expandafter\ks@@shielded\expandafter{#1}%
}

\RequirePackage{ifxetex,ifluatex}
\newif\ifXeOrLua \XeOrLuafalse
\ifxetex\XeOrLuatrue\else\ifluatex\XeOrLuatrue\fi\fi

\RequirePackage[
% factor=1500
% ,verbose=true
,final=true
% ,letterspace=100
,babel=true
]{microtype}
\RequirePackage{amsmath}

\ifXeOrLua% XeLaTeX oder luaLaTeX

\typeout{############################ XeLaTeX oder luaLaTeX}

\iffalse

\RequirePackage[no-math]{fontspec}
\RequirePackage{hvmath-qhv}
\setmainfont{TeXGyreHeros}
\setmainfont[Ligatures=TeX]{TeXGyreHeros}
\setsansfont[Ligatures=TeX]{TeXGyreHeros}
\iffalse
\setmonofont[Scale=MatchLowercase]{Latin Modern Mono}
\else % wegen derzeitigem Problem (2014/06/25)
\setmonofont{Latin Modern Mono}
\fi

\else

\RequirePackage[no-math]{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Heros}
\setsansfont[Ligatures=TeX]{TeX Gyre Heros}
\RequirePackage{unicode-math}


%\setmathfont[math-style=ISO,bold-style=ISO]{XITS Math}
\setmathfont[math-style=ISO,bold-style=ISO]{Asana Math}
%\setmathfont[math-style=ISO,bold-style=ISO]{Latin Modern Math}
%\setmathfont[math-style=ISO,bold-style=ISO]{TeX Gyre Pagella Math}
%\setmathfont[math-style=ISO,bold-style=ISO]{TeX Gyre Termes Math}

\iftrue %
\setmathfont[range=\mathup,Scale=MatchLowercase]{TeXGyreHeros-Regular}
\setmathfont[range=\mathit,Scale=MatchLowercase]{TeXGyreHeros-Italic}
\setmathfont[range=\mathbfup,Scale=MatchLowercase]{TeXGyreHeros-Bold}
\setmathfont[range=\mathbfit,Scale=MatchLowercase]{TeXGyreHeros-BoldItalic}
\setmathfont[range=\mathsfup,Scale=MatchLowercase]{TeXGyreHeros-Regular}
\setmathfont[range=\mathsfit,Scale=MatchLowercase]{TeXGyreHeros-Italic}
\setmathfont[range=\mathbfsfup,Scale=MatchLowercase]{TeXGyreHeros-Bold}
\setmathfont[range=\mathbfsfit,Scale=MatchLowercase]{TeXGyreHeros-BoldItalic}
\setmathfont[range=\mathpunct]{TeXGyreHeros-Regular}
\else
\setmathfont[range=\mathup]{TeXGyreHeros-Regular}
\setmathfont[range=\mathit]{TeXGyreHeros-Italic}
\setmathfont[range=\mathbfup]{TeXGyreHeros-Bold}
\setmathfont[range=\mathbfit]{TeXGyreHeros-BoldItalic}
\setmathfont[range=\mathsfup]{TeXGyreHeros-Regular}
\setmathfont[range=\mathsfit]{TeXGyreHeros-Italic}
\setmathfont[range=\mathbfsfup]{TeXGyreHeros-Bold}
\setmathfont[range=\mathbfsfit]{TeXGyreHeros-BoldItalic}
\setmathfont[range=\mathpunct]{TeXGyreHeros-Regular}
\fi

\newcommand*\XXX[3]{%
  \def\x{"5e"5e}%
  %\edef\y{\detokenize\x\x#1#2}
  \expandafter\newunicodechar\expandafter{\detokenize\x\x#1#2}{#3}%
}

\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

\fi

\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

\emergencystretch=1em %
\pagestyle{headings}

\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