marei: cleanup scrlayers
[kivitendo-erp.git] / templates / print / marei / kiviletter.sty
index 75d4652..829b83a 100644 (file)
@@ -50,7 +50,6 @@
 \dim_new:N \g_kivi_margin_dim
 \dim_gset:Nn \g_kivi_margin_dim {\useplength{toaddrhpos}}
 \geometry{a4paper,margin=\g_kivi_margin_dim,heightrounded}
-\savegeometry{kivi.letter@default}
 %Scratch variables
 \int_new:N \l_kivi_tmp_int
 \bool_new:N \l_kivi_tmp_bool
@@ -68,25 +67,14 @@ voffset=\dimexpr\useplength{toaddrvpos}+\useplength{toaddrheight}+4\baselineskip
 contents={\usebox\shippingAddressBox}
 ]{kivitendo.shippingaddress}
 
-
-\ExplSyntaxOn
-\AtBeginLetter{\dim_gset:Nn \g_kivi_orig@textheight_dim {\textheight}}
-\ExplSyntaxOff
-
 \newpairofpagestyles{kivitendo.letter}{}
+
 \renewcommand*{\letterpagestyle}{kivitendo.letter}
 
-\DeclareNewPageStyleByLayers{kivitendo.letter.PricingTable}{
-       kivitendo.TableHead,
-       kivitendo.TableFoot
-       kivitendo.letter.head.odd,kivitendo.letter.head.even,kivitendo.letter.head.oneside,%
-       kivitendo.letter.foot.odd,kivitendo.letter.foot.even,kivitendo.letter.foot.oneside,%
-}
 \DeclareNewPageStyleByLayers{kivitendo.letter.first}{
        kivitendo.shippingaddress,
-       kivitendo.TableFoot,
-       kivitendo.letter.head.odd,kivitendo.letter.head.even,kivitendo.letter.head.oneside,%
-       kivitendo.letter.foot.odd,kivitendo.letter.foot.even,kivitendo.letter.foot.oneside,%
+       plain.kivitendo.letter.head.odd,plain.kivitendo.letter.head.even,plain.kivitendo.letter.head.oneside,%
+       plain.kivitendo.letter.foot.odd,plain.kivitendo.letter.foot.even,plain.kivitendo.letter.foot.oneside,%
 }
 
 \setkomavar{backaddress}{\firma\ $\cdot$ \strasse\ $\cdot$ \ort}
@@ -243,6 +231,8 @@ contents={\usebox\shippingAddressBox}
        \seq_set_split:Nnn \l_kivi_PricingTable_seq {\tabularnewline} {#1}
        \seq_remove_all:Nn \l_kivi_PricingTable_seq {}
        \begingroup
+       \setlength{\parskip}{\c_zero_dim}
+       \let\ExtraDescription\__kivi_addExtraDescription:n
        \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
        \seq_map_inline:Nn \l_kivi_PricingTable_seq {
                \seq_set_split:Nnn  \l_kivi_columns_seq {&} {##1}
@@ -256,10 +246,11 @@ contents={\usebox\shippingAddressBox}
        \endtabular
        \seq_if_empty:NTF \g_kivi_extraDescription_seq
        {\par}
-       {\par
+       {\par\nopagebreak
        \begingroup
        \setlength{\hsize}{\dimexpr\l_kivi_tab_desc_dim+\l_kivi_tab_desc_leftskip_dim}
        \setlength{\leftskip}{\l_kivi_tab_desc_leftskip_dim}
+       \usekomafont{extraDescription}
        \seq_use:Nn \g_kivi_extraDescription_seq {\\}
        \par\nointerlineskip
        \endgroup
@@ -338,7 +329,13 @@ contents={\usebox\shippingAddressBox}
        \endtabular
 }
 
-\newcommand{\ExtraDescription}[1]{\seq_gput_right:Nn \g_kivi_extraDescription_seq {#1}}
+
+\newcommand*\ExtraDescription{
+       \PackageError{kiviletter}{The~command~\string\ExtraDescription\space~may~be~only~used~inside~the~\string\FakeTable\space~environment.}{See~documentation~for~details}
+}
+
+
+\cs_new:Nn \__kivi_addExtraDescription:n {\seq_gput_right:Nn \g_kivi_extraDescription_seq {#1}}
 
 \newenvironment{PricingTabular}[1][]{
        \begingroup
@@ -350,7 +347,7 @@ contents={\usebox\shippingAddressBox}
        \__kivi_PricingTabular_header:
        \endhead
        \midrule
-       \multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite}\\
+       \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
        \endfoot
        \bottomrule
        \endlastfoot
@@ -378,16 +375,26 @@ contents={\usebox\shippingAddressBox}
 
 \RequirePackage{xltabular}
 
+\keys_define:nn {kivi/SimpleTabular} {
+       colspec .tl_set:N =\l_kivi_SimpleTabular_colspec_tl,
+       colspec .initial:n = {rrX},
+       headline .tl_set:N = \l_kivi_SimpleTabular_headline_tl,
+       headline .initial:n = {\bfseries\position & \bfseries\menge & \bfseries\bezeichnung},
+}
 
-\newenvironment{SimpleTabular}[1][\bfseries\position & \bfseries\menge & \bfseries\bezeichnung]
+\newenvironment{SimpleTabular}[1][]
 {
+       \tl_if_in:nnTF {#1} {=} {\keys_set:nn {kivi/SimpleTabular} {#1}} {\tl_if_empty:nF {#1} {\tl_set:Nn \l_kivi_SimpleTabular_headline_tl {#1}}}
        \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
-       \xltabular{\linewidth}{@{}rrX@{}}
+       \tl_put_right:Nn \l_kivi_SimpleTabular_colspec_tl {@{}}
+       \tl_put_left:Nn \l_kivi_SimpleTabular_colspec_tl {@{}}
+       \exp_args:NnV \xltabular{\linewidth}\l_kivi_SimpleTabular_colspec_tl
        \toprule
-       #1\\
-       \midrule\\\endhead
+       \l_kivi_SimpleTabular_headline_tl\\
        \midrule
-       \multicolumn{3}{@{}>{\raggedright}p{\linewidth}@{}}{\weiteraufnaechsterseite}\\
+       \endhead
+       \midrule
+       \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
        \endfoot
        \bottomrule
        \endlastfoot
@@ -457,4 +464,6 @@ contents={\usebox\shippingAddressBox}
 
 \renewcommand*{\raggedsignature}{\raggedright}
 
+\newkomafont{extraDescription}{}
+
 \endinput