Rechnungen schreiben mit KOMA-Script
Ich habe lange nach einer flexiblen Lösung für Rechnungen gesucht und mir dabei folgende Lösung gestrickt, die ich hier vorstellen möchte:
\documentclass[parskip=half]{scrlttr2}
%Spracheinstellungen
\usepackage{polyglossia}
\setdefaultlanguage[spelling = new]{german}
\usepackage{blindtext, xltxtra} %The xltxtra-package automatically loads the following packages: fixltx2e, metalogo, xunicode, fontspec
% zum Rechnen in Tabellen
\usepackage{fp, xstring, spreadtab, numprint}
% Um das Euro-Symbol typografisch korrekt auszugeben und es rechts vom Betrag zu stellen, wird das Paket eurosym mit der Option [right] geladen
\usepackage[right]{eurosym}
%Mit den folgenden Optionen wird bei der PDF-Ausgabe des LaTeX-Dokuments der englische Dezimalpunkt als Dezimalkomma ausgegeben.
\STsetdecimalsep{,} % Werte müssen weiterhin mit Punkt geschrieben sein, Ausgabe erfolgt mit Komma
\STautoround*{2} % auf 2 Ziffern runden
% Jetzt werden die Variablen definiert, die durch den Befehl \usekomavar expandiert werden können. Aber innerhalb der Umgebung spreadtab funktioniert das in der Tabelle für Berechnungen nicht. Dank der dante-Mailingliste muss einfach nur eine weitere Variable angelegt werden, in der das Token bereits expandiert gespeichert werden kann. Das erfolgt durch den Befehl \usekomavar[\def\nstundensatz]{stundensatz}. Der Inhalte der Variablen "stundensatz" kann also mit \usekomavar{stundensatz} oder mit \nstundensatz ausgegeben werden.
\newkomavar{leistung}
\setkomavar{leistung}{September}
\newkomavar{stunden}
\setkomavar{stunden}{67.89}
\usekomavar[\def\nstunden]{stunden}
\newkomavar{stundensatz}
\setkomavar{stundensatz}{12.34}
\usekomavar[\def\nstundensatz]{stundensatz}
\newkomavar{mwst}
\setkomavar{mwst}{19}
\usekomavar[\def\nmwst]{mwst}
\setkomavar{invoice}{xxyyzz-2013}
\newkomavar{bank} \setkomavar{bank}{Meine Bank\\BLZ 123 456 78\\Kontonummer 123 456 789 00}
%Nun der eigentliche Brief - die Rechnung:
\begin{document}
\begin{letter}{Firma Freundlich\\Rechnugstraße 12\\45678 Ortsname}
\opening{Sehr geehrte Damen und Herren,}
Wir erbrachten im Monat \usekomavar{leistung} folgende Leistungen:
% Hier nun die rechnende Tabelle (Die Option [\STsavecell\gesamtsumme{c3}]) speichert das Endergebnis (Zelle c3 der Tabelle), um das Ergebnis auch außerhalb der Tabelle verwenden zu können):
% Die Zahlwerte werden in :={Variable oder Zahlwert} gesetzt; so kann "spreadtab" zwischen Text und Zahlwerten unterscheiden. Bleibt :={} leer, wird das als leerer Zahlwert (0) verstanden, der jedoch nicht ausgegeben wird.
\begin{spreadtab}[\STsavecell\gesamtsumme{c3}]{{tabular}{p{55mm}p{41mm}r}}
:={\nstunden} Stunden für dies und das & à \EUR{:={\nstundensatz}} & \EUR{\numprint{:={a1*b1}}}\\
:={} & zuzüglich :={}19\,\% USt. & \EUR{\numprint{:={\nmwst*(c1)/100}}}\\
:={} & :={}Summe & \EUR{\numprint{:={c1+c2}}}\\
\end{spreadtab}
Bitte überweisen Sie den Rechnungsbetrag von \EUR{\numprint{\gesamtsumme}} unter Angabe der Rechnungsnummer \usekomavar{invoice} auf das Konto:
\usekomavar{bank}
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}
Für Anregungen und Kritik jetzt schon vielen Dank!