\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
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}
\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}
\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
\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
\__kivi_PricingTabular_header:
\endhead
\midrule
- \multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite}\\
+ \rlap{\makebox[\textwidth][r]{\weiteraufnaechsterseite}}\\
\endfoot
\bottomrule
\endlastfoot
\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
\renewcommand*{\raggedsignature}{\raggedright}
+\newkomafont{extraDescription}{}
+
\endinput