From ff43040e2e20bf07ad6edd8ceee4e80e5fd6ed40 Mon Sep 17 00:00:00 2001 From: Tom Kazimiers Date: Sat, 13 Mar 2010 18:59:38 +0100 Subject: [PATCH] Initial commit with all needed files --- INSTALL | 21 ++ Makefile | 117 ++++++ kurzref.txt | 54 +++ rechnung.dtx | 980 +++++++++++++++++++++++++++++++++++++++++++++++++++ rechnung.ins | 31 ++ 5 files changed, 1203 insertions(+) create mode 100644 INSTALL create mode 100644 Makefile create mode 100644 kurzref.txt create mode 100644 rechnung.dtx create mode 100644 rechnung.ins diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..4238baf --- /dev/null +++ b/INSTALL @@ -0,0 +1,21 @@ + +Als erstes das Paket auspacken. Das haben sie sehr warscheinlich schon +geschafft wenn Sie diese Installationsanleitung lesen. Das Paket enthält: + +INSTALL Diese Anleitung +rechnung.ins +rechnung.dtx + +Zuerst rechnung.sty erzeugen: + + latex rechnung.ins + +Dann die Dokumentation: + + latex rechnung.dtx + +rechnung.sty muß in den Pfad von LaTeX 2e z.B. nach + +.../tex/latex/bmg/ + +Dieser Pfad kann aber je nach System variieren. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..db2080b --- /dev/null +++ b/Makefile @@ -0,0 +1,117 @@ +# Makefile :-- install rechnung. +# Copyright (C) 2010 Tom Kazimiers (tom AT voodoo-arts.net) +# Based on the Makefile of emp latex package by Thorsten Ohl +# (Thorsten.Ohl@Physik.TH-Darmstadt.de) +# +# Rechnung is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# Rechnung is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# $Id: Makefile,v 1.0 2010/02/25 21:14:41 kazimiers Exp $ +# +######################################################################## + +VERSION = 1 +RELEASE = 00 +STATUS = + +######################################################################## + +# Directories +prefix = $(HOME) +texdir = $(prefix)/tex/inputs +docdir = $(texdir)/doc + +# Commands +INSTALL = install -c -m 755 +INSTALL_DATA = install -c -m 644 +# INSTALL = cp +# INSTALL_DATA = cp + +LATEX = latex +MAKEINDEX = makeindex +DVIPS = dvips +DFLAGS = + +######################################################################## +# No user serviceable parts below: +######################################################################## + +RESOLVE_XREF = \ + $(LATEX) $*.drv && \ + while grep 'Rerun to get cross-references right\.' $*.log; \ + do \ + $(LATEX) $*.drv; \ + done + +RUN_MAKEINDEX = \ + $(MAKEINDEX) -s gind.ist -o $*.ind $*.idx && \ + $(MAKEINDEX) -s gglo.ist -o $*.gls $*.glo + +all: rechnung.sty rechnung.drv + +man: rechnungman.dvi + +ps: rechnung.ps + +dvi: rechnung.dvi + +install: all + $(INSTALL_DATA) rechnung.sty $(texdir) + +install.doc: all + $(INSTALL_DATA) rechnung.dtx $(docdir) + $(INSTALL_DATA) rechnung.drv $(docdir) + $(INSTALL_DATA) rechnungman.drv $(docdir) + +uninstall: + rm -f $(texdir)/rechnung.sty + +uninstall.doc: + rm -f $(docdir)/rechnung.dtx + rm -f $(docdir)/rechnung.drv + rm -f $(docdir)/rechnungman.drv + +rechnung.sty: rechnung.dtx rechnung.ins + $(LATEX) rechnung.ins + +rechnung.drv rechnungman.drv: rechnung.sty + +rechnung.dvi: rechnung.dtx rechnung.drv rechnung.sty + -$(LATEX) $*.drv + $(RUN_MAKEINDEX) + $(RESOLVE_XREF) + +rechnungman.dvi: rechnung.dtx rechnungman.drv rechnung.sty + -$(LATEX) $*.drv + $(RUN_MAKEINDEX) + $(RESOLVE_XREF) + +manual.ps.gz: manual.ps + gzip < $< > $@ + +manual.ps: rechnungman.dvi $(MANPICS) + $(DVIPS) $(DFLAGS) -o $@ $< + +rechnung.ps: rechnung.dvi $(MANPICS) + $(DVIPS) $(DFLAGS) -o $@ $< + +clean: + rm -f *.mp *.rawmp *.[0-9]* \ + *.log *.dvi *.aux *.toc *.ilg *.glo *.gls *.idx *.ind \ + *.ps *.mpx '#*#' *~ .*~ + +realclean: clean + rm -f rechnung.sty rechnung.drv rechnungman* + +distclean: realclean diff --git a/kurzref.txt b/kurzref.txt new file mode 100644 index 0000000..0a25d0a --- /dev/null +++ b/kurzref.txt @@ -0,0 +1,54 @@ +% Kurzreferenz rechnung.sty V3.20 +% =============================== +% +% Rechnung/Bestellung beginnen +% ---------------------------- +% Im Header: \usepackage{rechnung} (evtl. Pfad angaben, wo rechnung.sty liegt. +% +% \begin{Rechnung} ... \end{Rechnung} +% mit Bruttopreisen inkl. MwSt.: \begin{Rechnung}[B] \begin{Bestellung}[B] +% mit Nettopreisen zzgl. MwSt.: \begin{Rechnung}[N] \begin{Bestellung}[N] +% mit ohno MwSt. und Hinweis t.: \begin{Rechnung}[K] \begin{Bestellung}[K] +% ohne MwSt. : \begin{Rechnung} \begin{Bestellung} +% \begin{Rechnung*} bzw. \begin{Bestellung*} generiert Rechnung/Bestellung +% mit Artikelnummern, muß dann bei \Artikel bzw. \Posten angegeben werden +% (zweiter nicht-optionaler Parameter) +% +% Positionsnummern ein/ausschalten (default: ein) +% ----------------------------------------------- +% \PositionEin +% \PositionAus +% +% Trennlinien zwischen den Artikeln ein/ausschalten (default: ein) +% ---------------------------------------------------------------- +% \TrennerEin +% \TrennerAus +% +% Währung ändern (default: Euro) +% ---------------------------- +% \DMark +% \Euro +% \Waehrung{Währungszeichen} +% +% Setzen der Steuersätze (voller, ermäßigter), (default: 19% / 7%) +% --------------------------------------------------------------- +% \Steuersatz{19}{7} +% +% Versandkosten einfügen +% ---------------------- +% voller Steuersatz: \Versandkosten{5,90} +% ermäßigter Steuersatz: \Versandkosten[e]{5,90} +% +% Posten/Artikel eintragen: [e] = ermäßigter Steuersatz +% ----------------------------------------------------- +% \Artikel[e]{Anzahl}{Text}{Einzelpreis} +% \Posten{Anzahl}{Text}{Einzelpreis, Trennzeichen ist Komma} +% \Artikel{Anzahl}{Text}{Einzelpreis} +% \Artikel{1}{h Kabelverlegung}{60,00} +% \Artikel{1}{ArtikelNummer}{h Kabelverlegung}{60,00} +% +% Nachkommastellen müssen immer zweistellig sein, sonst wird nicht richtig +% gerechnet! +% +% Nach Verwendung der Umgebung lassen sich im Text noch \Mehrwertsteuer +% und \Gesamtsumme verwenden. diff --git a/rechnung.dtx b/rechnung.dtx new file mode 100644 index 0000000..c0ca760 --- /dev/null +++ b/rechnung.dtx @@ -0,0 +1,980 @@ +% \iffalse +%% File: rechnung.dtx Copyright (C) 1998 M G Berberich +%% berberic@fmi.uni-passau.de + +% Änderungen V3.20 (2010-03-05, Tom Kazimiers ) +% - Einen Rechnungstyp "K" für "Umsatzsteuer/keine Mehrwertsteuer" +% hinzugefügt; verwendbar wenn MwSt. nach 19 UStG nicht anwendbar +% - Fehler behoben der eine MwSt von 0% nicht möglich machte +% - Euro als Standardwährung gesetzt, für DM muss "\DMark" gesetzt +% werden +% Änderungen V3.10 (2001-04-01, Ulrich Sibiller ) +% - Statt "Artikel" steht jetzt "Beschreibung" in der Titelzeile +% Eines Tages soll der User das einstellen können +% - Kommazahlen für Anzahl werden jetzt korrekt behandelt. Beträge werden +% bei der Ausgabe korrekt gerundet (0,34 * 0,20 -> 0,07; 0,34 * 0,24 = 0,09) +% - Daraus resultierend kann man jetzt für Zahlen auch weniger +% als zwei Nachkommastellen angeben. +% - Spaltenbreiten werden zentral definiert (leider nicht automatisch, sollten +% user definable sein) +% - Bugfix: Wenn Positionsspalte abgeschaltet war, dann rutschten die Zeilen +% ein klein wenig nach oben (weil \strut dann fehlte) +% +% Änderungen V3.00 (2001-03-23, Ulrich Sibiller ) +% - Positionsspalte kann abgeschaltet werden (\PositionEin/Aus) +% - Mehrwertsteuer wird separat in zwei Zeilen ausgegeben +% - horizontale Trennlinien zwischen den einzelnen Artikeln +% können abgeschaltet werden (\TrennerEin/Aus) +% - Reduktion auf weniger Code (durch Parametrisierung), da ein +% Großteil identisch war +% - Neues Kommando: \Posten ist ein Alias zu Artikel +% - Bugfix: Versandkosten mit erm. MwSt-Satz funktionieren jetzt. Keine +% Ahnung, ob es sowas ueberhaupt gibt, aber jedenfalls wurde das +% bisher nicht korrekt angezeigt! +% - Neues Environment: \Bestellung +% +%<*dtx> + \ProvidesFile{rechnung.dtx} +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{rechnung} +% \ProvidesFile{rechnung.drv} +% \fi +% \ProvidesFile{rechnung.dtx} + [2001/04/01 v3.10 BMG Rechnungs Style, enhanced by Ulrich Sibiller, Tom Kazimiers] +% +% \iffalse +%<*driver> +\documentclass[draft]{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{textcomp} +\usepackage{german} +\usepackage{rechnung} +\begin{document} +\DocInput{rechnung.dtx} +\end{document} +% +% \fi +% +% \GetFileInfo{rechnung.dtx} +% \title{Das \textsf{rechnung} Paket V3.10} +% \author{M G Berberich, Ulrich Sibiller, Tom Kazimiers} +% \date{2001-04-01} +% +% \let\env\textsf +% +% \maketitle +% +% \begin{abstract} +% Dieses Paket definiert \env{rechnung} und +% \env{rechnung\textasteriskcentered} Umgebungen +% um Rechnungen und Bestellungen zu erzeugen. +% \end{abstract} +% +% \changes{v1.00}{1998/11/16} +% {Auskoppelung der Umgebungen aus bmgbrief.cls} +% +% \changes{v1.01}{1998/11/19} +% {Zahlenleseroutine erneuert. Sie gibt jetzt lesbare Fehlermeldungen +% bei falscher Nachkommastellenzahl} +% +% \changes{v2.00}{1998/11/25} +% {Erweiterung um Netto- und Bruttorechnungen mit Mehrwertsteuer} +% +% \changes{v2.01}{1998/11/25} +% {Rundungsfehler in der Bruttorechnungen behoben} +% +% \changes{v3.00}{2001/03/23} +% {Positionen und Trennlinien abschaltbar, Code Cleanup } +% +% \changes{v3.01}{2001/04/01} +% {Statt Artikel wird Beschreibung in der Titelzeile verwendet, Anzahl kann +% muss keine ganze Zahl mehr sein} +% \changes{v3.02} {2009/12/08} +% {Einen Rechnungstyp "K" für "Umsatzsteuer/keine Mehrwertsteuer" +% hinzugefügt; verwendbar wenn MwSt. nach 19 UStG nicht anwendbar +% } +% \changes{v3.03} {2010/03/05} +% {Fehler behoben der eine MwSt von 0\% nicht möglich machte, +% Euro als Standardwährung gesetzt, für DM muss "\DMark" gesetzt +% werden } +% +% \DeleteShortVerb{\|} +% \MakeShortVerb{\"} +% \let\package\textsf +% \let\env\textsf +% +% \section{Rechtliches} +% +% +% Da das Paket ohne jegliche Kosten lizenziert wird, besteht keinerlei +% Gewährleistung. Ich hafte weder für unmittelbar noch mittelbar +% entstehende Schäden aus der Verwendung des Paketes. Ich stelle das +% Paket so zur Verfügung, \glqq wie es ist\grqq, ohne irgendeine +% Gewährleistung, weder ausdrücklich noch implizit, einschließlich, +% aber nicht begrenzt auf, die Tauglichkeit und Verwendbarkeit für +% einen bestimmten Zweck. Das volle Risiko bezüglich Qualität und +% Leistungsfähigkeit liegt bei Ihnen. Sollte das Programm fehlerhaft +% sein, übernehmen Sie die Kosten für notwendigen Service, Reparatur +% oder Korrektur. +% +% Die Weitergabe dieses Pakets ist erlaubt solange es +% \emph{vollständig} weitergegeben wird. Änderungen an Dateien dieses +% Pakets sind nur zulässig wenn die Datei \emph{vorher} umbenannt +% wird, mein Copyright-Vermerke und der Haftungssausschluß erhalten +% bleiben und klar ersichtlich ist, daß es sich um eine veränderte +% Variante handelt. +% +% +% +% \section{Beschreibung} +% +% \DescribeEnv{Rechnung}\DescribeEnv{Bestellung} +% Die Umgebung \env{Rechnung} bzw \env{Bestellung} erstellt eine Rechnung +% oder Bestellung. Die beiden Makros sind identisch, es wird jedoch empfohlen, +% zur besseren Lesbarkeit das jeweils passende zu verwenden. Im weiteren Text +% wird nur \env{Rechnung} verwendet. +% Jede Position besteht aus einer Positionsnummer, die automatisch +% erstellt wird, der Anzahl, der Artikelbeschreibung und dem +% Einzelpreis des Artikels. Die Preise und die Gesamtsumme werden von +% \env{Rechnung} berechnet. \env{Rechnung} hat ein optionales +% Argument, daß den Typ der Rechnung/Bestellung angibt: +% \begin{description} +% \item[\texttt{\textbackslash begin\{Rechnung\}}] +% Eine \glqq Rechnung\grqq\ ohne Mehrwertsteuer. Diese Variante eignet +% sich z.\,B. zur Erstelllung von Bestellungen. +% \item[\texttt{\textbackslash begin\{Rechnung\}[N]}] +% Eine Rechnung bei der alle Preise als Nettopreise angegeben sind +% und bei der die Mehrwertsteuer angegeben und zum Endpreis addiert +% wird. (z\.B. für gewerbliche Kunden) +% \item[\texttt{\textbackslash begin\{Rechnung\}[B]}] +% Eine Rechnung bei der alle Preise als Bruttopreise angegeben sind +% und die enthaltene Mehrwertsteuer ausgewiesen ist. +% (z.\,B. für Endverbraucher) +% \item[\texttt{\textbackslash begin\{Rechnung\}[K]}] +% Eine Rechnung bei der alle Preise als Nettopreise angegeben sind +% und die Mehrwertsteuer nach \S19 UStG nicht ausweisbar ist. +% (z.\,B. für Selbstständige im Kleingewerbe) +% \end{description} +% \DescribeEnv{Rechnung\textasteriskcentered} +% \DescribeEnv{Bestellung\textasteriskcentered} +% Die Umgebung \env{Rechnung\textasteriskcentered} bzw. \env{Bestellung\textasteriskcentered} +% ist zu \env{Rechnung} bzw. \env{Bestellung} +% identisch, bis auf die, hier zusätzlich vorhandenen, Artikelnummern. +% Der Platz für die Artikelbeschreibungen wird entsprechend kleiner. +% +% \DescribeMacro{\Artikel}\DescribeMacro{\Posten} +% Mit "\Artikel" oder "\Posten" werden die einzelnen Positionen +% der Rechnung eingegeben. Es besteht kein +% Unterschied zwischen den beiden Makros.\\ +% "\Artikel{"\textlangle Anzahl\textrangle"}{" +% \textlangle Artikel\textrangle"}{" +% \textlangle Einzelpreis\textrangle"}"\\ +% bzw. bei \env{Rechnung\textasteriskcentered} +% und \env{Bestellung\textasteriskcentered}:\\ +% "\Artikel{"\textlangle Anzahl\textrangle"}{" +% \textlangle Artikelnummer\textrangle"}{" +% \textlangle Artikel\textrangle"}{" +% \textlangle Einzelpreis\textrangle"}"\\ +% "\Artikel" hat ein optionales +% Argument, daß es erlaubt für diesen Artikel den ermäßigten +% Mehrwertsteuersatz auszuwählen. Diese Positionen werden hinter dem +% Preis mit einem $^*$ gekennzeichnet und unter der Tabelle wird bei +% Netto- und Bruttorechnungen eine \glqq Fußnote\grqq\ erzeugt. +% Zum Beispiel:\\ +% "\Artikel[e]{5}{Der Herr der Ringe}{59,80}"\\ fügt eine Position mit +% 5 \emph{Herr der Ringe} zum ermäßigten Mehrwertsteuersatz ein. +% +% Versandkosten lassen sich mit \DescribeMacro{\Versandkosten} +% "\Versandkosten{"\textlangle Preis\textrangle"}" eingeben und +% bekommen keine Positionsnummer. Es sind auch ermäßigte Versandkosten über +% den optionalen Parameter "[e]" möglich, allerdings ist nicht bekannt, ob +% es sowas überhaupt irgendwo gibt. +% +% \DescribeMacro{\Waehrung} Die Währungseinheit, die hinter die Beträge +% gesetzt wird, ist auf DM voreingestellt. Mit "\Waehrung{...}" kann +% eine beliebige andere Währung gesetzt werden, "\Waehrung{F}" setzt +% z.\,B. die Währung auf \glqq F\grqq. Für den Euro gibt es eine Abkürzung +% "\Euro" die identisch zu "\Waehrung{\texteuro}" ist und (falls das +% "textcomp"-Paket eingebunden ist) ein \texteuro\ erzeugt. +% +% \DescribeMacro{\Steuersatz}Die Steuersätze lassen sich mit +% "\Steuersatz{"\textlangle Steuersatz 1\textrangle"}{" +% \textlangle Steuersatz 2\textrangle"}" festlegen. Standardmäßig ist +% Steuersatz 1 auf "16" und Steuersatz 2 auf "7" eingestellt. Dies entspricht +% dem Mehrwertsteuersatz von 16\% und dem ermäßigtem Mehrwertsteuersatz von +% 7\%. +% +% \DescribeMacro{\Gesamtsumme}\DescribeMacro{\Mehrwertsteuer} +% Nach dem Ende einer \env{Rechnung}- bzw. \env{Bestellung}\-Umgebung lassen +% sich die Gesamtsumme und die Mehrwertsteuer +% noch mit den Makros "\Gesamtsumme" und +% "\Mehrwertsteuer" in den Text einfügen. +% +% \DescribeMacro{\PositionEin}\DescribeMacro{\PositionAus} +% Hiermit läßt sich die Ausgabe der Positionsspalte aktivieren bzw. unterdrücken, +% da diese nicht immer benötigt wird. Voreingestellt ist "\PositionEin" +% Die Makros können beliebig oft +% auftreten, es wird jedoch nur das letzte vor dem ersten Artikel beachtet. +% Sobald ein Artikel angegeben wurde, werden die Makros ignoriert. +% +% \DescribeMacro{\TrennerEin}\DescribeMacro{\TrennerAus} +% Eine Rechnung sieht oft besser aus, wenn sich keine Trennlinien zwischen den +% einzelnen Posten befinden. Da dies aber Geschmackssache ist, kann man die +% Ausgabe von Trennlinien mit den Makros "\TrennerEin" bzw. "\TrennerAus" +% steuern. Voreinstellung ist "\TrennerEin". +% Die Makros können beliebig oft +% auftreten, es wird jedoch nur das letzte vor dem ersten Artikel beachtet. +% Sobald ein Artikel angegeben wurde, kann die Einstellung nicht mehr +% verändert werden.. +% +% \section{Beispiele} +% +% \subsection{Bestellung ohne Artikelnummern} +% Dieses Beispiel demonstriert, daß eine Vielzahl von Textauszeichnungs- +% und Formatierungsmöglichkeiten innerhalb einer \env{Rechnung}-Umgebung +% verwendet werden kann. +% +% \begin{verbatim} +% \begin{Rechnung} +% \Artikel{1}{Der Herr der Ringe +% \begin{enumerate} +% \item Die Gefährten +% \item Die zwei Türme +% \item Die Rückkehr des Königs +% \end{enumerate} +% John Ronald R. Tolkien\\ +% \scriptsize Taschenbuch, Erschienen 1972}{59,80} +% \Artikel{4}{\textbf{Der kleine Hobbit}\\ +% \textit{John Ronald R. Tolkien}, Taschenbuch, Erschienen 1995}{12,90} +% \Versandkosten{9,90} +% \end{Rechnung} +% \noindent Ein Verrechnungsscheck über \Gesamtsumme\ liegt bei. +% \end{verbatim} +% +% \vbox{ +% \begin{Rechnung} +% \Artikel{1}{Der Herr der Ringe +% \begin{enumerate} +% \item Die Gefährten +% \item Die zwei Türme +% \item Die Rückkehr des Königs +% \end{enumerate} +% John Ronald R. Tolkien\\ +% \scriptsize Taschenbuch, Erschienen 1972}{59,80} +% \Artikel{4}{\textbf{Der kleine Hobbit}\\ +% \textit{John Ronald R. Tolkien}, Taschenbuch, Erschienen 1995}{12,90} +% \Versandkosten{9,90} +% \end{Rechnung} +% \noindent Ein Verrechnungsscheck über\Gesamtsumme\ liegt bei. +% } +% \subsection{Bestellung mit Artikelnummern} +% +% \begin{verbatim} +% \begin{Rechnung*} +% \Artikel{1}{3345765}{The \TeX-Book von Donald E. Knuth}{85,47} +% \Artikel{1500}{879847}{Büroklammern}{0,03} +% \Versandkosten{12,95} +% \end{Rechnung*} +% \end{verbatim} +% +% \vbox{ +% \begin{Rechnung*} +% \Artikel{1}{3345765}{The \TeX-Book von Donald E. Knuth}{85,47} +% \Artikel{1500}{879847}{Büroklammern}{0,03} +% \Versandkosten{12,95} +% \end{Rechnung*} +% } +% +% \subsection{Rechnung mit Nettopreisen und Mehrwertsteuer} +% +% \begin{verbatim} +% \begin{Rechnung}[N] +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{79,88} +% \Artikel{20}{Erdnüße}{0,99} +% \Versandkosten{10,00} +% \end{Rechnung} +% \noindent Im Betrag von \Gesamtsumme\ sind also +% \Mehrwertsteuer\ Mehrwertsteuer enthalten. +% \end{verbatim} +% +% \vbox{ +% \begin{Rechnung}[N] +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{79,88} +% \Artikel{20}{Erdnüsse}{0,85} +% \Versandkosten{10,00} +% \end{Rechnung} +% \noindent Im Betrag von \Gesamtsumme\ sind also +% \Mehrwertsteuer\ Mehrwertsteuer enthalten. +% } +% +% \subsection{Rechnung mit Nettopreisen und Mehrwertsteuer, ohne Trennlinien und Positionsnummern} +% +% \begin{verbatim} +% \begin{Rechnung}[N] +% \PositionAus +% \TrennerAus +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{79,88} +% \Artikel{20}{Erdnüße}{0,99} +% \Versandkosten{10,00} +% \end{Rechnung} +% \noindent Im Betrag von \Gesamtsumme\ sind also +% \Mehrwertsteuer\ Mehrwertsteuer enthalten. +% \end{verbatim} +% +% \vbox{ +% \begin{Rechnung}[N] +% \PositionAus +% \TrennerAus +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{79,88} +% \Artikel{20}{Erdnüsse}{0,85} +% \Versandkosten{10,00} +% \end{Rechnung} +% \noindent Im Betrag von \Gesamtsumme\ sind also +% \Mehrwertsteuer\ Mehrwertsteuer enthalten. +% } +% +% \subsection{Rechnung mit Bruttopreisen und ausgewiesener Mehrwertsteuer} +% +% Hier mal ein Beispiel mit EUR: +% +% \begin{verbatim} +% \Euro +% \begin{Rechnung}[B] +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{42,73} +% \Artikel{20}{Erdnüsse}{0,49} +% \Versandkosten{5,80} +% \end{Rechnung} +% \end{verbatim} +% +% \vbox{ +% \Euro +% \begin{Rechnung}[B] +% \Artikel[e]{1}{Donald E. Knuth: The \TeX-Book}{42,73} +% \Artikel{20}{Erdnüsse}{0,49} +% \Versandkosten{5,80} +% \end{Rechnung} +% } +% +% \cleardoublepage +% +% +% +% \section{\LaTeX-Code} +% +% \subsection{Deklarationen} +% +% Einige Zähler für Position, Gesamtsumme, Mehrwertsteuer und zur +% Parameterübergabe und temporäre Daten +% \begin{macrocode} +\newcount\@RCHcnt \newcount\@RCHsum \newcount\@RCHtmp +\newcount\@RCHmwst \newcount\@RCHmwsti \newcount\@RCHmwstii +\newcount\@RCHtmptmp +% \end{macrocode} +% +% Die Dimensionen der Spalten +% \begin{macrocode} +\newdimen\@RCHPosWidth +\newdimen\@RCHAnzWidth +\newdimen\@RCHArtnumWidth +\newdimen\@RCHArtWidth +\newdimen\@RCHEinzelWidth +\newdimen\@RCHGesamtWidth +\@RCHPosWidth=1.5em% +\@RCHAnzWidth=2.9em% +\@RCHArtnumWidth=5em% +\@RCHEinzelWidth=4.8em% +\@RCHGesamtWidth=6.1em% +% \end{macrocode} +% \begin{macro}{\@RCHerm} +% Ein Schalter der das Auftauchen von ermäßigtem MwSt-Satz anzeigt. +% \begin{macrocode} +\newif\if@RCHerm +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHpos} +% Ein Schalter der das Anzeigen der Pos-Spalte beeinflusst +% \begin{macrocode} +\newif\if@RCHpos +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHfirst} +% Ein Schalter der anzeigt, daß der erste Artikel eingefügt wird +% \begin{macrocode} +\newif\if@RCHfirst +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHhor} +% Ein Schalter der anzeigt, ob horizontale Trennlinien zwischen den +% Artikeln eingefügt werden +% \begin{macrocode} +\newif\if@RCHhor +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHartnum} +% Ein Schalter der anzeigt, ob die Artikelnr ausgegeben wird. +% \begin{macrocode} +\newif\if@RCHartnum +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHinit} +% Ein Schalter der anzeigt, ob schon initialisiert wurde. +% \begin{macrocode} +\newif\if@RCHinit +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHwdt} +% Breite der Spalte für die Artikelbezeichnung +% \begin{macrocode} +\newdimen\@RCHwdt +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHstsi} +% normalen Mehrwertsteuersatz +% \begin{macrocode} +\newcommand*\@RCHstsi{16} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHstsii} +% ermäßigter Mehrwertsteuersatz +% \begin{macrocode} +\newcommand*\@RCHstsii{7} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHustsi} +% Umsatzsteuer, wenn Mehrwertsteuer nicht ausweisbar +% \begin{macrocode} +\newcommand*\@RCHustsi{0} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@waehrung} +% aktuelle Währung. Voreingestellt ist Euro. +% \begin{macrocode} +\newcommand*\@waehrung{\texteuro} +% \end{macrocode} +% \end{macro} +% +% \subsection{Benutzermacros} +% +% \begin{macro}{\Steuersatz} +% Stellt neue Mehrwertsteuersätze (normal und ermäßigt) ein. +% \begin{macrocode} +\newcommand*\Steuersatz[2]{\def\@RCHstsi{#1}\def\@RCHstsii{#2}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Waehrung} +% Stellt eine beliebige Währung ein. +% \begin{macrocode} +\newcommand*\Waehrung[1]{\def\@waehrung{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PositionEin/Aus} +% Schaltet Positionsnummern ein oder aus. +% \begin{macrocode} +\newcommand*\PositionEin[0]{\if@RCHinit\else\global\@RCHpostrue\fi} +\newcommand*\PositionAus[0]{\if@RCHinit\else\global\@RCHposfalse\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\TrennerEin/Aus} +% Schaltet Positionsnummern ein oder aus. +% \begin{macrocode} +\newcommand*\TrennerEin[0]{\if@RCHinit\else\global\@RCHhortrue\fi} +\newcommand*\TrennerAus[0]{\if@RCHinit\else\global\@RCHhorfalse\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Euro} +% Stellt die Währung auf Euro um. (benötigt textcomp) +% \begin{macrocode} +\newcommand*\Euro{\def\@waehrung{\texteuro}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DMark} +% Stellt die Währung auf DM um. (benötigt textcomp) +% \begin{macrocode} +\newcommand*\DMark{\def\@waehrung{D\kern-0.05em M}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Gesamtsumme} +% Gibt die Gesamtsumme der letzten Tabelle aus. +% \begin{macrocode} +\newcommand*\Gesamtsumme{\writeCurrency\@RCHsum} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Mehrwertsteuer} +% Gibt die Mehrwertsteuer der letzten Tabelle aus. +% \begin{macrocode} +\newcommand*\Mehrwertsteuer{\writeCurrency\@RCHmwst} +% \end{macrocode} +% \end{macro} +% +% \subsection{Zahlenmacros} +% +% \begin{macro}{\@RCHwrite} +% Gibt einen Zähler gerundet auf zwei Nachkommastellen aus. +% (cntr/100,cntr\%100) +% \begin{macrocode} +\newcommand*\@RCHwrite[1]{ + \@tempcnta=#1 + \@tempcntb\@tempcnta + \divide\@tempcnta100 \the\@tempcnta,% + \multiply\@tempcnta100\advance\@tempcntb-\@tempcnta + \@tempcnta\@tempcntb\divide\@tempcnta10 \the\@tempcnta + \multiply\@tempcnta10\advance\@tempcntb-\@tempcnta + \the\@tempcntb +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\writeCurrency} +% Gibt einen Zähler als Währungsbetrag aus. +% \begin{macrocode} +\newcommand*\writeCurrency[1]{\@RCHwrite{#1}\,\@waehrung} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\writebfCurrency} +% Gibt eine Zähler als Währungsbetrag mit fetter Zahl aus. +% \begin{macrocode} +\newcommand*\writebfCurrency[1]{{\fontseries{b} + \selectfont\writeCurrency{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@readNum} +% Liest eine Zahl der Form [Zahl]*{,[Zahl]{[Zahl]}} in +% \verb|\@RCHtmp| ein +% \begin{macrocode} +\newcommand*\@readNum[1]{\@RCHtmp=0\@readA#1\relax} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@readA} +% Liest eine Zahl ein. Falls Nachkommastellen vorhanden sind, +% werden diese ebenfalls eingelesen. Nachkommastellen werden +% mit , oder . abgetrennt. Tritt eines dieser Zeichen auf, dann müssen +% auch Nachkommastellen kommen, sonst wird ein Fehler ausgegeben. +% \begin{macrocode} +\newcommand*\@readA[1]{% + \expandafter\if#1\relax\@tempcnta0\@readC\relax + \else\expandafter\if#1.\@tempcnta0 + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@readB + \else\expandafter\if#1,\@tempcnta0 + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@readB + \else\multiply\@RCHtmp10\advance\@RCHtmp#1 + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@readA + \fi\fi\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@readB} +% Liest zwei Nachkommastellen ein. Bei 0 oder mehr als 2 Stellen +% wird eine Fehlermeldung erzeugt. +% \begin{macrocode} +\newcommand*\@readB[1]{% + \expandafter\if#1\relax\relax + \ifnum \@tempcnta > 2 + \@RCHtmp0\PackageError{rechnung}{mehr als zwei + Nachkommastellen gefunden} + \else + \ifnum \@tempcnta = 2 + \else + \ifnum \@tempcnta > 0 + \advance\@tempcnta1 + \multiply\@RCHtmp10 + \@readB\relax + \else + \multiply\@RCHtmp100\PackageError{rechnung}{keine + Nachkommastellen gefunden} + \fi + \fi + \fi + \else + \advance\@tempcnta1 + \multiply\@RCHtmp10 + \advance\@RCHtmp#1\expandafter\@readB + \fi} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\@readC} +% Liest zwei Nachkommastellen ein. Wenn weniger vorhanden sind, dann +% werden Nullen angenommen. Sind mehr als zwei Nachkommastellen vorhanden, +% erfolgt eine Fehlermeldung! +% \begin{macrocode} +\newcommand*\@readC[1]{% + \expandafter + \if#1\relax\relax + \ifnum \@tempcnta > 2 + \@RCHtmp0\PackageError{rechnung}{mehr als zwei + Nachkommastellen gefunden} + \fi + \ifnum \@tempcnta < 2 + \advance\@tempcnta1 + \multiply\@RCHtmp10 + \@readC\relax + \fi + \else + \advance\@tempcnta1 + \multiply\@RCHtmp10 + \advance\@RCHtmp#1\expandafter\@readC + \fi} +% \end{macrocode} +% \end{macro} +% +% \subsection{Rechnungsabschlußmacros} +% +% \begin{macro}{\writefoot} +% Gibt Fußnote mit reduziertem MwSt.Satz aus. +% \begin{macrocode} +\newcommand*{\writefoot}[0]{ + \if@RCHerm + \nointerlineskip + \vskip0.5ex + \hbox to \textwidth{ + \hfill\footnotesize\strut + $^*$ Artikel mit \@RCHstsii\% Mehrwertsteuer} + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHsline} +% Erzeugt eine Zeile für Summe, Mehrwertsteuer, \dots +% \begin{macrocode} +\newcommand*\@RCHsline[2]{% + \goodbreak\nointerlineskip + \vbox{\hrule + \hbox to\textwidth{% + \strut\lsep #1\hfil + \sep + \hbox to \@RCHGesamtWidth{\hfil#2}% + \rsep}% + \hrule\vskip-0.4pt}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHohne} +% Beendet eine Tabelle ohne Angabe von Mehrwertsteuer +% \begin{macrocode} +\newcommand*\@RCHohne{ + \@RCHsline{Gesamtsumme}{\writebfCurrency\@RCHsum}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHnetto} +% Beendet eine Tabelle mit Nettopreisen und Mehrwertsteuer. +% \begin{macrocode} +\newcommand*\@RCHnetto{ + \@RCHsline{Nettosumme}{\writeCurrency\@RCHsum}% +% \end{macrocode} +% \[\left\lfloor\frac{\hbox{Nettosumme}\cdot\hbox{Steuersatz}+50}{100}\right\rfloor\] +% \begin{macrocode} + \multiply\@RCHmwsti\@RCHstsi + \advance\@RCHmwsti50\divide\@RCHmwsti100 + \multiply\@RCHmwstii\@RCHstsii + \advance\@RCHmwstii50\divide\@RCHmwstii100 + \@RCHmwst\@RCHmwsti\advance\@RCHmwst\@RCHmwstii + \if@RCHerm + \@RCHsline{zzgl. \@RCHstsii\% MwSt.}{\writeCurrency\@RCHmwstii}% + \fi + \@RCHsline{zzgl. \@RCHstsi\% MwSt.}{\writeCurrency\@RCHmwsti}% + \advance\@RCHsum\@RCHmwst + \hrule + \vskip\doublerulesep\vskip0.4pt + \@RCHsline{Gesamtsumme}{\writebfCurrency\@RCHsum}% + \writefoot +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHkeineUST} +% Beendet eine Tabelle mit den Nettopreisen und gibt +% an, dass die Mehrwertsteuer nach \S19 UStG nicht +% ausweisbar ist. +% \begin{macrocode} +\newcommand*\@RCHkeineUST{ + \@RCHsline{Nettosumme}{\writeCurrency\@RCHsum}% + \@RCHsline{Umsatzsteuer (MwSt. nicht ausweisbar nach \S19 UStG)}{\writeCurrency\@RCHustsi} + \hrule + \vskip\doublerulesep\vskip0.4pt + \@RCHsline{Gesamtsumme}{\writebfCurrency\@RCHsum}% + \writefoot +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@RCHbrutto} +% Beendet eine Tabelle mit Bruttopreisen und gibt die +% enthaltene Mehrwertsteuer an. +% \begin{macrocode} +\newcommand*\@RCHbrutto{ + \@RCHsline{Gesamtsumme}{\writebfCurrency\@RCHsum} +% \end{macrocode} +% \[ \left\lfloor\frac{2\cdot\mbox{Bruttosumme}\cdot\mbox{Steuersatz}+ +% 100+\mbox{Steuersatz}}{2(100+\mbox{Steuersatz})}\right\rfloor \] +% \begin{macrocode} + \multiply\@RCHmwsti\@RCHstsi\multiply\@RCHmwsti2% + \@tempcnta100\advance\@tempcnta\@RCHstsi + \advance\@RCHmwsti\@tempcnta + \multiply\@tempcnta2% + \divide\@RCHmwsti\@tempcnta + + \multiply\@RCHmwstii\@RCHstsii\multiply\@RCHmwstii2% + \@tempcnta100\advance\@tempcnta\@RCHstsii + \advance\@RCHmwstii\@tempcnta + \multiply\@tempcnta2% + \divide\@RCHmwstii\@tempcnta + + \@RCHmwst\@RCHmwsti\advance\@RCHmwst\@RCHmwstii + \if@RCHerm + \@RCHsline{inkl. erm. MwSt. \@RCHstsii\%} + {\writeCurrency\@RCHmwstii}% + \fi + \@RCHsline{inkl. \@RCHstsi\% MwSt}{\writeCurrency\@RCHmwsti}% + \writefoot +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\sep} +% Gibt eine vertikale Trennlinie innerhalb einer Zeile aus +% \begin{macrocode} +\newcommand*{\sep}[0]{\hskip\tabcolsep\vrule\hskip\tabcolsep} +\newcommand*{\rsep}[0]{\hskip\tabcolsep\vrule} +\newcommand*{\lsep}[0]{\vrule\hskip\tabcolsep} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\@RCHlineX} +% Erzeugt eine Position in einer Rechnung mit Artikelnummern +% Param: Position, Anzahl, Art.-Nr.,Artikel, Einzelpreis, Gesamtpreis +% \begin{macrocode} +\newcommand*\@RCHlineX[6]{{ +\goodbreak\nointerlineskip + \vbox{ + \if@RCHhor + \hrule + \else + \if@RCHfirst + \hrule + \fi + \fi + \hbox to\textwidth{% + \lsep% + \if@RCHpos% + \hbox to\@RCHPosWidth{\hfil #1\strut}% + \sep + \fi% Pos-Spalte + \hbox to\@RCHAnzWidth{\hfil #2\strut}\sep% Anzahl-Spalte + \if@RCHartnum% + \hbox to\@RCHArtnumWidth{\hfil #3\strut}% + \sep% + \fi% Art-Num-Spalte + \vtop{\normalbaselines% + \noindent\rightskip=0pt plus1cm% + \hsize\@RCHwdt% + \linewidth\hsize#4\null\strut\par}% + \hfil\sep%Beschreibung + \hbox to\@RCHEinzelWidth{\hfil #5\strut}\sep% Einzelpreis + \hbox to\@RCHGesamtWidth{\hfil #6\strut}\rsep% Gesamtpreis + }%hbox + }%vbox +}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ArtikelX} +% Berechnet für einen Artikel den Preis aus Anzahl und Einzelpreis, +% erhöht die Gesamtsumme und die entsprechende Mehrwertsteuersumme +% und gibt die Position aus. +% Param: [ermaessigt,] Anzahl, (X: Art.-Nr.,) Artikel, Einzelpreis +% \begin{macrocode} +\newcommand*\@Artikel[4][X]{\@ArtikelX[#1]{#2}{}{#3}{#4}} +\newcommand*\@ArtikelX[5][X]{ + \initRechnung + \advance\@RCHcnt1% + \@readNum{#5} + \@RCHtmptmp=\@RCHtmp% + \@readNum{#2}\multiply\@RCHtmp\@RCHtmptmp + \advance\@RCHtmp99\divide\@RCHtmp100%Aufrunden auf 2 Nachkommastellen. + \@lineBaseX[#1]{\the\@RCHcnt}{#2}{#3}{#4}{#5} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@VersandkostenX} +% Erzeugt eine Zeile für die Versandkosten, die keinen Einzelpreis und +% und keine Positionsnummer bekommt (mit Artikelnummer). +% \begin{macrocode} +\newcommand*\@Versandkosten[2][X]{\@VersandkostenX[#1]{#2}} +\newcommand*\@VersandkostenX[2][X]{ + \initRechnung + \@readNum{#2} + \@lineBaseX[#1]{\null}{1}{\null}{Versandkosten}{#2} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@lineBaseX} +% Gemeinsamer Code für Artikel- und Versandkostenzeilen +% \begin{macrocode} +\newcommand*\@lineBaseX[6][X]{ + \global\advance\@RCHsum\@RCHtmp + \@RCHlineX{#2}{#3}{#4}{#5}{#6}{\writeCurrency\@RCHtmp + \expandafter\ifx#1X\else\rlap{$^*$}\fi} + \expandafter + \ifx#1X + \advance\@RCHmwsti\@RCHtmp + \else + \advance\@RCHmwstii\@RCHtmp\global\@RCHermtrue + \fi + \global\@RCHfirstfalse %horizontale Linien nur beim ersten Artikel +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Rechnung*} +% Beginnt eine Rechnung oder Bestellung ohne/mit Artikelnummer +% \begin{macrocode} +\newenvironment*{Rechnung}[1][X]{\RechnungStart{#1}{}}{\RechnungEnde} +\newenvironment*{Rechnung*}[1][X]{\RechnungStart{#1}{X}}{\RechnungEnde} +\newenvironment*{Bestellung}[0]{\RechnungStart{X}{}}{\RechnungEnde} +\newenvironment*{Bestellung*}[0]{\RechnungStart{X}{X}}{\RechnungEnde} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RechnungStart} +% Kopf einer Rechnungstabelle +% \begin{macrocode} +\newcommand*{\RechnungStart}[2]{ + \@RCHinitfalse + \@RCHermfalse + \@RCHmwsti0 + \@RCHmwstii0 + \def\@RCHtype{#1}% +% \end{macrocode} +% Berechne die Breite der Artikelspalte.\\ +% $=\verb|\textwidth|-8\verb|\tabcolsep|-5*0.4\hbox{pt}- +% \sum\hbox{Spaltenbreite}$ +% \begin{macrocode} + \@RCHcnt0 + \@RCHsum0 + \@RCHwdt\textwidth + \advance\@RCHwdt-\@RCHAnzWidth % Breite der Spalte Anz + \advance\@RCHwdt-\@RCHEinzelWidth% Breite der Spalte EPreis + \advance\@RCHwdt-\@RCHGesamtWidth % Breite der Spalte GPreis + \advance\@RCHwdt-2.0pt % Breite der Spaltentrenner + \advance\@RCHwdt-8\tabcolsep % Breite des Abstands zu + % den Spaltentrennern + + \global\@RCHfirsttrue + \global\@RCHpostrue + \global\@RCHhortrue +% \end{macrocode} +% Param 2: Mit Artikelnummern? +% \begin{macrocode} +\ifx#2X + \global\@RCHartnumtrue + \let\Artikel\@ArtikelX + \let\Posten\@ArtikelX + \let\Versandkosten\@VersandkostenX +\else + \global\@RCHartnumfalse + \let\Artikel\@Artikel + \let\Posten\@Artikel + \let\Versandkosten\@Versandkosten +\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\initRechnung} +% Kurze Routine, um Kopfzeile auszugeben, nachdem diverse +% Initialisierungen vorgenommen wurden. Das ist noetig, da +% einige Einstellungen innerhalb der Umgebung veraendert werden +% duerfen. +% \begin{macrocode} +\newcommand*{\initRechnung}[0] +{ + \if@RCHinit + \else + % Breite wegen Anzeige der Positionsnummern korrigieren + % \begin{macrocode} + \if@RCHpos + \advance\@RCHwdt-\@RCHPosWidth + \advance\@RCHwdt-0.4pt + \advance\@RCHwdt-2\tabcolsep + \fi + % \end{macrocode} + % Breite wegen Anzeige der Artikelnummern korrigieren + % \begin{macrocode} + \if@RCHartnum + \advance\@RCHwdt-\@RCHArtnumWidth + \advance\@RCHwdt-0.4pt + \advance\@RCHwdt-2\tabcolsep + \fi + % \end{macrocode} + % bißchen Platz über der Rechnung + % \begin{macrocode} + \vskip\abovedisplayskip + % \end{macrocode} + % Titelzeile ausgeben + % \begin{macrocode} + \@RCHlineX{\scriptsize Pos.\hfill}% + {\scriptsize Anzahl\hfill}% + {\scriptsize Art.\,Nr.\hfill}% + {\scriptsize Beschreibung\hfill}% + {\scriptsize Einzelpreis\hfill}% + {\scriptsize Gesamtpreis\hfill} + \@RCHinittrue + \fi +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\RechnungEnde} +% Footer einer Rechnung +% \begin{macrocode} +\newcommand*{\RechnungEnde}[0] +{ + \hrule + \vskip\doublerulesep\vskip0.4pt + \expandafter\if\@RCHtype X \@RCHohne + \else\expandafter\if\@RCHtype N \@RCHnetto + \else\expandafter\if\@RCHtype B \@RCHbrutto + \else\expandafter\if\@RCHtype K \@RCHkeineUST + \else\PackageError{rechnung}{Unbekannter Rechnungstyp `\@RCHtype'}% + \fi\fi\fi + \global\@RCHsum\@RCHsum\global\@RCHmwst\@RCHmwst +% \end{macrocode} +% bißchen Platz unter der Rechnung +% \begin{macrocode} + \vskip\belowdisplayskip +} +% \end{macrocode} +% \end{macro} +% +% \Finale +\endinput diff --git a/rechnung.ins b/rechnung.ins new file mode 100644 index 0000000..fd528c0 --- /dev/null +++ b/rechnung.ins @@ -0,0 +1,31 @@ +%% Copyright 2010 T Kazimiers +%% +%% This file is part of the `rechnung' packet +%% + +% This file requires docstrip version 2.4 available from +% ftp.dante.de tex-archive/macros/latex/unpacked/docstrip.tex +\input docstrip +\keepsilent + +\Msg{Generating style file rechnung.sty for the rechnung package:} +\generateFile{rechnung.sty}{f}{\from{rechnung.dtx}{package}} +\Msg{Generating driver file for manual rechnung.drv:} +\generateFile{rechnungman.drv}{f}{\from{rechnung.dtx}{driver,manual}} +\Msg{Generating driver file for documentation rechnung.drv:} +\generateFile{rechnung.drv}{f}{\from{rechnung.dtx}{driver}} + + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the file} +\Msg{* rechnung.sty into a directory searched by TeX:} +\Msg{*} +\Msg{* Optionally you caan copy the file rechnung.dtx into a} +\Msg{* directory searched by TeX, so that users can print} +\Msg{* a copy of the documentation.} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endbatchfile