summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/invoice
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:49:07 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:49:07 +0000
commit007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (patch)
tree90d17e00e572ecb1e24764b6f29c80e098b08d29 /Master/texmf-dist/doc/latex/invoice
parent950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (diff)
doc/latex
git-svn-id: svn://tug.org/texlive/trunk@84 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/invoice')
-rw-r--r--Master/texmf-dist/doc/latex/invoice/00README.tex136
-rw-r--r--Master/texmf-dist/doc/latex/invoice/COPYING339
-rw-r--r--Master/texmf-dist/doc/latex/invoice/HISTORY31
-rw-r--r--Master/texmf-dist/doc/latex/invoice/INSTALL39
-rw-r--r--Master/texmf-dist/doc/latex/invoice/invoice.pdfbin0 -> 73435 bytes
-rw-r--r--Master/texmf-dist/doc/latex/invoice/invoice.tex742
6 files changed, 1287 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/invoice/00README.tex b/Master/texmf-dist/doc/latex/invoice/00README.tex
new file mode 100644
index 00000000000..9b9fc584993
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/invoice/00README.tex
@@ -0,0 +1,136 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% LaTeX me first!!!
+%
+% This is 00README.tex of the invoice package. LaTeX this file
+% and it will reveal everything... Software you need, software
+% you have, etc.
+%
+% Author: Oliver Corff
+% Date: December 6th, 2001
+%
+\def\myabstract{%
+ The invoice package provides an environment for
+ writing invoices with an arbitrary number of
+ billed items like fees (with taxes, if applicable),
+ as well as expenses in local and foreign currencies.}%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[11pt]{ltxdoc}
+%\usepackage{hyperref}
+\newif\ifBadNews
+\IfFileExists{diagnose.sty}{\usepackage{diagnose}}{\BadNewstrue}
+\title{\texttt{invoice 0.7}\\Installation Notes}
+\author{Oliver Corff}
+\date{December 16th, 2003}
+
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+\begin{abstract}\myabstract\end{abstract}
+\ifBadNews
+ \vskip 1cm
+ \begin{sloppypar}
+ {\large
+ Before you do anything else pick up the diagnose package
+ (\texttt{CTAN:macros/latex/contrib/supported/diagnose})
+ and latex this file again.}
+ \end{sloppypar}
+\else
+ % Your official text comes here.
+
+ \newcounter{AllInPlace}
+
+ \section{Site Status and Installation}
+
+ \begin{sloppy}
+ The \texttt{invoice} package requires additional CTAN
+ software for meaningful operation. These packages are
+ \texttt{realcalc}, \texttt{calc} and \texttt{longtable}.
+
+ \PackageDiagnostics%
+ {calc.sty} % Package tested for
+ {CalcAvailable} % Associated counter
+ {Infix Arithmetics Available!} % Yes! message
+ {Infix Arithmetics Not Available!} % No! message
+
+ \ifnum\theCalcAvailable=1
+ Your site installation contains the required \texttt{calc}
+ package. No further action is necessary.
+ \else
+ \textbf{Nota Bene:} Please fetch and install \texttt{calc}
+ from
+ \texttt{CTAN:macros/latex/required/tools/calc.dtx} before
+ continuing!
+ \fi
+
+ \PackageDiagnostics%
+ {realcalc.tex} % Package tested for
+ {CrunchingAvailable} % Associated counter
+ {Number Crunching Possible!} % Yes! message
+ {Number Crunching Not Possible!} % No! message
+
+ \ifnum\theCrunchingAvailable=1
+ Your site installation contains the required
+ \texttt{realcalc}
+ package. No further action is necessary.
+ \else
+ \textbf{Nota Bene:} Please fetch and install \texttt{realcalc}
+ from \texttt{CTAN:macros/generic/realcalc} before continuing!
+ \fi
+
+ \PackageDiagnostics%
+ {longtable.sty} % Package tested for
+ {LongTableAvailable} % Associated counter
+ {Long Tables Possible!} % Yes! message
+ {Long Tables Not Possible!} % No! message
+
+ \ifnum\theLongTableAvailable=1
+ Your site installation contains the required
+ \texttt{longtable}
+ package. No further action is necessary.
+ \else
+ \textbf{Nota Bene:} Please fetch and install \texttt{longtable}
+ from \texttt{CTAN:macros/latex/required/tools/longtabl.dtx}
+ before continuing!
+ \fi
+
+ \addtocounter{AllInPlace}{\theCalcAvailable}
+ \addtocounter{AllInPlace}{\theCrunchingAvailable}
+ \addtocounter{AllInPlace}{\theLongTableAvailable}
+
+ \ifnum\theAllInPlace=3
+ \section{The \texttt{invoice} Package}
+
+ The \texttt{invoice} package was conceived in late 2000
+ when the author had to dig through a truly aweful pile
+ of expense bills without having a \LaTeXe-capable
+ spreadsheet (or any spreadsheet) available. After several
+ miscalculations with a pocket calculator due to forgotten
+ entries or double entries the idea came up to have \LaTeXe\
+ do the calculation work. As such, the package in its present
+ stage is highly specialized with regard to the documents it
+ generates. The \texttt{invoice} package is basically a
+ tailor-made solution for a consultant who charges fees and
+ claims all sorts of expenses, sometimes working on different
+ assignments for the same client.
+
+ Comments and suggestions are highly welcome and
+ should be directed to the author at
+ \texttt{corff@zedat.fu-berlin.de} or
+ \texttt{oliver.corff@email.de}.
+
+ The \texttt{invoice} package is put under the GNU
+ Public Licence.
+ \else
+
+ \vspace{1cm}
+
+ \textbf{Attention:} Please install whatever is
+ specified above, and recompile this document.
+ \fi
+
+ \end{sloppy}
+\fi
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/invoice/COPYING b/Master/texmf-dist/doc/latex/invoice/COPYING
new file mode 100644
index 00000000000..92851102051
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/invoice/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program 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 of the License, or
+ (at your option) any later version.
+
+ This program 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Master/texmf-dist/doc/latex/invoice/HISTORY b/Master/texmf-dist/doc/latex/invoice/HISTORY
new file mode 100644
index 00000000000..483fb80ba68
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/invoice/HISTORY
@@ -0,0 +1,31 @@
+April 2001
+
+First public version (0.2) of invoice released
+
+
+October 2001
+
+Release 0.3
+
+- Many bug fixes: number crunching, VAT calculations
+- Style improved: if there is only one fee or expense,
+ no subtotal of this category is generated.
+
+
+December 2001
+
+Release 0.4
+
+- Critical bug fix: VAT can now be entered as fraction
+ of percentage, like 16.9 (as in France).
+- Added two languages: Dutch and French
+
+
+December 2003
+
+Release 0.7
+
+- Many structural bugs fixed.
+- Invisible expense items introduced.
+- Deductions from final total now possible.
+- Several new languages added.
diff --git a/Master/texmf-dist/doc/latex/invoice/INSTALL b/Master/texmf-dist/doc/latex/invoice/INSTALL
new file mode 100644
index 00000000000..26d9a39bdf8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/invoice/INSTALL
@@ -0,0 +1,39 @@
+ Title: invoice.sty
+ Version: 0.7
+ Author: Oliver Corff
+ Copyright: Ulaanbaatar, Berlin, Beijing, Shanghai,
+ Shenyang 2003
+ Date: December 16, 2003
+ Archive Name: invoice.zip
+ Description: A package for writing invoices
+ Legal Notes: See end of this document
+
+
+1. Installation and Use
+
+Unpack the archive invoice.zip in some temporary directory.
+Copy the files in TEXINPUT to a place where your TeX installation
+can find it. Rehash the directory database, if possible (not all
+distributions provide this possibility).
+
+Run the file 00README.tex through latex first before doing anything
+else! 00README.tex is a document with dynamic contents.
+
+See doc/invoice.tex for an incomplete documentation of the invoice
+package.
+
+
+2. Legal Notes
+
+This software is published under the GPL.
+Usual disclaimers apply.
+
+Thank you for using invoice!
+
+ Ulaanbaatar, Beijing,
+ Berlin, Shanghai, Shenyang
+ December 2003
+
+ Oliver Corff
+ corff@zedat.fu-berlin.de,
+ oliver.corff@email.de
diff --git a/Master/texmf-dist/doc/latex/invoice/invoice.pdf b/Master/texmf-dist/doc/latex/invoice/invoice.pdf
new file mode 100644
index 00000000000..84e549fd188
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/invoice/invoice.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/invoice/invoice.tex b/Master/texmf-dist/doc/latex/invoice/invoice.tex
new file mode 100644
index 00000000000..113319bbec7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/invoice/invoice.tex
@@ -0,0 +1,742 @@
+\documentclass[11pt]{ltxdoc}
+\usepackage{invoice}
+\usepackage{pslatex,hyperref}
+
+\title{\texttt{invoice \InvoiceVersion}\\
+ A Package for Writing Invoices}
+\author{Oliver Corff}
+\date{December 16th, 2003}
+\begin{document}
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+The \texttt{invoice} package was conceived in late 2000 when the
+author had to dig through a truly aweful pile of expense bills
+without having a spreadsheet featuring \LaTeXe-compliant output (or
+any spreadsheet, for that purpose) available. After several
+miscalculations with a pocket calculator due to forgotten or
+double entries the idea came up to have \LaTeXe\ do the calculation
+work. As such, the package in its present stage is highly
+specialized with regard to the documents it generates. The
+\texttt{invoice} package is basically a tailor-made solution for a
+consultant who charges fees and claims all sorts of expenses,
+sometimes working on different assignments for the same client.
+
+The author expresses his gratitude to
+Robert Inder,
+Thilo Barth,
+Jacco Kok,
+Fred Donck,
+Jacopo,
+Johann Spies,
+Ian Wormsbecker,
+Vincent Tougait
+and
+Robin Fairbairns
+who contributed ideas, corrections,
+bugfixes and caption translations after the first discussions on
+\texttt{comp.text.tex} and the initial release of \texttt{invoice}.
+
+Given the current capabilities of \texttt{invoice}, it should well
+be possible to extend the capabilities of this package in the future
+or to rewrite it in a generalized fashion.
+
+\section{Software Requirements}
+
+The \texttt{invoice} environment runs under \LaTeXe\ and relies on the
+\texttt{calc.sty} (providing infix arithmetic) and \texttt{realcalc}
+(providing real arithmetic) utilities to do its work which can be found
+at CTAN%
+ \footnote{The \texttt{realcalc} package is found at
+ \texttt{CTAN:macros/generic/realcalc},
+ and \texttt{calc} is found at
+ \texttt{CTAN:macros/latex/required/tools/}.}.
+Compile and read \texttt{00README.tex} for further information if
+you are not sure whether these packages are installed at your site.
+
+\section{The \texttt{invoice} Environment}
+
+Within a given document, invoices are built with the
+\texttt{invoice} environment\footnote{Users of the KOMA-Script
+ class \texttt{scrlettr.cls} are kindly requested to use
+ \texttt{invoiceenv} instead; see also page~\pageref{koma}.}.
+Figure~\ref{structure} on page~\pageref{structure} shows the
+logical structure of an invoice as well as its basic commands.
+In case a full-fledged invoice stationary is needed, it is recommended
+to use the \texttt{invoice} environment within existing business
+letters which may have been pre-defined already. The \texttt{invoice}
+package itself does not provide tools for including company logos,
+recipient's addresses, bank account numbers etc. as these are usually
+covered by the various \texttt{letter} classes available for \LaTeXe.
+
+\begin{figure}[h]
+\begin{center}
+\fbox{
+\begin{minipage}{8.5cm}%
+\textbf{\huge --- Invoice ---\\[2mm]}
+ \texttt{\Large \char92 begin\{invoice\}\{...\}\{...\}\\[2mm]}
+ \fbox{
+ \begin{minipage}{7.0cm}
+ \textbf{\Large --- Project ---\\[1.5mm]}
+ \texttt{\large\char92 ProjectTitle\{...\}\\[1.5mm]}
+ \fbox{
+ \begin{minipage}{5.5cm}
+ \textbf{\large --- Fees ---\\}
+ \texttt{\char92 Fee\{...\}\{...\}\{...\}}\\
+ ...\\
+ ...\\
+ \end{minipage}
+ }\\[2mm]
+ \fbox{
+ \begin{minipage}{5.5cm}
+ \textbf{\large --- Expenses (local) ---\\}
+ \texttt{\char92 EBC\{...\}\{...\}}\\
+ ...\\
+ ...\\
+ \textbf{\large --- Expenses (foreign) ---\\}
+ \texttt{\char92 EFC\{...\}\{...\}\{...\}\{...\}\{...\}}\\
+ ...\\
+ ...\\
+ \end{minipage}
+ }\\[2mm]
+ \end{minipage}
+ }\\[2mm]
+ \fbox{
+ \begin{minipage}{7.0cm}
+ \textbf{\Large --- \dots\ More Projects\dots\ ---}
+ \end{minipage}
+ }\\[2mm]
+% \fbox{
+% \begin{minipage}{7.0cm}
+% \textbf{\Large --- Project ---}
+% \end{minipage}
+% }\\
+ \texttt{\Large\char92 end\{invoice\}}
+\end{minipage}
+}
+\end{center}
+\caption{The \texttt{invoice} Environment
+ and its Logical Structure\label{structure}}
+\end{figure}
+
+Invoices contain one or more projects which in return contain the charged
+items, either fees (plus tax, if applicable) and/or expenses. An
+invoice with one project is announced by saying
+
+\begin{verbatim}
+\begin{invoice}{<Base Currency>}{<VAT>}
+ \ProjectTitle{...}%
+\end{invoice}
+\end{verbatim}
+
+There is no limit for the number of projects in an invoice, as there
+is no limit for the number of invoices per document.
+
+The \texttt{invoice} environment requires two arguments:
+\begin{enumerate}
+ \item \texttt{<Base Currency>} is the name of the currency
+ in which the invoice is charged, e.\,g. DM, Euro,
+ US\$, RMB etc.
+ \item \texttt{<VAT>} is the percentage rate of VAT which is charged;
+ in Germany this is currently (winter 2003) 16\%. If
+ no VAT is required, enter a \texttt{0}
+ (\textit{zero}) here. It is neither necessary nor
+ permissible to use a percent sign here. As some
+ countries (e.\,g. France) have fractions of
+ percentages (like 16.9\%), you would in this case
+ enter \verb|16.9| (without any percent sign).
+
+ Setting the VAT rate to \verb-0- produces the side
+ effect that the lines stating the VAT subtotals and
+ totals disappear.
+
+ If it is, however, desired to show the VAT results
+ even if they amount to zero, enter \verb-0.0- instead.
+\end{enumerate}
+
+
+\subsection{Projects}
+
+An invoice contains items which are usually, in the case of e.\,g.
+consultancy fees and related expenses like hotel bills and air
+fares, attributed to a given case or \textit{project}, or
+cost center, or ``Kostenstelle'' (in German).
+
+A project contains any of three different types of charged items:
+\begin{enumerate}
+ \item \textbf{Fees}. A tax can be added, if applicable. Fees
+ are always charged in the
+ base currency
+ of the invoice.
+ \item \textbf{Local Expenses}. Local expenses are charged in
+ units of the
+ base currency
+ of the invoice.
+ \item \textbf{Foreign Expenses}. Foreign expenses are charged in
+ units of any given foreign currency. Either the
+ base currency
+ equivalent is known (as taken from a credit card
+ billing statement, for example), or, if not, an
+ exchange rate between foreign currency and base
+ currency has to be stated.
+\end{enumerate}
+
+\textbf{Nota bene:} The order of fees and expenses is fixed. Either fees or
+expenses can be omitted, but expenses must be charged \textit{after}
+fees.
+
+
+\section{The First Example: How to Charge Fees}
+
+
+A consultant charges fees per day, hour or any other unit. Usually
+this unit is agreed upon in a contract and there is no further need
+to refer to this unit but by its count. This is done by the
+\verb-\Fee{}{}{}- command:
+
+\begin{verbatim}
+ \Fee{<Contents>}{<Rate/Unit>}{<Count>}
+\end{verbatim}
+
+Let's assume an interim manager
+charges DM 1818.00 a day for 12 working days while
+negotiating a major project, nicknamed \textit{Project Phenix}.
+He also charges DM 2750.00 a day for analysing and negotiating
+the restructuring of the sales division, a work he spent 9 days with.
+
+\subsection{Invoices with VAT}
+
+We further assume that the consultant is required to charge VAT.
+All information above would be entered into the invoice as follows:
+
+\begin{verbatim}
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ % Contents Rate/Unit Count
+ \Fee{Some really lengthy and utterly
+ tedious negotiation} {1818.00} {12}
+
+ \ProjectTitle{Sales Restructuring}%
+ % Contents Rate/Unit Count
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+\end{invoice}
+\end{verbatim}
+
+And here is how the result looks like:
+
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ \Fee{Some really lengthy and utterly
+ tedious negotiation} {1818.00} {12}
+
+ \ProjectTitle{Sales Restructuring}%
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+\end{invoice}
+
+Hints: If the base currency is to contain a dollar sign (\$), then
+dollar sign must be entered in the form of \verb|\string$|
+or otherwise the command writing the log file data will fail. The
+contents of each fee may be verbose; while the column width is
+limited, text contents longer than the column width wraps over
+several columns, if necessary.
+
+The astute observer will note that a line beginning with ``Subtotal~Fees''
+appeared in the output of the Sales Restructuring Project without explicit
+input to this effect from the user's side. The full grammar of the Fee block
+requires that all fees are closed by a fee subtotal. Internally,
+\texttt{invoice} is defined as a finite state automaton providing
+mechanisms to insert a fee subtotal if logic requires it, and print
+its value if it makes sense to humans, which is the case if there is more
+than one fee.
+
+Note that there is an explicit command \texttt{\char92 STFee} which will
+produce a subtotal of the fees charged so far. This can be used if
+you want to show fee subtotals within the same project.
+
+
+\subsection{Invoices without VAT}
+
+As mentioned above, an invoice may be calculated without any VAT.
+The VAT lines may completely disappear, as in the following
+example:
+\begin{verbatim}
+\begin{invoice}{DM}{0}
+ \ProjectTitle{Project Phenix}%
+ % Contents Rate/Unit Count
+ \Fee{Some really lengthy and utterly
+ tedious negotiation} {1818.00} {12}
+
+ \ProjectTitle{Sales Restructuring}%
+ % Contents Rate/Unit Count
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+\end{invoice}
+\end{verbatim}
+
+
+Figure~\ref{invoice_without_VAT} on
+page~\pageref{invoice_without_VAT}
+shows the result.
+
+\begin{figure}[h]
+\begin{invoice}{DM}{0}
+ \ProjectTitle{Project Phenix}%
+ \Fee{Some really lengthy and utterly
+ tedious negotiation} {1818.00} {12}
+
+ \ProjectTitle{Sales Restructuring}%
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+\end{invoice}
+\caption{A complete invoice
+ with fees but no VAT.\label{invoice_without_VAT}}
+\end{figure}
+
+In contrast, if for any reason the VAT subtotals and totals should
+be kept visible despite a \textit{value} of zero, then use a VAT
+value of \verb-0.0- as in the following example:
+\begin{verbatim}
+\begin{invoice}{DM}{0.0}
+ \ProjectTitle{Project Phenix}%
+ % Contents Rate/Unit Count
+ \Fee{Some really lengthy and utterly
+ tedious negotiation} {1818.00} {12}
+
+ \ProjectTitle{Sales Restructuring}%
+ % Contents Rate/Unit Count
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+\end{invoice}
+\end{verbatim}
+
+
+Figure~\ref{invoice_with_zero_VAT} on
+page~\pageref{invoice_with_zero_VAT}
+shows the result.
+
+\begin{figure}[h]
+\begin{invoice}{DM}{0.0}
+ \ProjectTitle{Project Phenix}%
+ \Fee{Some really lengthy and utterly
+ tedious negotiation} {1818.00} {12}
+
+ \ProjectTitle{Sales Restructuring}%
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+\end{invoice}
+\caption{A complete invoice
+ with fees but zero VAT.\label{invoice_with_zero_VAT}}
+\end{figure}
+
+
+\section{The Second Example: How to Claim Expenses}
+
+Expenses can be charged in base currency or in any foreign currency.
+The base currency's name should be announced once at the beginning
+of the invoice.
+
+\subsection{Expenses in Base Currency}
+
+The shape of an expense item in base currency is simple:
+
+\begin{verbatim}
+\EBC{<Contents>} {<Amount>}
+\end{verbatim}
+
+Both fields contain mandatory arguments:
+
+\begin{enumerate}
+ \item \texttt{<Contents>} contains a description of the
+ charged item, e.\,g. ``Hotel'', ``Airport Tax'' or
+ whatever.
+ \item \texttt{<Amount>} contains the amount in base currency
+ units.
+\end{enumerate}
+
+
+\subsection{Expenses in Foreign Currency}
+
+Charging an expense in foreign currency is only slightly more
+complicated. The command is:
+
+\begin{verbatim}
+\EFC{<Contents>}
+ {<Foreign Currency>}{<Amount>}
+ {<Conversion Rate>}{<Base Currency Result>}
+\end{verbatim}
+
+Arguments to the five fields are partially mandatory, partially optional:
+\begin{enumerate}
+ \item \texttt{<Contents>} contains a description of the
+ charged item, e.\,g. ``Hotel'', ``Airport Tax'' or
+ whatever.
+
+ \item \texttt{<Foreign Currency>} contains the name of the
+ foreign currency.
+
+ \item \texttt{<Amount>} contains the amount in foreign currency
+ units.
+
+ \item \texttt{<Conversion Rate>} contains the factor by
+ which the foreign currency amount has to be
+ multiplied in order to achieve the base currency
+ result. If the base currency result is stated,
+ then, and only then, the Conversion Rate can be
+ omitted.
+
+ \item \texttt{<Base Currency Result>} contains an optional
+ amount in base currency units. Credit card billing
+ statements show this amount which usually contains
+ certain service charges of the credit card issuer;
+ the base currency result is thus the true amount of
+ money to be charged. If a \texttt{<Conversion Rate>}
+ is given, stating a base currency result becomes
+ optional. This is usually applied for expenses made
+ with cash money.
+\end{enumerate}
+
+
+Since some of the arguments given to \verb-\EFC- are optional,
+there are basically two different forms of using this command.
+With the variant
+
+\begin{verbatim}
+\EFC{<Contents>}{<Foreign Currency>}{<Amount>}
+ {<Conversion Rate>} % Conversion rate
+ {} % Base currency empty!
+\end{verbatim}
+
+(amount in foreign currency given, as well as exchange rate stated),
+the command will automatically calculate the resulting amount in
+base currency.
+
+\begin{verbatim}
+\EFC{<Contents>}
+ {<Foreign Currency>}{<Amount>}
+ {} % Conversion rate empty!
+ {<Base Currency Result>} % Base currency
+\end{verbatim}
+
+If, however, the exchange rate is omitted and the target amount in
+base currency is given, then this value is taken directly. Stating
+the resulting amount overrides the internal calculation mechanism.
+Examples are given below. We use our interim manager's invoice
+again, assuming this time that she spent working on Project Phenix
+12 days in her home country while the Sales Restructuring effort
+took her to Hong Kong. The taxi bills are paid in cash, hence she
+enters the (fictive) conversion rate, whereas the hotel is paid by
+credit card. She can then take the final amount from her credit card
+billing statement; an example input would look as follows:
+
+\begin{verbatim}
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ % Contents Rate/Unit Count
+ \Fee{Negotiation} {1818.00} {12}
+ %
+ % Contents Amount
+ \EBC{Hotel, 12 nights} {2400.00}
+
+ \ProjectTitle{Sales Restructuring}%
+ % Contents Rate/Unit Count
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+ %
+ % Contents Currency Amount Conv.Rate Result
+ \EFC{Taxi Airport -- Hotel} {HK\$} {325.00} {0.2354} {}
+ \EFC{Hotel, 9 nights} {HK\$} {9180.00} {} {2111.40}
+\end{invoice}
+\end{verbatim}
+
+Figure~\ref{full_invoice} on
+page~\pageref{full_invoice}
+shows the result.
+
+\begin{figure}[h]
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ \Fee{Negotiation} {1818.00} {12}
+ %
+ % Contents Amount
+ \EBC{Hotel, 12 nights} {2400.00}
+
+ \ProjectTitle{Sales Restructuring}%
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+ %
+ % Contents Currency Amount Conv.Rate Result
+ \EFC{Taxi Airport -- Hotel} {HK\$} {325.00} {0.2354} {}
+ \EFC{Hotel, 9 nights} {HK\$} {9180.00} {} {2111.40}
+\end{invoice}
+\caption{A complete invoice with fees and expenses.\label{full_invoice}}
+\end{figure}
+
+Again, a subtotal of the expenses appears only if there is more than
+one expense item in a project.
+
+
+\subsection{Hidden Expense Details}
+
+Occasionally it may be desirable to list only the total of expenses
+incurred, while hiding the structure of expenses. In such a case,
+the expense commands can be modified by attaching an \verb|i| to
+their names (as in \textit{invisible}).
+
+A hidden expense in base currency is thus declared as:
+
+\begin{verbatim}
+\EBCi{<Contents>} {<Amount>}
+\end{verbatim}
+
+A hidden expense in foreign currency is declared as:
+
+\begin{verbatim}
+\EFCi{<Contents>}
+ {<Foreign Currency>}{<Amount>}
+ {<Conversion Rate>}{<Base Currency Result>}
+\end{verbatim}
+
+Both commands accept and require exactly the same arguments as their
+visible counterparts. The expenses will be added to the expense subtotals
+and the invoice total in the same way as if they were visible. If there
+is no visible expense stated at all it may be useful to have at least
+a line with the expense subtotal appear; this is done by the \verb|STExpenses|
+command, as shown in the following example:
+
+\begin{verbatim}
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ % Contents Rate/Unit Count
+ \Fee{Negotiation} {1818.00} {12}
+ %
+ % Contents Amount
+ \EBCi{Hotel, 12 nights} {2400.00}
+ %
+ \STExpenses
+
+ \ProjectTitle{Sales Restructuring}%
+ % Contents Rate/Unit Count
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+ %
+ % Contents Currency Amount Conv.Rate Result
+ \EFCi{Taxi Airport -- Hotel} {HK\$} {325.00} {0.2354} {}
+ \EFCi{Hotel, 9 nights} {HK\$} {9180.00} {} {2111.40}
+ \STExpenses
+\end{invoice}
+\end{verbatim}
+
+Figure~\ref{invoice_with_hidden_expenses} on
+page~\pageref{invoice_with_hidden_expenses}
+shows the result.
+
+\begin{figure}[h]
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ \Fee{Negotiation} {1818.00} {12}
+ %
+ % Contents Amount
+ \EBCi{Hotel, 12 nights} {2400.00}
+ %
+ \STExpenses
+
+ \ProjectTitle{Sales Restructuring}%
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+ %
+ % Contents Currency Amount Conv.Rate Result
+ \EFCi{Taxi Airport -- Hotel} {HK\$} {325.00} {0.2354} {}
+ \EFCi{Hotel, 9 nights} {HK\$} {9180.00} {} {2111.40}
+ \STExpenses
+\end{invoice}
+\caption{A complete invoice with visible fees
+ but invisible expenses.\label{invoice_with_hidden_expenses}}
+\end{figure}
+
+
+\section{Deduction of Discounts and Downpayments}
+
+Finally, it may be possible that previous downpayments etc. have to
+be considered for the invoice total. An optional discount line
+can state the item and deduct the amount from the invoice total.
+Deductions are always stated in base currency. They follow the following
+syntax:
+
+
+\begin{verbatim}
+\Discount{<Contents>} {<Amount>}
+\end{verbatim}
+
+Both fields contain mandatory arguments:
+
+\begin{enumerate}
+ \item \texttt{<Contents>} contains a description of the
+ discount item, e.\,g. ``Downpayment'', ``Tickets for
+ private use'' or whatever.
+ \item \texttt{<Amount>} contains the amount in base currency
+ units.
+\end{enumerate}
+
+Figure~\ref{full_and_discounted_invoice} on
+page~\pageref{full_and_discounted_invoice}
+shows the result.
+
+\begin{figure}[h]
+\begin{invoice}{DM}{16}
+ \ProjectTitle{Project Phenix}%
+ \Fee{Negotiation} {1818.00} {12}
+ %
+ % Contents Amount
+ \EBC{Hotel, 12 nights} {2400.00}
+
+ \ProjectTitle{Sales Restructuring}%
+ \Fee{Sales Structure Analysis} {2750.00} { 6}
+ \Fee{Negotiation with Agents} {2750.00} { 3}
+ %
+ % Contents Currency Amount Conv.Rate Result
+ \EFC{Taxi Airport -- Hotel} {HK\$} {325.00} {0.2354} {}
+ \EFC{Hotel, 9 nights} {HK\$} {9180.00} {} {2111.40}
+ \Discount{Downpayment received} {2000.00}
+\end{invoice}
+\caption{A complete invoice with fees,
+ expenses and a deduction.\label{full_and_discounted_invoice}}
+\end{figure}
+
+\section{Postprocessing}
+
+In order to allow the further processing of
+\texttt{invoice}-generated data, the log file contains the totals of
+fees, expenses and taxes in the form of \verb-key:value- pairs. This
+information appears also on the terminal while \LaTeXe\ runs. Please
+note that the key appearing in the log file is expressed in the same
+language as that of the master document.
+
+\section{Document Language}
+
+All column headers appearing in \texttt{invoice} can be redefined in
+order to match the language of the master document. E.\,g., headings
+like ``Total'' will automatically appear as ``Gesamtsumme'' if the
+document language is set to German (either via \texttt{babel} or
+\verb-\usepackage{german}-).
+
+Please observe that the \texttt{invoice} package must be called {\em
+after} the document language has been selected.
+
+This is correct:
+
+\begin{verbatim}
+\documentclass[10pt]{ltxdoc}
+\usepackage{german}
+\usepackage{invoice} % labels will now appear in German!
+\end{verbatim}
+
+This will not work:
+
+\begin{verbatim}
+\documentclass[10pt]{ltxdoc}
+\usepackage{invoice}
+\usepackage{german} % labels will still appear in English!
+\end{verbatim}
+
+
+\subsection{Specifying the Desired Language}
+
+It is also possible to ignore the global language settings and select
+a language local to the \texttt{invoice} package by specifying the
+desired language as an option:
+
+\begin{verbatim}
+\documentclass[10pt]{ltxdoc}
+\usepackage[german]{invoice} % labels in German, rest
+ % of document in English
+\end{verbatim}
+
+This is useful whenever the desired language is not provided by the
+installation base where \texttt{invoice} is executed.
+
+\subsection{Adding Labels in a New Language}
+
+At present, column labels produced by \texttt{invoice} can appear
+in six languages: Afrikaans, Dutch, English, French, German and Italian.
+Other languages can be added easily by editing the file
+\verb-invoice.def-. Language-dependent definitions are contained in
+the \verb-\if-clause. Extending the file is simple:
+
+\begin{enumerate}
+ \item Copy the labels template to the end of the file.
+ \item Remove the comments (\verb-%-) in column 1.
+ \item Fill each label definition with the appropriate
+ foreign language translation.
+ \item Put the correct internal name of the foreign language
+ into the condition expression of the \verb-\ifx--
+ and \verb-\ifnum--clauses.
+\end{enumerate}
+
+\begin{sloppypar}
+Whenever you create your own foreign language extension please kindly
+consider sending your modified \verb-invoice.def- file to the author
+(at \verb+corff@zedat.fu-berlin.de+ or \verb+oliver.corff@email.de+)
+so that it can be included in the next update. Future users can then
+share your work.
+\end{sloppypar}
+
+\section{Bugs}
+
+Certainly there are bugs. After all, this is not Moon, but Earth
+(where life is supposed to exist, as opposed to Moon). The author
+has not conducted extensive tests on the algebraic functions, and
+there may be rounding and truncating errors.
+
+The author considers it a bug that the decimal point cannot be
+replaced by a comma at present, while entering dollar signs
+requires the \verb|\string$| notation.
+
+Spurious spaces may distort the table layout. It is especially
+recommended to close all \verb"\ProjectTitle{...}%" lines with a
+percent mark, as shown. If the percent mark is omitted, the first
+column header is not properly aligned to the left.
+
+Breaking long invoice statements with many projects over several
+pages results in many orphans and widows.
+
+\subsection{\label{koma}Compatibility with KOMA-Script}
+
+Unfortunately, when first writing this package the author was not aware
+of the KOMA-Script classes, notably the class \texttt{scrlettr.cls}
+which defines its own \verb-\invoice{#1}- command, albeit with completely
+different scope, usage and syntax. KOMA-Script's \verb-\invoice{#1}- command
+accepts a number and prints ``Invoice no. \#1'' in a letter
+opening. Now that the names of the \texttt{invoice} package and
+environment have stuck it is easier to think of a workaround than to
+conceive a new name. Therefore, If the class \texttt{scrlettr.cls} is
+used, the environment \texttt{invoice} is automatically renamed to
+\texttt{invoiceenv}. Writing
+
+\begin{verbatim}
+\documentclass[10pt]{scrlettr}
+\usepackage{invoice}
+\begin{invoice}{DM}{16}
+...
+...
+\end{verbatim}
+
+will result in an error message. Say \verb-\begin{invoiceenv}{DM}{16}-
+instead. KOMA-Script's own \verb-\invoice{#1}- command is renamed to
+\verb-\invoiceno{#1}-, while \verb-\invoice{#1}- now generates an
+error message reminding KOMA-Script users to apply the renamed
+commands.
+
+\section{Desiderata}
+
+The \verb-invoice- package is far from complete. Future expansions
+should aim at making the package more flexible. How taxes are
+treated, etc., is at present a rather particular arrangement
+suitable for the author's immediate needs, but a more general
+solution can be designed as soon as more users reflect their needs
+to the author.
+\end{document}