dfa224cc4c85ad2e6ff59ab7f34dc64b83e3d9f2
[kivitendo-erp.git] / kiviletter.sty
1 \NeedsTeXFormat{LaTeX2e}
2 \ProvidesPackage{kiviletter}[2019/10/10 Letter Layouts for Kivitendo]
3
4 \usepackage{iftex}
5 % Schriftart, Eingabelayout der Tastatur
6 \ifPDFTeX
7 \RequirePackage[utf8]{inputenc}% Nur notwendig, wenn Basis älter als TL2018
8 \RequirePackage[T1]{fontenc}
9 \else
10 \RequirePackage{fontspec}
11 \fi
12
13 \RequirePackage{xltabular}
14 \RequirePackage{booktabs}
15 \PassOptionsToPackage{table}{xcolor}
16
17 \RequirePackage{xcolor}
18 \RequirePackage{graphicx}
19
20 \ifPDFTeX
21 \RequirePackage{eurosym}
22 \DeclareUnicodeCharacter{20AC}{\euro}
23 \fi
24
25 \RequirePackage[fromlogo,fromalign=right]{scrletter}
26 \LoadLetterOption{DIN}
27
28 \ExplSyntaxOn
29 %Scratch variables
30 \int_new:N \l_kivi_tmp_int
31 \bool_new:N \l_kivi_tmp_bool
32 \ExplSyntaxOff
33
34 \newsavebox{\shippingAddressBox}
35
36
37 \DeclareNewLayer[
38 foreground,
39 hoffset=\useplength{toaddrhpos},
40 voffset=\dimexpr\useplength{toaddrvpos}+\useplength{toaddrheight}+\baselineskip,
41 contents={\usebox\shippingAddressBox}
42 ]{kivitendo.shippingaddress}
43 \DeclareNewPageStyleByLayers{kivitendo.letter.first}{kivitendo.shippingaddress}
44
45 \setkomavar{backaddress}{\firma\ $\cdot$ \strasse\ $\cdot$ \ort}
46 \@setplength{locwidth}{6cm}
47
48 \ExplSyntaxOn
49 \dim_new:N \g_kivi_tab_pos_dim
50 \dim_gset:Nn \g_kivi_tab_pos_dim {3.5ex}
51 \dim_new:N \g_kivi_tab_id_dim
52 \dim_gset:Nn \g_kivi_tab_id_dim {4em}
53 \dim_new:N \g_kivi_tab_num_dim
54 \dim_gset:Nn \g_kivi_tab_num_dim {4em}
55 \dim_new:N \g_kivi_tab_price_dim
56 \dim_gset:Nn \g_kivi_tab_price_dim {4em}
57 \dim_new:N \g_kivi_tab_desc_dim
58
59 \dim_new:N \g_kivi_tabcolsep_dim
60 \dim_gset:Nn \g_kivi_tabcolsep_dim {.5\tabcolsep}
61 \newcommand*{\CalcTabCols}{
62         \dim_gset:Nn \g_kivi_tab_desc_dim {\textwidth-\g_kivi_tab_pos_dim -\g_kivi_tab_id_dim-\g_kivi_tab_num_dim - 2\g_kivi_tab_price_dim - 10\g_kivi_tabcolsep_dim}
63 }
64
65 \newcolumntype{P}{>{\arraybackslash}p{\g_kivi_tab_price_dim}}
66
67 \newenvironment{PricingTabular}{
68         \begingroup
69         \setlength{\tabcolsep}{\g_kivi_tabcolsep_dim}
70         \CalcTabCols
71         \longtable{@{}p{\g_kivi_tab_pos_dim}p{\g_kivi_tab_id_dim}p{\g_kivi_tab_desc_dim}>{\raggedleft\arraybackslash}p{\g_kivi_tab_num_dim}*2{P<{\,\currency}}@{}}
72         % Tabellenkopf
73         \toprule
74         \bfseries\position & \bfseries\artikelnummer & \bfseries\bezeichnung & \bfseries\menge &\multicolumn{1}{P}{\bfseries\einzelpreis}&\multicolumn{1}{P}{\bfseries\gesamtpreis}\\
75         \midrule
76         \endhead
77         \midrule
78         \multicolumn{6}{@{}r@{}}{\weiteraufnaechsterseite}\\
79         \endfoot
80 }{
81         \endlongtable
82         \endgroup
83 }
84
85 \ExplSyntaxOff
86
87 \renewcommand*{\raggedsignature}{\raggedright}
88
89 \endinput