% Rolf Niepraschk, Rolf.Niepraschk@ptb.de \setcounter{errorcontextlines}{100} \listfiles \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{ptbletter} [2015/05/22 v0.1b PTB-Brief-Klasse (RN)] \let\ptb@tempdima=\@ovxx \let\ptb@tempdimb=\@ovyy \let\ptb@tempdimc=\@ovdx \let\ptb@tempdimd=\@clnwd \let\ptb@tempdime=\@clnht \let\ptb@tempdimf=\@dashdim \newif\ifptb@BLN \ptb@BLNtrue \newif\ifptb@serif \ptb@seriffalse % TODO: BS, BLN, serif, sanserif \DeclareOption{german}{\def\ptb@lang{main=ngerman}} \DeclareOption{ngerman}{\def\ptb@lang{main=ngerman}} \DeclareOption{de}{\def\ptb@lang{main=ngerman}} \DeclareOption{english}{\def\ptb@lang{main=english}} \DeclareOption{en}{\def\ptb@lang{main=english}} \DeclareOption{BS}{\ptb@BLNfalse} \DeclareOption{BLN}{\ptb@BLNtrue} \DeclareOption{sanserif}{\ptb@seriffalse} \DeclareOption{serif}{\ptb@seriftrue} \DeclareOption{visualize}{% \PassOptionsToClass{\CurrentOption}{scrlttr2} \AtEndOfClass{% \showfields{head,address,location,refline,foot}% %\showfields{refline}% \addtokomafont{field}{\color{lightgray}}% \setshowstyle{rule}% %\setshowstyle{edges}% %\setshowstyle{frame}% default } } \DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrlttr2}} \ExecuteOptions{pagesize} \ProcessOptions\relax \LoadClass[% ,fontsize=11pt ,DINmtext ,backaddress=plain ,refline=nodate ,enlargefirstpage ]{scrlttr2} % Texbreite beibehalten, linken Rand anpassen \ptb@tempdima=\textwidth \RequirePackage[verbose,inner=72bp,textwidth=\ptb@tempdima]{geometry} %\textheight=1.1\textheight \RequirePackage{hyphsubst}% Trennregeln austauschen \HyphSubstIfExists{ngerman-x-latest}{% \HyphSubstLet{ngerman}{ngerman-x-latest}}{} \HyphSubstIfExists{german-x-latest}{% \HyphSubstLet{german}{german-x-latest}}{} \RequirePackage{ifxetex,ifluatex,url,array} \newif\ifXeOrLua \XeOrLuafalse \ifxetex\XeOrLuatrue\else\ifluatex\XeOrLuatrue\fi\fi % TODO: Mathematik? \ifXeOrLua% XeLaTeX oder luaLaTeX \RequirePackage{fontspec} \setmainfont{TeX Gyre Pagella}[Ligatures=TeX] \setsansfont{TeX Gyre Heros}[Scale=MatchUppercase,Ligatures=TeX] \setmonofont{AnonymousPro-Regular}[% Extension = .ttf, BoldFont = AnonymousPro-Bold, ItalicFont = AnonymousPro-Italic, BoldItalicFont = AnonymousPro-BoldItalic, Scale = MatchLowercase ] \else \RequirePackage[utf8]{inputenc} \RequirePackage[T1]{fontenc} \RequirePackage{textcomp} \RequirePackage{mathpazo} \RequirePackage{tgpagella} \RequirePackage{tgheros} \RequirePackage[ttdefault=true,scale=1.034]{AnonymousPro} \fi \def\tiny{\@setfontsize\tiny{7}{8.17}} \ifptb@serif \renewcommand*\familydefault{\rmdefault} \else \renewcommand*\familydefault{\sfdefault} \fi %\RequirePackage{etoolbox} %\preto\@classoptionslist{ngerman,} % Ohne Sprachangabe "deutsch" verwenden. Bessere Lösung? \RequirePackage[\ptb@lang]{babel} \RequirePackage{iflang} \IfLanguageName{ngerman}{% \typeout{german} \RequirePackage[babel=once,german=guillemets]{csquotes} \AtEndOfClass{\shorthandon{"}} \defineshorthand{"`}{\openautoquote} \defineshorthand{"'}{\closeautoquote} % \MakeAutoQuote{»}{«} }{% \typeout{english} \RequirePackage[babel=once]{csquotes} } \@setplength{toaddrhpos}{72bp} \@setplength{toaddrvpos}{124bp} %\@setplength{toaddrwidth}{85mm} \@setplength{lochpos}{-354bp}% "-" --> vom linken Blattand aus \@setplength{locvpos}{146bp}% --> vom oberen Blattand aus \@setplength{locwidth}{212bp} \@setplength{locheight}{135bp} %\@setplength{refaftervskip}{75bp} %\@setplength{refhpos}{72bp} \@setplength{refvpos}{304bp} %\@setplength{refwidth}{40mm} \@setplength{refaftervskip}{\z@} \@setplength{firstfoothpos}{72bp} \@setplength{firstfootvpos}{764bp} \@setplength{firstheadwidth}{469bp} \@setplength{firstfootwidth}{\useplength{firstheadwidth}} \footskip= 30bp % \@setplength{subjectaftervskip}{23bp} %\@setplength{refvpos}{1sp} %\@setplength{refhpos}{1sp} %\@setplength{refwidth}{110bp} \removereffields \addtokomafont{addressee}{\sffamily} \setkomafont{refname}{\sffamily\tiny} \setkomafont{refvalue}{\normalfont} \setkomavar{location}{% \extrarowheight=-1bp % \begin{tabular}{@{}>{\usekomafont{refname}}l<{:}@{~\,}>{\usekomafont{refvalue}}l@{}} \usekomavar*{yourref} & \usekomavar{yourref}\\ \usekomavar*{yourmail} & \usekomavar{yourmail}\\ \usekomavar*{myref} & \usekomavar{myref}\\ \usekomavar*{mymail} & \usekomavar{mymail}\\ \multicolumn{2}{@{}l@{}}{} \\ \usekomavar*{handledby} & \usekomavar{handledby}\\ \usekomavar*{myphone} & \usekomavar{myphone}\\ \usekomavar*{myfax} & \usekomavar{myfax}\\ \usekomavar*{fromemail} & \usekomavar{fromemail}\\ \multicolumn{2}{@{}l@{}}{} \\ \usekomavar*{date} & \usekomavar{date} \end{tabular} } \setkomavar{firstfoot}{% TODO: engl/dt \parbox{\useplength{firstfootwidth}}{% \sffamily\tiny \begin{tabular}{@{}l@{}} Hausadresse, Lieferanschrift:\\ \ifptb@BLN Abbestr. 2--12 \else Bundesallee 100 \fi \\ \ifptb@BLN 10587 Berlin \else 38116 Braunschweig\fi \\ DEUTSCHLAND \end{tabular}% \hfill \begin{tabular}{@{}l@{~}l@{}} Telefon: & \ifptb@BLN +49 30 3481-0 \else +49 531 592-0 \fi \\ Telefax: & \ifptb@BLN +49 30 3481-7490 \else +49 531 592-9292 \fi \\ E-Mail: & \ifptb@BLN poststelle\_ib@ptb.de \else poststelle@ptb.de \fi \\ Internet: & http://www.ptb.de \end{tabular}% \hfill \begin{tabular}{@{}l@{~}l@{}} \multicolumn{2}{@{}l@{}}{Deutsche Bundesbank, Filiale Leipzig} \\ IBAN: & DE38 8600 0000 0086 0010 40 \\ BIC: & MARKDEF1860 \\ VAT-Nr.: & DE 811 240 952 \end{tabular}% \hfill \begin{tabular}{@{}l@{}} \ifptb@BLN PTB Braunschweig \else PTB Berlin-Charlottenburg \fi \\ \ifptb@BLN Bundesallee 100 \else Abbestr. 2--12 \fi \\ \ifptb@BLN 38116 Braunschweig \else 10587 Berlin \fi \\ DEUTSCHLAND \end{tabular}% \hfill \mbox{} }% } \setkomavar{backaddressseparator}{\,\,\textbullet\,\,} \ifptb@BLN \setkomavar{backaddress}{PTB\\Abbestr. 2--12\\10587 Berlin} \else \setkomavar{backaddress}{PTB\\Postfach 33 45\\38023 Braunschweig} \fi \newcommand*\handledby[1]{\setkomavar{handledby}{#1}} \newcommand*\myref[1]{\setkomavar{myref}{#1}} \newcommand*\mymail[1]{\setkomavar{mymail}{#1}} \newcommand*\myphone[1]{\setkomavar{myphone}{#1}} \newcommand*\myfax[1]{\setkomavar{myfax}{#1}} \newcommand*\myemail[1]{\setkomavar{fromemail}{#1}} \newcommand*\yourref[1]{\setkomavar{yourref}{#1}} \newcommand*\yourmail[1]{\setkomavar{yourmail}{#1}} \newcommand*\backaddress[1]{\setkomavar{backaddress}{#1}} \newcommand*\subject[1]{\setkomavar{subject}{#1}} \renewcommand*\date[1]{\setkomavar{date}{#1}} \newkomavar[\mymailname]{mymail} \newkomavar[\myphonename]{myphone} \newkomavar[\myfaxname]{myfax} \newkomavar[\handledbyname]{handledby} \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\yourrefname{Your reference}% \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\yourmailname{My letter of}% \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\myrefname{My reference}% \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\myphonename{Telephone}% \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\myfaxname{Fax}% \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\emailname{E-mail}% \defcaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\handledbyname{Handled by}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\yourmailname{Ihre Nachricht vom}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\myrefname{Mein Zeichen}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\mymailname{Meine Nachricht vom}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\myphonename{Telefondurchwahl}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\myfaxname{Telefaxdurchwahl}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\handledbyname{Bearbeitet von}% \defcaptionname{german,ngerman,austrian,naustrian,% swissgerman,nswissgerman}\enclname{Anlagen}% \AtBeginDocument{% \RequirePackage{paralist} \newcommand*\ptb@begin@list[1]{% %\ptb@tempdima=\parindent %\ptb@tempdimb=\parskip \@nameuse{#1}% %\parindent=\ptb@tempdima %\parskip=\ptb@tempdimb } \def\enumerate{% \ptb@begin@list{compactenum}% } \def\itemize{% \ptb@begin@list{compactitem}% } \def\description{% \ptb@begin@list{compactdesc}% } \let\enditemize\endcompactitem \let\endenumerate\endcompactenum \let\enddescription\endcompactdesc \pltopsep=\medskipamount \plitemsep=\medskipamount \setlength\leftmargini{1.5em} \setlength\leftmarginii{1.1em} \setlength\leftmarginiii{1.1em} \setlength\leftmarginiv{1.1em} \setlength\labelsep{.5em} \ifxetex\else \RequirePackage[% ,factor=1500 ,protrusion=true ,expansion=true ,verbose=true ,final=true ,letterspace=100 ,babel=true ]{microtype} \fi } \newcommand*\MFG{Mit freundlichen Gr\"u\ss en} \newcommand*\MHG{Mit herzlichen Gr\"u\ss en} \endinput