diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls | 375 |
1 files changed, 199 insertions, 176 deletions
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls index 692b2712396..3d92b60f213 100644 --- a/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls +++ b/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls @@ -1,4 +1,4 @@ -%% This is file `tudaletter.cls' version 2.11 (2020/06/12), +%% This is file `tudaletter.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudaletter} @@ -35,48 +35,69 @@ \RequirePackage{l3keys2e} -\keys_define:nn {TUDaLetter} { - logo .bool_gset:N = \g_TUDaletter_logo_bool, +\str_const:Nn \c__ptxcd_base_str {letter} +\str_new:N \g_ptxcd_department_str +\bool_new:N \g__ptxcd_adjust_textwidth_bool + +\keys_define:nn {ptxcd/letter} { + logo .bool_gset:N = \g__ptxcd_letter_logo_bool, logo .default:n = true, logo .initial:n = true, - premium .bool_gset:N = \g_TUDaletter_premium_bool, + premium .bool_gset:N = \g__ptxcd_letter_premium_bool, premium .default:n = true, accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors}, - firstpagenumber .bool_gset:N = \g_TUDa_firstpagenumber_bool, + firstpagenumber .bool_gset:N = \g__ptxcd_firstpagenumber_bool, firstpagenumber .initial:n = true, - raggedright .bool_gset:N = \g_TUDa_raggedright_bool, - pdfa .bool_gset:N = \g_TUDa@pdfa_bool, + raggedright .bool_gset:N = \g__ptxcd_letter_raggedright_bool, + pdfa .bool_gset:N = \g_ptxcd_pdfa_bool, pdfa .initial:n = true, - logofile .tl_gset:N = \g_TUDa_logofile_tl, + logofile .tl_gset:N = \g_ptxcd_logofile_tl, logofile .initial:n = tuda_logo, + department .choice:, + department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default}, + department / mecheng .code:n = { + \str_gset:Nn \g_ptxcd_department_str {mecheng} + \keys_set:nn {ptxcd/letter}{departmentlogofile=tuda_maschinenbau_logo,headrule=false,logo=false,textwidth=narrow} + \PassOptionsToPackage{identbar=Primary1,accent=Primary2}{tudacolors} + }, + department .initial:n = default, + mecheng .meta:n = {department=mecheng}, + departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl, + departmentlogofile .initial:n =, + headrule .bool_gset:N = \g__ptxcd_letter_headrule_bool, + headrule .initial:n = true, + headrule .default:n = true, + textwidth .choice:, + textwidth / wide .code:n = \bool_gset_true:N \g__ptxcd_adjust_textwidth_bool, + textwidth / narrow .code:n = \bool_gset_false:N \g__ptxcd_adjust_textwidth_bool, + textwidth .initial:n = wide, } -\ProcessKeysOptions{TUDaLetter} +\ProcessKeysOptions{ptxcd/letter} -\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} +\bool_if:NT \g_ptxcd_pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} \newcommand*{\@fontsizefilebase}{tudalettersize} -\PassOptionsToClass{fontsize=10pt, refline=nodate, parskip=full-,addrfield=topaligned}{scrlttr2} -\LoadClass{scrlttr2} +\PassOptionsToClass{fontsize=10pt,parskip=full-}{scrletter} +\PassOptionsToPackage{refline=nodate,addrfield=topaligned,firstfoot=false,pagenumber=botright}{scrletter} +\LoadClass{scrletter} % Load the TUDa-colorscheme \RequirePackage{tudacolors} -\bool_if:NTF \g_TUDaletter_premium_bool -{ \def\TUDa@premiumcolor{accentcolor} - \def\TUDa@use@premiumcolor{\color{accentcolor}} - \def\TUDa@use@premiumcolor@text{\color{textaccentcolor}} +\bool_if:NTF \g__ptxcd_letter_premium_bool +{ \cs_new:Nn \ptxcd_premiumcolor: {accentcolor} + \cs_new:Nn \ptxcd_use_premiumcolor: {\color{accentcolor}} + \cs_set:Nn \ptxcd_use_premiumcolor_text: {\color{textaccentcolor}} }{ - \def\TUDa@premiumcolor{black} - \let\TUDa@use@premiumcolor\relax - \let\TUDa@use@premiumcolor@text\relax + \cs_new:Nn \ptxcd_premiumcolor: {black} + \let\ptxcd_use_premiumcolor:\relax + \let\ptxcd_use_premiumcolor_text:\relax } - - \RequirePackage{tudafonts} \RequirePackage{graphicx} \RequirePackage{afterpage} @@ -85,77 +106,85 @@ %%%%%Briefbogen %% Spacing: -\dim_const:Nn \c_TuDa_HeadMargin_dim {12.5mm} -\dim_const:Nn \c_TuDa_LeftMargin_dim {24.0mm} -\dim_const:Nn \c_TuDa_RightMargin_dim {\c_TuDa_HeadMargin_dim} -\dim_const:Nn \c_TuDa_BottomMargin_dim {\c_TuDa_LeftMargin_dim} -\dim_const:Nn \c_TuDa_Linewidth_dim {\paperwidth-\c_TuDa_LeftMargin_dim-\c_TuDa_RightMargin_dim} +\dim_const:Nn \c_ptxcd_HeadMargin_dim {12.5mm} +\dim_const:Nn \c_ptxcd_LeftMargin_dim {24.0mm} +\dim_const:Nn \c__ptxcd_firstpage_extraindent_dim {-\paperwidth+120mm +\c_ptxcd_LeftMargin_dim +\c_ptxcd_HeadMargin_dim} +\bool_if:NTF \g__ptxcd_adjust_textwidth_bool + { + \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim} + + }{ + \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim-\c__ptxcd_firstpage_extraindent_dim} + } +\dim_const:Nn \c_ptxcd_BottomMargin_dim {20mm} +\dim_const:Nn \c_ptxcd_Linewidth_dim {\paperwidth-\c_ptxcd_LeftMargin_dim-\c_ptxcd_RightMargin_dim} -\RequirePackage[heightrounded]{geometry} +\RequirePackage{geometry} \geometry{ twoside=false, - left=\c_TuDa_LeftMargin_dim, - right=\c_TuDa_RightMargin_dim, - bottom=20mm, - footskip=3mm, + left=\c_ptxcd_LeftMargin_dim, + right=\c_ptxcd_RightMargin_dim, + bottom=\c_ptxcd_BottomMargin_dim, + footskip=7mm, } -\dim_const:Nn \c_TUDa_textwidth_dim {\textwidth} +\dim_const:Nn \c_ptxcd_textwidth_dim {\textwidth} -\bool_if:NTF \g_TUDaletter_logo_bool { +\bool_if:NTF \g__ptxcd_letter_logo_bool { \geometry{top=64mm} } { \geometry{top=30mm} } -\@setplength{firstheadhpos}{\c_TuDa_HeadMargin_dim} -\@setplength{firstheadvpos}{\c_TuDa_HeadMargin_dim} -\@setplength{firstheadwidth}{\dim_eval:n {\paperwidth - 2\c_TuDa_HeadMargin_dim}} +\@setplength{firstheadhpos}{\c_ptxcd_HeadMargin_dim} +\@setplength{firstheadvpos}{\c_ptxcd_HeadMargin_dim} +\@setplength{firstheadwidth}{\dim_eval:n {\paperwidth - 2\c_ptxcd_HeadMargin_dim}} \@setplength{firstfootvpos}{\dim_eval:n {\paperheight -17mm}} \@setplength{firstfoothpos}{\useplength{firstheadhpos}} \@setplength{firstfootwidth}{\useplength{firstheadwidth}} -\@setplength{toaddrhpos}{\c_TuDa_LeftMargin_dim} +\@setplength{toaddrhpos}{\c_ptxcd_LeftMargin_dim} \@setplength{toaddrvpos}{50mm} \@setplength{backaddrheight}{4mm} \@setplength{toaddrindent}{0mm} -\@setplength{refhpos}{\c_TuDa_LeftMargin_dim} +\@setplength{refhpos}{\c_ptxcd_LeftMargin_dim} \@setplength{refvpos}{106mm} \@setplength{subjectaftervskip}{2\baselineskip} -\@setplength{lochpos}{\c_TuDa_HeadMargin_dim} +\@setplength{lochpos}{\c_ptxcd_HeadMargin_dim} \@setplength{locvpos}{\dimexpr\useplength{refvpos}+\useplength{subjectaftervskip}+1.4\baselineskip\relax} \@setplength{refaftervskip}{0pt} \@setplength{subjectbeforevskip}{0pt} -\@setplength{locwidth}{\dimexpr\paperwidth-154,5mm -\c_TuDa_RightMargin_dim\relax} -\@setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_TuDa_BottomMargin_dim\relax} - - - -\dim_const:Nn \c_TuDa_firstpage_extraindent_dim {-\paperwidth+120mm +\c_TuDa_LeftMargin_dim +\c_TuDa_RightMargin_dim} - +\@setplength{locwidth}{\dimexpr\paperwidth-154,5mm -\c_ptxcd_HeadMargin_dim\relax} +\@setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_ptxcd_BottomMargin_dim\relax} \RequirePackage[paper=a4]{tudarules} - -\TUDa@makeheadrule[width=\useplength{firstheadwidth}, color=\TUDa@premiumcolor]{TuDa@LetterheadRule} -\TUDa@makefootrule[width=\useplength{firstheadwidth}]{TuDa@LetterfootRule} +\bool_if:NTF \g__ptxcd_letter_headrule_bool { + \ptxcd_makeheadrule[width=\useplength{firstheadwidth},color=identbarcolor]{ptxcd_LetterheadRule} +} { + \box_new:N \ptxcd_LetterheadRule_box + \def\ptxcd_LetterheadRule{} +} +\ptxcd_makefootrule[width=\useplength{firstheadwidth}]{ptxcd_LetterfootRule} \box_new:N \g_TUDaLetter_firsthead_box \hbox_gset:Nn \g_TUDaLetter_firsthead_box { - \parbox{\useplength{firstheadwidth}}{ + \parbox[t]{\useplength{firstheadwidth}}{ \raggedleft - \smash{\TuDa@LetterheadRule}\par - \vspace{.5\c_TUDa_logoheight_dim} - \makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}} + \smash{\ptxcd_LetterheadRule} + \par + \vspace{.5\c_ptxcd_logoheight_dim} + \makebox[2.2\c_ptxcd_logoheight_dim][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}} } } +\box_gset_dp:Nn \g_TUDaLetter_firsthead_box {\c_zero_dim} \setkomavar{firsthead}{ \box_use:N \g_TUDaLetter_firsthead_box } @@ -167,21 +196,25 @@ \newkomavar{frominstitution} \newkomavar{frominstitution-en} -\newkomafont{TUDa_location}{\accentfont\normalcolor} +\newkomafont{ptxcd_location}{\accentfont\normalcolor} \setkomafont{fromname}{\small} -\newkomafont{TUDa_frominst}{\small\TUDa@use@premiumcolor@text} +\newkomafont{ptxcd_frominst}{\small\ptxcd_use_premiumcolor_text: } \setkomafont{fromaddress}{\footnotesize} \setkomafont{refname}{} \setkomafont{refvalue}{} +\setkomafont{pageheadfoot}{\footnotesize} \newcommand{\TUD@locfield}{% - \usekomafont{TUDa_location}\usekomafont{fromaddress} + \usekomafont{ptxcd_location}\usekomafont{fromaddress} \setparsizes{\z@}{\z@}{\z@ plus 1fil} \par@updaterelative \begingroup - \usekomafont{TUDa_frominst} + \int_compare:nT {0 < \@pageat <3} { + \ptxcd_letterpagemark:\\[\baselineskip] + } + \usekomafont{ptxcd_frominst} \Ifkomavarempty{frominstitution}{}{% {\usekomavar[\raggedright]{frominstitution}} \\[\baselineskip]}% @@ -206,7 +239,7 @@ \vspace{2\baselineskip} \fi \Ifkomavarempty*{date}{}{\usekomavar*{date}\\\usekomavar{date}} - \seq_use:Nn \g_TUDa_reffields_seq {} + \seq_use:Nn \g__ptxcd_reffields_seq {} \Ifkomavarempty{frombank}{}{\vfill% \Ifkomavarempty*{frombank}{Bankverbindung}{\usekomavar*{frombank}}\\\usekomavar{frombank} } @@ -214,14 +247,14 @@ \setkomavar{location}{\parbox[t][.45\paperheight][t]{\useplength{locwidth}}{\TUD@locfield}} -\tl_const:Nn \TUDa@reffield_separator_tl {\\} +\tl_const:Nn \ptxcd_reffield_separator_tl {\\} -\cs_new:Nn \TUDa@set@reffield:n { +\cs_new:Nn \ptxcd_set_reffield:n { \Ifkomavarempty{#1}{}{% \if@tempswa\\[\baselineskip]\fi \parbox[t]{\linewidth}{\noindent\raggedright \usekomafont{refname} - \usekomavar*{#1}\TUDa@reffield_separator_tl + \usekomavar*{#1}\ptxcd_reffield_separator_tl \usekomafont{refvalue} \usekomavar{#1} }% @@ -231,14 +264,16 @@ -\seq_new:N \g_TUDa_reffields_seq +\seq_new:N \g__ptxcd_reffields_seq \newlength{\TUD@page@free} \newcounter{TUD@page@free@lines} +\dim_new:N \g__ptxcd_page_free_dim +\int_new:N \g__ptxcd_free_lines_int \renewcommand{\opening}[1]{% \widowpenalty=100 \@PapersizeWarning - \seq_gclear:N \g_TUDa_reffields_seq + \seq_gclear:N \g__ptxcd_reffields_seq \renewcommand*{\@set@reffield}[1]{ \typeout{Field: ##1}% \str_if_eq:nnT {##1}{datemarkerfield}{% @@ -247,8 +282,8 @@ \setkomavar{date}{}% } \Ifkomavarempty{##1}{}{% - \seq_gput_right:Nn \g_TUDa_reffields_seq {% - \TUDa@set@reffield:n {##1} + \seq_gput_right:Nn \g__ptxcd_reffields_seq {% + \ptxcd_set_reffield:n {##1} }% }% } @@ -257,7 +292,7 @@ \removereffields \@gen@firsthead \@mkboth{\scr@fromname@var}{\scr@subject@var}% - \thispagestyle{empty}\noindent + \thispagestyle{letter.first}\noindent \Ifkomavarempty{toname}{\setkomavar{toname}{\mbox{}}}{} \@foldmarks\@firstheadfootfield\@addrfield\@locfield \ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi @@ -266,47 +301,43 @@ \ifdim\useplength{subjectvpos}=\z@\if@subjafter\else\@subjfield\fi\fi {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}% {\setlength{\@tempdima}{\baselineskip}% - \addtolength{\@tempdima}{-\parskip}% - \ifdim \@tempdima>\z@\vskip\@tempdima\fi}% + \addtolength{\@tempdima}{-\parskip}% + \ifdim \@tempdima>\z@\vskip\@tempdima\fi}% \ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\fi \setcounter{equation}{0}% \@afterheading% \@nobreaktrue \@afterindentfalse - \everypar{% - \if@nobreak - \@nobreakfalse\clubpenalty\@M - \if@afterindent - \else{\setbox\z@\lastbox} + \bool_if:NT \g__ptxcd_adjust_textwidth_bool { + \everypar{% + \if@nobreak + \@nobreakfalse\clubpenalty\@M + \if@afterindent + \else{\setbox\z@\lastbox} + \fi + \else + \clubpenalty\@clubpenalty \fi - \else - \clubpenalty \@clubpenalty - \fi - %TODO: ifdum < 2 \baselineskip - \ifnum\thepage=1% - \TUD@page@free=-\pagegoal% - \advance\TUD@page@free\pagetotal% - \dim_compare:nTF {-\TUD@page@free>2\baselineskip} - { - \bool_if:NF \g_TUDaletter_logo_bool { - \advance\TUD@page@free-.3\baselineskip - } - \divide\TUD@page@free\baselineskip% - \c@TUD@page@free@lines=\TUD@page@free% - \int_compare:nT {\value{TUD@page@free@lines}<0} { - \hangafter=\value{TUD@page@free@lines}\hangindent=\c_TuDa_firstpage_extraindent_dim% + \ifnum\thepage=1% + \dim_gset:Nn \g__ptxcd_page_free_dim {-\pagegoal + \pagetotal} + \dim_compare:nTF {-\g__ptxcd_page_free_dim>2\baselineskip} + { + \int_gset:Nn \g__ptxcd_free_lines_int {\fp_eval:n {ceil(\g__ptxcd_page_free_dim/\baselineskip)}} + \int_compare:nT {\g__ptxcd_free_lines_int<0} { + \hangafter=\g__ptxcd_free_lines_int\hangindent=\c__ptxcd_firstpage_extraindent_dim% + } + } { + \dim_compare:nT {-\TUD@page@free>\baselineskip} { + \hangafter=-2\hangindent=\c__ptxcd_firstpage_extraindent_dim% } - } { - \dim_compare:nT {-\TUD@page@free>\baselineskip} { - \hangafter=-2\hangindent=\c_TuDa_firstpage_extraindent_dim% } - } - \fi% - }% - \global\setlength{\linewidth}{\dim_eval:n {\c_TuDa_Linewidth_dim + \c_TuDa_firstpage_extraindent_dim}} - \afterpage{ - \global\setlength{\linewidth}{\c_TuDa_Linewidth_dim} - \widowpenalty=10000 + \fi% + }% + \global\setlength{\linewidth}{\dim_eval:n {\c_ptxcd_Linewidth_dim + \c__ptxcd_firstpage_extraindent_dim}} + \afterpage{ + \global\setlength{\linewidth}{\c_ptxcd_Linewidth_dim} + \widowpenalty=10000 + } } } @@ -314,27 +345,26 @@ \raggedbottom% } -\setkomafont{backaddress}{\accentfont\tiny\TUDa@use@premiumcolor@text\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}} -\setkomafont{pagenumber}{\tiny} +\setkomafont{backaddress}{\accentfont\tiny\ptxcd_use_premiumcolor_text:\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}} \raggedbottom -\int_new:N \l_TUDa_letter_lastpage_int -\newcommand*{\TUDa@letterpagemark}{ +\int_new:N \l_ptxcd_letter_lastpage_int +\cs_new:Nn \ptxcd_letterpagemark: { %get lastpage for this letter if not already done \int_compare:nTF {\value{page} = 1} { - \bool_if:NTF \g_TUDa_firstpagenumber_bool + \bool_if:NTF \g__ptxcd_firstpagenumber_bool {\bool_set_true:N \l_tmpa_bool} {\bool_set_false:N \l_tmpa_bool} } {\bool_set_true:N \l_tmpa_bool} \bool_if:NT \l_tmpa_bool { - \int_if_exist:cF {c_TUDa_letter\thisletter _lastpage_int} { + \int_if_exist:cF {c_ptxcd_letter\thisletter _lastpage_int} { \expandafter\ifx\csname r@\thisletter.lastpage\endcsname\relax %warning -> rerun latex - \int_const:cn {c_TUDa_letter\thisletter _lastpage_int} {0} + \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {0} \else - \int_const:cn {c_TUDa_letter\thisletter _lastpage_int} { + \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} { \cs_if_exist:NTF \hypersetup {\exp_args:NNc \expandafter \@secondoffive { r@\thisletter.lastpage}} {\exp_args:NNc \expandafter \use_ii:nn { r@\thisletter.lastpage}} @@ -343,92 +373,84 @@ } \usekomafont{pagenumber}\pagename\nobreakspace\thepage \int_compare:nT { - \int_use:c {c_TUDa_letter\thisletter _lastpage_int} + \int_use:c {c_ptxcd_letter\thisletter _lastpage_int} > 1 - } {/\int_to_arabic:n{\int_use:c {c_TUDa_letter\thisletter _lastpage_int}}} + } {/\int_to_arabic:n{\int_use:c {c_ptxcd_letter\thisletter _lastpage_int}}} } } -\setkomavar{nextfoot}{ - \parbox{\useplength{firstfootwidth}}{\usekomafont{pagefoot} - \raggedleft\TuDa@LetterfootRule\par\TUDa@letterpagemark} -} -\setkomavar{firstfoot}{ - \usekomavar{nextfoot} +\setkomavar{firstfoot}{\usekomavar{nextfoot}} + +\setkomavar{nextfoot}{% + \ifnum\@pageat>2 + \parbox[c]{\layerwidth}{% + \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi + \strut\pagemark% + }% + \fi } -%pagestyle -\RequirePackage{scrlayer} - -\bool_if:NTF \g_TUDaletter_logo_bool { - \DeclareNewLayer[ - background, - align=tl, - hoffset=\useplength{firstheadhpos}, - voffset=\useplength{firstheadvpos}, - width=\box_wd:N \g_TUDaLetter_firsthead_box, - height=\box_ht:N \g_TUDaLetter_firsthead_box, - contents={\box_use:N \g_TUDaLetter_firsthead_box} - ]{letter.head} -}{ - \DeclareNewLayer[ - background, - align=tl, - hoffset=\useplength{firstheadhpos}, - voffset=\useplength{firstheadvpos}, - %TODO: replace leiste logo=? - width=\box_wd:N \TuDa@LetterheadRule_box, - height=\box_ht:N \TuDa@LetterheadRule_box, - contents=\TuDa@LetterheadRule - ]{letter.head} +\cs_set_eq:NN \letterpagemark \ptxcd_letterpagemark: + + +\bool_if:NT \g__ptxcd_letter_headrule_bool { + \bool_if:NTF \g__ptxcd_letter_logo_bool { + \setkomavar{nexthead}{\raisebox{\topskip}{\box_use:N \g_TUDaLetter_firsthead_box}} + }{ + \setkomavar{nexthead}{\raisebox{\depth}{\ptxcd_LetterheadRule}} + } } -\DeclareNewLayer[ - background, - align=tl, - hoffset=\useplength{firstfoothpos}, - voffset=\useplength{firstfootvpos}, - width=\useplength{firstfootwidth}, - height=\baselineskip, - contents={\raisebox{\ht\strutbox}{\parbox[t]{\layerwidth}{\usekomavar{nextfoot}}}} -]{letter.foot} - -\RequirePackage{tikz} -\DeclareNewPageStyleByLayers{TUDaletter}{ - letter.head, letter.foot.rule, letter.foot +\newpairofpagestyles[letter]{TUDaLetter}{ + \exp_args:Nx \KOMAoptions{ + footwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm}, + headwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm}, + footsepline=.5\c_ptxcd_smallrule_dim,plainfootsepline + } + \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.even} + \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.odd} + \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.oneside} + \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.even} + \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.odd} + \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.oneside} + \lehead{\usekomavar{nexthead}}% + \lohead{\usekomavar{nexthead}}% + \lefoot{\usekomavar{nextfoot}}% + \lofoot{\usekomavar{nextfoot}}% } -\DeclarePageStyleAlias{letter}{TUDaletter} -\DeclarePageStyleAlias{plain.letter}{TUDaletter} +\DeclarePageStyleByLayers{TUDaLetter.first}{TUDaLetter.foot.even,TUDaLetter.foot.odd,TUDaLetter.foot.oneside,TUDaLetter.foot.above.line} +\pagestyle{TUDaLetter} -\pagestyle{plain.letter} +\DeclarePageStyleAlias{letter.first}{TUDaLetter.first} +\def\letterpagestyle{TUDaLetter} %pdfa -\if_bool:N \g_TUDa@pdfa_bool +\if_bool:N \g_ptxcd_pdfa_bool \PassOptionsToPackage{a-2b}{pdfx} \RequirePackage{pdfx} %%hyperref \hypersetup{hidelinks, unicode} -\iow_new:N \TUDa@xmpdata_stream -\tl_new:N \g_TUDa@xmp_title -\tl_new:N \g_TUDa@xmp_author +\iow_new:N \ptxcd_xmpdata_stream +\tl_new:N \g_ptxcd_xmp_title +\tl_new:N \g_ptxcd_xmp_author -\cs_new:Nn \TUDa_pass_TitleData: { - \prop_if_empty:NF \g_TUDa_MetaData_prop { - \iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata} +\cs_new:Nn \ptxcd_pass_TitleData: { + \prop_if_empty:NF \g_ptxcd_MetaData_prop { + \iow_open:Nn \ptxcd_xmpdata_stream {\jobname.xmpdata} \begingroup \def\newline{} \def\\{} \let\thanks\use_none:n \cs_set:Npn \and {\exp_not:N \sep} \use:c {pdfx@localcommands} - \prop_map_function:NN \g_TUDa_MetaData_prop \TUDa_write_xmp_line:nn + \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn \endgroup - \iow_close:N \TUDa@xmpdata_stream + \iow_close:N \ptxcd_xmpdata_stream } } -\cs_new:Nn \TUDa_write_xmp_line:nn { +\cs_new:Nn \ptxcd_write_xmp_line:nn { %Fallback test for older kernels \cs_if_exist:NTF \str_uppercase:f { \tl_set:Nx \l_tmpa_tl { @@ -440,24 +462,24 @@ \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}} } \cs_if_exist:cTF {\l_tmpa_tl}{ - \iow_now:Nx \TUDa@xmpdata_stream { + \iow_now:Nx \ptxcd_xmpdata_stream { \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}} } }{ - \msg_error:nnn {TUDapub} {unknown-metadata} {#1} + \msg_error:nnn{tudaletter} {unknown-metadata} {#1} } } -\bool_new:N \g_TUDa_pass_TitleData_bool -\bool_gset_true:N \g_TUDa_pass_TitleData_bool -\prop_new:N \g_TUDa_MetaData_prop +\bool_new:N \g_ptxcd_pass_TitleData_bool +\bool_gset_true:N \g_ptxcd_pass_TitleData_bool +\prop_new:N \g_ptxcd_MetaData_prop \newcommand*{\Metadata}[1]{ - \bool_gset_false:N \g_TUDa_pass_TitleData_bool - \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#1} + \bool_gset_false:N \g_ptxcd_pass_TitleData_bool + \prop_gset_from_keyval:Nn \g_ptxcd_MetaData_prop {#1} } -\msg_new:nnnn {TUDapub} {unknown-metadata} { +\msg_new:nnnn{tudaletter} {unknown-metadata} { You~ used~ the~ #1~ metadata~ entry.\\ I~ don't~ know~ how~ to~ handle~ that.\\ It~ will~ be~ ignored. @@ -486,11 +508,12 @@ \newkomavar{fromfunction} -\bool_if:NT \g_TUDa_raggedright_bool {\AtBeginLetter{\RaggedRight}} +\bool_if:NT \g__ptxcd_letter_raggedright_bool {\AtBeginLetter{\RaggedRight}} %backwards compatibility for KOMA-Script \cs_if_exist:NF \Ifkomavarempty{ \let\Ifkomavarempty\ifkomavarempty } +\file_if_exist_input:n {tuda\g_ptxcd_department_str.cfg} \endinput |