mirror of
https://github.com/tomka/rechnung.git
synced 2024-05-09 21:53:44 +02:00
Initial commit with all needed files
This commit is contained in:
commit
ff43040e2e
21
INSTALL
Normal file
21
INSTALL
Normal file
|
@ -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.
|
117
Makefile
Normal file
117
Makefile
Normal file
|
@ -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
|
54
kurzref.txt
Normal file
54
kurzref.txt
Normal file
|
@ -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.
|
980
rechnung.dtx
Normal file
980
rechnung.dtx
Normal file
|
@ -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 <tom@voodoo-arts.net>)
|
||||
% - 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 <uli42@web.de>)
|
||||
% - 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 <uli42@web.de>)
|
||||
% - 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}
|
||||
%</dtx>
|
||||
%<package>\NeedsTeXFormat{LaTeX2e}
|
||||
%<package>\ProvidesPackage{rechnung}
|
||||
%<driver> \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}
|
||||
%</driver>
|
||||
% \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 <uli42@web.de>}
|
||||
%
|
||||
% \changes{v3.01}{2001/04/01}
|
||||
% {Statt Artikel wird Beschreibung in der Titelzeile verwendet, Anzahl kann
|
||||
% muss keine ganze Zahl mehr sein<uli42@web.de>}
|
||||
% \changes{v3.02} {2009/12/08}
|
||||
% {Einen Rechnungstyp "K" für "Umsatzsteuer/keine Mehrwertsteuer"
|
||||
% hinzugefügt; verwendbar wenn MwSt. nach 19 UStG nicht anwendbar
|
||||
% <tom@voodoo-arts.net>}
|
||||
% \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 <tom@voodoo-arts.net>}
|
||||
%
|
||||
% \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
|
31
rechnung.ins
Normal file
31
rechnung.ins
Normal file
|
@ -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
|
Loading…
Reference in a new issue