summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/dinbrief
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/dinbrief
Initial commit
Diffstat (limited to 'macros/latex/contrib/dinbrief')
-rw-r--r--macros/latex/contrib/dinbrief/dinbrief.dtx7653
-rw-r--r--macros/latex/contrib/dinbrief/dinbrief.ins215
-rw-r--r--macros/latex/contrib/dinbrief/dinbrief.pdfbin0 -> 475503 bytes
-rw-r--r--macros/latex/contrib/dinbrief/liesmich93
-rw-r--r--macros/latex/contrib/dinbrief/readme221
5 files changed, 8182 insertions, 0 deletions
diff --git a/macros/latex/contrib/dinbrief/dinbrief.dtx b/macros/latex/contrib/dinbrief/dinbrief.dtx
new file mode 100644
index 0000000000..12f214df71
--- /dev/null
+++ b/macros/latex/contrib/dinbrief/dinbrief.dtx
@@ -0,0 +1,7653 @@
+%
+% \iffalse meta-comment
+%
+% $Id: dinbrief.dtx,v 1.73 2000/03/02 12:49:21 rz32 Exp $
+%
+%<*styleinfo>
+=======================================================================
+@stylefile{Ltall
+shortpackagename = {dinbrief},
+longpackagename = {dinbrief},
+baseformats = {\LaTeX\ 2.09 and \LaTeXe},
+version = {$Revision: 1.73 $},
+date = {$Date: 2000/03/02 12:49:21 $},
+author = {K.D. Braune, R. Gussmann,
+ Klaus.Braune@rz.uni-karlsruhe.de
+ richard@gussmann.de
+ Universit\"at Karlsruhe
+ Rechenzentrum
+ Postfach 6980
+ 76128 Karlsruhe
+ +49 721 608-40 31},
+abstract = {This document serves as User's Guide
+ and as documentation of the new \LaTeX-Style
+ or a \LaTeXe-Class. This class/style implements
+ a new document layout for writing letters,
+ according to the rules of DIN (Deutsches
+ Institut f\"ur Normung, German standardization
+ institute). The User's Guide is written in
+ German, since we assume the class/style is of
+ minor interest outside Germany. Of course,
+ most of the macros are explained in English.},
+support = {yes},
+comments = {},
+requirements = {},
+incompatibilities = {not full compatible to R. Sengerlings dinbrief}}
+=======================================================================
+%</styleinfo>
+%
+% $Log: dinbrief.dtx,v $
+% Revision 1.73 2000/03/02 12:49:21 rz32
+% <CR><LF> replaced by UNIX's newline.
+% Adjustment of \textheight due to a high position of the bottomtext corrected.
+% Made position of bottomtext work correct with pagestyles empty, headings and
+% myheadings.
+%
+% Revision 1.72 2000/01/19 14:51:04 rz32
+% Made version ready for distribution
+%
+% Revision 1.71 2000/01/19 14:41:57 rz32
+% Many changes, the more important ones being:
+% - replacing absolut length by variables and expressions
+% - support for a configurtion file
+% - made bottomtext working before \begin{document}
+% - minor modifications to make the documentation (except dinbrief.drv)
+% working under LaTeX 209
+%
+% Revision 1.72 2000/01/19 11:51:09 rz32
+% Minor modifications to make the documentation (except dinbrief.drv)
+% working under LaTeX209
+%
+% Revision 1.71 2000/01/19 00:18:53 rz32
+% Many changes, the more important ones being:
+% - replacing absolut length by variables and expressions
+% - support for a configurtion file
+% - support for both letter versions
+% - made bottomtext working before \begin{document}
+%
+% Revision 1.70 2000/01/12 21:54:33 Gussmann
+% - Documentation for extended \closing[]{} added.
+%
+% Revision 1.69 2000/01/03 21:10:25 Gussmann
+% - The checksum must also corrected (a long time ago you changed a
+% dtx-file, Richard).
+% - Added entry to the change history.
+%
+% Revision 1.68 2000/01/03 20:42:40 Gussmann
+% - Fixed Y2K-bug in \@znumber.
+% - Changed the license conditions to the LaTeX Project Public
+% License (LPPL).
+%
+% Revision 1.67 1998/09/03 00:22:05 Gussmann
+% - Added some changes lost in elder versions.
+%
+% Revision 1.66 1996/10/29 20:50:05 Gussmann
+% - lots of minor changes.
+%
+% Revision 1.65 1996/08/06 01:17:29 Gussmann
+% - \cmd\closing extended.
+% - minor bugs fixed.
+%
+% Revision 1.64 1996/05/30 22:36:59 Gussmann
+% - Fixed a typo.
+%
+% Revision 1.63 1996/05/21 19:13:50 Gussmann
+% - twoside option added.
+%
+% Revision 1.62 1996/01/09 19:59:40 Gussmann
+% - \@multiplelabelsfalse is no longer defined in LaTeX2e.
+% Removed this line from the code.
+%
+% Revision 1.61 1995/12/12 20:31:16 Gussmann
+% - Fixed wrong headline.
+% - Removed \cs\G@refundefined\ from \cs\document\ to work with
+% the December 1995 release of LaTeX2e.
+%
+% Revision 1.60 1995/10/27 00:13:16 Gussmann
+% File: brfkopf.tex changed. \vspace* moved before the picture.
+%
+% Revision 1.59 1995/10/05 22:53:59 Gussmann
+% Forgot to change the \cmd\checksum.
+%
+% Revision 1.58 1995/10/05 22:37:22 Gussmann
+% Fixed bug in \cmd\document. Problems with ats in the aux-file
+% should not longer arise.
+%
+% Revision 1.57 1995/08/15 23:31:20 Gussmann
+% - Documentation changed.
+% - Checksum set.
+%
+% Revision 1.56 1995/08/15 23:04:24 Gussmann
+% - \cmd\subject changed. It's now a link to \cmd\concern.
+%
+% Revision 1.55 1995/08/15 22:55:53 Gussmann
+% - Empty white page on the very end of the document will not longer shipped
+% out.
+% - Fixed bug in the generation of labels with style label@plain.
+% - Command \string\subject added. Same behavior as \string\concern.
+%
+% Revision 1.54 1995/07/06 02:35:55 Gussmann
+% - Code for the readme-file removed. It can now be found in dbaddon.dtx.
+% - Code for tracing removed. It can now be found in dbaddon.dtx.
+%
+% Revision 1.53 1995/07/06 01:37:11 Gussmann
+% - Readme-file added.
+% - structure of dinbrief.dtx changed.
+% - pagestyle contheadins didn't work correct in all cases.
+%
+% Revision 1.52 1995/06/30 15:15:28 Gussmann
+% - pagestyle contheadings did not work.
+% - fixed bug in placing the enclosures right.
+% - \cmd\nofiles and \cmd\makelabels did now work as expected.
+% (Warning \cmd\nofiles switches also the generation of the
+% labels off).
+%
+% Revision 1.51 1995/06/29 12:48:35 Gussmann
+% *** empty log message ***
+%
+% Revision 1.50 1995/06/29 12:45:15 Gussmann
+% - Versionnumber is overtaken from rcs.
+%
+% Revision 1.49 1995/06/29 12:41:20 Gussmann
+% - \cmd\letter\ changed. \cmd\vspace\ is set to \cmd\relax\ while
+% splitting the receivers address.
+% - \cmd\ntoday\ added. The behavior is quite the same as in \cmd\today.
+% - \cmd\@ntoday changed.
+%
+% Revision 1.48 1995/06/28 02:34:32 Gussmann
+% - Fixed bug in redefinition of \cmd\cal\ und \cmd\mit.
+% - Behavior of \cmd\Anlagen\ and \cmd\Verteiler\ changed
+% to be compatible with old dinbrief.
+% - Commands \cmd\encl\ and \cmd\cc\ changed. Now an
+% optional argument can replace the predefined strings
+% or avoid them if an empty optional argument is given.
+% This will be a feature and not documented.
+% - LaTeX warnings changed to Class dinbrief warnings.
+% In LaTeX209 mode a new command \cmd\ClassWarning\
+% defined.
+%
+% Revision 1.47 1995/06/12 23:43:58 Gussmann
+% - Only the position of the windowtics changed (all of them
+% moved 1.1mm down).
+%
+% Revision 1.46 1995/06/12 23:03:54 Gussmann
+% - Documentation updated.
+% - Some test messages removed.
+% - Some macros changed.
+%
+% Revision 1.45 1995/06/01 00:42:51 Gussmann
+% Documentation has been updated und completed (not complete yet).
+%
+% Revision 1.44 1995/05/31 18:17:45 Gussmann
+% - \cmd\labelnumber\ changed to \cmd\setlabelnumber
+% - \cmd\labelheight\ changed to \cmd\setlabelheight
+% - \cmd\labeltopmargin\ changed to \cmd\setlabeltopmargin
+% - Reason: One of the commands above is also used inside the list
+% environment.
+%
+% Revision 1.43 1995/05/11 02:45:55 Gussmann
+% - Thousends of overfull hboxes removed.
+% - Character table added.
+% - Checksum added.
+% - LaTeX2e version check added.
+% (but still the wrong date.)
+%
+% Revision 1.42 1995/05/11 01:32:40 Gussmann
+% Section for the commands of the old dinbrief from Rainer Sengerling
+% added.
+%
+% Revision 1.41 1995/05/09 00:48:54 Gussmann
+% - Yeah! Labels can now be printed on Herma copy-print 4452 (105mm x 42mm)
+% - \cmd\hoffset will not be changed, therefore \cmd\evensidemargin and
+% \cmd\oddsidemargin hold now other values.
+% - \cmd\voffset will not be changed, therefore \cmd\topmargin
+% hold now other values.
+% - \cmd\setlabelwidth holds now the width of one label.
+% - still inconsistent label commands: \setlabelwidth, \labelheight,
+% \labeltopmargin.
+% - new trace flag \cs{if@kadb@tracinglabels}.
+%
+% Revision 1.40 1995/04/28 01:36:09 Gussmann
+% - Fixed bug in switch commands for the generation of labels, \cmd\nolabels,.
+% - Fixed bug in typesetting the labels.
+%
+% Revision 1.39 1995/04/28 01:26:27 Gussmann
+% - New commands: \cmd\offlabels, \cmd\onlabels and \cmd\nolabels.
+% - fixed bug in typesetting the labels.
+%
+% Revision 1.38 1995/04/27 23:46:43 Gussmann
+% - Generation of labels with different sizes work now.
+% - \cmd\spare works also now.
+% - Fine tuning of the labels and their adjustement on the
+% page is beeing still missing.
+%
+% Revision 1.37 1995/04/26 00:49:03 Gussmann
+% - Label management not yet complete (Try \Etizahl{4} to get
+% funny results).
+% - Former authors are still not mentioned. (Some people
+% will grumble about this!)
+%
+% Revision 1.36 1995/04/25 23:54:35 Gussmann
+% Assignments for \labelnumber, \labelheight and \labelwidth are now
+% global.
+%
+% Revision 1.35 1995/04/25 23:51:49 Gussmann
+% Only comments added behind some closing braces.
+%
+% Revision 1.34 1995/04/25 23:36:01 Gussmann
+% Changes:
+% - \newdimen\ka@db@tmpdima\ introduced.
+% - \cmd\closing\ changed.
+%
+% Revision 1.33 1995/04/25 23:20:03 Gussmann
+% \cmd\closing\ changed. Forgott to insert a minus sign in the calculation
+% of the witdh of the parboxes.
+%
+% Revision 1.32 1995/04/25 23:13:18 Gussmann
+% *** empty log message ***
+%
+% Revision 1.31 1995/03/02 00:54:57 Gussmann
+% * Test messages has being commented out.
+% * Some bugs fixed in \cmd\label@plain.
+% * \cmd\label@plain still contains errors.
+%
+% Revision 1.30 1995/03/01 23:44:04 Gussmann
+% * \cmd\spare implemented (still not complete).
+% * \cmd\Etihoehe, \cmd\Etirand and \cmd\Etizahl implemented.
+% * \cmd\labelheight, \cmd\labeltopmargin and \cmd\labelnumber
+% implemented.
+% * comments in the label section added.
+%
+% Revision 1.29 1995/02/22 20:07:31 Gussmann
+% *** empty log message ***
+%
+% Revision 1.28 1995/01/22 21:45:47 Gussmann
+% * macro \cmd\ka@db@tstoaddress\space changed.
+% * \cmd\postremark\space works.
+%
+% Revision 1.27 1995/01/22 21:28:52 Gussmann
+% \cmd\ka@db@ifemptydynvar\space inserts phantom spaces. (Fixed!)
+%
+% Revision 1.26 1995/01/22 21:25:59 Gussmann
+% * many changes (lot of intern commands changed)
+% * \cmd\postremark\space added
+%
+% Revision 1.25 1995/01/22 00:27:24 Gussmann
+% * layout bug in envelope window detected and fixed.
+%
+% Revision 1.24 1995/01/19 02:43:30 Gussmann
+% \cmd\letter sequence \let\\=\relax added to avaid error message
+% in LaTeX209.
+%
+% Revision 1.23 1995/01/19 02:28:36 Gussmann
+% * lots of changes, not all mentioned here!
+% * layout incomplete (some positions differ up to 6mm from norm position)!
+% * commands changed (list incomplete)
+% - NEW counter \c@lt@state
+% - \cmd\letter (counter cmds added, old cmds not deletet yet)
+% - \cmd\opening (counter cmds added)
+% - \cmd\closing (counter cmds added)
+% - \cmd\endletter (counter cmds added)
+% - \cmd\cc changed
+% - \cmd\encl changed
+% - \cmd\Anlagen changed
+% - \cmd\Verteiler changed
+% - \cmd\signature changed
+%
+% Revision 1.22 1995/01/15 23:48:40 Gussmann
+% Many changes:
+% * old dinbrief API added (not yet complete).
+% * dinbrief programming API introduced (not used at the moment).
+% * \cmd\opening rewritten:
+% - \cmd\opening is now not longer a large monolitc macro. It
+% is small and calls several other macros.
+% - all other macros called by the \cmd\opening introduced.
+% - new macros causes other base positions of the
+% normed positions of some letter objects. Final
+% position of these objects (i.e. the frames and tics)
+% not checked (+- 2.5mm).
+% * macros \cmd\ifka@db@windowrules and \cmd\ifka@db@windowtics
+% replace old macros.
+% * new example called: dbold.tex added.
+% * driver changed (generate now also dbold.tex, hopefully and index
+% and the changelog.
+%
+% Revision 1.21 1995/01/13 16:27:49 Gussmann
+% * \cmd\splitoncr introduced, to split the address of the receiver
+% in a more user friendly way.
+% * old DINBRIEF API functions added.
+%
+% Revision 1.20 1995/01/12 01:12:12 Gussmann
+% Fixed bug to work correctly with NFSS.
+% PSNFSS gets now the right fonts.
+% Only command \document changed.
+%
+% Revision 1.19 1994/12/21 23:54:46 Gussmann
+% * Work around removed, which fixes a bug from the beta release
+% of LaTeX2e.
+% * Date updated.
+%
+% Revision 1.18 1994/12/20 09:45:03 Gussmann
+% *** empty log message ***
+%
+% Revision 1.17 1994/12/14 19:25:07 Gussmann
+% \cs\envname can't being used in headlines.
+%
+% Revision 1.16 1994/12/14 18:25:36 Gussmann
+% * Errors removed: - Definition of \concern contains \newbox command!
+% \newbox moved outside.
+% - Equation numbers not reset at the end of a letter.
+% (Fixed)
+% * Still more documentation added and some (a lot of) errors corrected.
+% * Test for equation added.
+%
+% Revision 1.15 1994/12/14 14:18:44 Braune
+% *** empty log message ***
+%
+% Revision 1.14 1994/12/09 14:56:53 Gussmann
+% 10pt option removed from files dinbrief.tex and test10.tex
+% in the \cmd\documentstyle-command.
+%
+% Revision 1.13 1994/12/09 14:26:08 Gussmann
+% Documentation changed (only some little layout questions).
+% Layout of documenation file dinbrief.tex is still unsatisfied.
+%
+% Revision 1.12 1994/12/09 13:24:53 Gussmann
+% I've forgotten to include description of \cmd\closing{}.
+% I deleted some doubbled explanations.
+%
+% Revision 1.11 1994/12/08 12:42:15 Gussmann
+% Documentation finished.
+% First public release.
+%
+% Revision 1.10 1994/12/02 02:59:21 Gussmann
+% Documentation completed.
+%
+% Revision 1.9 1994/11/17 03:11:56 Gussmann
+% Error corrected within the documentation.
+%
+% Revision 1.8 1994/11/17 02:44:47 Gussmann
+% - More documentation added.
+% - Errors corrected:
+% * \verb|\bottomtext| works only with the first letter in a
+% file. Fixed. \verb|\unhbox| changed to \verb|\unhcopy|.
+% * Fixed some errors in the documentation.
+% - Test suite extended.
+%
+% Revision 1.7 1994/11/16 22:03:58 Gussmann
+% Documentation has been updated and corrected.
+%
+% Revision 1.6 1994/11/16 19:26:52 Gussmann
+% The document starts now with the user guide.
+%
+% Revision 1.5 1994/11/16 19:25:04 Gussmann
+% *** empty log message ***
+%
+% Revision 1.4 1994/11/16 19:21:20 Gussmann
+% *** empty log message ***
+%
+% Revision 1.3 1994/11/16 19:17:38 Gussmann
+% *** empty log message ***
+%
+% Revision 1.2 1994/11/16 19:08:08 Gussmann
+% *** empty log message ***
+%
+% Revision 1.1 1994/11/16 23:37:01 Gussmann
+% Initial revision (rcs introduced)
+%
+% =======================================================================
+%
+% Copyright (C) 1993, 96, 97 by University of Karlsruhe (Computing Center).
+% Copyright (C) 1998, 2000 by University of Karlsruhe (Computing Center)
+% and Richard Gussmann.
+% All rights reserved.
+% For additional copyright information see further down in this file.
+%
+% This file is part of the DINBRIEF package
+% -----------------------------------------------------------------------
+%
+% It may be distributed under the terms of the LaTeX Project Public
+% License (LPPL), as described in lppl.txt in the base LaTeX distribution.
+% Either version 1.1 or, at your option, any later version.
+%
+% The latest version of this license is in
+%
+% http://www.latex-project.org/lppl.txt
+%
+% LPPL Version 1.1 or later is part of all distributions of LaTeX
+% version 1999/06/01 or later.
+%
+%
+% For error reports in case of UNCHANGED versions see readme files.
+%
+% Please do not request updates from us directly. Distribution is
+% done through Mail-Servers, TeX organizations and others.
+%
+% If you receive only some of these files from someone, complain!
+%
+% \fi
+%
+% \CheckSum{5317}
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+% \changes{1.70.1}{2000/01/10}{(KB) Inserted commands for \LaTeXe\ packages
+% and document options}
+% \setcounter{StandardModuleDepth}{1}
+% \newcommand\Dopt[1]{\texttt {#1}}
+% \newcommand\Lopt[1]{\textsf {#1}}
+% \newcommand\Lpkg[1]{\textsf {#1}}
+% \newcommand\file[1]{\texttt {#1}}
+% \newcommand\Lcount[1]{\textsl {\small#1}}
+% \newcommand\pstyle[1]{\textsl {#1}}
+%
+%
+% \title{Standard Document Class `dinbrief'\\ for \LaTeX{} version 2e\\
+% Standard Document Style `dinbrief'\\ for \LaTeX{} version 2.09}
+%
+% \author{%
+% Copyright \copyright\ 1993,\ 94,\ 95,\ 96,\ 98,\ 2000\\
+% by Klaus Dieter Braune, Richard Gussmann
+% }
+%
+% \maketitle
+%
+% \begin{abstract}
+% This document serves as User's Guide and as documentation of the new
+% \LaTeX-Style or a \LaTeXe-Class. This class/style implements
+% a new document layout for writing letters, according to the rules
+% of DIN (Deutsches Institut f\"ur Normung, German standardization
+% institute). The User's Guide is written in German, since we assume
+% the style is of minor interest outside Germany. Of course, most of
+% the macros are explained in English.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \iffalse
+%<*documentation|dintab>
+% \fi
+%
+% \iffalse
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{article}
+ \typeout{Using the command \string\documentstyle.}
+ \newcommand\LaTeXe{\LaTeX\kern.15em2$_\varepsilon$}
+ \else
+ \documentclass[10pt]{article}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+
+\newcommand\Dopt[1]{{\tt #1\/}}
+\newcommand\file[1]{{\tt #1\/}}
+
+\title{Standard Document Class `dinbrief'\\ for \LaTeX{} version 2e\\
+ Standard Document Style `dinbrief'\\ for \LaTeX{} version 2.09}
+
+\author{%
+Copyright \copyright\ 1993,\ 96,\ 98\\ by Klaus Dieter Braune, Richard Gussmann
+}
+% \fi
+%
+\newenvironment{decl}%
+ {\par\small\addvspace{4.5ex plus 1ex}%
+ \vskip -\parskip
+ \noindent\hspace{-\leftmargini}%
+ \begin{tabular}{|l|}\hline\ignorespaces}%
+ {\\\hline\end{tabular}\par\nopagebreak\addvspace{2.3ex}%
+ \vskip -\parskip}
+%
+\newcommand{\declline}[1]{\\\multicolumn1{|r|}{\small#1}}
+%
+\newcommand{\m}[1]{\mbox{$\langle$\emph{#1}$\rangle$}}
+%
+\renewcommand{\arg}[1]{{\tt\string{}\m{#1}{\tt\string}}}
+%
+\expandafter\ifx\csname oarg\endcsname\relax
+ \newcommand{\oarg}[1]{{\tt[}\m{#1}{\tt]}}
+\fi
+%
+\makeatletter
+\expandafter\ifx\csname cmd\endcsname\relax
+ \def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\fi
+%
+\expandafter\ifx\csname cmd@to@cs\endcsname\relax
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+\fi
+\makeatother
+%
+\expandafter\ifx\csname cs\endcsname\relax
+\def\cs#1{{\tt\char`\\#1}}
+\fi
+%
+\newcommand{\env}[2]{\cmd{#1}{\protect\tt\char`\{#2\char`\}}}
+\newcommand{\envname}[1]{{\protect\tt#1}}
+%
+\germanTeX
+%
+\expandafter\ifx\csname emph\endcsname\relax
+ \newcommand\emph[1]{{\em#1\/}}% This is \emph{not} the LaTeX2e
+ % definition!
+\fi
+
+% \iffalse
+\begin{document}
+\maketitle
+% \fi
+%
+% \iffalse
+%</documentation|dintab>
+% \fi
+% \iffalse
+%<*documentation>
+% \fi
+%
+\renewcommand{\textfraction}{0.10}
+\renewcommand{\topfraction}{0.65}
+\renewcommand{\bottomfraction}{0.85}
+%
+\expandafter\ifx\csname sect\endcsname\relax
+ \let\sect=\section
+\fi
+\expandafter\ifx\csname ssect\endcsname\relax
+ \let\ssect=\subsection
+\fi
+\expandafter\ifx\csname sssect\endcsname\relax
+ \let\sssect=\subsubsection
+\fi
+%
+\sect{Benutzerhandbuch (User's Guide)}
+%
+
+Mit \LaTeX\ k"onnen (nat"urlich) auch Briefe geschrieben werden.
+F"ur englische Briefe gibt es die Dokumentklasse \envname{letter}.
+Deutsche Briefe k"onnen mit der Klasse \envname{dinbrief}
+geschrieben werden.
+
+Die vorliegende Klasse \envname{dinbrief} basiert auf dem
+\envname{dinbrief}-Stil der Universit"at Karlsruhe. Dieser
+Stil wurde aus \envname{dletter.sty} entwickelt, welcher
+von D.~Heinrich abgefa"st wurde. Seinerseits geht dieser
+zur"uck auf den Stil \envname{a4letter} von H.~Partl, welcher
+seinen Ursprung im urspr"unglichen \envname{letter}-Stil
+von L.~Lamport hatte. Zus"atzlich wurden aus den \envname{dinbrief.sty}
+von R.~Sengerling der Befehlsvorrat und die Option \Dopt{norm}
+"ubernommen. Ferner enth"alt diese Klasse Tips und Anregungen von
+B.~Raichle.
+
+In den Briefen k"onnen u.a.\ Formeln,
+Tabellen und beliebige Listen verwendet werden.
+In einem Dokument k"onnen mehrere Briefe geschrieben werden.
+Die Gliederung in Abs"atze erfolgt durch Einf"ugen einer
+Leerzeile (wie in \LaTeX\ "ublich).
+
+\sect{Zus"atzliche Optionen der {\protect\tt dinbrief}-Klasse}%
+\index{Briefe>Optionen}\index{Optionen der dinbrief-Klasse=Optionen der \envname{dinbrief}-Klasse}
+
+In der DIN Norm~676 werden zwei Formen von Briefen festgelegt.
+In "alteren Versionen dieses Paketes wurde nur diejenige Form unterst"utzt,
+in der oben ein Rand von 45mm f"ur den Briefkopf freigelassen wird.
+In der zweiten Version ist dieser Rand auf 27mm verk"urzt; damit steht f"ur
+den Brieftext mehr Platz (18mm) zur Verf"ugung.
+
+Die Wahl der gew"unschten Form kann durch Angabe der Optionen \Dopt{addresshigh}
+f"ur einen oberen Rand von 27mm oder \Dopt{addressstd} f"ur einen oberen Rand
+von 45mm getroffen werden.
+Die Angabe der Option \Dopt{addressstd} kann unterbleiben, da sie ohnehin
+voreingestellt ist.
+
+\sect{Befehle in der {\protect\tt dinbrief}-Klasse}%
+\index{Briefe>DIN 676}\index{DIN-Brief}\index{Briefe>dinbrief=\envname{dinbrief}}
+
+Bereits vor \env\begin{document} kann man Angaben machen, die f"ur
+alle Briefe g"ultig sind, z.B.\ {\bf Absender\/} (\cs{address}
+bzw.\ \cs{backaddress}), {\bf Absendeort\/} (\cs{place}),
+{\bf Telefon\/} (\cs{phone}) und {\bf Unterschrift\/} (\cs{signature}).
+
+\ssect{Aus der {\protect\tt letter}-Klasse "ubernommene Befehle}
+
+Jeder Brief steht in einer eigenen \envname{letter}-Umgebung.
+Der Empf"anger wird als Argument des
+\env\begin{letter}-Befehls angegeben
+(\env\begin{letter}\arg{Anschrift}).
+
+Eine entscheidende Bedeutung beim Schreiben von Briefen
+hat der \cs{opening}-Befehl. Nur dieser Befehl setzt
+den Briefkopf, die Absenderangaben und die Adresse des
+Empf"angers. Die {\bf Anrede des Empf"angers\/} wird als
+Argument angegeben (\cmd\opening\arg{Anrede}).
+
+Danach folgt der eigentliche Brieftext. Die abschlie"sende
+{\bf Gru"sformel\/} wird mit dem Befehl \cmd\closing\arg{Gru"sformel}
+gesetzt. Dieser Befehl f"ugt auch die maschinenschriftliche
+Wiederholung der Unterschrift an, wie sie mit dem
+\cs{signature}-Befehl festgelegt wurde.
+Die erweiterte Form \cmd\closing\oarg{Unterschrift}\arg{Gru"sformel}
+erm"oglicht es, die Unterschrift unter den Brief als Text oder Graphik
+einzubinden.
+
+Im Anschlu"s an die Gru"sformel werden {\bf Anlagen-\/}
+(\cmd\encl\arg{Anlage}), {\bf Verteilvermerke\/}
+(\cmd\cc\arg{Verteiler}) und das {\bf Postscriptum\/}
+(\cmd\ps\arg{Postscriptum}) an den Brief angef"ugt.
+
+Mit dem Befehl \cs{makelabels} (vor \env\begin{document})
+werden zus"atzlich {\bf Adre"s-Etiketten\/} erzeugt.
+
+Dar"uberhinaus wurden die oben erw"ahnten Befehle
+\cs{address}, \cs{place} und \cs{signature} aus
+der \envname{letter}-Klasse "ubernommen.
+
+\begin{figure}[p]
+\begin{center}
+{\small
+\begin{verbatim}
+\documentclass[12pt]{dinbrief}
+\usepackage{german}
+
+\address{R"udiger Kurz\\
+ Am See 1\\
+ 76133 Karlsruhe}
+\backaddress{R. Kurz, Am See 1, 76133 Karslruhe}
+
+\signature{R"udiger Kurz}
+\place{Karlsruhe}
+
+\begin{document}
+\phone{0721}{222222}
+\begin{letter}{Deutsche Bundespost\\
+ Fernmeldeamt Karlsruhe\\
+ Postfach 7300\\[\medskipamount]
+ {\bf 76131 Karlsruhe}}
+
+\yourmail{01.04.93}
+\sign{123456}
+\subject{Betrieb eines Mikrowellensenders}
+
+\opening{Sehr geehrte Damen und Herren,}
+
+anbei sende ich Ihnen eine Kopie der bisherigen Genehmigung f"ur
+unseren Mikrowellenherd...
+
+... Ihre Bem"uhungen im voraus vielen Dank.
+
+\closing{Mit freundlichen Gr"u"sen,}
+
+\ps{Wir bitten um schnelle Erledigung.}
+\cc{Deutsche Bundespost\\
+ Karlsruher Privatfunk \\
+ S"uddeutscher Rundfunk}
+
+\encl{Abschrift der Urkunde}
+
+\end{letter}
+\end{document}
+\end{verbatim}}
+\caption{Brief mit \LaTeX.}\label{brief}
+\end{center}
+\end{figure}
+
+\ssect{Zus"atzliche Befehle im DIN-Brief}
+
+Der Befehl \cmd\phone\arg{Vorwahl}\arg{Rufnummer/Durchwahl}
+legt die {\bf Telefonnummer\/} des Absenders fest.
+Sie wird in der Bezugszeichenzeile ausgegeben.
+
+Der {\bf Bezug\/} auf einen empfangenen Brief ist m"oglich
+mit Hilfe des Befehls
+\cmd\yourmail\arg{Ihre Zeichen, Ihre Nachricht vom}.
+
+Mit dem Befehl \cmd\sign\arg{Unsere Zeichen, unsere Nachricht vom}
+kann eine {\bf eigene Kennzeichnung\/} des Briefes angegeben werden.
+
+Mit dem Befehl \cmd\writer\arg{Sachbearbeiter} kann
+der {\bf Name des Sachbearbeiters\/} festgelegt werden.
+
+Die Bezugszeichenzeile wird nur gesetzt, falls einer der
+Befehle \cs{yourmail}, \cs{sign} oder \cs{writer} verwendet
+wird. Der Befehl \cs{writer} schaltet zus"atzlich auf das
+in der DIN Norm~676 (Entwurf Mai~1991) festgelegte Layout um.
+
+Der {\bf Betreff (die stichwortartige Inhaltsangabe)\/} des
+Briefes wird durch den Befehl \cs{subject}\arg{Betreff}
+angegeben. Mit \cs{backaddress} wird die Adresse festgelegt,
+die als {\bf Absenderadresse im Brief\kern0pt fenster}
+eingeblendet wird.
+
+Abbildung~\ref{brief} enth"alt ein Beispiel f"ur einen Brief.
+Die Anwendung der Befehle und ihre Reihenfolge in der Quelldatei
+kann dem Beispiel entnommen werden.
+
+F"ur alle, denen das "`Fenster"' um die Adresse nicht gef"allt,
+besteht die M"oglichkeit, durch Angabe von
+\cmd\nowindowrules\index{nowindowrules=\verb+\nowindowrules+}
+vor dem Befehl \cmd\opening\ dieses abzuschalten.
+Durch \cmd\windowrules\index{windowrules=\verb+\windowrules+} l"a"st es
+sich wieder aktivieren.
+
+Der Trennstrich zwischen der R"ucksendeadresse und der Anschrift im
+Anschriftenfeld kann mit dem Befehl
+\cmd\nobackaddressrule\index{nobackaddressrule=\verb+\nobackaddressrule+}
+unterdr"uckt und bei folgenden Briefen mit
+\cmd\backaddressrule\index{backaddressrule=\verb+\backaddressrule+} wieder
+aktiviert werden.
+
+Die Faltmarkierung am linken Blattrand wird durch den Befehl
+\cmd\nowindowtics\index{nowindowtics=\verb+\nowindowtics+} ab- und mit
+\cmd\windowtics\index{windowtics=\verb+\windowtics+} wieder angeschaltet.
+\medskip
+
+Die Ver"anderung des Layouts der Briefe ist mit Hilfe von insgesamt 13 Befehlen
+m"oglich.
+Um f"ur einen Brief wirksam zu werden, m"ussen diese Befehle {\em vor\/}
+dem Befehl \cmd\opening\ angegeben werden.
+Die ersten 9 dieser Befehle legen Gr"o"se und Position des Fensters f"ur die
+Anschrift und der Adresse des Absenders im Anschriften-Fenster fest.
+Die "ubrigen Befehle legen den Abstand der Oberkante der Bezugszeichenzeile,
+den Abstand der Oberkante des Bereiches f"ur Angaben zu Kapitalgesellschaften
+und die Abst"ande der Faltmarkierungen vom oberen Papierrand fest.
+Ein Befehl zur Festlegung der Lochmarkierung ist "ubrigens nicht vorgesehen,
+da die Lochmarkierung in die Mitte der Seite -- abh"angig vom Wert der L"ange
+\cmd\paperheight\ -- gesetzt wird.
+
+Der Befehl \cmd\setaddressllcorner\arg{L"angenangabe}\arg{L"angenangabe}\index{setaddressllcorner=\verb+\setaddressllcorner+}
+legt mit seinen beiden Argumenten die Position der linken {\em unteren\/} Ecke
+des Fensters bezogen auf die linke {\em obere\/} Ecke des Blattes fest: das
+erste den Abstand vom linken und das zweite den Anstand vom oberen Blattrand.
+Der Abstand des Fensters vom linken Rand -- ohne "Anderung des Abstandes vom
+oberen Rand -- kann mit dem Befehl
+\cmd\setaddressllhpos\arg{L"angenangabe}\index{setaddressllhpos=\verb+\setaddressllhpos+}
+festgelegt werden.
+Entsprechend legt der Befehl
+\cmd\setaddressllvpos\arg{L"angenangabe}\index{setaddressllvpos=\verb+\setaddressllvpos+}
+den Abstand des unteren Randes des Fensters vom oberen Blattrand fest.
+
+Zur Auswahl der zu verwendenden Variante der Briefform -- hochgestellte oder
+tiefer gestelltes Feld f"ur die Anschrift -- stehen die beiden Befehle
+\cmd\addresshigh\ (hochgestellte Anschrift) und \cmd\addressstd\
+(voreingestellte tiefer gestellte Anschrift) zur Verf"ugung.
+Beide Befehle sind nur wirksam, wenn sie {\em vor\/} dem \cmd\opening-Befehl
+angegeben werden.
+Gegebenenfalls k"onnen sie auch -- wie viele anderen Befehle -- in der
+Konfigurationsdatei verwendet werden.
+
+Auch zur Festlegung der H"ohe und Breite des Fensters f"ur die Anschrift sind
+Befehle vorgesehen.
+Der Befehl \cmd\setaddresswidth\arg{L"angenangabe}\index{setaddresswidth=\verb+\setaddresswidth+}
+setzt die Breite des Fensters auf die angegebene L"ange.
+Entsprechend legt der Befehl
+\cmd\setaddressheight\arg{L"angenangabe}\index{setaddressheight=\verb+\setaddressheight+}
+die H"ohe des Fensters fest (ohne das direkt dar"uber angeordnete Feld f"ur
+den Absender).
+
+In der Regel m"ochte man den Text der Anschrift nicht direkt am linken Rand
+beginnen lassen -- wie auch in diesem Paket voreingstellt.
+Mit dem Befehl \cmd\setaddressoffset\arg{L"angenangabe}\index{setaddressoffset=\verb+\setaddressoffset+}
+kann man diese Einr"uckung selbst festlegen.
+Der Text der Anschrift wird "ubrigens nicht abgeschnitten und kann daher
+gegebenenfalls "uber den rechten Rand des Fensters hinausragen -- bitte
+brechen Sie in diesem Fall zu lange Zeilen an einer geigneten Stelle selbst
+um.
+
+Die H"ohe des Feldes f"ur den Absender direkt oben anschlie"send an das
+Feld f"ur die Anschrift kann mit dem Befehl
+\cmd\setbackaddressheight\arg{L"angenangabe}\index{setbackaddressheight=\verb+\setbackaddressheight+}
+festgelegt werden.
+
+Werden der DIN Norm entsprechende Fensterumschl"age verwendet, sollten die
+Voreinstellungen f"ur Gr"o"se und Position des Fensters f"ur die Anschrift
+und den Absender nicht ver"andert werden, damit sie im Fenster sichtbar sind.
+
+Der Befehl \cmd\setreflinetop\arg{L"angenangabe}\index{setreflinetop=\verb+\setreflinetop+}
+legt den Abstand der Oberkante der Bezugszeichenzeile vom oberen Papierrand
+fest; bei den beiden Formen der DIN Norm liegt diese Oberkante 8.5mm unterhalb
+des Fensters f"ur die Anschrift.
+
+Am Ende der ersten Seite von Briefen ist ein Feld f"ur Angaben zu
+Kapitalgesellschaften vorgesehen, das man bei eigenen Briefen gegebenenfalls
+zur Angabe des eigenen Kontos verwenden kann.
+Die Formbl"atter der Norm sehen f"ur dieses Feld nur die letzten 16mm des
+Papiers vor.
+Ben"otigt man mehr Platz f"ur Angaben in diesem Feld, kann man mit dem Befehl
+\cmd\setbottomtexttop\arg{L"angenangabe}\index{setbottomtexttop=\verb+\setbottomtexttop+}
+die Oberkante des Feldes geeignet festlegen.
+Der f"ur den Brieftext zur Verf"ugung stehende Platz wird automatisch
+angepa"st.
+
+Im Zusammenhang mit einer Verschiebung des Fensters f"ur die Anschrift
+m"ussen gegebenenfalls die Faltmarkierungen angepa"st werden.
+Den Abstand der oberen Faltmarkierung vom oberen Blattrand legt man mit dem
+Befehl \cmd\setupperfoldmarkvpos\arg{L"angenangabe}\index{setupperfoldmarkvpos=\verb+\setupperfoldmarkvpos+}
+fest, den der unteren Faltmarkierung entsprechend mit dem Befehl
+\cmd\setlowerfoldmarkvpos\arg{L"angenangabe}\index{setlowerfoldmarkvpos=\verb+\setlowerfoldmarkvpos+}.
+Die H"ohe der Markierung zum Lochen (in der Blattmitte) ergibt sich automatisch
+aus der Blatth"ohe und kann nicht ver"andert werden.
+\medskip
+
+% \iffalse
+% Die Gr"o"se und Form von Adre"s-Etiketten kann mit den Befehlen
+% \cmd\setlabelwidth\arg{Breite}\ und \cmd\setlabelheight\arg{H"ohe}\
+% festgelegt werden. Die Anzahl der Labels in einer Spalte wird durch
+% \cmd\setlabelnumber{Anzahl} angegeben. Der obere Rand kann mit dem
+% Befehl \cmd\setlabeltopmargin{H"ohe} eingestellt werden. Mit
+% \cmd\spare{Anzahl} k"onnen am Anfang {\sl Anzahl\/} Labels frei
+% gelassen werden.
+% \fi
+Ausf"uhrungen und Erl"auterungen zum Erstellen von Adre"s-Etiketten
+finden Sie in einem eigenen Abschnitt weiter hinten in diesem Dokument.
+Die Befehlsreferenz enth"alt ebenfalls kurze Beschreibungen der
+Befehle zu den Adre"s-Etiketten.
+
+Eine einfache Absenderanschrift in der auf Schreibmaschinen "ublichen
+Form (DIN~5008) wird durch den Befehl \cmd\stdaddress\arg{Absenderanschrift}
+anstelle von \cmd\address{} erreicht. Die einzelnen Zeilen sind durch
+\verb.\\. zu trennen. Das Datum wird ebenfalls oben ausgegeben.
+Die Bezugszeichenzeile entf"allt.
+
+Mit dem Befehl \cmd\postremark\ kann ein Postvermerk gesetzt werden.
+Dieser Vermerk erscheint im Anschriftenfeld oben, von den "ubrigen
+im Argument des Befehls \env\begin{letter}\arg{Anschrift} durch eine
+Leerzeile getrennt. Der Behandlungsvermerk wird durch den
+Befehl \cmd\handling\arg{Text}\ vereinbart.
+
+Die Anlagen- und Verteilvermerke k"onnen mit dem Befehl \cmd\enclright\
+rechts auf Grad~50 anstelle nach der Gru"sformel ausgegeben werden.
+Die Befehle \cmd\encl\ und \cmd\cc\ sind dazu vor dem \cmd\closing-Befehl
+anzugeben.
+
+\ssect{Befehlsreferenz}
+
+\begin{description}
+ \item[\env\begin{letter}\arg{{Anschrift}} \dots\ \env\end{letter}] \hfil\break
+ Diese Befehle rahmen jeden einzelnen Brief ein. Die
+ Anschrift des Em\-pf"an\-gers wird als Argument des Befehls
+ \env\begin{letter}\arg{Anschrift} angegeben.
+ Die einzelnen Zeilen in der Anschrift werden durch
+ \cmd\\ getrennt.
+ Es d"urfen weitere Briefe folgen.
+
+ \item[\cmd\signature\arg{Unterschrift des Absenders}] \hfil\break
+ Dieser Befehl legt die maschinenschriftliche
+ Wiederholung der Unterschrift fest.
+ Der Befehl gilt solange, bis ein weiterer
+ \cmd\signature-Befehl eine neue "`Unterschrift"'
+ festlegt.
+
+ \item[\cmd\address\arg{{Name und Adresse des Absenders}}] \hfil\break
+ Die Adresse des Absenders wird vereinbart.
+ Dieser Befehl gilt f"ur den laufenden und alle
+ weiteren Briefe; er gilt solange, bis ein
+ weiterer \cmd\address-Befehl angegeben wird.
+
+ \item[\cmd\backaddress\arg{{Absenderadresse im Brief\kern 0pt fenster}}] \hfil\break
+ Der Befehl legt die Anschrift des Absenders oben im
+ Anschriftenfeld des Briefs fest.
+
+ \item[\cmd\place\arg{{Ortsangabe im Brief}}] \hfil\break
+ Mit diesem Befehl wird der Absendeort angegeben, der
+ zusammen mit dem Datum im Briefkopf ausgegeben wird.
+
+ \item[\cmd\date\arg{{Briefdatum}}] \hfil\break
+ Soll als Absendedatum {\sl nicht\/} das aktuelle
+ Tagesdatum (des Rechners) eingesetzt werden,
+ kann mit diesem Befehl das Datum
+ explizit angegeben werden.
+
+ Ohne diesen Befehl wird das aktuelle Tagesdatum
+ im Brief verwendet.
+
+ \item[\cmd\yourmail\arg{{Ihre Zeichen, Ihre Nachricht vom}}] \hfil\break
+ Der Befehl legt den Inhalt des Feldes {\bf Ihre
+ Zeichen, Ihre Nachricht vom\/} in der
+ Bezugszeichenzeile fest.
+
+ \item[\cmd\sign\arg{{Unsere Zeichen (, unsere Nachricht vom)}}] \hfil\break
+ Dieser Befehl legt den Inhalt des Feldes
+ {\bf Unsere Zeichen \dots\/} fest.
+
+ \item[\cmd\phone\arg{{Vorwahl}}\arg{{Rufnummer/Durchwahl}}] \hfil\break
+ Die Telefonnummer aufgeteilt nach Vorwahl und Rufnummer oder
+ Durchwahl wird mit dem Befehl \cmd\phone{} vereinbart. Diese
+ Angaben werden in der Bezugszeichenzeile ausgegeben.
+
+ \item[\cmd\writer\arg{{Sachbearbeiter}}] \hfil\break
+ Die Neufassung der Norm DIN~676 vom Mai 1991 sieht in
+ der Bezugszeichenzeile ein weiteres Feld f"ur den
+ Sachbearbeiter vor. Mit dem Befehl \cmd\writer{}
+ kann ein solcher Sachbearbeiter angegeben werden.
+
+ {\sl Die Verwendung dieses Befehls gestaltet den Brief
+ entsprechend der Norm DIN~676 vom Mai 1991.\/}
+
+ \item[\cmd\subject\arg{{Betreff}}] \hfil\break
+ Mit diesem Befehl wird der Betreff gesetzt, der den
+ Empf"anger "uber den Gegenstand des Briefes
+ informiert.
+
+ \cmd\concern{} steht aus historischen Gr"unden
+ als Synonym bis auf weiteres zur Verf"ugung.
+
+ \item[\cmd\centeraddress] \hfil\break
+ Die Empf"angeranschrift wird im Brief\kern 0pt fenster
+ vertikal zentriert.
+
+ \item[\cmd\normaladdress] \hfil\break
+ Die Empf"angeranschrift wird im Anschriftenfeld unten gesetzt.
+
+ \item[\cmd\opening\arg{{Anrede}}] \hfil\break
+ Dieser Befehl vereinbart die Anrede des Empf"angers und setzt
+ den Briefkopf, die Empf"angerangaben, eine eventuell vorhandene
+ Bezugszeichenzeile, den Betreff und die Anrede des Empf"angers.
+
+ {\bf Dieser Befehl darf nicht fehlen!\/}
+
+ \item[\cmd\closing\oarg{Unterschrift}\arg{{Gru"sformel}}] \hfil\break
+ Der Befehl \cmd\closing{} setzt die Gru"sformel und nach
+ drei Leerzeilen die maschinenschrifliche Wiederholung
+ der Unterschrift.
+
+ Die erweiterte Form \cmd\closing\oarg{Unterschrift}\arg{Gru"sformel}
+ setzt zus"atzlich das optionale Argument -- beispielsweise eine mit
+ \cmd\includegraphics\ eingebundene PostScript-Datei -- als
+ Unterschrift in die freigelassenen Zeilen.
+ "Uberschreitet die H"ohe des optionalen Argumentes zwei Zeilen,
+ rutscht die maschinenschrifliche Wiederholung der Unterschrift
+ entsprechend nach unten.
+ Bitte beachten Sie, da"s ein optionales Argument eckige Klammern nur
+ enthalten darf, wenn das optionale Argument selbst in geschweifte
+ Klammern eingeschlossen ist.
+
+ \item[\cmd\encl\arg{{Anlagen}}] \hfil\break
+ Der Vermerk "uber dem Brief beigef"ugte Anlagen
+ wird mit dem Befehl \cmd\encl{} an den Brief
+ angeh"angt. Die einzelnen Eintragungen k"onnen
+ durch \cmd\\{} getrennt werden.
+
+ Die Reihenfolge der Verwendung der Befehle
+ \cmd\encl, \cmd\cc{} und \cmd\ps{} ist beliebig,
+ falls die Befehle nach dem \cmd\closing-Befehl
+ angegeben werden. Die Norm empfiehlt allerdings
+ den Anlagenvermerk vor dem Verteilvermerk
+ anzubringen.
+
+ \item[\cmd\cc\arg{{Verteiler}}] \hfil\break
+ Der Vermerk "uber weitere Empf"anger dieses Briefes wird
+ mit dem Befehl \cmd\cc{} gesetzt. Die einzelnen Eintragungen
+ k"onnen durch \cmd\\ getrennt werden.
+
+ Die Befehle \cmd\encl{} und \cmd\cc{} k"onnen sowohl
+ vor wie auch nach dem \cmd\closing-Befehl stehen. Wird
+ der Befehl \cmd\enclright{} verwendet, m"ussen die beiden
+ Befehle vor dem \cmd\closing-Befehl stehen.
+
+ \item[\cmd\ps\arg{{Postscriptum}}] \hfil\break
+ Gesch"aftsbriefe enthalten kein Postskriptum.
+ Es wurde trotzdem die M"og\-lich\-keit geschaffen,
+ ein solches zu verwenden. Mit dem Befehl
+ \cmd\ps{} wird ein Postskriptum gesetzt.
+
+ \item[\cmd\makelabels] \hfil\break
+ Dieser Befehl mu"s in der Pr"aambel stehen; also
+ zwischen \cmd\documentstyle{} oder \cmd\documentclass{}
+ und dem \env\begin{document}-Befehl.
+ Er aktiviert das Ausdrucken von Adress-Etiketten.
+
+ \item[\cmd\labelstyle\arg{{Stil der Label}}] \hfil\break
+ Dieser Befehl vereinbart das Layout der
+ Adress-Etiketten. Es gibt Drucker, die in der
+ Lage sind, Briefumschl"age zu bedrucken. Mit diesem
+ Befehl legt man die Form der Briefumschl"age fest.
+
+ {\sl Zur Zeit steht nur das Layout \env\labelstyle{plain}
+ zur Verf"ugung.\/}
+
+ \item[\cmd\bottomtext\arg{{Feld f\"ur Kapitalgesellschaften}}] \hfil\break
+ Am Fu"s der ersten Briefseite werden Gesch"aftsangaben und
+ zus"atzlich bei Kapitalgesellschaften gesellschaftsrechtliche
+ Angaben angegeben. Der Befehl \cmd\bottomtext{} vereinbart
+ diese Angaben.
+
+% {\sl Dieser Befehl mu"s nach \env\begin{document}{} stehen.\/}
+
+ \item[\cmd\windowrules] \hfil\break
+ Das Anschriftenfeld im Brief wird durch Linien ober-
+ und unterhalb vom "ubrigen Brief abgegrenzt.
+ Die Hervorhebung wird aktiviert.
+
+ \item[\cmd\nowindowrules] \hfil\break
+ Der Befehl schaltet den Rahmen ab.
+
+ \item[\cmd\backaddressrule] \hfil\break
+ Der Absender und die Anschrift im Anschriftenfeld des Briefes werden
+ durch eine Linie getrennt (Voreinstellung).
+
+ \item[\cmd\nobackaddressrule] \hfil\break
+ Die Trennungslinie zwischen dem Absender und der Anschrift im
+ Anschriftenfeld des Briefes wird unterdr"uckt.
+
+ \item[\cmd\windowtics] \hfil\break
+ Es werden Faltmarkierungen am linken Briefrand
+ geruckt.
+
+ \item[\cmd\nowindowtics] \hfil\break
+ Es werden keine Faltmarkierungen am linken Briefrand
+ ausgedruckt.
+
+ \item[\cmd\disabledraftstandard] \hfil\break
+ Der Brief wird entsprechend den
+ Vorschriften der Norm DIN~676 vom Dezember 1976 auf
+ dem Briefbogen ausgegeben.
+
+ \item[\cmd\enabledraftstandard] \hfil\break
+ Der Brief wird entsprechend den
+ Vorschriften des Entwurfs der Norm DIN~676 vom
+ Mai~1991 auf dem Briefbogen ausgegeben.
+
+ \item[\cmd\setaddressllcorner\arg{Abstand vom linken Rand}%
+ \arg{Abstand vom oberen Rand}] \hfil\break
+ Mit diesem Befehl legt man die Position der linken unteren Ecke
+ des Fensters f"ur die Anschrift des Empf"angers fest.
+ Beide Argumente sind L"angen, wobei die erste den (horizontalen)
+ Abstand zum linken Blattrand und die zweite den (vertikalen)
+ Abstand zum oberen Blattrand angibt.
+
+ \item[\cmd\setaddressllhpos\arg{Abstand vom linken Rand}] \hfil\break
+ Der Befehle legt den (horizontalen) Abstand des Fensters f"ur die
+ Anschrift vom linken Blattrand fest.
+ Soll gleichzeitig die H"ohe des Fensters ge"andert werden, kann der
+ Befehle \cmd\setaddressllcorner\ verwendet werden.
+
+ In der DIN Norm ist der Abstand vom linken Rand fest als 20mm
+ vorgegeben (dieser Wert ist voreingestellt).
+
+ \item[\cmd\setaddressllvpos\arg{Abstand vom oberen Rand}] \hfil\break
+ Der Befehl legt den (vertikalen) Abstand des Fensters f"ur die
+ Anschrift vom oberen Blattrand fest.
+ Soll das Fenster gleichzeitig horizontal verschoben werden, kann der
+ Befehle \cmd\setaddressllcorner\ verwendet werden.
+
+ Die DIN Norm sieht zwei Varianten mit einer hochgestellten und einer
+ tiefer gestellten Anschrift vor.
+ Voreingestellt ist die tiefer gestellte Variante mit einem Wert von
+ 90mm.
+ F"ur die hochgestellte Variante ist der Wert 72mm vorgeschrieben.
+
+ Zur einfachen Auswahl der Varianten stehen die beiden Optionen
+ \Dopt{addresshigh} (hochgestellte Anschrift) und \Dopt{addressstd}
+ (voreingestellte tiefer gestellte Anschrift) vorgesehen.
+
+ \item[\cmd\addresshigh] \hfil\break
+ Dieser Befehl setzt die L"angen \verb|\addrvpos|, \verb|\reflinevpos|,
+ \verb|\ufldmarkvpos| und \verb|\lfldmarkvpos| entsprechend der Variante
+ mit hochgestelltem Feld f"ur die Anschrift entsprechend der Form~A der
+ DIN Norm.
+ Der Befehl ist nur wirksam, wenn er {\em vor\/} dem
+ \cmd\opening-Befehl steht (auch in der Konfigurationsdatei).
+
+ \item[\cmd\addressstd] \hfil\break
+ Der Befehl setzt die L"angen \verb|\addrvpos|, \verb|\reflinevpos|,
+ \verb|\ufldmarkvpos| und \verb|\lfldmarkvpos| entsprechend der Variante mit
+ tiefer gestelltem Feld f"ur die Anschrift entsprechend der Form~B der
+ DIN Norm und entspricht der Voreinstellung.
+ Der Befehl ist ebenfalls nur {\em vor\/} dem \cmd\opening-Befehl
+ wirksam (auch in der Konfigurationsdatei).
+
+ \item[\cmd\setaddresswidth\arg{Breite des Fensters f"ur die Anschrift}]
+ \hfil\break
+ Mit diesem Befehl wird die Breite des Fensters f"ur die Anschrift
+ festgelegt (voreingestellt: 85mm).
+
+ \item[\cmd\setaddressheight\arg{H"ohe des Fensters f"ur die Anschrift}]
+ \hfil\break
+ Die H"ohe des Fensters f"ur die Anschrift kann man mit diesem Befehl
+ festlegen. Voreingestellt sind 40mm.
+
+ \item[\cmd\setaddressoffset\arg{Abstand vom linken Fensterrand}] \hfil\break
+ In der Regel m"ochte man, da"s die Anschrift nicht direkt am linken
+ Rand des Fensters f"ur die Anschrift beginnt, sondern einige
+ Millimeter einger"uckt ist.
+ Mit diesem Befehl kann man die Einr"uckung festlegen.
+ Voreingestellt sind 4mm.
+ Die Anschrift beginnt bei dieser Einstellung b"undig mit dem
+ Text des Briefes.
+
+ \item[\cmd\setbackaddressheight\arg{H"ohe des Feldes f"ur den Absender}]
+ \hfil\break
+ Das Feld f"ur den Absender schlie"st oben an das Fensters f"ur die
+ Anschrift an. Die H"ohe dieses Feldes wird mit dem Befehl
+ \cmd\setbackaddressheight\ festgelegt. Voreingestellt sind 5mm.
+
+ \item[\cmd\setreflinetop\arg{Abstand vom oberen Rand}] \hfil\break
+ Mit diesem Befehl wird der Abstand der Oberkante der
+ Bezugszeichenzeile vom oberen Blattrand festgelegt.
+ Voreingestellt sind 98.5mm; bei Angabe der Option f"ur eine
+ hochgestellte Anschrift wird der Wert auf 80.5mm gesetzt.
+
+ \item[\cmd\setbottomtexttop\arg{Abstand vom oberen Rand}] \hfil\break
+ Mit diesem Befehl legt man den den Abstand der Oberkante des Feldes
+ f"ur Gesch"aftsangaben und (nur bei Kapitalgesellschaften)
+ gesellschaftsrechtliche Angaben auf der ersten Seite und dem oberen
+ Blattrand fest.
+ Voreingestellt sind 281mm; bei mehrzeiligen Angaben in diesem Fekd
+ mu"s man den Wert entsprechend verringern.
+ Der Abgleich mit der H"ohe der letzten verf"ugbaren Zeile auf der
+ Seite erfolgt automatisch.
+
+ \item[\cmd\setupperfoldmarkvpos\arg{Abstand vom oberen Rand}] \hfil\break
+ Mit diesem Befehl legt man den Abstand der \emph{oberen}
+ Faltmarkierung vom oberen Blattrand fest.
+ Voreingestellt sind 105mm und bei Angabe der Option f"ur eine
+ hochgestellte Anschrift 87mm.
+
+ \item[\cmd\setlowerfoldmarkvpos\arg{Abstand vom oberen Rand}] \hfil\break
+ Den Abstand der \emph{unteren} Faltmarkierung vom oberen Blattrand
+ legt man mit diesem Befehl fest.
+ Voreingestellt sind 210mm und bei Angabe der Option f"ur eine
+ hochgestellte Anschrift 192mm.
+
+ \item[\cmd\setlabelwidth\arg{Breite eines Labels}] \hfil\break
+ Dieser Befehl legt die Breite eines Labels fest.
+ Als Argument erwartet dieser Befehl eine L"angenangabe.
+
+ {\sl Die Labelbreite ist in der vorliegenden Version
+ auf 105~$mm$ festgelegt worden und sollte nicht
+ ge"andert werden. Dieser Befehl ist f"ur sp"atere
+ Erweiterungen reserviert.\/}
+
+ \item[\cmd\setlabelheight\arg{H"ohe eines Labels}] \hfil\break
+ Der Befehl \cmd\setlabelheight{} vereinbart die im
+ Argument angegebene L"ange als Labelh"ohe.
+
+ \item[\cmd\setlabeltopmargin\arg{oberer Rand}] \hfil\break
+ Bevor die beiden obersten Label (bei beiden Spalten)
+ ausgegeben werden, wird oben ein Rand gelassen, dessen
+ H"ohe mit \cmd\setlabeltopmargin{} angegeben wird.
+ Es wird eine L"angenangabe erwartet.
+
+ \item[\cmd\setlabelnumber\arg{Labelanzahl pro Spalte}] \hfil\break
+ Dieser Befehl bestimmt die Zahl der Labels in einer Spalte.
+
+ \item[\cmd\spare\arg{Anzahl leerer Labels}] \hfil\break
+ Es werden die im Argument des Befehls angegebene
+ Anzahl von Label freigelassen, bevor das erste
+ Adre"s--Etikett ausgegeben wird. Die Label werden
+ spaltenweise durchgez"ahlt.
+
+% \iffalse
+ \item[\cmd\offlabels] \hfil\break
+ \item[\cmd\onlabels] \hfil\break
+ \item[\cmd\nolabels] \hfil\break
+% \fi
+ \item[\cmd\stdaddress\arg{Adresse des Absenders}] \hfil\break
+ Dieser Befehl setzt die Absenderanschrift in der
+ auf Schreibmaschinen "ublichen Form (DIN 5008).
+ Mit diesem Befehl kann der Briefkopf nicht frei gestaltet
+ werden.
+
+ \item[\env\begin{dinquote} \dots\ \env\end{dinquote}] \hfil\break
+ Diese Umgebung r"uckt den Text auf der linken Seite um
+ ein Inch ein. Rechts folgt keine Einr"uckung.
+
+ \item[\cmd\enclright] \hfil\break
+ Die Anlagen- und Verteilvermerke beginnen, falls sie vor
+ den \cmd\closing-Befehl angegeben wurden, rechts
+ neben der Gru"sformel.
+
+ \item[\cmd\postremark\arg{Postvermerk}] \hfil\break
+ Der Postvermerk wird mit dem Befehl \cmd\postremark{}
+ vereinbart. Der Postvermerk geht der Empf"angeranschrift
+ mit einer Leerzeile voraus. Dieser Befehl mu"s zwischen
+ \env\begin{letter} und dem Befehl \cmd\opening\ stehen.
+
+ \item[\cmd\handling\arg{Behandlungsvermerk}] \hfil\break
+ Der Behandlungsvermerk wird rechts neben der
+ Empf"angeranschrift auf Grad 50 (bei einer 10er Teilung)
+ in H"ohe der letzten Zeile der Empf"angeranschrift
+ ausgegeben. Dieser Befehl mu"s zwischen
+ \env\begin{letter} und dem Befehl \cmd\opening\ stehen.
+\end{description}
+
+% \iffalse
+%</documentation>
+% \fi
+% \iffalse
+%<*documentation|dintab>
+% \fi
+
+\begin{table}[htp]
+\caption{Zusammenfassung der Dinbrief-Befehle (Teil 1):}\index{dinbrief>Befehle}
+
+\begin{center}
+\begin{tabular}{l}
+ \hline
+ \verb|\begin{document}| \\
+ \verb|\end{document}| \\
+ \hline
+ \verb|\begin{letter}|\arg{{Anschrift}} \\
+ \verb|\end{letter}| \\
+ \hline
+ \verb|\signature|\arg{Unterschrift des Absenders} \\
+ \verb|\address|\arg{{Name und Adresse des Absenders}} \\
+ \verb|\backaddress|\arg{{Absenderadresse im Brieffenster}} \\
+ \hline
+ \verb|\place|\arg{{Ortsangabe im Brief}} \\
+ \verb|\date|\arg{{Briefdatum}} \\
+ \verb|\yourmail|\arg{{Ihre Zeichen, Ihre Nachricht vom}} \\
+ \verb|\sign|\arg{{Unsere Zeichen (, unsere Nachricht vom)}} \\
+ \verb|\phone|\arg{{Vorwahl}}\arg{{Rufnummer/Durchwahl}} \\
+ \verb|\writer|\arg{{Sachbearbeiter}} \\
+ \hline
+ \verb|\subject|\arg{{Betreff}} \\
+ \verb|\concern|\arg{{Betreff}} \\
+ \verb|\opening|\arg{{Anrede}} \\
+ \verb|\closing|\oarg{Unterschrift}\arg{{Gru"sformel}} \\
+ \hline
+ \verb|\centeraddress| \\
+ \verb|\normaladdress| \\
+ \hline
+ \verb|\encl|\arg{{Anlagen}} \\
+ \verb|\ps|\arg{{Postscriptum}} \\
+ \verb|\cc|\arg{{Verteiler}} \\
+ \hline
+ \verb|\makelabels| \\
+ \verb|\labelstyle|\arg{{Stil der Label}} \\
+ \hline
+ \verb|\bottomtext|\arg{{Feld f\"ur Kapitalgesellschaften}}\\
+ \hline
+ \verb|\nowindowrules| \\
+ \verb|\windowrules| \\
+ \verb|\nobackaddressrule| \\
+ \verb|\backaddressrule| \\
+ \verb|\nowindowtics| \\
+ \verb|\windowtics| \\
+ \hline
+ \verb|\disabledraftstandard| \\
+ \verb|\enabledraftstandard| \\
+ \hline
+ \verb|\setaddressllcorner|\arg{Abstand vom linken Rand} \\
+ \verb|\setaddressllhpos|\arg{Abstand vom linken Rand} \\
+ \verb|\setaddressllvpos|\arg{Abstand vom oberen Rand} \\
+ \verb|\addresshigh| \\
+ \verb|\addressstd| \\
+ \verb|\setaddresswidth|\arg{Breite des Anschriften-Fensters}\\
+ \verb|\setaddressheight|\arg{H"ohe des Anschriften-Fensters}\\
+ \verb|\setaddressoffset|\arg{Abstand vom linken Fensterrand}\\
+ \verb|\setbackaddressheight|\arg{H"ohe des Anschriften-Fensters}\\
+ \hline
+ \verb|\setreflinetop|\arg{Abstand vom oberen Rand} \\
+ \verb|\setbottomtexttop|\arg{Abstand vom oberen Rand} \\
+ \verb|\setupperfoldmarkvpos|\arg{Abstand vom oberen Rand} \\
+ \verb|\setlowerfoldmarkvpos|\arg{Abstand vom oberen Rand} \\
+ \hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\begin{table}[htp]
+\caption{Zusammenfassung der Dinbrief-Befehle (Teil 2):}\index{dinbrief>Befehle}
+
+\begin{center}
+\begin{tabular}{l}
+ \hline
+ \verb|\setlabelwidth|\arg{Breite eines Labels} \\
+ \verb|\setlabelheight|\arg{H"ohe eines Labels} \\
+ \verb|\setlabeltopmargin|\arg{oberer Rand} \\
+ \verb|\setlabelnumber|\arg{Labelanzahl pro Spalte} \\
+ \verb|\spare|\arg{Anzahl leerer Labels} \\
+ \hline
+ \verb|\stdaddress|\arg{Adresse des Absenders} \\
+ \verb|\begin{dinquote}| \\
+ \verb|\end{dinquote}| \\
+ \verb|\enclright| \\
+ \verb|\postremark|\arg{Postvermerk} \\
+ \verb|\handling|\arg{Behandlungsvermerk} \\
+ \hline
+\end{tabular}
+\end{center}
+\end{table}
+
+% \iffalse
+%</documentation|dintab>
+% \fi
+% \iffalse
+%<*documentation>
+% \fi
+
+\begin{table}[ht]
+\caption{"Uberschriftvariablen und deren Inhalt}%
+\index{dinbrief>"Uberschriftvariablen}
+
+\begin{center}
+(Voreinstellung entspricht DIN)
+
+\begin{tabular}{l}
+ \hline
+ \verb|\ccname|\{{\tt Verteiler}\} \\
+ \verb|\enclname|\{{\tt Anlage(n)}\} \\
+ \verb|\psname|\{{\tt PS}\} \\
+ \hline
+ \verb|\phonemsg|\{{\tt Telefon}\} \\
+ \verb|\signmsgold|\{{\tt Unsere Zeichen}\} \\
+ \verb|\signmsgnew|\{{\tt Unsere Zeichen, unsere Nachricht vom}\} \\
+ \verb|\yourmailmsg|\{{\tt Ihre Zeichen, Ihre Nachricht vom}\} \\
+ \hline
+\end{tabular}
+\end{center}
+
+\end{table}
+
+%
+\ssect{Bezugszeichenzeile}\index{Bezugszeichenzeile}
+Die vorliegende Version des \envname{dinbrief}s enth"alt
+zwei verschiedene Formen von Bezugszeichenzeilen.
+Die beiden Formen sind in der Norm 676 vom Dezember 1976 und
+im Entwurf zur Norm 676 vom Mai 1991 definiert. Mit den
+Befehlen \cmd\enabledraftstandard\ und \cmd\disabledraftstandard\
+schaltet man auf die Form des Entwurfs oder der geltenden Norm
+um. Die beiden Formen sind zur besseren Unterscheidung in
+Abbildung~\ref{fig:referlines} wiedergegeben.
+
+\begin{figure}[htb]
+\begin{center}
+\unitlength0.65mm
+\begin{picture}(190, 60)
+ \linethickness{0.4pt}
+ \thinlines
+ %
+ \put( 10.0, 49){\parbox[t]{50.8\unitlength}{{\sf\tiny Ihre Zeichen, Ihre Nachricht vom}\\{\cmd\yourmail}}}
+ \put( 60.8, 49){\parbox[t]{50.8\unitlength}{{\sf\tiny Unsere Zeichen}\\{\cmd\sign}}}
+ \put(111.6, 49){\parbox[t]{25.4\unitlength}{{\sf\tiny Telefon}\\{\cmd\phone}}}
+ \put(137.0, 49){\parbox[t]{25.4\unitlength}{{\sf\tiny Ortsname\\[-2ex] (Datum)}\\{\cmd\place}\\{\cmd\date}}}
+ \put( 0.0, 56){\makebox(190, 0){Bezugszeichenzeile nach DIN 676 vom Dezember 1976}}
+ \put( 0.0, 30){\framebox(190, 30){}}
+ %
+ \put( 10.0, 16){\parbox[t]{50.8\unitlength}{{\sf\tiny Ihr Zeichen, Ihre Nachricht vom}\\{\cmd\yourmail}}}
+ \put( 60.8, 16){\parbox[t]{50.8\unitlength}{{\sf\tiny Unser Zeichen, unsere Nachricht vom}\\{\cmd\sign}}}
+ \put(111.6, 16){\parbox[t]{50.8\unitlength}{{\sf\tiny Telefon, Bearbeiter}\\{\cmd\phone}\\{\cmd\writer}}}
+ \put(162.4, 16){\parbox[t]{15.0\unitlength}{{\sf\tiny Datum}\\{\cmd\place}\\{\cmd\date}}}
+ \put( 0.0, 23){\makebox(190, 0){Bezugszeichenzeile nach DIN 676 vom Mai 1991 (Entwurf)}}
+ \put( 0.0, 1){\framebox(190, 27){}}
+\end{picture}%
+\caption{Formen von Bezugszeichenzeilen}\label{fig:referlines}
+\end{center}
+\end{figure}
+%
+
+%
+\ssect{Standardkonfiguration mit einer Konfigurationsdatei}\index{Konfigurationsdatei}
+%
+Am Ende der Bearbeitung der Dokumentklasse \envname{dinbrief} wird die
+Konfigurationsdatei \file{dinbrief.cfg} eingelesen, falls eine Datei dieses
+Namens im Suchpfad f"ur \TeX-Eingabedateien gefunden wird.
+Die Suche wird in der gleichen Weise durchgef"uhrt wie bei anderen
+\TeX-Eingabedateien.
+
+In der Konfigurationsdatei k"onnen alle Befehle verwendet werden, die man vor
+\cmd\begin\arg{document} angeben darf.
+Beispielsweise kann die Datei mit den daf"ur vorgesehenen Befehlen das Layout
+des Briefes abweichend von der DIN Norm festlegen, einen Briefkopf definieren
+oder das Feld f"ur Angaben bei Kapitalgesellschaften vergr"o"ern und auch
+die Angaben selbst mit dem Befehl \cmd\bottomtext\ festlegen.
+
+Die Angabe der Optionen \Dopt{addresshigh} oder \Dopt{addressstd}
+"uberschreibt Angaben vertikalen Positionierung des Feldes f"ur die Anschrift,
+der Bezugszeichenzeile und der Faltmarkierungen.
+Explizite Festlegungen vor dem Befehl \cmd\opening\ "uberschreiben sowohl
+Einstellungen durch Angabe von Optionen in der \cmd\documentclass-Anweisung
+als auch in der Konfigurationsdatei.
+
+Beim Auspacken der \envname{dinbrief}-Verteilung wird auch eine
+Konfigurationsdatei erstellt, die nur Kommentare enth"alt.
+Einzelne Befehle k"onnen durch Entfernen des Kommentarzeichens aktiviert
+werden.
+Die verwendeten Befehle sind in dieser Dokumentation beschrieben.
+%
+
+%
+\ssect{Briefkopf}\index{Briefkopf}
+%
+Bei h"aufigem Briefeschreiben kommt sicher bald der
+Wunsch nach einem eigenen Briefkopf auf; auch dies ist
+mit \LaTeX\ zu verwirklichen.
+% Am besten er"offnet man sich in seiner Briefdatei (die man
+% sicher fr"uher oder sp"ater anlegen wird) ein File mit dem
+% Namen {\tt brfkopf.tex}. In dieses kann man z.B.\ den Briefkopf
+% in Abb.~\ref{briefkopf} aufnehmen.
+Am besten erstellt man eine Datei mit den Einstellungen
+f"ur eigene Briefe, wie im Beispiel die Datei {\tt brfkopf.tex}.
+Diese Datei kann z.B.\ den Briefkopf aus
+Abb.~\ref{briefkopf} enthalten.
+
+\renewcommand{\textfraction}{0.35}
+
+\begin{figure}[p]
+\begin{center}
+\begin{verbatim}
+\newlength{\UKAwd}
+\newlength{\ADDRwd}
+%
+\font\fa=cmcsc10 scaled 1440
+\font\fb=cmss12 scaled 1095
+\font\fc=cmss10 scaled 1000
+%
+\def\briefkopf{
+ \settowidth{\UKAwd}{\fa Institut f"ur Verpackungen}
+ \settowidth{\ADDRwd}{\fc EARN/BITNET: yx99 at dkauni2}
+%
+ \vspace*{7truemm}
+ \raisebox{-11.3mm}{%
+ \setlength{\unitlength}{1truemm}
+ \begin{picture}(15,15)(0,0)
+ \thicklines
+ \put(7.5,7.5){\circle{15}}
+ \put(7.5,7.5){\circle{10}}
+ \put(7.5,7.5){\circle{ 5}}
+ \end{picture}%
+ }
+ {\fc\hspace{.7em}}
+ \parbox[t]{\UKAwd}{
+ \centering{\fa Universit\"at Gralsruhe} \\
+ \centering{\fa Institut f"ur Verpackungen} \\[.5ex]
+ \centering{\fb Prof.\ Dr.\ Fritz Schreiber}
+ }
+ \hfill
+ \parbox[t]{\ADDRwd}{
+ \fc Engesserstr.\ 9 $\cdot$ Postfach 6980 \\
+ \fc 76128 Karlsruhe\\
+ \fc Telefon: (0721) 608-9790 \\
+ } }
+%
+\signature{Prof.\ Dr.\ Fritz Schreiber}
+\place{Karlsruhe}
+\address{\briefkopf}
+\phone{(0721)}{608-9790}
+\def\FS{Prof.\,F.\,Schreiber, Univ.\,Karlsruhe,
+ Postf.\,6980, 76128\,Karlsruhe\rule[-1ex]{0pt}{0pt}}
+\end{verbatim}
+\caption{Definition eines Briefkopfs}\label{briefkopf}
+\end{center}
+\end{figure}
+
+Am Anfang des Briefes sollte nun der Befehl \verb+\input{brfkopf}+
+aufgenommen werden gefolgt von \verb+\address{\myaddress}+%
+\index{myaddress=\verb+\myaddress+}. Dies sorgt
+f"ur die gew"unschte Ausgabe des Briefkopfes am Beginn des Briefes.
+Nat"urlich lassen sich auch andere als die hier verwendeten Schriftarten
+verwenden.
+
+\ssect{Kopfzeilen}\index{Kopfzeilen}
+
+Es stehen verschiedene Kopfzeilen zur Verf"ugung die "uber die
+Option \linebreak[4]\verb+\pagestyle{...}+\index{pagestyle=\verb+\pagestyle+}
+ausgew"ahlt werden k"onnen.
+Bei \verb+plain+\index{plain=\verb+plain+} wird eine Seitennumerierung
+bei mehrseitigen Briefen in der Fu"szeile eingeblendet, die Kopfzeile
+bleibt leer. Durch \verb+headings+\index{headings=\verb+headings+} wird
+die Kopfzeile mit einer Anrede und der Seitenzahl bei mehrseitigen
+Briefen gesetzt.
+
+\ssect{Einblenden von Unterschriften}
+\cmd\closing\oarg{Unterschrift}\arg{Gru"sformel} erlaubt es,
+die Unterschrift als Graphik einzubinden. F"ur unser Beispiel
+nehmen wir an, da"s die Graphik als encapuslated Postscript-Datei
+im Verzeichnis und mit Namen \file{graph/sig.eps} vorliegt.
+Die Befehle zum Einbinden von Graphiken stellt das Paket
+{\sc graphics} zur Verfgung. In der Pr"aambel des Briefes wird
+ein Befehl zum Setzen der Unterschrift definiert:\\[\medskipamount]
+\hspace*{2em}\verb|\newcommand{\setsignature}{\includegraphics{graph/sig.eps}}|\\[\medskipamount]
+Die Gru"sformel wird dann in der erweiterten Form gesetzt:\\[\medskipamount]
+\hspace*{2em}\verb|\closing[\protect\setsignature]{Mit freundlichen Gr"u"sen}|\\[\medskipamount]
+Gegebenenfalls ist es notwendig, die Unterschrift mit dem
+Befehl \verb+\raisebox+ in die notwendige Position zu schieben.
+Dazu ist die Definition des Macros zum Einbinden der Unterschrift
+wie folgt anzupassen:\\[\medskipamount]
+\hspace*{2em}\verb|\newcommand{\setsignature}{\raisebox{-3mm}{\includegraphics{graph/sig.eps}}}|\\[\medskipamount]
+Die L"angenangabe (hier -3mm) ist entsprechend anzupassen.
+
+\ssect{Briefe in englischer oder franz"osischer Sprache}
+
+Wer Briefe in anderen Sprachen schreiben m"ochte, kann f"ur Englisch und
+Franz"osisch die Trennung (abh"angig von der Installation) und Befehle f"ur
+Buchstaben mit Akzenten mit dem Befehl
+\cmd\selectlanguage\arg{Sprache}
+\index{selectlanguage=\verb+\selectlanguage+} umschalten.
+Das Umsetzen von Bezeichnungen z.B.\ f"ur Anlage \dots{} mu"s explizit durch
+Befehle erfolgen, die in der Dokumentation zum {\tt dinbrief} beschrieben sind.
+
+
+\ssect{Serienbriefe}\index{Serienbriefe}
+
+Mit \LaTeX\ lassen sich auch Serienbriefe schreiben. Man ben"otigt dazu
+nur ein kleines Makro wie z.B. das folgende:
+
+\begin{center}
+\begin{minipage}{0.75\textwidth}
+\begin{verbatim}
+\def\mailto#1{
+ \begin{letter}{#1}
+ \input{brftext}
+ \end{letter}}
+\end{verbatim}
+\end{minipage}
+\end{center}
+
+Mit dem Befehl \verb+\input{brftext}+ wird die Datei geladen, die den Text f"ur
+den Serienbrief enth"alt. In einer weiteren Datei stehen unsere Adressaten im
+folgenden Format:
+
+\begin{center}
+\begin{minipage}{0.75\textwidth}
+\begin{verbatim}
+\mailto{Karle Huber\\
+ Lichtensteinstr. 45\\[\medskipamount]
+ 77777 Hintertupfingen}
+\mailto{Anna H"aberle\\
+ Wallstra"se 7\\[\medskipamount]
+ 88888 L"andle}
+\end{verbatim}
+\end{minipage}
+\end{center}
+
+Die Briefe k"onnen nun mit einer Umgebung wie der in Abbildung~\ref{serie}
+ausgedruckt werden. In der Zeile \verb|\input{#address}| ist der
+Platzhalter \verb|#address| durch den Dateinamen zu ersetzen.
+
+\begin{figure}[p]
+\begin{center}
+\begin{verbatim}
+\documentclass[12pt]{dinbrief}
+\usepackage{german}
+
+\input{brfkopf}
+\address{\myaddress}
+\backaddress{R. Kurz, Am See 1, 76139 Karlsruhe}
+
+\signature{R. Kurz}
+\place{76139 Karlsruhe}
+
+\def\mailto#1{ % zum ausdrucken von
+ % Serienbriefen
+ \begin{letter}{#1}
+ \input{brftext} % Datei, die den Text enthaelt
+ \end{letter}}
+
+\begin{document}
+
+\input{#address} % Adress-Datei
+
+\end{document}
+\end{verbatim}
+\caption{Erstellen von Serienbriefen}
+\label{serie}
+\end{center}
+\end{figure}
+
+Beachten sollte man, da"s dann der Text in der Datei {\tt brftext.tex}
+direkt mit
+\verb+\opening{...}+ beginnt (also kein \verb+\begin{letter}+ und
+\verb+\end{letter}+ enth"alt) und mit \verb+\closing{...}+ bzw.
+\verb+\ps{...}+ abschlie"st.
+
+Ein Beispiel f"ur die Datei {\tt brftext.tex} finden Sie in
+Abbildung~\ref{brftext}.
+
+\begin{figure}[p]
+\begin{center}
+\begin{verbatim}
+\opening{Betrieb eines Mikrowellensenders}
+
+Sehr geehrte Damen und Herren,
+
+anbei sende ich Ihnen eine Kopie der bisherigen Genehmigung f"ur
+unseren Mikrowellenherd...
+
+... Ihre Bem"uhungen im voraus vielen Dank.
+
+\closing{Mit freundlichen Gr"u"sen,}
+
+\ps{Wir bitten um schnelle Erledigung.}
+\cc{Deutsche Bundespost\\
+ Karlsruher Privatfunk\\
+ S"uddeutscher Rundfunk}
+
+\encl{Abschrift der Urkunde}
+\end{verbatim}
+\caption{Rumpf eines Serienbriefes}
+\label{brftext}
+\end{center}
+\end{figure}
+
+\ssect{Einige Regeln f"ur das Briefeschreiben}
+
+Dieser Abschnitt enth"alt Passagen aus den
+Normen DIN~5008 (Regeln f"ur das Maschinenschreiben) und
+DIN~676 (Gesch"aftsbrief), erg"anzt um einige
+zus"atzliche Hinweise und Tips.
+Der Abschnitt erhebt keinen Anspruch auf
+Vollst"andigkeit. Er soll Anf"angern wie auch
+Ge"ubten einen "Uberblick "uber die wichtigsten
+Regeln geben. Ferner werden die Grenzen der
+vorliegenden Version aufgezeigt und es wird
+auf bekannte Fehler hingewiesen.
+
+\begin{enumerate}
+ \item {\bf Zeilenabstand}
+
+ Es wird mit einfachem Grundzeilenabstand geschrieben.
+
+ \item {\bf Anschriftenfeld}
+
+ Die Angaben im Anschriftenfeld werden auf
+ folgende Weise gegliedert:
+ \begin{enumerate}
+ \item Sendungsart, Versendungsform, Vorausverf"ugung
+ \item Leerzeile
+ \item Empf"angerbezeichnung
+ \item Postfach oder Stra"se und Hausnummer
+ \item Leerzeile
+ \item Postleitzahl und Bestimmungsort
+ \item Leerzeile
+ \item Bestimmungsland
+ \end{enumerate}
+
+ Bei Auslandsanschriften ist die Leerzeile zwischen
+ der Zeile mit Postfach oder Stra"se und Hausnummer
+ und der Zeile mit dem Bestimmungsort entbehrlich,
+ wenn das Bestimmungsland unter der entsprechenden
+ Zeile angegeben werden mu"s.
+
+ Im Verkehr mit bestimmten L"andern kann auf die
+ Angabe des Bestimmungslandes verzichtet werden,
+ wenn das Unterscheidungskennzeichen f"ur den
+ grenz"uberschreitenden Kraftfahrzeugverkehr
+ der Postleitzahl --- durch einen Bindestrich
+ getrennt --- vorangestellt wird.
+
+% \iffalse
+ Nach dem ersten Eintrag im Anschriftenfeld
+ darf nur ein \verb|\\| stehen. Direkte
+ L"angenangaben (z.B.\ \verb|\\[\medskipamount]|)
+ sind nicht zul"assig und verursachen einen Fehler.
+ Der Fehler kann umgangen werden, indem eine
+ Konstruktion
+ \m{Versendungsform}\verb|\\~\\|%
+ \m{Empf"angerbezeichnung} usw.\
+ verwendet wird.
+% \fi
+
+ \item {\bf Bezugszeichen und Tagangabe}
+
+ Die Eintragungen in dieser Zeile werden automatisch
+ an der richtigen Stelle plaziert.
+
+ \item {\bf Betreff und Teilbetreff}
+
+ Betreff und Teilbetreff sind stichwortartige
+ Inhaltsangaben. Der Betreff bezieht sich auf den
+ ganzen Brief, Teilbetreffe beziehen sich auf
+ Briefteile.
+
+ Der {\em Wortlauf des Betreffs\/} wird ohne
+ Schlu"spunkt geschrieben.
+% \iffalse
+ Der {\em Teilbetreff\/} beginnt an der Fluchtlinie
+ (linker Rand), schlie"st mit einem Punkt und wird
+ unterstrichen. Wir empfehlen diesen Text besser
+ durch eine andere Schriftart (z.B.\ fett)
+ hervorzuheben. Der Text wird unmittelbar angef"ugt.
+% \fi
+ \item {\bf Behandlungsvermerke}
+
+ Behandlungsvermerke (z.B.\ eilt) werden
+ neben das Anschriftenfeld, beginnend auf
+ Grad 50 (bei einer 10er Teilung), oder im
+ Anschlu"s an die Betreffangabe geschrieben;
+ sie k"onnen hervorgehoben werden.
+
+ \item {\bf Anlagen- und Verteilvermerke}
+
+ Anlagen- und Verteilvermerke beginnen an der
+ Fluchtlinie oder auf Grad 50 (60 oder 75).
+ Die vorliegende Version des `dinbriefs'
+ unterst"utzt nur Anlagen- und Verteilvermerke
+ auf der Fluchtlinie.
+
+ Der Anlagenvermerk geht dem Verteilvermerk
+ voraus.
+
+ \item {\bf Postscriptum}
+
+ Die DIN Norm 5008 sieht kein Postscriptum vor.
+ Die vorliegende Version des `dinbriefs'
+ unterst"utzt trotzdem ein Postscriptum.
+ Wir empfehlen das Postscriptum unmittelbar
+ nach der Gru"sformel \verb|\closing| oder
+ nach Anlagen- und Verteilvermerken zu setzen.
+
+ \item {\bf Seitennumerierung}
+
+ Die Seiten eines Schriftst"ucks sind von der
+ 2.~Seite an oben fortlaufend zu benummern.
+ Die Pagestyles \verb|headings| und
+ \verb|contheadings| unterst"utzen diese
+ Forderung. Das Verfahren ist jedoch noch nicht
+ befriedigend.
+
+ \item {\bf Hinweis auf Folgeseiten}
+
+ Wenn der Text eines Schriftst"ucks eine n"achste
+ Seite beansprucht, wird empfohlen
+ \begin{itemize}
+ \item am Fu"s der bereits beschrifteten Seite,
+ \item nach der letzten Textzeile,
+ \item mit mindestens einer Leerzeile Abstand,
+ \item auf Grad 60 (72 oder 90) beginnend,
+ \end{itemize}
+ als Hinweis auf die folgende Seite drei Punkte
+ zu schreiben.
+
+ Dieses Vorgehen wird zur Zeit nicht unterst"utzt.
+ Der Pagestyle \verb|contheadings| schreibt jedoch
+ an das Ende der laufenden Seite die Seitenzahl
+ der Folgeseite und auf Folgeseiten die
+ aktuelle Seite in der Kopf der Seite.
+
+ Die Kombination des Befehls \verb|\bottomtext|,
+ zum Einblenden einer weiteren Kommunikationszeile
+ am unteren Blattende der ersten Seite sowie
+ von gesellschaftsrechtlichen Angaben,
+ mit Seitenstilen, die die Fu"szeile unten mit
+ der Seitennummer oder Folgeseitennummer
+ beschriften, hat unter Umst"anden zur Folge,
+ da"s die Seiten- oder Folgeseitennummer
+ von diesen Feldern "uberschrieben wird.
+
+ \item {\bf Kommunikationszeile am Blattende und
+ gesellschaftsrechtliche Angaben}
+
+ Eine Kommunikationszeile am Blattende kann die folgenden
+ Angaben enthalten: Gesch"aftsr"aume, Telefon, Telefax,
+ Teletex, Telex, Btx und Kontoverbindungen.
+
+ Bei Kapitalgesellschaften sind die Angaben "uber
+ \begin{itemize}
+ \item die Rechtsform und den Sitz der Gesellschaft,
+ \item das Registergericht des Sitzes der Gesellschaft
+ und die Nummer, unter der die Gesellschaft in
+ das Handelsregister eingetragen ist,
+ \item den Namen des Vorsitzenden des Aufsichtsrates
+ (sofern die Gesellschaft nach gesetzlicher
+ Vorschrift einen Aufsichtsrat zu bilden hat),
+ \item die Namen des Vorsitzenden und aller Mitglieder
+ des Vorstandes (bei Gesellschaften mit
+ beschr"ankter Haftung die Namen der
+ Gesch"afts\-f"uhrer),
+ \end{itemize}
+ am Fu"s des Vordrucks aufzuf"uhren.\hfil\break
+ Die Rechtsform kann auch im Briefkopf als Bestandteil
+ der Firma angegeben werden.
+\end{enumerate}
+
+\ssect{Adre"s--Etiketten}
+Das Ausdrucken von Adre"s-Etiketten ist w"unschenswert, wenn
+keine Fensterbriefh"ullen verwendet werden. Damit das Bedrucken
+von verschiedenen Etiketts"atzen m"oglich wird, kann die Breite
+und H"ohe der einzelnen Etiketten mit den Befehlen
+\verb|\setlabelwidth|\arg{Breite} und
+\verb|\setlabelheight|\arg{H"ohe} eingestellt
+werden. Der obere Rand kann mit dem Befehl
+\verb|\setlabeltopmargin|\arg{oberer Rand} festgelegt werden.
+Die Anzahl der Labels in einer Spalte wird durch den Befehl
+\verb|\setlabelnumber|\arg{Anzahl} angegeben. Die mehrfache
+Verwendung eines Etikettenblatts wird durch den Befehl
+\verb|\spare|\arg{Anzahl} m"oglich. Dieser Befehl r"uckt
+den Druckbeginn um {\em Anzahl\/} Positionen vor.
+Die Ausgabe der Adre"s--Etiketten erfolgt spaltenweise.
+
+In vielen Druckern bleiben die Etikettenbl"atter h"angen,
+wenn die Tr"agerfolie in beiden Spalten freiliegt. Drucker,
+die alternativ einen ebenen Papiertransport besitzen, sollten
+zur Ausgabe von Etiketten auf diesen umgeschaltet werden.
+
+\ssect{Kompatibilit"at zu Rainer Sengerlings `dinbrief'}
+Im Jahr 1992 wurde an der Universit"at Karlsruhe ein Briefstil
+entwickelt, dem der Namen `dinbrief' gegeben wurde. Im gleichen
+Jahr ver"offentlichte Rainer Sengerling einen Briefstil unter
+dem gleichen Namen.
+
+Rainer Sengerling hat darauf verzichtet seinen Briefstil
+an \LaTeXe\ anzupassen. Daraufhin haben wir den Briefstil
+`dinbrief' im Dezember 1994 als \LaTeXe-Klasse ver"offentlicht.
+Die beiden Briefstile haben unterschiedliche Befehlss"atze,
+was bei vielen Benutzern zu Verwirrung und Irritationen
+gef"uhrt hat. Wegen der unterschiedlichen Befehle der beiden
+Stile haben uns viele Anfragen erreicht. Die jetzt vorliegende
+Fassung stellt beide Befehlss"atze zur Verf"ugung und f"uhrt die
+bisher unabh"anigen Briefstile zusammen.
+
+Gegenw"artig wird die Klassenoption \verb|german| nicht ausgewertet
+und f"uhrt zu einer Warnung. Alternativ mu"s mit dem Befehl
+\begin{quote}
+ \verb|\usepackage{german}|\\
+\end{quote}
+der Stil "`{\tt german}"' geladen werden.
+
+\begin{description}
+
+ \item[\cmd\Retouradresse\arg{{Absenderadresse im Brief\kern 0pt fenster}}]
+ Der Befehl legt die Anschrift des Absenders oben im
+ Anschriftenfeld des Briefs fest.
+
+ \item[\cmd\Retourlabel] \hfil\break
+ Dieser Befehl erzeugt Absenderadre"s-Etiketten, falls
+ die Erzeugung der Etiketten aktiviert wurde.
+
+ Ferner wird die Ausgabe der \cmd\Retouradresse\ unterdr"uckt.
+
+ {\bf Dieser Befehl wird gegenw"artig nicht unterst"utzt und
+ erzeugt eine Warnung.\/}
+
+ \item[\cmd\Fenster] \hfil\break
+ Bei der Verwendung von Fensterbriefh"ullen wird die mit
+ \cmd\Retouradresse\ vereinbarte einzeilige R"ucksendeadresse
+ (Absenderadresse) oben im Anschriftenfeld eingeblendet,
+ falls der Befehl \cmd\Fenster\ angegeben wurde. Ferner
+ werden die Faltmarken am linken Rand ausgegeben.
+
+ Daf"ur wird die Ausgabe der Etiketten unterdr"uckt.
+
+ {\bf Dieser Befehl wird gegenw"artig nicht unterst"utzt und
+ erzeugt eine Warnung.\/}
+
+ \item[\cmd\Postvermerk\arg{Postvermerk}] \hfil\break
+ Dieser Befehl vereinbart Vermerke f"ur den
+ Postversand wie z.B.\ Einschreiben.
+
+ \item[\cmd\Behandlungsvermerk\arg{Behandlungsvermerk}] \hfil\break
+ Der Befehl \cmd\Behandlungsvermerk\ dient zur
+ Angabe von (man wirds kaum glauben) Behandlungsvermerken
+ wie z.B.\ Eilt, pers"onlich oder "`F"ur die unterste
+ Schublade"'.
+
+ \item[\cmd\Absender\arg{Name und Adresse des Absenders}] \hfil\break
+ Die Adresse des Absenders wird vereinbart.
+ Dieser Befehl gilt f"ur den laufenden und alle
+ weiteren Briefe; er gilt solange, bis ein
+ weiterer \cmd\Absender- oder \cmd\address-Befehl
+ angegeben wird.
+
+ \item[\cmd\Absender\arg{Teil 1::Teil 2}] \hfil\break
+ Dies ist eine Sonderform des \cmd\Absender-Befehls.
+ Der durch \verb|::| abgetrennte {\em Teil2\/}
+ erscheint im Briefkopf, aber nicht im
+ Absenderetikett, falls ein solches mit dem
+ Befehl \cmd\Retourlabel\ angefordert
+ wurde.
+
+ Dieser Befehl wird korrekt unterst"utzt. Da aber
+ der Befehl \cmd\Retourlabel\ nicht implementiert
+ wurde, hat die Aufteilung im Moment praktisch keine
+ Bedeutung; sie kann aber in sp"ateren Versionen
+ wieder notwendig sein.
+
+ \item[\cmd\Datum\arg{Briefdatum}] \hfil\break
+ Soll als Absendedatum {\sl nicht\/} das aktuelle
+ Tagesdatum (des Rechners) eingesetzt werden, kann
+ mit diesem Befehl das Datum explizit angegeben werden.
+
+ Der Befehl \cmd\heute\ wird nicht unterst"utzt.
+
+ \item[\cmd\Betreff\arg{{Betreff}}] \hfil\break
+ Mit diesem Befehl wird der Betreff gesetzt, der den
+ Empf"anger "uber den Gegenstand des Briefes
+ informiert. Der Betreff kann ein oder mehrzeilig sein.
+
+ \item[\cmd\Einrueckung\arg{Text}] \hfil\break
+ Der Text wird um $1 in$ einger"uckt und geht bis zum
+ rechten Rand. Der Text darf Abs"atze enthalten.
+
+ \item[\cmd\anlagenrechts] \hfil\break
+ Die Anlagen- und Verteilvermerke beginnen {\sl rechts\/}
+ neben der Gru"sformel auf Grad 50. Mit diesem Befehl
+ kann Platz gespart werden, falls die Seite fast voll
+ ist, und kein neues Blatt begonnen werden soll.
+ Dieser Befehl mu"s vor \cmd\closing\ stehen.
+ Die Anlagen- und Verteilvermerke m"ussen in diesem
+ Fall ebenfalls vor dem \cmd\closing-Befehl stehen.
+
+ \item[\cmd\Anlagen\arg{Anlagenvermerk}] \hfil\break
+ Mit diesem Befehl werden eventuelle Anlagenvermerke
+ vereinbart oder gesetzt. Dieser Befehl darf sowohl
+ vor dem \cmd\closing-Befehl als auch hinter diesem
+ stehen. Der Anlagenvermerk wird nur vereinbart falls
+ der Befehl vor dem \cmd\closing-Befehl angegeben wird.
+ Der Anlagenvermerk wird sofort ausgegeben und gesetzt,
+ falls der Befehl nach dem \cmd\closing-Befehl angegeben
+ wird.
+
+ \item[\cmd\Verteiler\arg{Verteilvermerk}] \hfil\break
+ Dieser Befehl vereinbart oder setzt Verteilvermerke.
+ Die Ausf"uhrungen zum \cmd\Anlagen-Befehl gelten
+ auch f"ur diesen Befehl.
+
+ \item[\cmd\Etihoehe\arg{H"ohe eines Adressetiketts}] \hfil\break
+ Verschiedene Herstelle vertreiben Adressetiketten,
+ die alle ein bischen anders sind. Um den Briefstil
+ an unterschiedlich hohe Adre"setiketten anzupassen,
+ kann mit dem Befehl \cmd\Etihoehe\ die H"ohe eines
+ Etiketts angegeben werden.
+
+ \item[\cmd\Etirand\arg{oberer Rand}] \hfil\break
+ Die B"ogen mit den Adre"setiketten haben oft einen
+ Versatz oder oberen Rand. Mit dem Befehl \cmd\Etirand\
+ kann dieser Versatz eingestellt werden.
+
+ \item[\cmd\Etizahl\arg{Zahl der Etiketten}] \hfil\break
+ Auf ein Blatt mit Adre"setiketten passen leider
+ nicht beliebig viele sondern nur eine begrenzte
+ Anzahl von Etiketten, die sich dann auch nicht kunterbunt
+ auf dem Blatt tummeln, sondern Spaltenweise angeordnet
+ sind. Die Zahl der Etiketten, die in eine Spalte
+ passen werden durch den Befehl \cmd\Etizahl\
+ angegeben.
+
+ \item[\cmd\spare\arg{{n}}] \hfil\break
+ Das Bedrucken der Adre"setiketten beginnt nach {\em n\/}
+ leeren Adre"slabeln. Die Label werden spaltenweise
+ durchgez"ahlt.
+
+\end{description}
+
+\clearpage
+% \iffalse
+%</documentation>
+% \fi
+% \iffalse
+%<*documentation|dintab>
+% \fi
+% \iffalse
+\end{document}
+% \fi
+% \iffalse
+%</documentation|dintab>
+% \fi
+%
+% \StopEventually{}
+%
+% \clearpage
+%
+% \originalTeX
+%
+% \section{Documentation}
+%
+% \begin{macrocode}
+%<*class|style>
+% \end{macrocode}
+%
+% We store the date, version and name of this file in four control
+% sequences, for future use.
+% \begin{macrocode}
+\def\RCSdate{$Date: 2000/03/02 12:49:21 $}
+\def\RCSrevision{$Revision: 1.73 $}
+%
+{%
+ \def\stripone $#1${\def\partone{#1}}
+ \def\striptwo Date: #1\stop{\gdef\filedate{#1}\gdef\docdate{#1}}
+ \expandafter\stripone\RCSdate
+ \expandafter\striptwo\partone\stop
+}%
+%
+{%
+ \def\stripone $#1${\def\partone{#1}}
+ \def\striptwo Revision: #1\stop{\gdef\fileversion{#1}}
+ \expandafter\stripone\RCSrevision
+ \expandafter\striptwo\partone\stop
+}%
+%
+\def\filename{dinbrief.dtx}
+% \end{macrocode}
+%
+%
+% \subsection{The class/style file `dinbrief'}
+%
+% This is |DINBRIEF.STY| in text format, as of 1994/12/21,
+% by K.~Braune and R.~Gussmann
+% (Rechenzentrum der Universit\"at Karlsruhe).
+%
+% It is based on |DLETTER.STY| in text format, as of December 16, 1987,
+% by D.~Heinrich (TH Karlsruhe).
+%
+% It is based on |A4LETTER.STY| in text format, as of June 16, 1987,
+% and |letter.sty| 17-Jan-86 with modifications
+% for DIN-A4 paper + window envelopes, by H.~Partl (Wien)
+%
+% \changes{0.0.0}{1991/09/09}{(KB) Inserted blank space behind "P.S.:"}
+% \changes{0.0.0}{1991/10/02}{(KB) Changed "P.S.:" to "PS\cmd\newline"
+% Diminished space before \cmd\ps, \cmd\cc
+% and \cmd\encl.
+% Inserted code to generate labels using
+% a 12pt font and changed references
+% to \cmd\scriptsize to \cmd{\size{9}{11pt}}}
+% \changes{0.0.0}{1991/10/31}{(KB) Changes to allow \cmd\place not set}
+% \changes{0.0.0}{1991/11/15}{(RG) Moved \cmd\newlength from inside
+% \cmd\@answerto outside to allow
+% multiple letters within a single document.
+% Changed command sequences}
+% \changes{0.0.0}{1991/11/19}{(KB) Replaced \cmd\rm by code for the
+% new fontselection scheme}
+% \changes{0.0.0}{1991/11/19}{(KB) Changed first page to use pagestyle
+% firstpage}
+% \changes{0.0.0}{1992/02/05}{(KB) Changes of R.~Gussmann inserted}
+% \changes{0.0.0}{1992/02/27}{(KB) Page offsets corrected}
+% \changes{0.0.0}{1994/02/08}{(RG) Changes of K.~D.~Braune inserted}
+% \changes{0.92.20}{1994/02/23}{(RG) some more Comments added}
+% \changes{0.93.0}{1994/06/07}{(RG) some more Comments added\hfil\break
+% styles for labels added}
+% \changes{1.70.1}{2000/01/09}{(KB) Replaced absolute lengths related to
+% the letter layout (not for printing
+% labels) by variables and expressions
+% computed from their values\hfil\break
+% Inserted equal sign when assigning a value
+% to a length\hfil\break
+% Added support for a configuration
+% file\hfil\break
+% Some inactive lines (comments)
+% removed}
+% \changes{1.70.1}{2000/01/17}{(KB) \cmd\hfill\ changed to \cmd\hfil\
+% according to a proposal by Markus
+% Pilzecker\hfil\break
+% Introduced class options to switch between
+% both forms of the DIN 676 letter
+% layout\hfil\break
+% Mechanism and handling of bottomtext
+% changed}
+% \changes{1.72.0}{2000/02/29}{(KB) {\tt$\langle$CR$\rangle\langle$LF$\rangle$}
+% replaced by UNIX's newline\hfil\break
+% Adjustment of \cmd\textheight\ due to a
+% high position of the bottomtext
+% corrected\hfil\break
+% \cmd\oldopening\ restored by
+% (re)introducing \cmd\@@bottomtext\ into
+% the definition of \cmd\oldopening}
+%
+% \subsection{Get system information}
+% First we use three conditions to identify whether or not this file
+% is running under LaTeX 2.09 or \LaTeXe\ and which font selection
+% scheme is in use.
+%
+% |\ifka@db@ltxtwoe| is true if and only if this style is running in
+% an \LaTeXe-environment. |\ifka@db@nfss| is true if we are using an
+% NFSS 1 and \linebreak[4]
+% |\ifka@db@nfsstwo| is true if we are using the NFSS 2.
+%
+% \begin{macrocode}
+\newif\ifka@db@ltxtwoe
+\ka@db@ltxtwoefalse
+\newif\ifka@db@nfss
+\ka@db@nfssfalse
+\newif\ifka@db@nfsstwo
+\ka@db@nfsstwofalse
+% \end{macrocode}
+%
+% Then we check what is present on the system.
+%
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax\else
+ \ka@db@ltxtwoetrue
+ \fi
+\expandafter\ifx\csname size\endcsname\relax\else
+ \ka@db@nfsstrue
+ \fi
+\expandafter\ifx\csname fontsize\endcsname\relax\else
+ \ka@db@nfsstwotrue
+ \fi
+% \end{macrocode}
+%
+% \subsection{Print informations about this style}
+%
+% \subsubsection{Print the banner}
+%
+% \begin{macrocode}
+\typeout{}
+\typeout{Document Class/Style 'dinbrief' - %
+ Version \fileversion}
+\typeout{University of Karlsruhe - \filedate}
+\typeout{}
+% \end{macrocode}
+%
+% \subsubsection{Print system information}
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \typeout{*** dinbrief: Running in LaTeX 2e mode!}
+ \else
+ \typeout{*** dinbrief: Running in LaTeX 2.09 mode!}
+ \fi
+\ifka@db@nfss
+ \typeout{*** dinbrief: NFSS!}
+ \else
+ \ifka@db@nfsstwo
+ \typeout{*** dinbrief: NFSS 2!}
+ \else
+ \typeout{*** dinbrief: original LaTeX 2.09 font %
+ selection mechanism found!!!}
+ \fi
+ \fi
+% \end{macrocode}
+%
+% \subsection{\LaTeXe\ version control}
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \NeedsTeXFormat{LaTeX2e}[1996/12/01]
+ \ProvidesClass{dinbrief}[2000/03/02 LaTeX2e class]
+\else
+ \long\def\@firstofone#1{#1}
+\fi
+% \end{macrocode}
+%
+% \subsection{Initial code}
+%
+% In this part we define a few comands that are used later on.
+%
+% \subsubsection{temporary variables}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Added second temporary length}
+% \begin{macro}{\ka@db@tmpdima}
+% \begin{macro}{\ka@db@tmpdimb}
+% Unfortunately we have to define our own temporary dimen
+% variables, because inside a parbox \cmd\@tempdima\ and
+% \cmd\@tempdimb\ are used. \cmd\@tempdimc\ ist used maybe
+% in fontswitch commands.
+% \begin{macrocode}
+\newdimen\ka@db@tmpdima
+\newdimen\ka@db@tmpdimb
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{{\tt dinbrief\/} programming environment}
+%
+% \changes{1.22.0}{1995/01/15}{(RG) \cmd\section\space programming
+% environment added.}
+%
+% We define a few commands that are used later on.
+%
+% {\tt dinbrief\/} has many variables to store information about
+% a letter in it. These informations can be local to one letter
+% or global to all letters in the file. Here is a table of all
+% variables, and a mark if they are local, global or both.
+%
+% \DeleteShortVerb{\|}
+% \begin{tabular}{ll|c|c|l}
+% \hline
+% \multicolumn{1}{c}{\bf\small old name} &
+% \multicolumn{1}{c}{\bf\small new name}&
+% \multicolumn{1}{c}{\bf\small local} &
+% \multicolumn{1}{c}{\bf\small global} &
+% \multicolumn{1}{c}{\bf\small holds}\\
+% \hline
+% \cmd\@backaddress & backaddress & $\bullet$ & $\bullet$ & backaddress\\
+% not used & cc & $\bullet$ & & carbon copy\\
+% not used & encl & $\bullet$ & & enclosures \\
+% not used & ps & $\bullet$ & & postscriptum\\
+% \cmd\@fromsig & signature & $\bullet$ & $\bullet$ & sign of author\\
+% \cmd\@fromaddress & fromaddress & $\bullet$ & $\bullet$ & address of author\\
+% \cmd\@place & place & & $\bullet$ & place \\
+% \cmd\@prephone & prephone & & $\bullet$ & dialing code\\
+% \cmd\@phone & phone & & $\bullet$ & telephone number\\
+% \cmd\@mymail & sign & $\bullet$ & $\bullet$ & my sign\\
+% \cmd\@yourmail & yourmail & $\bullet$ & & your mail\\
+% \cmd\@writer & writer & $\bullet$ & $\bullet$ & writer, processor\\
+% \end{tabular}
+% \MakeShortVerb{\|}
+%
+% Currently the new nameing scheme is only used for |cc|, |encl| and
+% |ps|. No features of are currently used.
+%
+% \begin{macro}{\ka@db@assignvarglobal}
+% Assigns the argument to the global entity of that variable.
+% \begin{macrocode}
+\long\def\ka@db@assignvarglobal#1#2{%
+ \protect\pka@db@assignvarglobal{#1}{#2}}%
+\long\def\pka@db@assignvarglobal#1#2{%
+ % \bgroup
+ % \let\\=\relax
+ % \message{assignvarglobal: #1 = #2}%
+ % \egroup
+ \global\@namedef{ka@db@g@#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@assignvarlocal}
+% Assigns the argument to the local entity of that vairable.
+% \begin{macrocode}
+\long\def\ka@db@assignvarlocal#1#2{%
+ \protect\pka@db@assignvarlocal{#1}{#2}}%
+\long\def\pka@db@assignvarlocal#1#2{%
+ % \bgroup
+ % \let\\=\relax
+ % \message{assignvarlocal: #1 = #2}%
+ % \egroup
+ \global\@namedef{ka@db@l@#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@declvar}
+% The macro \cmd\ka@db@declvar\arg{NAME} defines two control sequences
+% with the following names |\ka@db@l@|NAME and |\ka@db@g|NAME.
+% The control sequences are initialized with |\@empty|.
+% \begin{macrocode}
+\def\ka@db@declvar#1{%
+ \ka@db@assignvarglobal{#1}{}%
+ \ka@db@assignvarlocal{#1}{}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@assignvar}
+% Assigns the given argument either to the local or global entity
+% depending on the value of the boolean variable |ifka@db@inletter|.
+% We do the same as in \LaTeX. We define a normal and a protected
+% version.
+% \begin{macrocode}
+\long\def\ka@db@assignvar#1#2{\protect\pka@db@assignvar{#1}{#2}}%
+\long\def\pka@db@assignvar#1#2{%
+ % \message{assignvar: #1 = #2}%
+ \ifnum\c@lt@state>0\relax
+ \pka@db@assignvarlocal{#1}{#2}%
+ \else
+ \pka@db@assignvarglobal{#1}{#2}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@usevarglobal}
+% Use the global entity.
+% \begin{macrocode}
+\def\ka@db@usevarglobal#1{\protect\pka@db@usevarglobal{#1}}%
+\def\pka@db@usevarglobal#1{%
+ \@nameuse{ka@db@g@#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@usevarlocal}
+% Use the local entity.
+% \begin{macrocode}
+\def\ka@db@usevarlocal#1{\protect\pka@db@usevarlocal{#1}}%
+\def\pka@db@usevarlocal#1{%
+ \@nameuse{ka@db@l@#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@usevar}
+% Use the global or local entity. If the local entity is empty
+% take the value from the global entity. There is no check if
+% the local entity holds valid data. |\ka@db@inletter|-Flag is
+% not used.
+% \begin{macrocode}
+\def\ka@db@usevar#1{%
+ \bgroup
+ \def\protect{\noexpand\protect\noexpand}%
+ \let\\=\relax
+ \edef\tmpa{\pka@db@usevarlocal{#1}}%
+ % \typeout{usevar: varlocal #1 = \meaning\tmpa}%
+ \expandafter\egroup
+ \ifx\tmpa\@empty
+ % \message{Using global var, because local var is empty!}%
+ \pka@db@usevarglobal{#1}%
+ \else
+ % \message{Using local var!}%
+ \pka@db@usevarlocal{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@ifemptydynvar}
+% Argument one has to be a control sequence. Argument two is
+% the argument of the control sequence given in the first argument.
+% If the macro combined with the first two arguments is empty, then
+% the third argument is executed. Otherwise the fourth argument is
+% executed. We do an expansion into a temporary controlsequence.
+% Therefore all control sequences in the expanded macro which
+% should not be expanded should be protected. \cmd\protect\ and
+% \cmd\\\ are set so that no expansion is given for protected
+% control sequences and also for \cmd\\.
+% \begin{macrocode}
+\long\def\ka@db@ifemptydynvar#1#2#3#4{%
+ \bgroup
+ \def\protect{\noexpand\protect\noexpand}%
+ \let\\=a% because characters are not expanded
+ \edef\tmpa{#1{#2}}%
+ % \typeout{ifempty: \string#1\space var #2 = \meaning#1{#2}}%
+ % \typeout{ifempty: \string#1\space var #2 = \meaning\tmpa}%
+ \expandafter\egroup
+ \ifx\tmpa\@empty
+ % \message{var is empty!}%
+ #3% <- otherwise a space is inserted
+ \else
+ % \message{var is not empty!}%
+ #4% <- otherwise a space is inserted
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@ifemptyvarlocal}
+% Checks if the local entity of a variable is empty or not.
+% \begin{macrocode}
+\long\def\ka@db@ifemptyvarlocal#1#2#3{%
+ \ka@db@ifemptydynvar{\pka@db@usevarlocal}{#1}{#2}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@ifemptyvarglobal}
+% Checks if the global entity of a variable is empty or not.
+% \begin{macrocode}
+\long\def\ka@db@ifemptyvarglobal#1#2#3{%
+ \ka@db@ifemptydynvar{\pka@db@usevarglobal}{#1}{#2}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@ifemptyvar}
+% If both entities of the variable (local and global) are
+% empty then the second argument is executed. Otherwise the
+% third argument is executed.
+% \begin{macrocode}
+\long\def\ka@db@ifemptyvar#1#2#3{%
+ \ka@db@ifemptyvarlocal{#1}{% then
+ \ka@db@ifemptyvarglobal{#1}{#2}{#3}%
+ }{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@execatletter}
+% \begin{macro}{\ka@db@atletter}
+% The macro |\ka@db@execatletter| appends at the end of the
+% macro \hfil\break |\ka@db@atletter| the stuff added in the
+% argument of |\ka@db@execatletter|. The macro |\@ka@db@atletter|
+% will be executed everytime the |\begin{letter}|-command is
+% processed.
+% \begin{macrocode}
+\def\ka@db@execatletter#1{%
+ \bgroup
+ \let\\=\relax
+ \def\protect{\noexpand\protect\noexpand}%
+ \xdef\ka@db@atletter{\ka@db@atletter #1}
+ \egroup
+}
+\def\ka@db@atletter{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@execatendletter}
+% \begin{macro}{\ka@db@endletter}
+% The same as above except that the list is executed
+% if the |\end{letter}|-command is processed.
+% \begin{macrocode}
+\def\ka@db@execatendletter#1{%
+ \bgroup
+ \let\\=\relax
+ \def\protect{\noexpand\protect\noexpand}%
+ \xdef\ka@db@atendletter{\ka@db@atendletter #1}
+ \egroup
+}
+\def\ka@db@atendletter{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Choosing the type size}
+%
+% \begin{macro}{\@ptsize}
+% \begin{macro}{\ds@12pt}
+% \begin{macro}{\ds@11pt}
+% \begin{macro}{\ds@10pt}
+% \begin{macro}{\ds@norm}
+% The control sequence |\@ptsize| is used to store the second digit
+% of the pointsize we are typesetting in. So, normally, it's value
+% is one of 0, 1 or 2.
+%
+% To be compatible with the old `dinbrief', pointsize 3 is used to
+% \iffalse
+% switch to special size having $\frac{1}{6}$ in as |\baselineskip|.
+% \fi
+% switch to a special size setting exactly 6 lines per inch.
+% (\dots\ it's used to feature some other size following the rules
+% of old stupid typewriters).
+%
+% The type size options are handled by defining |\@ptsize| to contain
+% the last digit of the size in question and branching on |\ifcase|
+% statements. This is done for historical reasons to stay compatible
+% with other packages that use the |\@ptsize| variable to select
+% special actions.
+%
+% To follow the programming conventions of \LaTeXe, we split the
+% definition of the macros into two parts. One for the old \LaTeX\
+% and one for \LaTeXe.
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \newcommand\@ptsize{}
+ \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
+ \DeclareOption{11pt}{\renewcommand\@ptsize{1}}
+ \DeclareOption{12pt}{\renewcommand\@ptsize{2}}
+ \DeclareOption{norm}{\renewcommand\@ptsize{3}}
+\else
+ \def\@ptsize{0}
+ \@namedef{ds@10pt}{\def\@ptsize{0}}
+ \@namedef{ds@11pt}{\def\@ptsize{1}}
+ \@namedef{ds@12pt}{\def\@ptsize{2}}
+ \@namedef{ds@norm}{\def\@ptsize{3}}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Defining the jobname}
+%
+% \begin{macro}{\jobname@aux}
+% \begin{macro}{\jobname@lbl}
+% This control sequence is used to store the name of the aux-file.
+% Therefore character |_| temporally is given catcode 12.
+%
+% \begin{macrocode}
+{%
+ \catcode`\_=12
+ \gdef\jobname@aux{\jobname.aux}% .aux or _aux or ...
+ \gdef\jobname@lbl{\jobname.lbl}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@mainlbl}
+% \begin{macrocode}
+\newwrite\@mainlbl
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Stuff from original classes}
+%
+% \begin{macro}{\if@restonecol}
+% If the document has to be printed in two columns, we sometimes
+% have to temporarily switch to one column. This switch is used to
+% remember to switch back.
+% \begin{macrocode}
+\newif\if@restonecol
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting paper sizes}
+%
+% The variables |\paperwidth| and |\paperheight| should reflect the
+% physical paper size after trimming. For desk printer output this
+% is usually the real paper size since there is no post-processing.
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \DeclareOption{a4paper}
+ {\paperheight=297mm%
+ \paperwidth =210mm}
+ \DeclareOption{a5paper}
+ {\paperheight=210mm%
+ \paperwidth =148mm}
+ \DeclareOption{b5paper}
+ {\paperheight=250mm%
+ \paperwidth =176mm}
+ \DeclareOption{letterpaper}
+ {\paperheight=11in%
+ \paperwidth =8.5in}
+ \DeclareOption{legalpaper}
+ {\paperheight=14in%
+ \paperwidth =8.5in}
+ \DeclareOption{executivepaper}
+ {\paperheight=10.5in%
+ \paperwidth =7.25in}
+\fi
+% \end{macrocode}
+%
+% \subsection{Two-side or one-side printing}
+%
+% Sometimes it's necessary to have two-sided printing. For example
+% if you have a two-sided printer, and you write two letters the
+% first one having an odd number of pages. The second then starts
+% on the backside of the last page of the first letter. To avoid
+% this problem you can specify the twoside option. Each letters
+% then starts on a new sheet on a two-sided printer.
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \DeclareOption{twoside}{\@twosidetrue}
+\fi
+\@twosidefalse
+% \end{macrocode}
+%
+% \subsection{Support for both variants of DIN 676 letter layout}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Support for both variants of
+% DIN 676 letter layout}
+%
+% Changing the letter layout parameters from absolute lengths to length
+% variables allows easy support of both versions of the DIN 676 letter
+% layout: `Form A' with address filed put high on the page
+% (\Lopt{addresshigh}), and `Form B' with address field 18mm lower
+% (\Lopt{addrl ow}). Since up to now only `Form B' has been supported,
+% it has been choosen to be the default. The option code is executed
+% after the other class commands since the lengths used are introduced
+% later on. These options are available only in case of using \LaTeXe.
+% Specification of the length |\addrvpos|, |\ufldmarkvpos| and
+% |\lfldmarkvpos| in the configuration file overwrite these options.
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \DeclareOption{addresshigh}{\AtEndOfClass{\addresshigh}}
+ \DeclareOption{addressstd}{\AtEndOfClass{\addressstd}}
+\fi
+% \end{macrocode}
+%
+% \subsection{Draft option}
+%
+% If the user requests \Lopt{draft} we show any overfull boxes.
+% We could probably add some more interesting stuff to this option.
+% \begin{macrocode}
+\def\ds@draft{\overfullrule 5pt}
+\def\ds@final{\overfullrule 0pt}
+% \end{macrocode}
+%
+% \subsection{Twocolumn printing}
+%
+% Two-column and one-column printing is again realized via a switch.
+%
+% This makes no sense in letters following the rules of DIN. But
+% maybe it is sometimes usefull.
+%
+% Some labels use twocolumn output.
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \DeclareOption{onecolumn}{\@twocolumnfalse}
+ \DeclareOption{twocolumn}{\@twocolumntrue}
+\fi
+% \end{macrocode}
+%
+% \subsection{Defining internal font selection commands}
+%
+% To be compatible to all font selection schemes we define our own
+% font selection commands |\ka@db@fontshape| (1), |\ka@db@fontseries| (1),
+% |ka@db@fontsize| (2), |\ka@db@selectfont| (0).
+%
+% Note: In the definition of the original \LaTeX\ 2.09 font selection system
+% the command |\rm| is used. This causes no error because |\rm| is
+% well defined in this version of \LaTeX.
+%
+% \iffalse
+% Note: The code for the font selection with the original mechanism
+% had been written by K.~Braune.
+% \fi
+%
+% \begin{macrocode}
+\ifka@db@nfss
+ \let\ka@db@selectfont\selectfont
+ \let\ka@db@fontseries\series
+ \let\ka@db@fontshape\shape
+ \let\ka@db@fontsize\size
+ \else
+ \ifka@db@nfsstwo
+ \let\ka@db@selectfont\selectfont
+ \let\ka@db@fontseries\fontseries
+ \let\ka@db@fontshape\fontshape
+ \let\ka@db@fontsize\fontsize
+ \else
+ \def\ka@db@selectfont{\relax}
+ \def\ka@db@fontseries#1{\relax}
+ \def\ka@db@fontshape#1{\ifx#1n\rm\else\relax\fi}
+ \def\ka@db@fontsize#1#2{\expandafter
+ \ifnum#1=12
+ \@setsize\normalsize{15pt}\xiipt\@xiipt
+ \abovedisplayskip 12pt plus3pt minus7pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3pt
+ \belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+ \else
+ \ifnum#1=8
+ \@setsize\scriptsize{8pt}\viipt\@viipt
+ \else
+ \@setsize\scriptsize{9.5pt}\viiipt\@viiipt
+ \fi
+ \fi}
+ \fi
+ \fi
+% \end{macrocode}
+%
+% \subsection{Executing options}
+%
+% Here we execute the default options to initialize certain
+% variables.
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \ExecuteOptions{a4paper,10pt,onecolumn,final}
+\fi
+% \end{macrocode}
+%
+% The |\ProcessOptions| command causes the execution of the code
+% for every option \Lopt{FOO}
+% which is declared and for which the user typed
+% the \Lopt{FOO} option in his
+% |\documentclass| command. For every option \Lopt{BAR} he typed,
+% which is not declared, the option is assumed to be a global option.
+% All options will be passed as document options to any
+% |\usepackage| command in the document preamble.
+%
+% In the old \LaTeX\ the user starts his file with the command
+% \linebreak[4]|\documentstyle [OPTION1, ... ,OPTIONk]{STYLE}|
+% which saves the |OPTION|'s and |\input|'s the file |STYLE.STY|.
+% When the |STYLE.STY| file issues the command |\@options|, the
+% following happens for each i:
+%
+% If the control sequence |\ds@OPTIONi| is defined then
+% execute this option |\ds@OPTIONi|. In the other case
+% save OPTIONi on a list of unprocessed options.
+%
+% After |STYLE.STY| has been executed, the file |OPTIONi.STY| is read for
+% each |OPTIONi| on the list of unprocessed options.
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \ProcessOptions
+ \else
+ \@options
+ \fi
+% \end{macrocode}
+%
+% \subsection{Loading Packages}
+%
+% The `dinbrief' class/style file does not load additional packages.
+% The user should load `german.sty'.
+%
+% \subsection{Error messages in this class/style}
+%
+% \subsubsection{General error message}
+%
+% \begin{macro}{\ka@db@error}
+% \begin{macrocode}
+\def\ka@db@error#1{%
+ \@latexerr{%
+ Document style/class `dinbrief' error^^J%
+ #1%
+ }{%
+ No help is available for this error message.^^J%
+ Please check your input file!
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Warning within \LaTeXe\ for forbidden commands}
+%
+% Therefore we define a warning message in case forbidden
+% commands are used.
+% \begin{macro}{\ka@db@warning}
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \def\ka@db@warning#1{%
+ \@@warning{The control sequence \string#1\space should %
+ not be used in LaTeX 2e}%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Modelling {\tt \char92 ClassWarning} in \LaTeX\ 2.09}
+% \begin{macrocode}
+\ifka@db@ltxtwoe\else
+ \def\ClassWarning#1#2{%
+ \typeout{Style #1 Warning: #2\on@line.}%
+ }
+\fi
+% \end{macrocode}
+%
+% \subsection{Font changing}
+%
+% \subsubsection{Defining old font changing commands for \LaTeXe}
+%
+% \changes{0.92.20}{1994/02/20}{The font changing has to
+% be redefined in \LaTeXe.
+% Code copied from letter class.}
+% \changes{0.94.0}{1994/08/15}{\cmd\@rewnewfontswitch renamed to
+% \cmd\DeclareOldFontCommand}
+% \changes{0.95.0}{1994/11/10}{Deleted wrong explanation.}
+%
+% Defining the font change commands for \LaTeXe.
+%
+% The following commands are only available in \LaTeXe. In older
+% versions of \LaTeX\ the commands are defined in |lfonts.???|
+% (I think so).
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+% \end{macrocode}
+% Here we supply the declarative font changing commands that were common
+% in \LaTeX\ version 2.09 and earlier. These commands work in text mode
+% \textit{and} in math mode. They are provided for compatibility, but one
+% should start using the |\text...| and |\math...| commands instead.
+% These commands are redefined using |\@renewfontswitch|, a command
+% with three arguments: the user command to be defined, \LaTeX's command
+% to be executed in text mode, and \LaTeX's command to be executed in math
+% mode.
+%
+% \begin{macro}{\rm}
+% \begin{macro}{\sf}
+% \begin{macro}{\tt}
+% The commands to change the family:
+% \begin{macrocode}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bf}
+% The command to change to the bold series. One should use |\mdseries| to
+% explicitly switch back to medium series.
+% \begin{macrocode}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\it}
+% \begin{macro}{\sl}
+% \begin{macro}{\sc}
+% And the commands to change the shape of the font. The slanted and
+% small caps shapes are not available by default as math alphabets, so
+% these changes do nothing in math mode. One should use |\upshape|
+% to explicitly change back to the upright shape.
+%
+% \begin{macrocode}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cal}
+% \begin{macro}{\mit}
+% The commands |\cal| and |\mit| should only be used in math mode, outside
+% math mode they have no effect. Currently, the New Font Selection Scheme
+% defines these commands to generate warning messages. Therefore, we have
+% to define them manually.
+% \changes{1.48}{1995/06/28}{Now define \cs{cal} and \cs{mit} using
+% \cs{DeclareRobustCommand*}}
+% \begin{macrocode}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The end of the conditional code for the font changing commands for
+% \LaTeXe.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \subsection{A special distance}
+% \begin{macro}{\GZA}
+% Baselinedistance 1/6 in = 4,23 mm (Grundzeilenabstand DIN 2107, 2142)
+% \begin{macrocode}
+\newdimen\GZA
+\GZA=1in \divide\GZA by 6
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Fontsizes und other parameters}
+%
+% \begin{macrocode}
+\ifcase \@ptsize\relax
+% \end{macrocode}
+% \begin{macro}{\@normalsize}
+% \begin{macrocode}
+ \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
+ \abovedisplayskip 10\p@ plus2\p@ minus5\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+ \let\@listi\@listI
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\small}
+% \begin{macrocode}
+ \def\small{\@setsize\small{11pt}\ixpt\@ixpt
+ \abovedisplayskip 8.5\p@ plus 3\p@ minus 4\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus2\p@
+ \belowdisplayshortskip 4\p@ plus2\p@ minus 2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\footnotesize}
+% \begin{macrocode}
+ \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+ \abovedisplayskip 6\p@ plus 2\p@ minus 4\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1\p@
+ \belowdisplayshortskip 3\p@ plus 1\p@ minus 2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scriptsize}
+% \begin{macro}{\tiny}
+% \begin{macro}{\large}
+% \begin{macro}{\Large}
+% \begin{macro}{\LARGE}
+% \begin{macro}{\huge}
+% \begin{macro}{\Huge}
+% \begin{macrocode}
+ \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+ \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+ \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+ \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+ \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+ \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+ \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+% \end{macrocode}
+% \end{macro}^^A \Huge
+% \end{macro}^^A \huge
+% \end{macro}^^A \LARGE
+% \end{macro}^^A \Large
+% \end{macro}^^A \large
+% \end{macro}^^A \tiny
+% \end{macro}^^A \scriptsize
+% \begin{macrocode}
+\or % 11 pt option
+% \end{macrocode}
+% \begin{macro}{\@normalsize}
+% \begin{macrocode}
+ \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
+ \abovedisplayskip 11\p@ plus3\p@ minus6\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+ \let\@listi\@listI
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\small}
+% \begin{macrocode}
+ \def\small{\@setsize\small{12pt}\xpt\@xpt
+ \abovedisplayskip 10\p@ plus2\p@ minus5\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\footnotesize}
+% \begin{macrocode}
+ \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+ \abovedisplayskip 8\p@ plus 2\p@ minus 4\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1\p@
+ \belowdisplayshortskip 4\p@ plus 2\p@ minus 2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scriptsize}
+% \begin{macro}{\tiny}
+% \begin{macro}{\large}
+% \begin{macro}{\Large}
+% \begin{macro}{\LARGE}
+% \begin{macro}{\huge}
+% \begin{macro}{\Huge}
+% \begin{macrocode}
+ \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+ \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+ \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+ \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+ \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+ \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+ \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+% \end{macrocode}
+% \end{macro}^^A \Huge
+% \end{macro}^^A \huge
+% \end{macro}^^A \LARGE
+% \end{macro}^^A \Large
+% \end{macro}^^A \large
+% \end{macro}^^A \tiny
+% \end{macro}^^A \scriptsize
+% \begin{macrocode}
+\or % 12pt option
+% \end{macrocode}
+% \begin{macro}{\@normalsize}
+% \begin{macrocode}
+ \def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt
+ \abovedisplayskip 12\p@ plus3\p@ minus7\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+ \let\listi\listI
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\small}
+% \begin{macrocode}
+ \def\small{\@setsize\small{13.6pt}\xipt\@xipt
+ \abovedisplayskip 11\p@ plus3\p@ minus6\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\footnotesize}
+% \begin{macrocode}
+ \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
+ \abovedisplayskip 10\p@ plus2\p@ minus5\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scriptsize}
+% \begin{macro}{\tiny}
+% \begin{macro}{\large}
+% \begin{macro}{\Large}
+% \begin{macro}{\LARGE}
+% \begin{macro}{\huge}
+% \begin{macro}{\Huge}
+% \begin{macrocode}
+ \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+ \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+ \def\large{\@setsize\large{18pt}\xivpt\@xivpt}
+ \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt}
+ \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+ \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt}
+ \let\Huge=\huge
+% \end{macrocode}
+% \end{macro}^^A \Huge
+% \end{macro}^^A \huge
+% \end{macro}^^A \LARGE
+% \end{macro}^^A \Large
+% \end{macro}^^A \large
+% \end{macro}^^A \tiny
+% \end{macro}^^A \scriptsize
+% \begin{macrocode}
+\or % Norm-Option (DIN 2107, 2142)
+% \end{macrocode}
+% \begin{macro}{\@normalsize}
+% \begin{macrocode}
+ \def\@normalsize{\@setsize\normalsize{\GZA}\xipt\@xipt
+ \abovedisplayskip 11\p@ plus3\p@ minus6\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+ \let\@listi\@listI
+ }% Setting of \@listi added 22 Dec 87
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\small}
+% \begin{macrocode}
+ \def\small{\@setsize\small{11pt}\xpt\@xpt
+ \abovedisplayskip 10\p@ plus2\p@ minus5\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus3\p@
+ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+ \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87
+ \topsep 6\p@ plus2\p@ minus2\p@
+ \parsep 3\p@ plus2\p@ minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\footnotesize}
+% \begin{macrocode}
+ \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+ \abovedisplayskip 8\p@ plus2\p@ minus4\p@
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus\p@
+ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
+ \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87
+ \topsep 4\p@ plus2\p@ minus2\p@
+ \parsep 2\p@ plus\p@ minus\p@
+ \itemsep \parsep}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\scriptsize}
+% \begin{macro}{\tiny}
+% \begin{macro}{\large}
+% \begin{macro}{\Large}
+% \begin{macro}{\LARGE}
+% \begin{macro}{\huge}
+% \begin{macro}{\Huge}
+% \begin{macrocode}
+ \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+ \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+ \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+ \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+ \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+ \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+ \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+% \end{macrocode}
+% \end{macro}^^A \Huge
+% \end{macro}^^A \huge
+% \end{macro}^^A \LARGE
+% \end{macro}^^A \Large
+% \end{macro}^^A \large
+% \end{macro}^^A \tiny
+% \end{macro}^^A \scriptsize
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\normalsize}
+% We are doing here something different from the class files of
+% \LaTeXe. This may be necessary for backward compatibility.
+%
+% If we are in \LaTeXe, then we have to define the
+% controlsequence |\normalsize|.
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+\let\normalsize\@normalsize
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% We initially choose the normalsize font.
+% This code has to be executed following the definition of |\baselinestretch|,
+% if we are not running NFSS2. (This may also be true also for NFSS1.)
+% \changes{0.92.13}{1994/01/04}{Commented out and moved to the end of the file}
+% \changes{0.92.14}{1994/01/04}{Included as conditional code}
+% \begin{macrocode}
+\ifka@db@nfss
+ \normalsize
+ \else
+ \ifka@db@nfsstwo
+ \normalsize
+ \fi
+ \fi
+% \end{macrocode}
+%
+% \subsection{Document layout}
+% \label{sec:maincode}
+%
+% In this section we are finally dealing with the nasty typographical
+% details.
+%
+% \begin{macrocode}
+% \addtolength\voffset{0.8truemm}
+% \addtolength\hoffset{-1.4truemm}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\oddsidemargin=0in
+\evensidemargin=0in
+\marginparwidth=.08in
+\marginparsep=.01in
+\marginparpush=5pt
+\topmargin=-5mm
+% \end{macrocode}
+%
+% \begin{macro}{\ltf@headheight}
+% \begin{macro}{\lts@headheight}
+% \begin{macro}{\ltf@headsep}
+% \begin{macro}{\lts@headsep}
+% \begin{macro}{\ltf@textheight}
+% \begin{macro}{\lts@textheight}
+% These dimens are used to store different values for the first page
+% and the following pages. All dimens starting with |ltf@XXX| hold
+% values for the first page and all dimens starting with |lts@XXX|
+% hold values for the second and follwing pages. We have to do
+% here such a funny coding because \LaTeX's |\thispagestyle|-mechanism
+% is not flexible enough. (This code may not complete yet!)
+%
+% We use this to move the start of the first page of a letter
+% 12~mm up.
+%
+% \begin{macrocode}
+\newdimen\ltf@headheight
+\newdimen\lts@headheight
+\newdimen\ltf@headsep
+\newdimen\lts@headsep
+\newdimen\ltf@textheight
+\newdimen\lts@textheight
+\ltf@headheight=4.2truemm %
+\lts@headheight=0truemm %
+\ltf@headsep=8.8truemm %
+\lts@headsep=0truemm %
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\footheight}
+% \LaTeXe\ has no dimen register |\footheight|, because there is no such
+% register in other \LaTeX-versions.
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight=4.2truemm
+ \fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\footskip=8.8truemm
+% \end{macrocode}
+%
+% \iffalse
+% RG 29.11.93 printer can't output the last line
+% \fi
+% \changes{0.0.0}{1993/11/29}{(RG) printer can't output the last line}
+%
+% \begin{macrocode}
+\textheight=254truemm
+\textwidth=165truemm
+\columnsep=10pt
+\columnseprule=0pt
+% \end{macrocode}
+%
+% \begin{macrocode}
+\raggedbottom
+% \end{macrocode}
+%
+% \begin{macro}{\footnotesep}
+% |\footnotesep| is the height of the strut placed at the beginning
+% of every footnote. It equals the height of a normal
+% |\footnotesize| strut in this
+% class; thus no extra space occurs between footnotes.
+%
+% The class/style `dinbrief' uses only one value for
+% |\footnotesep| in all pt-sizes.
+%
+% \begin{macrocode}
+\footnotesep=4.2truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footins}
+% |\skip\footins| is the space between the last line of the main
+% text and the top of the first footnote.
+%
+% The class/style `dinbrief' uses only one value for
+% |\footins| in all pt-sizes.
+%
+% \begin{macrocode}
+\skip\footins 10pt plus 2pt minus 4pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\floatsep=12pt plus 2pt minus 2pt
+\textfloatsep=20pt plus 2pt minus 4pt
+\intextsep=12pt plus 2pt minus 2pt
+\dblfloatsep=12pt plus 2pt minus 2pt
+\dbltextfloatsep=20pt plus 2pt minus 4pt
+\ifka@db@ltxtwoe
+ \relax
+ \else
+ \@maxsep=20pt
+ \@dblmaxsep=20pt
+ \fi
+\@fptop=0pt plus 1fil
+\@fpsep=8pt plus 2fil
+\@fpbot=0pt plus 1fil
+\@dblfptop=0pt plus 1fil
+\@dblfpsep=8pt plus 2fil
+\@dblfpbot=0pt plus 1fil
+% \end{macrocode}
+%
+% \subsubsection{User definable layout positions}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Inserted lengths to make letter layout
+% customizable by the user}
+%
+% This section defines some layout relevant lengths, all preset according
+% to DIN 676. Some of them can be redefined by the user, others are
+% bound to the class definition.
+%
+% \begin{macro}{\ka@db@txtlmarg}
+% The length |\ka@db@txtlmarg| describes the left margin of the letter
+% text and is used for correct horizontal positioning.
+% \begin{macrocode}
+\newdimen\ka@db@txtlmarg
+\ka@db@txtlmarg=24truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addrhpos}
+% \begin{macro}{\addrvpos}
+% \begin{macro}{\addrwd}
+% \begin{macro}{\addrht}
+% \begin{macro}{\addroffset}
+% \begin{macro}{\ka@db@addrhoffs}
+% These length describe the position and size of the address field.
+% |\addrhpos| and |\addrvpos| specify the lower left corner of this
+% field, |\addrwd| and |\addrht| describe the width and the height of
+% the field.
+% The length |\addroffset| is an offset of the address text to the left
+% margin of the address field, since in most cases it is preferred to start
+% it a small amount off that margin. The default value is 4mm.
+% |\ka@db@addrhoffs| specifies the offset of the address field against the
+% beginning of the text lines (defined as 24mm off the left paper bound).
+% \begin{macrocode}
+\newdimen\addrhpos
+\newdimen\addrvpos
+\newdimen\addrwd
+\newdimen\addrht
+\newdimen\addroffset
+\newdimen\ka@db@addrhoffs
+\addrhpos=20truemm
+\addrvpos=90truemm
+\addrwd=85truemm
+\addrht=40truemm
+\addroffset=4truemm
+\ka@db@addrhoffs=-4truemm
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setaddressllcorner}
+% \begin{macro}{\setaddressllhpos}
+% \begin{macro}{\setaddressllvpos}
+% \begin{macro}{\setaddresswidth}
+% \begin{macro}{\setaddressheight}
+% \begin{macro}{\setaddressoffset}
+% \begin{macro}{\addresshigh}
+% \begin{macro}{\addressstd}
+% Four macros assign values to the lengths just defined:
+% \cmd\setaddressllcorner\ sets both |\addrhpos| and |\addrvpos|,
+% \cmd\setaddresswidth\ and \cmd\setaddressheight\ set the height |\addrht|
+% and the width |\addrwd| of the address window (without the backaddress
+% field, \cmd\setaddressoffset\ defines an offset for the address text
+% against the left margin of the address window.
+% The two remaining macros \cmd\addresshigh\ and \cmd\addressstd\ preset
+% then length |\addrvpos|, |\reflinevpos|, |\ufldmarkvpos| and
+% |\lfldmarkvpos| as required by the two variants of the DIN norm, the high
+% and the lower address fields, respectively.
+% \begin{macrocode}
+\def\setaddressllcorner#1#2{\global\addrhpos=#1\global\addrvpos=#2\relax}
+\def\setaddressllhpos#1{\global\addrhpos=#1\relax}
+\def\setaddressllvpos#1{\global\addrvpos=#1\relax}
+\def\setaddresswidth#1{\global\addrwd=#1\relax}
+\def\setaddressheight#1{\global\addrht=#1\relax}
+\def\setaddressoffset#1{\global\addroffset=#1\relax}
+\def\addresshigh{\addrvpos =72truemm%
+ \reflinevpos =80.5truemm%
+ \ufldmarkvpos=87truemm%
+ \lfldmarkvpos=192truemm}
+\def\addressstd{\addrvpos =90truemm%
+ \reflinevpos =98.5truemm%
+ \ufldmarkvpos=105truemm%
+ \lfldmarkvpos=210truemm}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\backaddrht}
+% \begin{macro}{\reflinevpos}
+% |\backaddrht| gives the height of the field for the backaddress placed
+% directly above the address fields described above.
+% |\reflinevpos| specifies the distance distance from top of the paper to
+% the upper bound of the reference line (Bezugszeichenzeile).
+% \begin{macrocode}
+\newdimen\backaddrht
+\newdimen\reflinevpos
+\backaddrht=5truemm
+\reflinevpos=98.5truemm
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setbackaddressheight}
+% \begin{macro}{\setreflinetop}
+% These two macros are used to redefine the length |\backaddrht| and
+% |\reflinevpos|.
+% \begin{macrocode}
+\def\setbackaddressheight#1{\global\backaddrht=#1\relax}
+\def\setreflinetop#1{\global\reflinevpos=#1\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ufldmarkvpos}
+% \begin{macro}{\lfldmarkvpos}
+% \begin{macro}{\perfmarkvpos}
+% \begin{macro}{\ka@db@foldmarkhoffs}
+% \begin{macro}{\ka@db@perfmarkhoffs}
+% \begin{macro}{\ka@db@foldmarklen}
+% \begin{macro}{\ka@db@perfmarklen}
+% The first three length describe the height of the tic marks:
+% |\ufldmarkvpos| and |\lfldmarkvpos| the upper and lower fold marks, and
+% |\perfmarkvpos| the mark for perforation.
+% |\ka@db@foldmarkhoffs| specifies the offset of the fold marks against the
+% beginning of the text lines (defined as 24mm off the left paper bound),
+% |\ka@db@perfmarkhoffs| definies the corresponding offset for the perforation
+% mark.
+% \begin{macrocode}
+\newdimen\ufldmarkvpos
+\newdimen\lfldmarkvpos
+\newdimen\perfmarkvpos
+\newdimen\ka@db@foldmarkhoffs
+\newdimen\ka@db@perfmarkhoffs
+\newdimen\ka@db@foldmarklen
+\newdimen\ka@db@perfmarklen
+\ufldmarkvpos=105truemm
+\lfldmarkvpos=210truemm
+\ifka@db@ltxtwoe
+ \perfmarkvpos=.5\paperheight
+\else
+ \perfmarkvpos=148.5truemm
+\fi
+\ka@db@foldmarkhoffs=-24truemm
+\ka@db@perfmarkhoffs=-18truemm
+\ka@db@foldmarklen=7truemm
+\ka@db@perfmarklen=6truemm
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setupperfoldmarkvpos}
+% \begin{macro}{\setlowerfoldmarkvpos}
+% Two macros are provided to set the distance of the upper and lower fold
+% marks from the top of the paper sheet.
+% \begin{macrocode}
+\def\setupperfoldmarkvpos#1{\global\ufldmarkvpos=#1\relax}
+\def\setlowerfoldmarkvpos#1{\global\lfldmarkvpos=#1\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bottomtextvpos}
+% The height of the lower bound of the bottom text is given by the length
+% |\bottomtextvpos|.
+% \begin{macrocode}
+\newdimen\bottomtextvpos
+\bottomtextvpos=281truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setbottomtexttop}
+% \begin{macrocode}
+\def\setbottomtexttop#1{\global\bottomtextvpos=#1\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@headup}
+% This length specifies the shift of the letter head, normally showing
+% information about the sender of the letter. It is preset with a negative
+% value shifting the letter head up as much as possible leaving a small
+% distance to the upper paper bound. The definition of the letter head
+% can shift the head downwards (upwards is not recommended).
+% \begin{macrocode}
+\newdimen\ka@db@headup
+\ka@db@headup=-19.4truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@vfuzz}
+% This length is introduced to correct absolute position values as specified
+% by the length describing the letter layout onto the internal TeX positions
+% used within this class. The value is choosen as difference of positions
+% as specified by the DIN Norm and the values used in earlier versions of
+% this class.
+% \begin{macrocode}
+\newdimen\ka@db@vfuzz
+\ka@db@vfuzz=23.9truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@stdskip}
+% This length specifies a standard skip value used for example between the
+% address and backadress field and the window rules. It is used at some
+% other places, too.
+% \begin{macrocode}
+\newdimen\ka@db@stdskip
+\ka@db@stdskip=2.5truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@fieldwd}
+% \begin{macro}{\ka@db@fldskip}
+% \begin{macro}{\ka@db@shfldwd}
+% |\ka@db@fieldwd| defines the (used) width of the fields. The length
+% |\ka@db@fldskip| gives the skip (space) between consecutive fileds.
+% In case of the old reference line the phone number field has a different
+% width, specified by the length |\ka@db@shfldwd|.
+% \begin{macrocode}
+\newdimen\ka@db@fieldwd
+\newdimen\ka@db@fldskip
+\newdimen\ka@db@shfldwd
+\ka@db@fieldwd=50.8truemm
+\ka@db@fldskip=0truemm
+\ka@db@shfldwd=25.4truemm
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Rules above and below the receiver's window}
+%
+% \begin{macro}{\ifka@db@windowrules}
+% \begin{macro}{\windowrules}
+% \begin{macro}{\nowindowrules}
+% The window rules above and below the receivers address can
+% be switched on or off. The boolean variable |\ifka@db@windowrules|
+% is true if the rules have to be typeset. The user commands
+% \cmd\windowrules\ and \cmd\nowindowrules\ toggle the boolean
+% variable.
+% \begin{macrocode}
+\newif\ifka@db@windowrules
+\def\windowrules{\global\ka@db@windowrulestrue}
+\def\nowindowrules{\global\ka@db@windowrulesfalse}
+\windowrules
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Lines for splitting letters}
+%
+% \begin{macro}{\ifka@db@windowtics}
+% \begin{macro}{\windowtics}
+% \begin{macro}{\nowindowtics}
+% Save as above except the tics on the left side are typeset
+% or not.
+% \begin{macrocode}
+\newif\ifka@db@windowtics
+\def\windowtics{\global\ka@db@windowticstrue}
+\def\nowindowtics{\global\ka@db@windowticsfalse}
+\windowtics
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{\cmd\backaddress\space API function}
+%
+% \begin{macro}{\backaddress}
+% \begin{macro}{\@backaddress}
+% \begin{macrocode}
+\def\backaddress#1{\gdef\@backaddress{#1}}
+\backaddress{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Added code to enable and disable
+% underlining of the backaddress}
+%
+% \begin{macro}{\ifka@db@baddrrule}
+% \begin{macro}{\backaddressrule}
+% \begin{macro}{\nobackaddressrule}
+% The rules below the backaddress can be switched on or off by setting the
+% boolean variable |\ifka@db@baddrrule| which is true if the rule is to be
+% typeset. The user commands \cmd\backaddressrule\ (default) and
+% \cmd\nobackaddressrule\ toggle the boolean variable.
+% \begin{macrocode}
+\newif\ifka@db@baddrrule
+\def\backaddressrule{\global\ka@db@baddrruletrue}
+\def\nobackaddressrule{\global\ka@db@baddrrulefalse}
+\backaddressrule
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Macros for splitting the receiver's address}
+%
+% \changes{1.21.0}{1995/01/13}{Macros for splitting the receivers
+% address replaced with a more flexible
+% and more user friendly method}
+%
+% \begin{macro}{\@splitoncr}
+% \begin{macro}{\@splitoncrlist}
+% The macro |\@splitoncr| splits the first argument on each |\\|.
+% The second argument is a macro with exactly one argument. For each
+% part the macro (in the second) argument is called.
+% |\@splitoncrlist| is called inside |\@splitoncr| and
+% does the real work.
+% \begin{macrocode}
+\long\def\@splitoncr#1#2{%
+ \begingroup
+ % \tracingmacros=1
+ \let\\=a% because characters are not expanded
+ \long\def\@rgjob##1{#2{##1}}%
+ % \expandafter\@splitoncrlist#1\\\stop \\
+ \@splitoncrlist#1\\\stop \\
+ \endgroup}
+% \end{macrocode}
+% \changes{1.63.0}{1996/05/21}{call to \cmd\@splitoncrlist changed
+% as sugested by B.~Raichle}
+%
+% \changes{1.63.0}{1996/05/21}{order of \cmd\ifx-comparision changed}
+% There is a bug in the macro |\@splitoncrlist|. If the argument
+% starts with to two equal letters, the comparision evaluates to
+% true and the macro |\stop| is executed. This stops all
+% activities and ends \LaTeX. So we change the order of the arguments
+% of the \cs{ifx} oder |\ifx| command. We check |\stop| against the arguments
+% of the macro. This will work.
+%
+% \begin{macrocode}
+\long\def\@splitoncrlist#1\\{%
+ \ifx\stop#1\relax
+ \let\next=\relax
+% \message{Stop encountered}%
+ \else
+ \@rgjob{#1}%
+% % \typeout{The sequence: #1}%
+ \let\next=\@splitoncrlist
+ \fi
+ \next
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@ignorebrackets}
+% The first argument in brackets is ignored. The third argument
+% is the name of a control sequece. This cs will be defined globally
+% with the contents of the second argument.
+%
+% \changes{1.63.0}{1996/05/21}{We made this macro long}
+%
+% \begin{macrocode}
+\long\def\@ignorebrackets[#1]#2\stop#3{%
+ \gdef#3{#2}\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.65.0}{1995/10/29}{\cmd\leavevmode\ inserted}
+% \begin{macro}{\@withmarkcr}
+% \begin{macrocode}
+\long\def\@withmarkcr!#1\stop{%
+ \xdef\@addresslist{%
+ \@addresslist\ifx\@addresslist\empty\else\leavevmode\\\fi{#1}}%
+ \@ifnextchar[%]
+ {\@ignorebrackets}{\@ignorebrackets[]}#1\stop{\@addressname}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.65.0}{1995/10/29}{\cmd\leavevmode\ inserted}
+% \begin{macro}{\@withoutmarkcr}
+% \begin{macrocode}
+\long\def\@withoutmarkcr#1\stop{%
+ \xdef\@addresslist{%
+ \@addresslist\ifx\@addresslist\empty\else\leavevmode\\\fi{#1}}
+ \ifx\@addressname\relax
+ \@ifnextchar[%]
+ {\@ignorebrackets}{\@ignorebrackets[]}#1\stop{\@addressname}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@withmark}
+% \begin{macrocode}
+\long\def\@withmark!#1\stop{%
+ \xdef\@addresslist{\@addresslist {#1}}
+ \@ifnextchar[%]
+ {\@ignorebrackets}{\@ignorebrackets[]}#1\stop{\@addressname}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@withoutmark}
+% This macro is not allowed to insert a |\\| into the |\@addresslist|.
+% \begin{macrocode}
+\long\def\@withoutmark#1\stop{%
+ \xdef\@addresslist{\@addresslist {#1}}
+ \ifx\@addressname\relax
+ \@ifnextchar[%]
+ {\@ignorebrackets}{\@ignorebrackets[]}#1\stop{\@addressname}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@withlbracket}
+% Adds to the |\@addresslist| in brackets the contents of the
+% brackts following the |\\|. Looks for a |!|.
+% \changes{1.65.0}{1995/10/29}{\cmd\leavevmode\ inserted}
+% \begin{macrocode}
+\long\def\@withlbracket[#1]#2\stop{%
+ \xdef\@addresslist{\@addresslist\ifx\@addresslist\empty\else\leavevmode\\\fi[#1]}
+ \@ifnextchar!{\@withmark}{\@withoutmark}#2\stop
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@withoutlbracket}
+% Checks if |!| is immediately following the |\\|.
+% If so |\@withmarkcr| is called otherwise |\@withoutmarkcr|
+% is called.
+% \begin{macrocode}
+\long\def\@withoutlbracket#1\stop{%
+ \@ifnextchar!{\@withmarkcr}{\@withoutmarkcr}#1\stop
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@checkformark}
+% Checks of the existence of a left bracket. Depending on the
+% presence of such a left bracket the control sequence
+% |\@withlbracket| or |\@withoutlbracket| is executed.
+% \begin{macrocode}
+\long\def\@checkformark#1{%
+ \@ifnextchar[{\@withlbracket}{\@withoutlbracket}#1\stop
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@splitaddress}
+% This macro splits the receivers address and extracts the
+% contents of a line marked with a starting |!|. Lines
+% in this context are all stuff between two |\\| or the
+% stuff between the beginning or the ending of the argument
+% and one |\\|. If no |!| is given, the first line in the
+% argument is taken (as in the former versions). If more than
+% one |!| is given (in different lines) the last line containing
+% a |!| is taken. Valid forms are |\\!|, |\\ !|, |\\![\medskipamount]|
+% and |\\[\medskipamount]!|. All four forms produce the expected
+% output!
+%
+% \changes{1.63.0}{1995/05/21}{Two \cmd\expandafter s inserted as
+% suggested by B.~Raichle}
+%
+% \begin{macrocode}
+\long\def\@splitaddress#1{%
+ \def\@addressbase{#1}
+ \let\@addressname=\relax
+ \def\@addresslist{}
+ \expandafter\@splitoncr\expandafter{\@addressbase}{\@checkformark}%
+ \gdef\toname{\@addressname}
+ % \typeout{Addresslist: \@addresslist}%
+ % \typeout{Addressname: \@addressname}%
+ % \typeout{\string\toname: \toname}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The \cmd\opening-Procedure}
+% The following macros typeset most static text areas of the letter.
+%
+% \begin{macro}{\ka@db@indadr}
+% \begin{macrocode}
+\newdimen\ka@db@indadr
+\ka@db@indadr=0pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tsfromaddress}
+% \begin{macrocode}
+\def\ka@db@tsfromaddress{%
+ \ifx\@empty\@fromaddress
+ \vbox to 0pt{\vss}\nointerlineskip
+ \else
+ \vbox to 0pt{\vskip \ka@db@headup\raggedright\@fromaddress\vss}%
+ \nointerlineskip
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tswindowtics}
+% \begin{macrocode}
+\def\ka@db@tswindowtics{%
+ \ifka@db@windowtics
+ \ka@db@tmpdimb=\ufldmarkvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{%
+ \rule{0pt}{\ka@db@tmpdimb}%
+ \hbox to 0pt{\hspace*{\ka@db@foldmarkhoffs}%
+ \vbox{\hrule width \ka@db@foldmarklen}\hss}%
+ \vss}\nointerlineskip
+ \ka@db@tmpdimb=\perfmarkvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{%
+ \rule{0pt}{\ka@db@tmpdimb}%
+ \hbox to 0pt{\hspace*{\ka@db@perfmarkhoffs}%
+ \vbox{\hrule width \ka@db@perfmarklen}\hss}%
+ \vss}\nointerlineskip
+ \ka@db@tmpdimb=\lfldmarkvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{%
+ \rule{0pt}{\ka@db@tmpdimb}%
+ \hbox to 0pt{\hspace*{\ka@db@foldmarkhoffs}%
+ \vbox{\hrule width \ka@db@foldmarklen}\hss}%
+ \vss}\nointerlineskip
+ \else
+ \ka@db@tmpdimb=\ufldmarkvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{\rule{0pt}{\ka@db@tmpdimb}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \ka@db@tmpdimb=\perfmarkvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{\rule{0pt}{\ka@db@tmpdimb}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \ka@db@tmpdimb=\lfldmarkvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{\rule{0pt}{\ka@db@tmpdimb}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.70.1}{2000/01/10}{(KB) Definition of \cmd\dbottomtext\ moved to
+% the place where other lengths are defined and
+% renamed to \cmd\bottomtextvpos}
+%
+% \begin{macro}{\ka@db@tsbottomtext}
+% \changes{0.0.0}{1994/02/08}{(KB) Changed to check the height of
+% the footer (\cmd\@@bottomtext\ now dimen,
+% no longer command)}
+% \changes{1.70.1}{2000/01/14}{(KB) \cmd\@@bottomtext\ removed and using
+% \cmd\ka@db@bottomtext\ instead (macro)
+% holding the argument of \cmd\bottomtext
+% or \cmd\relax}
+% \begin{macrocode}
+\def\ka@db@tsbottomtext{%
+% \ifdim\ht\@@bottomtext>0pt
+ \ifx\empty\ka@db@bottomtext
+ \relax
+ \else
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KB) \cmd\@@bottomtext\ should be set
+% within a \env{\vbox to 0pt}{\cmd\vss ...}}
+% \changes{1.22.0}{1995/01/16}{(RG) rule position changed}
+% \changes{1.43.0}{1995/05/23}{(RG) rule position is now defined in a dimen
+% register}
+% \begin{macrocode}
+ \ka@db@tmpdimb=\bottomtextvpos
+ \advance\ka@db@tmpdimb by -\ka@db@vfuzz
+ \vbox to 0pt{%
+ \rule{0pt}{\ka@db@tmpdimb}%
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KB) \cmd\hbox\{ ... \} moved to box \cmd\@@bottomtext}
+% \changes{0.0.0}{1994/11/17}{(RG) \cmd\unhbox\ changed to \cmd\unhcopy,
+% because we can have more than one letter
+% in one document. So the bottomline is
+% inserted into every first page of letters.}
+% \changes{1.70.1}{2000/01/14}{(KB) Inserting the contents of the macro
+% \cmd\ka@db@bottomtext\ into a box of height
+% and width 0pt}
+% \begin{macrocode}
+% \unhcopy\@@bottomtext
+ \hbox to 0pt{\hskip0pt minus 4truemm%
+ \vbox to 0pt {\raggedright \ka@db@bottomtext
+ \vss}%
+ \hss}
+ \vss
+ }\nointerlineskip%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@bafntsel}
+% The macro |\ka@db@bafntsel| selects the font size and other
+% parameters for the backaddress in the window.
+% \begin{macrocode}
+\def\ka@db@bafntsel{%
+ \ka@db@fontsize{8}{9pt}%
+ \ka@db@selectfont
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tstoaddress}
+% \begin{macrocode}
+\def\ka@db@tstoaddress{%
+% \ka@db@tmpdima=\addrhpos
+% \advance\ka@db@tmpdima by -\ka@db@txtlmarg
+ \vbox to 0pt{\vss%
+ \ifka@db@windowrules
+% \hbox to 0pt{\hspace*{\ka@db@tmpdima}\vbox{\hrule width \addrwd}\hss}%
+ \hbox to 0pt{\vbox{\hrule width \addrwd}\hss}%
+ \else
+ \hbox to 0pt{\hss}%
+ \fi
+ \vss
+ }%
+ \nointerlineskip
+% \end{macrocode}
+% \changes{1.70.1}{2000/01/09}{(KB) Inserted code to conditionally underline
+% the backaddress}
+% \begin{macrocode}
+ \ka@db@tmpdimb=\backaddrht
+ \advance\ka@db@tmpdimb by \ka@db@stdskip
+ \ifx\@empty\@backaddress
+ \vbox to \ka@db@tmpdimb{%
+ \vfill
+ }%
+ \nointerlineskip
+ \else
+ \vbox to \ka@db@tmpdimb{%
+ \vskip \ka@db@stdskip
+ \vss
+% \hbox to 0pt{\hspace*{\ka@db@tmpdima}%
+ \hbox to 0pt{%
+ \vbox{%
+ \hbox to \addrwd{\hfil
+ {\ka@db@bafntsel\@backaddress}\hfil}%
+ \ifka@db@baddrrule
+ \hrule width \addrwd%
+ \else
+ \hrule width 0pt%
+ \fi%
+ }\hss%
+ }%
+ }%
+ \nointerlineskip
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+ \moveright\addroffset%
+ \vbox to \addrht{%
+ \vss
+ \hbox to 0pt{\hskip0pt minus 4truemm%
+ \setbox\@tempboxa=\vbox{%
+ \if@letterform
+ \relax
+ \else
+ % \typeout{Start dumping \string\@addresslist}%
+ \leavevmode
+ \ka@db@ifemptyvarlocal{postremark}{}{%
+ \ka@db@usevarlocal{postremark}\\[\medskipamount]
+ }%
+ \raggedright \@addresslist
+ % \typeout{End dumping \string\@addresslist}%
+ \fi
+ }%
+ \ifdim\ht\@tempboxa>\the\addrht
+ %\@warning{Receivers address is larger than letter window}%
+ \ClassWarning{dinbrief}{%
+ Receivers address is larger than letter window}%
+ \else
+ \setbox\@tempboxa=\vbox{%
+ \hbox{%
+ \ifdim\ka@db@indadr>0pt
+ \else
+ \hbox to 0pt{\hskip4in\ka@db@usevarlocal{handling}\hss}%
+ \fi
+ \box\@tempboxa
+ }%
+ \if@toadrcenter\relax
+ \else\vskip \the\ka@db@stdskip minus \the\ka@db@stdskip
+ \fi
+ }%
+ \fi
+ \box\@tempboxa
+ \hss
+ }%
+ \if@toadrcenter
+ \vss
+ \fi
+ }\nointerlineskip
+ \vskip \ka@db@stdskip
+% \end{macrocode}
+% \begin{macrocode}
+ \vbox to 0pt{\vss%
+ \ifka@db@windowrules
+% \hbox to 0pt{\hspace*{\ka@db@tmpdima}\vbox{\hrule width \addrwd}\hss}%
+ \hbox to 0pt{\vbox{\hrule width \addrwd}\hss}%
+ \else
+ \hbox to 0pt{\hss}%
+ \fi
+ \vss
+ }\nointerlineskip
+%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tsrefline}
+% \begin{macrocode}
+\def\ka@db@tsrefline{%
+ \if@norefline\else
+% \vbox{\vskip 6truemm
+ \vbox{%
+ \if@refline
+ \@answerto
+ \else
+ \if@letterform\relax\else
+ \ifx\@empty\@place
+ \raggedleft \@date
+ \else
+ \raggedleft \@place,\space\@date
+ \fi
+ \fi
+ \fi
+ }%
+% }%
+ \nointerlineskip
+ \par
+ \bigskip
+ \fi %\if@norefline
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tsconcern}
+% \begin{macrocode}
+\def\ka@db@tsconcern{%
+ \ifx\@empty\@concern \else
+ \if@letterform\relax\else
+ \@concern \par
+ \bigskip
+ \fi
+ \fi
+ \vspace{0pt plus 10truemm}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tsopening}
+% \begin{macrocode}
+\def\ka@db@tsopening#1{%
+ \if@letterform\relax\else
+ #1\par
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The following macros just link type above one to the calls.
+% This makes it more easy to modify parts in one letter or to
+% modify the layout.
+%
+% \begin{macro}{\ka@db@placefromaddress}
+% \begin{macro}{\ka@db@placewindowtics}
+% \begin{macro}{\ka@db@placebottomtext}
+% \begin{macro}{\ka@db@placetoaddress}
+% \begin{macro}{\ka@db@placerefline}
+% \begin{macro}{\ka@db@placeconcern}
+% \begin{macro}{\ka@db@placeopening}
+% \begin{macrocode}
+\def\ka@db@placefromaddress{%
+ \vbox to 0pt{\ka@db@tsfromaddress\vss}\nointerlineskip
+}%
+\def\ka@db@placewindowtics{%
+ \vbox to 0pt{\ka@db@tswindowtics\vss}\nointerlineskip
+}%
+\def\ka@db@placebottomtext{%
+ \vbox to 0pt{\ka@db@tsbottomtext\vss}\nointerlineskip
+}%
+\def\ka@db@placetoaddress{%
+ \ka@db@tmpdima=\addrvpos
+ \advance\ka@db@tmpdima by -\ka@db@vfuzz
+ \advance\ka@db@tmpdima by -\addrht
+ \advance\ka@db@tmpdima by -\backaddrht
+ \advance\ka@db@tmpdima by -\ka@db@stdskip
+ \vskip \ka@db@tmpdima
+ \ka@db@tmpdima=\addrht
+ \advance\ka@db@tmpdima by \backaddrht
+ \advance\ka@db@tmpdima by 2\ka@db@stdskip
+ \ka@db@tmpdimb=\addrhpos
+ \advance\ka@db@tmpdimb by -\ka@db@txtlmarg
+ \moveright\ka@db@tmpdimb\vbox to \ka@db@tmpdima{\ka@db@tstoaddress\vss}%
+ \nointerlineskip
+ \ka@db@tmpdima=\reflinevpos
+ \advance\ka@db@tmpdima by -\addrvpos
+ \advance\ka@db@tmpdima by -\ka@db@stdskip
+ \vskip \ka@db@tmpdima
+}%
+\def\ka@db@placerefline{%
+ \vbox{\ka@db@tsrefline}\nointerlineskip
+}%
+\def\ka@db@placeconcern{
+ \vbox{\ka@db@tsconcern}\nointerlineskip
+}%
+\def\ka@db@placeopening#1{%
+ \ka@db@tsopening{#1}%
+ \nobreak
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\opening}
+% This macro draws the letter from the top until the subject (concern).
+% And if available also the bottomtext.
+%
+% First we switch to a special pagestyle.
+% \begin{macrocode}
+\def\opening#1{%
+% \end{macrocode}
+% \changes{1.22.0}{1995/01/19}{(RG) State counter added to \cmd\opening.}
+% \changes{1.72.0}{2000/03/02}{(KB) Check \cmd\footskip\ set to 0pt as done by
+% the pagestyles empty, headings and myheadings
+% and calculate position of bottomtext as if
+% \cmd\footskip\ would be 8.8mm.}
+%
+% \begin{macrocode}
+ \setcounter{lt@state}{2}
+ \thispagestyle{first@page}
+% \end{macrocode}
+% Actually enlarge the first page by the negative height of the footer:
+% \begin{macrocode}
+ \ifka@db@ltxtwoe
+ \ifx\empty\ka@db@bottomtext
+ \relax
+ \else
+ \ka@db@tmpdima=\textheight
+ \advance\ka@db@tmpdima by \topmargin
+ \advance\ka@db@tmpdima by \ka@db@vfuzz
+ \ifdim\footskip>0pt
+ \advance\ka@db@tmpdima by \footskip
+ \else
+ \advance\ka@db@tmpdima by 8.8truemm
+ \fi
+ \advance\ka@db@tmpdima by -\bottomtextvpos
+ \ifdim\ka@db@tmpdima>0pt
+ \enlargethispage{-\ka@db@tmpdima}
+ \fi
+ \fi
+ \fi
+% \end{macrocode}
+% Then we start printing the parts of the letter.
+% The following macros expect special positions on the paper to
+% print their contents on the correct position. |\ka@db@placefromaddress|,
+% |\ka@db@placewindowtics| and \hfil\break |\ka@db@placebottomtext|
+% start from the left top corner of the paper. (Maybe not correct:
+% top: 1in + |\headheight| + |\headsep| + |\topskip|(?) left: ???)
+% |\ka@db@placetoaddres| starts at the position, mentioned in the
+% DIN 676. It has to typeset to box containing the address of the
+% receiver plus the necessary space (normaly two lines).
+% The other three macros |\ka@db@placerefline|, |\ka@db@placeconcern|
+% and |\ka@db@placeopening| typeset their contents and the
+% necessary space. All these macros should typeset boxes.
+% There should be no |\interlineskip| between each of those boxes.
+%
+% \begin{macrocode}
+ \ka@db@placefromaddress
+ \ka@db@placewindowtics
+ \ka@db@placebottomtext
+ \ka@db@placetoaddress
+ \ka@db@placerefline
+ \ka@db@placeconcern
+ \ka@db@placeopening{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\oldopening}
+% \changes{1.72.0}{2000/02/29}{(KB) Box \cmd\@@bottomtext\ no longer used by
+% \cmd\opening\ (and thus dropped) defined here
+% to make \cmd\oldopening\ work as before}
+% \begin{macrocode}
+\def\oldopening#1{\thispagestyle{first@page}
+% \end{macrocode}
+% Actually enlarge the first page by the negative height of the footer:
+% \begin{macrocode}
+ \ifka@db@ltxtwoe
+ \expandafter\ifx\csname @@bottomtext\endcsname\relax
+ \newbox\@@bottomtext
+ \fi
+ \ifx\empty\ka@db@bottomtext
+ \setbox\@@bottomtext=\vbox to 0pt{}
+ \else
+ \setbox\@@bottomtext=\hbox to 0pt{\hskip0pt minus 4truemm%
+ \vbox{\raggedright \ka@db@bottomtext}%
+ \hss}
+ \fi
+ \enlargethispage{-\ht\@@bottomtext}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+ \ifx\@empty\@fromaddress
+ \vbox to 0pt{\vss}\nointerlineskip
+ \else
+ \vbox to 0pt{\vskip -19.4truemm\raggedright\@fromaddress\vss}%
+ \fi
+ \vskip 13.1truemm
+%
+ \ifx\@empty\@@windowtics
+ \vbox to 0pt{\rule{0pt}{62.5truemm}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{\rule{0pt}{106.0truemm}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{\rule{0pt}{167.5truemm}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \else
+ \vbox to 0pt{%
+ \rule{0pt}{62.5truemm}%
+ \hbox to 0pt{\hspace*{-24truemm}\vbox{\hrule width 7truemm}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{%
+ \rule{0pt}{106.0truemm}%
+ \hbox to 0pt{\hspace*{-18truemm}\vbox{\hrule width 6truemm}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{%
+ \rule{0pt}{167.5truemm}%
+ \hbox to 0pt{\hspace*{-24truemm}\vbox{\hrule width 7truemm}\hss}%
+ \vss}\nointerlineskip
+ \fi
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KB) Changed to check the height of
+% the footer (\cmd\@@bottomtext\ now dimen,
+% no longer command)}
+% \begin{macrocode}
+ \ifdim\ht\@@bottomtext>0pt
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KB) \cmd\@@bottomtext\ should be set
+% within a \env{\vbox to 0pt}{\cmd\vss ...}}
+% \begin{macrocode}
+ \vbox to 0pt{%
+ \rule{0pt}{243.5truemm}%
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KB) \cmd\hbox{ ... } moved to box \cmd\@@bottomtext}
+% \changes{0.0.0}{1994/11/17}{(RG) \cmd\unhbox\ changed to \cmd\unhcopy,
+% because we can have more than one letter
+% in one document. So the bottomline is
+% inserted into every first page of letters.}
+% \begin{macrocode}
+ \unhcopy\@@bottomtext
+ \vss}\nointerlineskip%
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+ \vbox to 0pt{\vss%
+ \ifx\@empty\@@windowrules
+ \hbox to 0pt{\hss}%
+ \else
+ \hbox to 0pt{\hspace*{-4truemm}\vbox{\hrule width 85truemm}\hss}%
+ \fi
+ \vss}\nointerlineskip
+%
+ \ifx\@empty\@backaddress
+ \vbox to 7.5truemm{
+ \vfill
+ }\nointerlineskip
+ \else
+ \vbox to 7.5truemm{
+ \vskip 2.5truemm
+ \vss
+ \hbox to 0pt{\hspace*{-4truemm}\vbox{%
+ \hbox to 85truemm{\hfill
+ {\ka@db@fontsize{8}{9pt}
+ \ka@db@selectfont \@backaddress}\hfill}%
+ \hrule width 85truemm}\hss}%
+ \vss}\nointerlineskip
+ \fi
+%
+ \vbox to 40truemm{%
+ \vss
+ \hbox to 0pt{\hskip0pt minus 4truemm%
+ \vbox{%
+ \if@letterform
+ \relax
+ \else
+ % \typeout{Start dumping \string\@addresslist}%
+ \raggedright \@addresslist %\toname \\ \toaddress%
+ % \typeout{End dumping \string\@addresslist}%
+ \if@toadrcenter\relax
+ \else\vskip 2.5truemm minus 2.5truemm
+ \fi
+ \fi
+ }%
+ \hss}
+ \if@toadrcenter
+ \vss
+ \fi
+ }\nointerlineskip
+ \vskip 2.5truemm
+%
+ \vbox to 0pt{\vss%
+ \ifx\@empty\@@windowrules
+ \hbox to 0pt{\hss}%
+ \else
+ \hbox to 0pt{\hspace*{-4truemm}\vbox{\hrule width 85truemm}\hss}%
+ \fi
+ \vss}\nointerlineskip
+%
+ \if@norefline\else
+ \vbox{\vskip 6truemm
+ \vbox{%
+ \if@refline
+ \@answerto
+ \else
+ \if@letterform\relax\else
+ \ifx\@empty\@place
+ \raggedleft \@date
+ \else
+ \raggedleft \@place,\space\@date
+ \fi
+ \fi
+ \fi
+ }%
+ }%
+ \nointerlineskip
+ \par
+ \bigskip
+ \fi %\if@norefline
+ \ifx\@empty\@concern \else
+ \if@letterform\relax\else
+ \@concern \par
+ \bigskip
+ \fi
+ \fi
+ \ifx\@empty\@footer \else
+ \fi
+ \vspace{0pt plus 10truemm}
+ \if@letterform\relax\else
+ #1\par
+ \fi
+ \nobreak}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\closing}
+% \changes{1.64.0}{1996/08/06}{(RG) closing has now an optional argument}
+% \changes{1.65.0}{1995/10/29}{(RG) removed argument hash mark \# (bug)}
+% \begin{macro}{\ka@db@closinghook}
+% \begin{macrocode}
+\long\def\closing{%
+ \@ifnextchar[%]
+ {\ka@db@closing}{\ka@db@closing[]}%
+}
+\long\def\ka@db@closing[#1]#2{%
+% \end{macrocode}
+% \changes{1.22.0}{1995/01/19}{(RG) State counter added to \cmd\closing.}
+% \changes{1.70.1}{2000/01/10}{(KB) Changed placing of the graphical signature
+% according to the proposal for a graphical
+% signature by Martin Haefele, Max Planck
+% Institute for Dynamics of Complex Technical
+% Systems at Magdeburg}
+% \begin{macrocode}
+ \setcounter{lt@state}{3}
+ \setbox\@tempboxa=\hbox{#1}
+ \ka@db@tmpdimb=\ht\@tempboxa
+ \advance\ka@db@tmpdimb by \dp\@tempboxa
+ \par\nobreak
+ \vspace{\parskip}
+ \stopbreaks
+ {%
+ \leavevmode
+ \ifka@db@enclright
+ \bgroup
+% \@tempdima=\textwidth
+ \ka@db@tmpdima=4in
+% \advance\@tempdima by -\ka@db@tmpdima
+% \hbox to 0pt{%
+% \hskip\@tempdimb\relax
+% \parbox[t]{\@tempdima}{%\parskip .7em
+% \ka@db@tsenclcc}%
+% \hss
+% }%
+ \parbox[t]{\ka@db@tmpdima}{%\parskip .7em%
+ \raggedright
+ \ifdim\ka@db@tmpdimb>0pt
+ \ignorespaces #2\\[1\baselineskip]
+ \else
+ \ignorespaces #2\\[3\baselineskip]
+ \fi
+ \leavevmode
+% \vbox to 0pt{%
+% \vskip -4\baselineskip\relax
+% \hbox to 0pt{\strut#1\hss}%
+% \vss}%
+% \ifx\@empty\@fromsig
+% \else \@fromsig
+% \fi\strut
+ \ifdim\ka@db@tmpdimb>0pt
+ \rule{0pt}{2\baselineskip}\box\@tempboxa \newline
+ \ka@db@ifemptyvar{signature}{}{%
+ \ka@db@usevar{signature}%
+ }%
+ \else
+ \ka@db@ifemptyvar{signature}{}{%
+ \ka@db@usevar{signature}%
+ }%
+ \fi
+ \strut
+ }%
+ \@tempdima=\textwidth
+ \advance\@tempdima by -\ka@db@tmpdima
+ \parbox[t]{\@tempdima}{%\parskip .7em%
+ \raggedright
+ \ka@db@tsenclcc
+ \unskip % <- removing unneccessary skip from
+ % \cmd\ka@db@tsenclcc
+ }%
+ \egroup
+ \else
+ \raggedright
+ \ifdim\ka@db@tmpdimb>0pt
+ \ignorespaces #2\\[1\baselineskip]
+ \else
+ \ignorespaces #2\\[3\baselineskip]
+ \fi
+ \leavevmode%
+% \vbox to 0pt{%
+% \vskip -4\baselineskip\relax
+% \hbox to 0pt{\strut#1\hss}%
+% \vss}%
+% \ifx\@empty\@fromsig
+% \else \@fromsig
+% \fi\strut
+ \ifdim\ka@db@tmpdimb>0pt
+ \rule{0pt}{2\baselineskip}\box\@tempboxa \\
+ \ka@db@ifemptyvar{signature}{}{%
+ \ka@db@usevar{signature}%
+ }%
+ \else
+ \ka@db@ifemptyvar{signature}{}{%
+ \ka@db@usevar{signature}%
+ }%
+ \fi
+ \strut
+ \fi
+ }%
+ \par\medskip
+ \ifka@db@enclright
+ \else
+ \raggedright
+ \ka@db@tsenclcc
+ \fi
+ \ka@db@closinghook
+}
+\def\ka@db@closinghook{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tsenclcc}
+% \begin{macrocode}
+\def\ka@db@tsenclcc{%
+ \ka@db@ifemptyvarlocal{encl}%
+ {}{\ka@db@usevarlocal{encl}\\[\baselineskip]}%
+ \ka@db@ifemptyvarlocal{cc}%
+ {}{\ka@db@usevarlocal{cc}\\[\baselineskip]}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Initialization}
+%
+% \subsubsection{Words}
+%
+% \begin{macro}{\ccname}
+% \begin{macro}{\enclname}
+% \begin{macro}{\psname}
+% This document style/class is prepared for documents in German.
+% To prepare a version for another language, various German words must
+% be replaced.
+%
+% All German words that require replacement are
+% defined below in command names. (Not all!)
+%
+% \begin{macrocode}
+\def\ccname{Verteiler}
+\def\enclname{Anlage(n)}
+\def\psname{PS}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\headtoname}
+% \begin{macro}{\pagename}
+% These two words are used in the pagestyles |headings| and |contheadings|.
+% \begin{macrocode}
+\def\headtoname{An}
+\def\pagename{Seite}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{More letter macros}
+%
+% \begin{macro}{\handling}
+% \begin{macrocode}
+\def\handling#1{%
+ \ka@db@assignvarlocal{handling}{#1}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{handling}{}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\postremark}
+% \begin{macrocode}
+\def\postremark#1{%
+ \ka@db@assignvarlocal{postremark}{#1}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{postremark}{}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.52.0}{1995/06/29}{(RG) generic command for all enclosures added.}
+% \begin{macro}{\ka@db@genencl}
+% The macro \cmd\ka@db@genencl can be called at every
+% position inside the {\tt letter}-environment. If it is called
+% between \cmd\closing\ and \env\end{letter}\ it directly typesets
+% its arguments. If it is called before \cmd\closing\ is
+% given it stores its arguments in the variable.
+% \cmd\closing\ will typeset all the stuff.
+%
+% \begin{macrocode}
+\def\ka@db@genencl#1[#2]#3{%
+ \ifnum\c@lt@state=3\relax
+ \par
+ \noindent{%
+ \bgroup
+ \def\tmpa{#2}%
+ \expandafter\egroup
+ \ifx\tmpa\@empty\else
+ #2\hfil\break
+ \fi
+ \ignorespaces #3\strut}%
+ \par
+ \else
+ \bgroup
+ \def\tmpa{#2}%
+ \expandafter\egroup
+ \ifx\tmpa\@empty
+ \ka@db@assignvarlocal{#1}{#3}%
+ \else
+ \ka@db@assignvarlocal{#1}{#2\hfil\break #3}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.22.0}{1995/01/19}{(RG) \cmd\cc\ and \cmd\encl\ extended.}
+% \begin{macro}{\cc}
+% \begin{macro}{\encl}
+% The macros \cmd\cc\ and \cmd\encl\ new use the generic enclosures
+% macro.
+%
+% \begin{macrocode}
+\def\cc{%
+ \@ifnextchar[%]
+ {\ka@db@genencl{cc}}{\ka@db@genencl{cc}[\ccname]}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{cc}{}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\encl{%
+ \@ifnextchar[%]
+ {\ka@db@genencl{encl}}{\ka@db@genencl{encl}[\enclname]}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{encl}{}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Changed \cmd\\\ to \cmd\newline}
+% \begin{macro}{\ps}
+% \begin{macrocode}
+\def\ps#1{\par\noindent{\psname \newline
+ \ignorespaces #1\strut}\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\stopletter}
+% |\stopletter| ist a hook to execute own commands at the end
+% of a given letter.
+% \begin{macrocode}
+\def\stopletter{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Styles for the labels}
+% \changes{0.0.0}{1993/02/06}{(RG) Labels got some styles.}
+%
+% \subsubsection{Labels with different sizes}
+%
+% \begin{macro}{\dlabelheight}
+% \begin{macro}{\dlabeltopmargin}
+% \begin{macro}{\dlabelwidth}
+% \begin{macro}{\clabelnumber}
+% The size of labels in the labelstyle plain can be modified.
+% Therefore we define some dimen-register (count-register) holding
+% the hight, the topmargin and the number of labels.
+% \begin{macrocode}
+\newdimen\dlabelheight
+\newdimen\dlabeltopmargin
+\newdimen\dlabelwidth
+\newcount\clabelnumber
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setlabelheight}
+% \begin{macro}{\setlabelwidth}
+% \begin{macro}{\setlabeltopmargin}
+% \begin{macro}{\setlabelnumber}
+% These four macros assigns values to the lengths and counter defined
+% above.
+% \begin{macrocode}
+\def\setlabelheight#1{\global\dlabelheight=#1\relax}
+\def\setlabelwidth#1{\global\dlabelwidth=#1\relax}
+\def\setlabeltopmargin#1{\global\dlabeltopmargin=#1\relax}
+\def\setlabelnumber#1{\global\clabelnumber=#1\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Etihoehe}
+% \begin{macro}{\Etirand}
+% \begin{macro}{\Etizahl}
+% These three macros assigns values to the counters defined
+% above.
+% \begin{macrocode}
+\def\Etihoehe#1{%
+ %\@warning{Use \string\setlabelheight\space instead %
+ % of \string\Etihoehe}%
+ \ClassWarning{dinbrief}{%
+ Use \string\setlabelheight\space instead of \string\Etihoehe}%
+ \setlabelheight{#1}%
+ }
+\def\Etirand#1{
+ %\@warning{Use \string\setlabeltopmargin\space instead %
+ % of \string\Etirand}%
+ \ClassWarning{dinbrief}{%
+ Use \string\setlabeltopmargin\space instead of \string\Etirand}%
+ \setlabeltopmargin{#1}%
+ }
+\def\Etizahl#1{
+ %\@warning{Use \string\setlabelnumber\space instead %
+ % of \string\Etizahl}%
+ \ClassWarning{dinbrief}{%
+ Use \string\setlabelnumber\space instead of \string\Etizahl}%
+ \setlabelnumber{#1}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Defining the standard dinbrief labels}
+% The following parameters are for the a4-label-papers
+% from Herma (copy-print, No.\ 4452).
+%
+% \begin{macrocode}
+\setlabelheight{41.15truemm}%
+\setlabeltopmargin{8.85truemm}%
+\setlabelwidth{80truemm}%
+\setlabelnumber{7}%
+% \end{macrocode}
+%
+% \subsection{Empty labels within labelstyle plain}
+%
+% \begin{macro}{\cspare}
+% \begin{macrocode}
+\newcount\cspare
+\cspare=0
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\spare}
+% \begin{macrocode}
+\def\spare#1{\cspare=#1\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{different labelstyles}
+% This version of the dinbrief supports different styles for labels.
+% This allows the generation of papers containing several labels or
+% printing directly on envelopes. The control sequence |\labelstyle|
+% allows to change the layout.
+%
+% For each layout two control sequences |\label@|STYLENAME and \hfil\break
+% |\lstyle@|STYLENAME have to be defined. |\label@|STYLENAME
+% is called from |\mlabel| for each label and has to typeset
+% this label. |\lstyle@|STYLENAME is called from |\startlabels|
+% and has to do the general setup (for example changing the
+% page layout).
+%
+% It is very difficult to say which counters and lengths have
+% to redefined in this macros.
+%
+% \begin{macro}{\labelstyle}
+% |\labelstyle| is a command to define the layout of the labels.
+% Normally, labels are printed on special paper, but some printers
+% are able to print on envelopes. Therefore we define some styles
+% for printing labels on envelops:
+%
+% \medskip
+% \begin{tabular}{clcl}
+% \hline
+% \multicolumn{2}{c}{Briefh\"ullenformat} &
+% \multicolumn{2}{c}{Gebr\"auchliches}\\
+% \multicolumn{2}{c}{} &
+% \multicolumn{2}{c}{Einlagenformat}\\
+% \multicolumn{1}{c}{Kurz-} &
+% \multicolumn{1}{c}{Au\ss enma\ss e} &
+% \multicolumn{1}{c}{Kurz-} &
+% \multicolumn{1}{c}{Ma\ss e}\\
+% \multicolumn{1}{c}{zeichen}&
+% \multicolumn{1}{c}{mm $\pm$ 1{,}5}&
+% \multicolumn{1}{c}{zeichen}&
+% \multicolumn{1}{c}{mm}\\
+% \hline
+% C6 & 114 $\times$ 162 & A6 & 105 $\times$ 148 \\
+% DL & 110 $\times$ 220 & --- & 105 $\times$ 210 \\
+% C6/C5 & 114 $\times$ 229 & --- & 105 $\times$ 210 \\
+% \hline
+% \end{tabular}
+%
+% \medskip
+% Das Einlagenformat 105 mm $\times$ 210 mm ergibt sich
+% durch Faltung nach DIN~676.
+%
+% \begin{macro}{\@labelstyle}
+% Labelstyle holds the current value.
+% \begin{macrocode}
+\def\labelstyle#1{\def\@labelstyle{#1}}
+\labelstyle{plain}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@kadb@tracelabels}
+% \begin{macrocode}
+\newif\if@kadb@tracelabels
+\@kadb@tracelabelsfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\label@plain}
+% \begin{macrocode}
+\long\def\label@plain#1#2{\setbox0\vbox{\hsize=\dlabelwidth
+ \strut\ignorespaces #2}%{}%
+ \vbox to\dlabelheight{%
+ \if@kadb@tracelabels
+ \hrule
+ \fi
+ \vss
+ \hbox to \dlabelwidth{%
+ \hss
+ \if@kadb@tracelabels
+ \vrule
+ \fi
+ \vbox to\dlabelheight{\vss \box0 \vss}%
+ \if@kadb@tracelabels
+ \vrule
+ \fi
+ \hss
+ }%
+ \vss
+ \if@kadb@tracelabels
+ \hrule
+ \fi
+ }%
+ \advance\labelcount by 1\nointerlineskip
+ \ifnum\labelcount<\clabelnumber
+ \else
+ \vfill\newpage
+ \labelcount=0
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\label@C6}
+% \begin{macro}{\label@DL}
+% \begin{macro}{\label@C6/C5}
+% \begin{macro}{\label@deskjet}
+% \begin{macrocode}
+\long\def\label@deskjet#1#2{\setbox0\vbox{\parbox[b]{3.6in}{
+ \vbox to 0pt{\vss%
+ \ifx\@empty\@@windowrules
+ \hbox to 0pt{\hss}%
+ \else
+ \hbox to 0pt{\hspace*{-4truemm}%
+ \vbox{\hrule width 85truemm}\hss}%
+% \hbox to 0pt{\hspace*{\ka@db@addrhoffs}%
+% \vbox{\hrule width \addrwd}\hss}%
+ \fi
+ \vss}\nointerlineskip
+%
+ \vbox to 7.5truemm{
+% \ka@db@tmpdimb=\backaddrht
+% \advance\ka@db@tmpdimb by \ka@db@stdskip
+% \vbox to \ka@db@tmpdimb{%
+ \vskip 2.5truemm
+% \vskip \ka@db@stdskip
+ \vss
+ \hbox to 0pt{\hspace*{-4truemm}\vbox{%
+ \hbox to 85truemm{\hfill{\ka@db@fontsize{8}{9pt}
+ \ka@db@selectfont #1}\hfill}
+ \hrule width 85truemm}\hss}%
+% \hbox to 0pt{\hspace*{\ka@db@addrhoffs}\vbox{%
+% \hbox to \addrwd{\hfil{\ka@db@fontsize{8}{9pt}
+% \ka@db@selectfont #1}\hfil}
+% \hrule width \addrwd}\hss}%
+ \vss}\nointerlineskip
+%
+ \vbox to 40truemm{%
+% \vbox to \addrht{%
+ \vss
+ \hbox to 0pt{\hskip0pt minus 4truemm%
+ \vbox{\raggedright #2%
+ \if@toadrcenter
+ \relax\else\vskip 2.5truemm minus 2.5truemm
+% \relax\else\vskip \the\ka@db@stdskip minus \the\ka@db@stdskip
+ \fi}%
+ \hss}
+ \if@toadrcenter
+ \vss
+ \fi
+ }\nointerlineskip
+ \vskip 2.5truemm
+% \vskip \ka@db@stdskip
+%
+ \vbox to 0pt{\vss%
+ \ifx\@empty\@@windowrules
+ \hbox to 0pt{\hss}%
+ \else
+ \hbox to 0pt{\hspace*{-4truemm}%
+ \vbox{\hrule width 85truemm}\hss}%
+% \hbox to 0pt{\hspace*{\ka@db@addrhoffs}%
+% \vbox{\hrule width \addrwd}\hss}%
+ \fi
+ \vss}\nointerlineskip
+ }}%
+ \vbox to 0pt{\vss}%
+ \vskip 18.0truemm
+% \vskip ???
+ \vbox to 50.8truemm{\vss \box0 \vss}%
+% \vbox to \ka@db@???{\vss \box0 \vss}%
+ \ifnum\labelcount=4 \labelcount=0
+ \else \advance\labelcount by 1\nointerlineskip
+ \fi
+ \vfill
+ \newpage
+}
+\expandafter\let\csname label@C6\endcsname =\label@deskjet
+\expandafter\let\csname label@DL\endcsname =\label@deskjet
+\expandafter\let\csname label@C6/C5\endcsname =\label@deskjet
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\mlabel}
+% |\mlabel| typesets a single label.
+% \begin{macrocode}
+\long\def\mlabel#1#2{\@nameuse{label@\@labelstyle}{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\lstyle@plain}
+% \begin{macrocode}
+\def\lstyle@plain{
+ \topmargin=-25.4truemm%
+ \advance\topmargin\dlabeltopmargin
+ \headsep\z@
+ \headheight\z@
+ \topskip\z@
+ \oddsidemargin=-12.9truemm
+ \evensidemargin=-12.9truemm
+ \textheight=\clabelnumber\dlabelheight
+ \advance\textheight by .0001truemm
+ \@colht=\textheight \@colroom=\textheight \vsize=\textheight
+ \columnsep=25mm
+ \textwidth=2\dlabelwidth
+ \advance\textwidth by\columnsep
+ \ka@db@fontsize{12}{14.4pt}\ka@db@selectfont
+ \boxmaxdepth\z@
+ \parindent\z@
+ \parskip\z@skip
+ \twocolumn\relax
+ \ifnum\cspare>\z@
+ \ifnum\cspare<\clabelnumber\else
+ \mbox{}%
+ \newpage
+ \advance\cspare -\clabelnumber
+ \fi
+ \advance\labelcount by\cspare
+ \nointerlineskip
+ \vbox to \cspare\dlabelheight{\vfill}%
+% \vbox{\rule{4pt}{\cspare\dlabelheight}}%
+ \nointerlineskip
+ \nobreak
+ \else
+ \nointerlineskip
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\lstyle@deskjet}
+% \begin{macrocode}
+\def\lstyle@deskjet{
+ \textheight=25.4truecm
+ \advance\textheight by .0001truemm
+% \@colht=\textheight \@colroom=\textheight \vsize=\textheight
+ \textwidth=193.3truemm
+ \columnsep=25pt
+% \ka@db@fontsize{12}{14.4pt}\ka@db@selectfont
+% \boxmaxdepth=0pt
+% \twocolumn
+ \relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\startlabels}
+% \begin{macrocode}
+\def\startlabels{%
+ \nointerlineskip
+ \labelcount=0
+ \pagestyle{empty}
+ \let\@texttop=\relax
+% \topmargin=-17.6truemm
+% \headsep=0pt
+% \oddsidemargin=-12.3truemm
+% \evensidemargin=-12.3truemm
+% \textheight=25.4truecm
+% \advance\textheight by .0001truemm
+% \@colht=\textheight \@colroom=\textheight \vsize=\textheight
+% \textwidth=193.3truemm
+% \columnsep=25pt
+% \ka@db@fontsize{12}{14.4pt}\ka@db@selectfont
+% \boxmaxdepth=0pt
+% \twocolumn\relax
+ \@nameuse{lstyle@\@labelstyle}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Processing of a single letter}
+%
+% \begin{macro}{lt@state}
+% The counter |c@lt@state| holds values from 0 to 3. These
+% values indicate different states inside the letter.
+%
+% \smallskip
+% \begin{tabular}{cl}
+% 0 & We are outside the letter environment.\\
+% 1 & We are between \verb.\begin{letter}. and \verb.\opening.\\
+% 2 & We are between \verb.\opening. and \verb.\closing.\\
+% 3 & We are between \verb.\closing. and \verb.\end{letter}.\\
+% \end{tabular}
+% \smallskip
+%
+% This counter should replace the old boolean flag |\ifka@db@inletter|.
+% We further use the different states to change the behavior of some
+% API macros. This is necessary because the {\tt old dinbrief\/}
+% requests to have \cmd\Anlagen\ and \cmd\Verteiler\ beeing in front of
+% \cmd\closing. And our implementation wants to have \cmd\encl\
+% and \cmd\cc\ after the \cmd\closing{}-command.
+%
+% \begin{macrocode}
+\newcounter{lt@state}%
+\setcounter{lt@state}{0}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{letter}
+% The counter |letter| counts the number of letters.
+% \begin{macrocode}
+\newcounter{letter}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\letter}
+% \begin{macrocode}
+\long\def\letter#1{%
+% \end{macrocode}
+% \changes{1.22.0}{1995/01/19}{(RG) State counter added to \cmd\letter.
+% Check for nested letter envs changed.}
+% \changes{1.25.0}{1995/01/21}{(RG) \cmd\ka@db@atletter-hook added and
+% use of \cs{if@ka@dbinletter} deleted.}
+% \changes{1.49.0}{1995/06/29}{(RG) \cmd\vspace\ is set to \cmd\relax\
+% while splitting the receivers address.
+% This allows using \cmd\vspace, \cmd\medskip
+% and so on.}
+% \begin{macrocode}
+ \ifnum\c@lt@state>0
+ \ka@db@error{%
+ Command \string\begin{letter} inside the
+ \string\begin{letter}-environment found.
+ }
+ \fi
+ \setcounter{lt@state}{1}%
+ % \typeout{\string\ka@db@atletter\space\ka@db@atletter}%
+ \ka@db@atletter
+ \clearpage
+ \thispagestyle{empty}
+ \cleardoublepage
+ \refstepcounter{letter}%
+ \c@page\@ne
+ \global\ka@db@lastpagefalse
+ \interlinepenalty=200
+ % \@processto{#1}%
+ % \message{Starting \string\@splitaddress}%
+ \bgroup
+ \def\protect{\noexpand\protect\noexpand}%
+ \let\\=\relax
+ \let\vspace=\relax
+ \@splitaddress{#1}
+ \egroup
+ % \message{Ending \string\@splitaddress}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\endletter}
+% \begin{macrocode}
+\def\endletter{%
+% \end{macrocode}
+% \changes{1.22.0}{1995/01/19}{(RG) State counter added to \cmd\endletter}
+% \begin{macrocode}
+ \setcounter{lt@state}{0}%
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/09}{(KB) Switch for last page added}
+% \begin{macrocode}
+ \ka@db@lastpagetrue
+% \end{macrocode}
+% \cmd\stopletter\ is a hook to insert commands in the \cmd\endletter.
+% \begin{macrocode}
+ \stopletter
+ \@@par
+ \pagebreak
+ \@@par
+ \gdef\@yourmail{}
+ \gdef\@mymail{}
+ \global\@reflinefalse
+ \if@filesw
+ \ifnum\c@labelgen>1
+ \begingroup
+ \def\protect{\string}
+ \let\\=\relax
+ \def\protect##1{\string##1\space}
+ \let\vspace=\relax
+ \let\rule=\relax
+ %\immediate\write\@auxout{\string\mlabel{\@backaddress}{\toname
+ %\\\toaddress}}
+ %\immediate\write\@auxout{%
+ % \string\mlabel{\@backaddress}{\@addresslist}}%
+ %\immediate\write\@auxout{\string\mlabel{\@backaddress}{%
+ % \ka@db@ifemptyvarlocal{postremark}{}{%
+ % \ka@db@usevarlocal{postremark}\\[\string\medskipamount]%
+ % }%
+ % \@addresslist
+ %}}%
+ \ka@db@ifemptyvarlocal{postremark}{% then
+ \immediate\write\@mainlbl{\string\mlabel{\@backaddress}{%
+ \@addresslist}}%
+ }{% else
+ \immediate\write\@mainlbl{\string\mlabel{\@backaddress}{%
+ \pka@db@usevarlocal{postremark}\\[\string\medskipamount]%
+ \@addresslist}}%
+ }% endif
+ \endgroup
+ \fi
+ %\ifnum\c@labelgen=1
+ % \onlabels
+ %\fi
+ \fi
+ \ka@db@atendletter
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@processto}
+% \begin{macrocode}
+\long\def\@processto#1{%
+ \@xproc #1\\@@@%
+ \ifx\toaddress\@empty
+ \else
+ \@yproc #1@@@%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@xproc}
+% \begin{macrocode}
+\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@yproc}
+% \begin{macrocode}
+\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\stopbreaks}
+% \begin{macrocode}
+\def\stopbreaks{\interlinepenalty \@M
+ \def\par{\@@par\nobreak}\let\\=\@nobreakcr
+ \let\vspace\@nobreakvspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nobreakvspace}
+% \begin{macrocode}
+\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nobreakvspacex}
+% \begin{macrocode}
+\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nobreakcr}
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \def\@nobreakcr{\@ifstar{\@normalcr*}{\@normalcr*}}
+\else
+ \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\startbreaks}
+% \begin{macrocode}
+\def\startbreaks{\let\\=\@normalcr
+ \interlinepenalty 200\def\par{\@@par\penalty 200}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\labelcount}
+% \begin{macrocode}
+\newcount\labelcount
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@refline}
+% \begin{macro}{\if@norefline}
+% |\if@refline| is true if a referline according to the rules of
+% DIN 676 and Draft DIN 676 is typeset. If the user wishes no referline
+% at all, to print for example place and date on the top of the letter,
+% you can set |\if@norefline| to true.
+% \begin{macrocode}
+\newif\if@refline
+\@reflinefalse
+\newif\if@norefline
+\@noreflinefalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@toadrcenter}
+% \begin{macrocode}
+\newif\if@toadrcenter
+\@toadrcenterfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@letterform}
+% \begin{macro}{\letterform}
+% \begin{macro}{\noletterform}
+% \begin{macrocode}
+\newif\if@letterform
+\@letterformfalse
+\def\letterform{\@letterformtrue}
+\def\noletterform{\@letterformfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\centeraddress}
+% \begin{macrocode}
+\def\centeraddress{\@toadrcentertrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\normaladdress}
+% \begin{macrocode}
+\def\normaladdress{\@toadrcenterfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\signature}
+% \begin{macrocode}
+\def\signature#1{%
+ \ka@db@assignvar{signature}{#1}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{signature}{}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@fromsig}
+% \begin{macrocode}
+% \def\@fromsig{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\address}
+% \begin{macrocode}
+\long\def\address#1{\def\@fromaddress{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@fromaddress}
+% \begin{macrocode}
+\def\@fromaddress{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footer}
+% \begin{macrocode}
+\long\def\footer#1{\def\@footer{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@footer}
+% \begin{macrocode}
+\def\@footer{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\returnaddress}
+% \begin{macrocode}
+\def\returnaddress{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\place}
+% \begin{macrocode}
+\def\place#1{\gdef\@place{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@place}
+% \begin{macrocode}
+\def\@place{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\phone}
+% \begin{macro}{\@prephone}
+% \begin{macro}{\@phone}
+% \begin{macro}{\@telephonenum}
+% \begin{macrocode}
+\def\phone#1#2{%
+ \gdef\@prephone{#1}%
+ \gdef\@phone{#2}%
+ \gdef\@telephonenum{#1#2}}
+\def\@prephone{}
+\def\@phone{}
+\def\@telephonenum{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\phonemsg}
+% \begin{macrocode}
+\def\phonemsg{Telefon}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\date}
+% \begin{macrocode}
+\def\date#1{\gdef\@date{#1}\gdef\@ntoday{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@date}
+% \begin{macrocode}
+\def\@date{\today}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sign}
+% \begin{macrocode}
+\def\sign#1{\gdef\@mymail{#1}\@reflinetrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@mymail}
+% \begin{macrocode}
+\def\@mymail{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\signmsg}
+% \begin{macro}{\signmsgold}
+% \begin{macro}{\signmsgnew}
+% \begin{macrocode}
+\def\signmsgold{Unsere Zeichen}
+\def\signmsgnew{Unsere Zeichen, unsere Nachricht vom}
+\let\signmsg\signmsgold
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\datemsg}
+% \begin{macrocode}
+\def\datemsg{Datum}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\yourmail}
+% \begin{macrocode}
+\def\yourmail#1{\gdef\@yourmail{#1}\global\@reflinetrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@yourmail}
+% \begin{macrocode}
+\def\@yourmail{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\yourmailmsg}
+% \begin{macrocode}
+\def\yourmailmsg{Ihre Zeichen, Ihre Nachricht vom}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\writer}
+% This macro takes as argument the name of the writer (Sachbearbeiter)
+% and stores it in the var {\sf writer\/}. It also toggles the the
+% |\@reflinetrue|-switch to get an referline and further
+% enables the layout of the new DIN draft standard 676 from May 1991.
+% \begin{macrocode}
+\def\writer#1{%
+ \ka@db@assignvar{writer}{#1}%
+ \@reflinetrue
+ \enabledraftstandard
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{writer}{}}%
+\ka@db@assignvarglobal{writer}{}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\writermsg}
+% \begin{macrocode}
+\def\writermsg{,\ Bearbeiter}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@concern}
+% \begin{macrocode}
+\def\@concern{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bottomtext}
+% Defines the text which is printed on the bottom of the first page.
+% This is used to include special informations such as the
+% number of the giroconto, or the name of the chairman of a corporation.
+%
+% \changes{0.0.0}{1994/02/08}{(KB) Defining macro \cmd\bottomtext\ putting
+% the specified text into box \cmd\@@bottomtext\
+% to get the height of the footer and store
+% it in \cmd\@@bottomht}
+% \changes{1.70.1}{2000/01/14}{(KB) Got rid of box \cmd\@@bottomtext\ and the
+% macros \cmd\ka@db@bottomtextmsg,
+% \cmd\ka@db@praebottomtext\ and
+% \cmd\ka@db@mainbottomtext}
+% The implementation of \cmd\bottomtext\ puts its argument into the macro
+% \cmd\ka@db@bottomtext\ preset with \cmd\relax\ (maybe, the name of this
+% internal command should be changed). This allows the bottom text to be
+% specified before \cmd\begin\arg{document}. The contents of the macro
+% \cmd\ka@db@bottomtext\ are put into a box of height and width 0pt by
+% \cmd\ka@db@tsbottomtext\ as well as \cmd\oldopening\ which is immediately
+% set into the letter (without using a box register). Wheter bottom text is
+% to be set can be checked by comparing \cmd\ka@db@bottomtext\ to
+% \cmd\relax.
+% \begin{macrocode}
+% \newbox\@@bottomtext
+% \setbox\@@bottomtext=\vbox to 0pt{}
+% \def\ka@db@bottomtextmsg{}
+% \long\def\ka@db@praebottomtext#1{%
+% \gdef\ka@db@bottomtextmsg{#1}%
+% }
+% \long\def\ka@db@mainbottomtext#1{%
+% \setbox\@@bottomtext=\hbox to 0pt{\hskip0pt minus 4truemm%
+% \vbox{\raggedright #1}%
+% \hss}%
+% }
+\def\ka@db@bottomtext{}
+\long\def\bottomtext#1{%
+ \ifka@db@ltxtwoe \relax \else
+ \@@warning{\string\bottomtext \space is reserving space for
+ typesetting its argument only in case of LaTeX 2e.
+ With other LaTeX formats you will have to place a
+ \string\clearpage-command at the appropriate position}%
+ \fi
+% \ka@db@bottomtext{#1}%
+ \long\gdef\ka@db@bottomtext{#1}%
+ % \gdef\ka@db@bottomtextmsg{#1}%
+ % \setbox\@@bottomtext=\hbox to 0pt{\hskip0pt minus 4truemm%
+ % \vbox{\raggedright #1}%
+ % \hss}%
+ }
+% \long\def\ka@db@bottomtext#1{\ka@db@praebottomtext{#1}}
+
+
+% \long\def\bottomtext#1{%
+% \ifka@db@ltxtwoe \relax \else
+% \@@warning{\string\bottomtext \space is reserving space for
+% typesetting its argument only in case of LaTeX 2e.
+% With other LaTeX formats you will have to place a
+% \string\clearpage-command at the appropriate position}%
+% \fi
+% \setbox\@@bottomtext=\hbox to 0pt{\hskip0pt minus 4truemm%
+% \vbox{\raggedright #1}%
+% \hss}%
+% % \@@bottomht \ht\@@bottomtext}
+% }
+% \end{macrocode}
+% \begin{macrocode}
+% \long\def\bottomtext#1{\def\@@bottomtext{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@bottomtext}
+% \begin{macrocode}
+% \def\@@bottomtext{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\document}
+% \begin{macrocode}
+\def\document{%
+ \endgroup
+% \end{macrocode}
+% If some options on |\documentclass| haven't been used by any
+% package we will now give a warning since this is most certainly a
+% misspelling.
+% \begin{macrocode}
+ \ifka@db@ltxtwoe
+ \ifx\@unusedoptionlist\@empty\else
+ \@latex@warning@no@line{Unused global option(s):^^J%
+ \@spaces[\@unusedoptionlist]}%
+ \fi
+ \fi
+ \@colht=\textheight
+ \@colroom=\textheight
+ \vsize=\textheight
+ \columnwidth=\textwidth
+ \@clubpenalty=\clubpenalty
+ \if@twocolumn
+ \advance\columnwidth -\columnsep
+ \divide\columnwidth\tw@
+ \hsize=\columnwidth
+ \@firstcolumntrue
+ \fi
+ \hsize=\columnwidth
+ \linewidth=\hsize
+ \begingroup
+ \@floatplacement
+ \@dblfloatplacement
+ \makeatletter
+ \ifka@db@ltxtwoe
+ \let\@writefile\@gobbletwo
+ \fi
+ \@input{\jobname@aux}%
+ \endgroup
+ \if@filesw
+ \ifnum\c@labelgen>0
+ \immediate\openout\@mainlbl=\jobname@lbl
+ \immediate\write\@mainlbl{\string\relax}%
+ \immediate\write\@mainlbl{\string\startlabels\string\@startlabels}%
+ \fi
+ \immediate\openout\@mainaux=\jobname@aux
+ \immediate\write\@mainaux{\string\relax}%
+ \fi
+ \ifka@db@ltxtwoe
+ \process@table
+ \let\glb@currsize\@empty %% Force math initialisation.
+ \fi
+ \@normalsize
+ \everypar{}%
+ \ifka@db@ltxtwoe
+ \@noskipsecfalse
+% \end{macrocode}
+% |\G@refundefinedfalse| ist not longer needed. D.\ Carlile send us
+% an E-Mail (95/12/12) to avoid conflicts with the December 1995
+% release of \LaTeXe.
+% \begin{macrocode}
+ \fi
+% \end{macrocode}
+% Just before disabling the preamble commands we execute the begin
+% document hook which contains any code contributed by
+% |\AtBeginDocument|. Also disable the gathering of the file list,
+% if no |\listfiles| has been issued. Since a value of exactly 0pt
+% for |\topskip| causes |\twocolumn[]| to misbehave, we add this
+% check, hoping that it will not cause any problems elsewhere.
+%
+% Most of the following assignments will be done globally in case
+% the user adds something like |\begin{multicols}| to the document
+% hook, ie starts a group in |\begin{document}|.
+% \begin{macrocode}
+ \ifka@db@ltxtwoe
+ \@begindocumenthook
+ \ifdim\topskip<1sp
+ \topskip 1sp
+ \relax
+ \fi
+ \let\@begindocumenthook\@undefined
+ \ifx\@listfiles\@undefined
+ \let\@filelist\relax
+ \let\@addtofilelist\@gobble
+ \fi
+ \fi
+% \end{macrocode}
+% At the very end we disable all preamble commands. This has to
+% happen after the begin document hooks was executed so that this
+% hook can still use such commands.
+% |\AtBeginDocument|.
+%
+% \begin{macrocode}
+ \def\do##1{\let ##1\@notprerr}%
+ \@preamblecmds
+% \end{macrocode}
+% The next line is a pure safty measure in case a do list is
+% ever expanded at the wrong place. In addition it will save
+% a few tokens to get rid of the above definition.
+% \begin{macrocode}
+ \global\let\do\noexpand
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \long\def\ka@db@bottomtext##1{\ka@db@mainbottomtext{##1}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enddocument}
+% \begin{macrocode}
+\def\enddocument{%
+ \@checkend{document}
+ \newpage
+ \begingroup
+ \if@filesw
+ \ifnum\c@labelgen>0
+ \immediate\closeout\@mainlbl
+ \makeatletter
+ \input \jobname@lbl\relax
+ \clearpage
+ \fi
+ \immediate\closeout\@mainaux
+ \fi
+ \endgroup
+ \deadcycles\z@
+ \@@end}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Controlling the generation of labels}
+% \cmd\makelabels\ is a preamble command to enable the generation
+% of labels. To control the generation of labels for single
+% letters, we provide three other commands. This commands
+% work only if \cmd\makelabels\ is given in the preamble.
+%
+% The other three commands \cmd\nolabels, \cmd\offlabels\ and
+% \cmd\onlabels, which only work if \cmd\makelabels\ had
+% been given in the preamle, control the generation of
+% single or in case of \cmd\offlabels\ the remaining
+% label(s). \cmd\nolabels\ avoids the label for the current
+% letter. Further if the generation of labels was permanently
+% disabled with \cmd\offlabels\ this also switches the generation
+% of labels from the next letter on.
+% \cmd\offlabels\ stops the generation of labels.
+% \cmd\onlabels\ switch the generation of label on again.
+%
+% The counter \cmd\c@labelgen\ indicates the current state
+% of the generation of labels:
+%
+% \begin{tabular}{cp{0.75\textwidth}}
+% 0 & generation of labels is switched off\\
+% 1 & generation of current label is beeing temporary switched off\\
+% 2 & generation of labels is in force\\
+% \end{tabular}
+%
+% \begin{macro}{\makelabels}
+% \cmd\makelabels\ is a command to enable the generation of
+% labels.
+% \begin{macrocode}
+\def\makelabels{%
+ % \@fileswtrue
+ \c@labelgen=2
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@labelgen}
+% \begin{macrocode}
+\newcount\c@labelgen
+\c@labelgen=0
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@asslabelgen}
+% \begin{macrocode}
+\def\ka@db@asslabelgen#1#2#3{%
+ \if@filesw
+ #3\c@labelgen=#1\relax
+ \else
+ %\@warning{\string\makelabels\space not given. %
+ % \string#2\space has no effect}%
+ \ClassWarning{dinbrief}{%
+ \string\makelabels\space not given. %
+ \string#2\space has no effect}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\nolabels}
+% \begin{macrocode}
+\def\nolabels{%
+ \ka@db@asslabelgen{1}{\nolabels}{\relax}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\offlabels}
+% \begin{macrocode}
+\def\offlabels{%
+ \ka@db@asslabelgen{0}{\offlabels}{\global}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\onlabels}
+% \begin{macrocode}
+\def\onlabels{%
+ \ka@db@asslabelgen{2}{\onlabels}{\global}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@startlabels}
+% \begin{macrocode}
+\def\@startlabels{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\let\@texttop=\relax
+% \end{macrocode}
+%
+% \changes{0.0.0}{1994/02/09}{(KB)}
+% \begin{macro}{\ifka@db@lastpage}
+% The following switch is used by pagestyle |contheadings| to detect the
+% last page.
+% \begin{macrocode}
+\newif\ifka@db@lastpage
+\ka@db@lastpagefalse
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ps@headings}
+% \begin{macrocode}
+\def\ps@headings{
+ \headheight=\ltf@headheight
+ \headsep=\ltf@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 0truemm
+ \def\@oddhead{%
+ \sl \headtoname\
+ \ignorespaces\toname \hfil \@date
+ \hfil \pagename{} \thepage}
+ \def\@oddfoot{}
+ \def\@evenhead{%
+ \sl \headtoname\
+ \ignorespaces\toname \hfil \@date
+ \hfil \pagename{} \thepage}
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle headings}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@empty}
+% \begin{macrocode}
+\def\ps@empty{%
+ \headheight=\lts@headheight
+ \headsep=\lts@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 0truemm
+ \def\@oddhead{}
+ \def\@oddfoot{}
+ \def\@evenhead{}
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle empty}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@first@page}
+% \begin{macrocode}
+\def\ps@first@page{%
+ \headheight=\lts@headheight
+ \headsep=\lts@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 4.2truemm
+ \fi
+ \footskip 8.8truemm
+% \end{macrocode}
+% We do not redefine the macros |\@oddfoot| and |\@evenfoot|.
+% So the first page gets the same layout in the foot as the
+% other pages.
+%
+% We can talk about use of such a half pagestyle. So we provide
+% here a hook |psfirstpagehook| and the user can complete this
+% pagestyle (if he wishes) simply by doing:
+%
+% \begin{quote}
+% |\def\psfirstpagehook{%|\\
+% | \def\@oddfoot{}|\\
+% | \def\@evenfoot{}}|
+% \end{quote}
+%
+% \begin{macrocode}
+ \def\@oddhead{}
+ \def\@evenhead{}
+ \expandafter\ifx\csname psfirstpagehook\endcsname\relax
+ \else
+ \psfirstpagehook
+ \fi
+%<debug> \message{executing pagestyle firstpage}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\psfirstpagehook}
+% \begin{macrocode}
+\def\psfirstpagehook{%
+ \def\@oddfoot{}
+ \def\@evenfoot{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@plain}
+% \begin{macrocode}
+\def\ps@plain{%
+ \headheight=\lts@headheight
+ \headsep=\lts@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 4.2truemm
+ \fi
+ \footskip 8.8truemm
+ \def\@oddhead{}
+ \def\@oddfoot{\hfil{\ka@db@fontshape{n}%
+ \ka@db@fontseries{m}\ka@db@selectfont\thepage}
+ \hfil}%
+ \def\@evenhead{}
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle plain}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ps@myheadings}
+% \begin{macrocode}
+\def\ps@myheadings{%\let\@mkboth\@gobbletwo
+ \headheight=\ltf@headheight
+ \headsep=\ltf@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 0truemm
+ \def\@oddhead{{\sl \rightmark}}%
+ \def\@oddfoot{}
+ \def\@evenhead{{\sl \leftmark}}%
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle myheadings}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ps@contheadings}
+% \changes{0.0.0}{1994/02/09}{(KB)}
+% Like pagestyle 'headings' with pagenumber in top line and
+% number of following page in bottom line.
+%
+% \smallskip
+% \changes{0.0.0}{1994/02/10}{(KB)}
+% Problem to be solved before this pagestyle can be introduced:
+% There must be found a method to detect the last page is typesetted
+% (endletter is not sufficient, since there may be another pagebreak when
+% \TeX\ has seen the command - due to an overfull page)
+% \begin{macrocode}
+\def\ps@contheadings{%\let\@mkboth\@gobbletwo
+ \headheight=\ltf@headheight
+ \headsep=\ltf@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 8.8truemm
+ \def\@oddhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date
+ \hfil\pagename{} \thepage}}%
+ \def\@oddfoot{\ifka@db@lastpage
+ \relax
+%<debug> \message{ignoring oddfoot in contheadings}%
+ \else
+ \addtocounter{page}{1}%
+ \hfil--- \thepage{} ---\hfil%
+ \addtocounter{page}{-1}%
+%<debug> \message{executing oddfoot in contheadings}%
+ \fi}
+ \def\@evenhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date
+ \hfil\pagename{} \thepage}}%
+ \def\@evenfoot{\ifka@db@lastpage
+ \relax
+%<debug> \message{ignoring evenfoot in contheadings}%
+ \else
+ \addtocounter{page}{1}%
+ ~\hfil--- \thepage{} ---~%
+ \addtocounter{page}{-1}%
+%<debug> \message{executing evenfoot in contheadings}%
+ \fi}
+%<debug> \message{executing pagestyle contheadings}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Fonts --- paragraphing}
+% These parameters control \TeX's behaviour when two lines tend
+% to come too close together.
+%
+% \begin{macrocode}
+\lineskip 1pt
+\normallineskip 1pt
+% \end{macrocode}
+% \begin{macro}{\baselinestretch}
+% This is used as a multiplier for |\baselineskip|. The default is
+% {\em not\/} to stretch the baselines.
+% \begin{macrocode}
+\def\baselinestretch{1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parskip}
+% \begin{macro}{\parindent}
+% |\parskip| gives extra vertical space between paragraphs and |\parindent|
+% is the width of the paragraph indentation.
+% \begin{macrocode}
+\parskip .7em
+\parindent 0pt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\topsep .4em
+\partopsep 0pt
+\itemsep .4em
+% \end{macrocode}
+%
+% \begin{macro}{\@lowpenalty}
+% \begin{macro}{\@medpenalty}
+% \begin{macro}{\@highpenalty}
+% The commands |\nopagebreak| and |\nolinebreak| put in penalties to
+% discourage these breaks at the point they are put in. They use
+% |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|, dependant on their
+% argument.
+% \begin{macrocode}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+% \end{macrocode}
+%
+% \subsection{Lists}
+%
+% \subsubsection{General list parameters}
+%
+% The following commands are used to set default values for the list
+% environment's parameters. See the \LaTeX{} manual for an explanation
+% of the meanings of these parameters. Defaults for the list
+% environment are set as follows. First, |\rightmargin|,
+% |\listparindent| and |\itemindent| are set to 0pt. Then, for a Kth
+% level list, the command |\@listK| is called, where `K' denotes `i',
+% '`i', ... , `vi'. (I.e., |\@listiii| is called for a third-level
+% list.) By convention, |\@listK| should set |\leftmargin| to
+% |\leftmarginK|.
+%
+% \begin{macro}{\leftmargin}
+% \begin{macro}{\leftmargini}
+% \begin{macro}{\leftmarginii}
+% \begin{macro}{\leftmarginiii}
+% \begin{macro}{\leftmarginiv}
+% \begin{macro}{\leftmarginv}
+% \begin{macro}{\leftmarginvi}
+% For efficiency, level-one list's values are defined at top level, and
+% |\@listi| is defined to set only |\leftmargin|.
+%
+% \begin{macrocode}
+\leftmargini 2.5em
+\leftmarginii 2.2em
+\leftmarginiii 1.87em
+\leftmarginiv 1.7em
+\leftmarginv 1em
+\leftmarginvi 1em
+% \end{macrocode}
+% Here we set the top level leftmargin.
+% \begin{macrocode}
+\leftmargin\leftmargini
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelsep}
+% \begin{macro}{\labelwidth}
+% |\labelsep| is the distance between the label and the text of an
+% item; |\labelwidth| is the width of the label.
+% \begin{macrocode}
+\labelwidth\leftmargini
+\advance\labelwidth-\labelsep
+\labelsep 5pt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\parsep 0pt
+% \end{macrocode}
+%
+% \begin{macro}{\@listi}
+% \begin{macrocode}
+\let\@listi\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@listii}
+% \begin{macro}{\@listiii}
+% \begin{macro}{\@listiv}
+% \begin{macro}{\@listv}
+% \begin{macro}{\@listvi}
+% Here are the same macros for the higher level lists.
+% \begin{macrocode}
+\def\@listii{%
+ \leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep}
+\def\@listiii{%
+ \leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep .2em
+ \itemsep \topsep}
+\def\@listiv{%
+ \leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv{%
+ \leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi{%
+ \leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Enumerate}
+%
+% The enumerate environment uses four counters: \Lcount{enumi},
+% \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
+% \Lcount{enumN} controls the numbering of the Nth level
+% enumeration.
+%
+% \begin{macro}{\theenumi}
+% \begin{macro}{\theenumii}
+% \begin{macro}{\theenumiii}
+% \begin{macro}{\theenumiv}
+% The counters are already defined in \file{latex.tex}, but their
+% representation is changed here.
+%
+% \begin{macrocode}
+\def\theenumi{\arabic{enumi}}
+\def\theenumii{\alph{enumii}}
+\def\theenumiii{\roman{enumiii}}
+\def\theenumiv{\Alph{enumiv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelenumi}
+% \begin{macro}{\labelenumii}
+% \begin{macro}{\labelenumiii}
+% \begin{macro}{\labelenumiv}
+% The label for each item is generated by the commands \hfil\break
+% |\labelenumi| ... |\labelenumiv|.
+% \begin{macrocode}
+\def\labelenumi{\arabic{enumi}.}
+\def\labelenumii{(\alph{enumii})}
+\def\labelenumiii{\roman{enumiii}.}
+\def\labelenumiv{\Alph{enumiv}.}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\p@enumii}
+% \begin{macro}{\p@enumiii}
+% \begin{macro}{\p@enumiv}
+% The expansion of |\p@enumN||\theenumN| defines the output of a
+% |\ref| command when referencing an item of the Nth level of an
+% enumerated list.
+% \begin{macrocode}
+\def\p@enumii{\theenumi}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\p@enumiv{\p@enumiii\theenumiii}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Itemize}
+%
+% \begin{macro}{\labelitemi}
+% \begin{macro}{\labelitemii}
+% \begin{macro}{\labelitemiii}
+% \begin{macro}{\labelitemiv}
+% Itemization is controlled by four commands: |\labelitemi|,
+% |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
+% the labels of thevarious itemization levels: the symbols used are
+% bullet, bold en-dash, asterisk and centred dot.
+%
+% \begin{macrocode}
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Description}
+%
+% \begin{macro}{\description}
+% \begin{macro}{\descriptionlabel}
+% \begin{macro}{\enddescription}
+% The description environment is defined here -- while the itemize
+% and enumerate environments are defined in \file{latex.tex}.
+%
+% To change the formatting of the label, you must redefine
+% |\descriptionlabel|.
+%
+% \begin{macrocode}
+\def\descriptionlabel#1{%
+ \hspace\labelsep \bf #1}
+\def\description{%
+ \list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+\let\enddescription\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Verse}
+%
+% \begin{macro}{\verse}
+% \begin{macro}{\endverse}
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types |\\| to end a line.
+% This is implemented by |\let|'ing |\\| equal |\@centercr|.
+%
+% \begin{macrocode}
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@
+ \itemindent -15pt
+ \listparindent \itemindent
+ \rightmargin\leftmargin
+ \advance\leftmargin 15pt}\item[]}
+\let\endverse\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Quotation}
+%
+% \begin{macro}{\quotation}
+% \begin{macro}{\endquotation}
+% The quotation environment is also defined by making clever use of
+% the list environment's parameters. The lines in the environment
+% are set smaller than |\textwidth|. The first line of a paragraph
+% inside this environment is indented.
+%
+% \begin{macrocode}
+\def\quotation{%
+ \list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin}%
+ \item[]}
+\let\endquotation=\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Quote}
+%
+% \begin{macro}{\quote}
+% \begin{macro}{\endquote}
+% The quote environment is like the quotation environment except
+% that paragraphs are not indented.
+%
+% \begin{macrocode}
+\def\quote{%
+ \list{}{\rightmargin\leftmargin}%
+ \item[]}
+\let\endquote=\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Setting parameters for existing environments}
+%
+% \subsubsection{Array and tabular}
+%
+% \begin{macro}{\arraycolsep}
+% The columns in an array environment are separated by
+% 2|\arraycolsep|.
+% \begin{macrocode}
+\arraycolsep 5pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tabcolsep}
+% The columns in an tabular environment are separated by
+% 2|\tabcolsep|.
+% \begin{macrocode}
+\tabcolsep 6pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\arrayrulewidth}
+% The width of rules in the array and tabular environments is given
+% by \hfil\break
+% |\arrayrulewidth|.
+% \begin{macrocode}
+\arrayrulewidth .4pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doublerulesep}
+% The space between adjacent rules in the array and tabular
+% environments is given by |\doublerulesep|.
+% \begin{macrocode}
+\doublerulesep 2pt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Tabbing}
+%
+% \begin{macro}{\tabbingsep}
+% This controls the space that the |\'| command puts in. (See
+% \LaTeX{} manual for an explanation.)
+% \begin{macrocode}
+\tabbingsep \labelsep
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Minipage}
+%
+% \begin{macro}{\@minipagerestore}
+% The macro |\@minipagerestore| is called upon entry to a minipage
+% environment to set up things that are to be handled differently
+% inside a minipage environment. In the current styles, it does
+% nothing.
+% \end{macro}
+%
+% \begin{macro}{\@mpfootins}
+% Minipages have their own footnotes; |\skip||\@mpfootins| plays
+% the same r\^ole for footnotes in a minipage as |\skip||\footins| does
+% for ordinary footnotes.
+%
+% \begin{macrocode}
+\skip\@mpfootins = \skip\footins
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Framed boxes}
+%
+% \begin{macro}{\fboxsep}
+% The space left by |\fbox| and |\framebox| between the box and the
+% text in it.
+% \begin{macrocode}
+\fboxsep = 3pt
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fboxrule}
+% The width of the rules in the box made by |\fbox| and |\framebox|.
+% \begin{macrocode}
+\fboxsep = 3pt
+\fboxrule = .4pt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Equation and eqnarray}
+%
+% \begin{macro}{\theequation}
+% The equation counter will be reset at beginning of a new letter.
+% The equation counter will be typeset using arabic numbers.
+%
+% \begin{macrocode}
+\def\theequation{\arabic{equation}}
+\@addtoreset{equation}{letter}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\jot}
+% |\jot| is the extra space added between lines of an eqnarray
+% environment. The default value is used.
+% \begin{macrocode}
+% \jot=3pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@eqnnum}
+% The macro |\@eqnnum| defines how equation numbers are to appear in
+% equations. Again the default is used.
+%
+% \begin{macrocode}
+% \def\@eqnnum{(\theequation)}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Footnotes}
+%
+% \begin{macro}{\footnoterule}
+% Usually, footnotes are separated from the main body of the text
+% by a small rule. This rule is drawn by the macro |\footnoterule|.
+% We have to make sure that the rule takes no vertical space (see
+% \file{plain.tex}) so we compensate for the natural heigth of the
+% rule of 0.4pt by adding the right amount of vertical skip.
+%
+% To prevent the rule from colliding with the footnote we first add
+% a little negative vertical skip, then we put the rule and make
+% sure we end up at the same point where we begun this operation.
+% \begin{macrocode}
+\def\footnoterule{%
+ \kern-1\p@
+ \hrule width .4\columnwidth
+ \kern .6\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@footnote}
+% The dinbrief style/class does not use this macro.
+%
+% (Footnotes are numbered within chapters in the report and book
+% document styles.)
+% \end{macro}
+%
+% \begin{macro}{\@makefntext}
+% The footnote mechanism of \LaTeX{} calls the macro |\@makefntext|
+% to produce the actual footnote. The macro gets the text of the
+% footnote as its argument and should use |\@thefnmark| as the mark
+% of the footnote. The macro |\@makefntext| is called when
+% effectively inside a |\parbox| of width |\columnwidth| (i.e.,
+% with |\hsize| = |\columnwidth|).
+%
+% An example of what can be achieved is given by the following piece
+% of \TeX\ code.
+% \begin{macrocode}
+% \long\def\@makefntext#1{%
+% \@setpar{\@@par
+% \@tempdima = \hsize
+% \advance\@tempdima-10pt
+% \parshape \@ne 10pt \@tempdima}%
+% \par
+% \parindent 1em\noindent
+% \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1}
+% \end{macrocode}
+% The effect of this definition is that all lines of the footnote
+% are indented by 10pt, while the first line of a new paragraph is
+% indented by 1em. To change these dimensions, just substitute the
+% desired value for `10pt' (in both places) or `1em'. The mark is
+% flushright against the footnote.
+%
+% In this document class we use a simpler macro, in which the
+% footnote text is set like an ordinary text paragraph, with no
+% indentation except on the first line of a paragraph, and the
+% first line of the footnote. Thus, all the macro must do is set
+% |\parindent| to the appropriate value for succeeding paragraphs
+% and put the proper indentation before the mark.
+%
+% \begin{macrocode}
+% \long\def\@makefntext#1{%
+% \parindent 1em%
+% \noindent
+% \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@makefntext}
+% \begin{macrocode}
+\long\def\@makefntext#1{%
+ \noindent
+ \hangindent 5pt%
+ \hbox to 5pt{\hss $^{\@thefnmark}$}#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefnmark}
+% The footnote markers printed in the text to point to the
+% footnotes should be produced by the macro |\@makefnmark|. We use
+% the default definition for it.
+% \begin{macrocode}
+%\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\c@topnumber=2
+\def\topfraction{.7}
+\c@bottomnumber=1
+\def\bottomfraction{.3}
+\c@totalnumber=3
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\c@dbltopnumber= 2
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+% \end{macrocode}
+%
+% \subsection{The current date}
+%
+% \begin{macro}{\today}
+% \begin{macrocode}
+\def\today{\number\day.\space\ifcase\month\or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi
+ \space\number\year}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@znumber}
+% \begin{macro}{\ntoday}
+% \begin{macro}{\@ntoday}
+% \changes{1.68.0}{2000/01/03}{(RG) Y2K-bug in \cmd\@znumber\space fixed.}
+% The following code is not Y2K ready. It has to be replaced by
+% the code suggested by Heiko Oberdiek (below).
+% \begin{macrocode}
+%\yearcnt\year
+%\advance\yearcnt-\number1900
+% \end{macrocode}
+% New we cut off only the first the numbers. This should work from
+% the year 1000 up to 9999. This means Y3K, Y4K and so on ready.
+% \begin{macrocode}
+\newcount\yearcnt
+\yearcnt=\expandafter\@gobbletwo\the\year
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \def\@znumber#1{\ifnum\number#1<10 0\number#1\else\number#1\fi}
+% \end{macrocode}
+% This makes the use of |\@znumber| more save. Thanks to
+% Heiko Oberdiek for this suggestion.
+% \begin{macrocode}
+\def\@znumber#1{%
+ \ifnum\number#1<10 0\fi
+ \expandafter\@firstofone\expandafter{\number#1}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\def\ntoday{\@znumber{\number\day}.%
+ \@znumber{\number\month}.%
+ \@znumber{\the\yearcnt}}
+\def\@ntoday{\ntoday}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\up#1{\leavevmode \raise.16ex\hbox{#1}}
+% \end{macrocode}
+%
+% \begin{macro}{\concern}
+% \begin{macro}{\subject}
+% \changes{1.15.0}{1994/12/14}{(RG) \cmd\newbox\cmd\@betr being moved outside of
+% \cmd\concern}
+% \begin{macrocode}
+\newbox\@betr
+\long\def\concern#1{%
+ \setbox\@betr=\hbox{}
+ \def\@concern{\hangindent=\wd\@betr
+ \hangafter=1
+ \unhbox\@betr #1\par}}
+\let\subject=\concern
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@fordate}
+% \changes{1.70.1}{2000/01/17}{(KB) length \cmd\@fordate\ eliminated and
+% width of date field set to
+% \cmd\ka@db@shfldwd=25.4mm}
+% |\@fordate| is the length of the remaining part of the
+% referline.
+% \begin{macrocode}
+%\newdimen\@fordate
+%\@fordate=\textwidth
+%\addtolength{\@fordate}{-131truemm}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Changed \cmd\\\ to \cmd\newline}
+% \begin{macro}{\@answertoold}
+% The macro \cmd\@answertoold is used to typeset the referline in the
+% original DIN 676 style.
+%
+% %The length \cmd\@fordate\ is the width of the field for date
+% %and place. This length is being determined by subtracting the
+% %length of the other fields (50,8mm + 50,8mm + 25,4mm + 4mm)
+% %131 mm from \cmd\textwidth. (why 4mm?)
+% The length of the field for date and/or place -- the remaining part of
+% the reference line -- is no longer computed since its specific value
+% has no effect to the output. Instead, the field width is set to
+% |\ka@db@shfldwd|=25.4mm leaving 8.2mm to the right paper bound.
+%
+% \begin{macrocode}
+\def\@answertoold{%
+ \parbox[b]{\ka@db@fieldwd}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \yourmailmsg{}}%
+ \hfil\newline \@yourmail\hbox{}\hss}%
+ \hskip\ka@db@fldskip%
+ \parbox[b]{\ka@db@fieldwd}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \signmsg{}}%
+ \hfil\newline \@mymail\hbox{}\hss}%
+ \hskip\ka@db@fldskip%
+ \parbox[b]{\ka@db@shfldwd}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \phonemsg{} \@prephone{}}%
+ \hfil\newline \@phone\hbox{}\hss}%
+ \hskip\ka@db@fldskip%
+ \parbox[b]{\ka@db@shfldwd}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \ifx\@empty\@place
+ \vphantom{K}\rule{2pt}{0pt}
+ \else
+ \@place{}%
+ \fi
+ }\hfil\newline \@ntoday}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.70.1}{2000/01/09}{(KB) Changed \cmd\\\ to \cmd\newline}
+% \begin{macro}{\@answertonew}
+% The draft proposal of the new DIN 676 has an additional
+% field for the name of a person who has written the letter.
+%
+% The new DIN 676 (draft) has a big disadvantage. The referline
+% is larger than the normal \cmd\textwidth. So we have to add some
+% extra space to this box. This code should be rewritten.
+% Currently, it is just a hack.
+%
+% \begin{macrocode}
+\def\@answertonew{%
+ \hbox to \textwidth{%
+ \parbox[b]{\ka@db@fieldwd}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \yourmailmsg{}}%
+ \hfil\newline \@yourmail\hbox{}\hss}%
+ \hskip\ka@db@fldskip%
+ \parbox[b]{\ka@db@fieldwd}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \signmsg{}}%
+ \hfil\newline \@mymail\hbox{}\hss}%
+ \hskip\ka@db@fldskip%
+ \parbox[b]{\ka@db@fieldwd}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \phonemsg{}%
+ \writermsg{}%
+ }%
+ \hfil\newline
+ \ifx\@empty\@prephone\relax
+ \else
+ \@prephone{}
+ \fi
+ \@phone
+ \ka@db@ifemptyvar{writer}%
+ {}% true
+ {% false
+ \ifx\@empty\@phone\relax
+ \else
+ ,\ % insert comma and blank only
+ \fi% if both are nonempty
+ \ka@db@usevar{writer}%
+ }%
+% \ifx\@empty\@writer\relax
+% \else
+% \ifx\@empty\@phone\relax
+% \else
+% ,\ % insert comma and blank only if both
+% \fi% are nonempty
+% \@writer
+% \fi
+ \hbox{}\hss}%
+ \hskip\ka@db@fldskip%
+ \parbox[b]{\ka@db@shfldwd}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \datemsg
+ }\hfil\newline \@ntoday}
+ \hss}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enabledraftstandard}
+% \begin{macro}{\disabledraftstandard}
+% \begin{macro}{\@answerto}
+% \changes{0.94.1}{1994/08/14}{\cmd\enabledraftstandard and
+% \cmd\disabledraftstandard
+% introduced.}
+% The macros \cmd\enabledraftstandard\ and \cmd\disabledraftstandard\
+% are used to switch between the two DIN versions 676 (the old and the
+% draft one). This is simply done by letting the \cmd\@answerto pointing to
+% \cmd\@answertoold or \cmd\@answertonew.
+%
+% By default, we use the old version and therefore the german standard.
+%
+% \begin{macrocode}
+\def\enabledraftstandard{%
+ \let\signmsg=\signmsgnew
+ \let\@answerto=\@answertonew
+}
+%
+\def\disabledraftstandard{%
+ \let\signmsg=\signmsgold
+ \let\@answerto=\@answertoold
+}
+%
+\disabledraftstandard
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Old dinbrief commands}
+%
+% \begin{macro}{\Postvermerk}
+% \begin{macrocode}
+\def\Postvermerk#1{%
+ %\@warning{Use \string\postremark\space instead %
+ % of \string\Postvermerk}%
+ \ClassWarning{dinbrief}{%
+ Use \string\postremark\space instead %
+ of \string\Postvermerk}%
+ \postremark{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Behandlungsvermerk}
+% \begin{macrocode}
+\def\Behandlungsvermerk#1{%
+ %\@warning{Use \string\handling\space instead of %
+ % \string\Behandlungsvermerk}%
+ \ClassWarning{dinbrief}{%
+ Use \string\handling\space instead of %
+ \string\Behandlungsvermerk}%
+ \handling{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Datum}
+% \begin{macrocode}
+\def\Datum#1{%
+ \date{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\long\def\ka@db@splitondblpt#1{%
+ \ka@db@splitdblptx #1::\@st@p@
+ \ifx\ka@db@fromadrtwo\@empty
+ \else
+ \ka@db@splitdblpty #1\@st@p@
+ \fi
+}
+\def\ka@db@fromadrone{}%
+\def\ka@db@fromadrtwo{}%
+\long\def\ka@db@splitdblptx #1::#2\@st@p@{%
+ \def\ka@db@fromadrone{#1}%
+ \def\ka@db@fromadrtwo{#2}%
+}
+\long\def\ka@db@splitdblpty #1::#2\@st@p@{%
+ \def\ka@db@fromadrtwo{#2}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\stdaddress}
+% \begin{macrocode}
+\long\def\stdaddress#1{%
+ \ka@db@splitondblpt{#1}
+ \address{%
+ \vspace*{7truemm}
+ \leavevmode
+ \hbox to 0pt{\hbox to \textwidth{\hfil\@date}\hss}%
+ \parbox[t]{\textwidth}{\ka@db@fromadrone\ka@db@fromadrtwo}%
+ }%
+ \@noreflinetrue
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Absender}
+% \begin{macrocode}
+\long\def\Absender#1{%
+ %\@warning{Use \string\stdaddress\space instead of \string\Absender}%
+ \stdaddress{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Retourlabel}
+% \begin{macrocode}
+\def\Retourlabel{%
+ %\@warning{\string\Retourlabel\space not yet implemented.}%
+ \ClassWarning{dinbrief}{%
+ \string\Retourlabel\space not yet implemented.}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Fenster}
+% \begin{macrocode}
+\def\Fenster{%
+ \ClassWarning{dinbrief}{%
+ \string\Fenster\space not yet implemented.}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Retouradresse}
+% \begin{macrocode}
+\def\Retouradresse#1{%
+ \ClassWarning{dinbrief}{%
+ Use \string\backaddress\space instead of \string\Retouradresse}%
+ \backaddress{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Betreff}
+% \begin{macrocode}
+\def\Betreff#1{%
+ \ClassWarning{dinbrief}{%
+ Use \string\subject\space instead of \string\Betreff}%
+ \concern{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{dinquote}
+%
+% \begin{macro}{\dinquote}
+% \begin{macro}{\enddinquote}
+% The dinquote environment is like the quote environment except
+% that the indentation on left side is 1in and there is no
+% indentation on the right side.
+%
+% \begin{macrocode}
+\def\dinquote{%
+ \list{}{\leftmargin=1in}%
+ \item[]}
+\let\enddinquote=\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Einrueckung}
+% \begin{macrocode}
+\long\def\Einrueckung#1{%
+ \ClassWarning{dinbrief}{%
+ Use the environment dinquote in future}%
+ \begin{dinquote}%
+ #1
+ \end{dinquote}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifka@db@enclright}
+% |\ifka@db@enclright| is true if the enclosures and/or
+% the carbon copies have to placed on the right side.
+% \begin{macrocode}
+\newif\ifka@db@enclright
+\ka@db@enclrightfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enclright}
+% \begin{macrocode}
+\def\enclright{%
+ \ka@db@enclrighttrue
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\enclnoenclright}
+% \begin{macrocode}
+\def\noenclright{%
+ \ka@db@enclrightfalse
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\anlagenrechts}
+% The enclosures are placed on the right side (at degree 50) 101.6mm
+% from the left margin. They start at the same line as the closing
+% formula.
+% \begin{macrocode}
+\def\anlagenrechts{%
+ \ka@db@enclrighttrue
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Anlagen}
+% \begin{macrocode}
+\def\Anlagen#1{%
+ %\@warning{Use \string\encl\space instead of \string\Anlagen}%
+ \ClassWarning{dinbrief}{%
+ Use \string\encl\space instead of \string\Anlagen}%
+ \encl[]{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Verteiler}
+% \begin{macrocode}
+\def\Verteiler#1{%
+ %\@warning{Use \string\cc\space instead of \string\Verteiler}%
+ \ClassWarning{dinbrief}{%
+ Use \string\cc\space instead of \string\Verteiler}%
+ \cc[]{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{More initializations}
+%
+% We initially choose the normalsize font.
+% This code has to be executed following the definition of |\baselinestretch|
+% if the original \LaTeX\ font selection scheme is used.
+% \begin{macrocode}
+\ifka@db@nfss
+ \else
+ \ifka@db@nfsstwo
+ \else
+ \normalsize
+ \fi
+ \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\smallskipamount=.5\parskip
+\medskipamount=\parskip
+\bigskipamount=2\parskip
+% \end{macrocode}
+%
+% \begin{macrocode}
+\pagestyle{plain}
+\pagenumbering{arabic}
+\onecolumn
+% \@fileswfalse
+\errorcontextlines=10
+% \end{macrocode}
+%
+% Finally, read the configuration file - if it exists.
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \IfFileExists{dinbrief.cfg}{%
+ \makeatother%
+ \input{dinbrief.cfg}%
+ \makeatletter%
+ }{\relax}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|style>
+% \end{macrocode}
+%
+% \subsection{The short class file/the short style file}
+% This file only inputs the dinbrief.sty file.
+%
+% \begin{macrocode}
+%<*shortclass>
+\input dinbrief.sty
+%</shortclass>
+% \end{macrocode}
+%
+% This file only inputs the dinbrief.cls file.
+%
+% \begin{macrocode}
+%<*shortstyle>
+\input dinbrief.cls
+%</shortstyle>
+% \end{macrocode}
+%
+% \subsection{The configuration file}
+% The configuration file is searched according to the standard search path
+% for \TeX\ files. It is input by the last command of the class but before
+% any package.
+%
+% \begin{macrocode}
+%<*cfg>
+% \end{macrocode}
+%<<COMMENTSONLY
+% \begin{macrocode}
+% Example configuration file
+%
+% This file is input by the last command of the class `dinbrief'
+%
+%\setaddressllhpos{100truemm}
+%\setaddressllvpos{96truemm}
+%\setaddressllcorner{20truemm}{72truemm}
+%\addressstd
+%\nobackaddressrule
+%\nowindowrules
+%\address{R\"udiger Kurz\\ % Package `german' not yet loaded!
+% Am See 1\\
+% 76133 Karlsruhe}
+%\backaddress{R.~Kurz, Am See 1, 76133 Karslruhe}
+%\place{Gralsruhe}
+%\phone{(0127)}{806-0815}
+%\signature{R\"udiger Kurz}
+%\setbottomtexttop{284.9truemm}
+%\bottomtext{%
+% \makebox[\textwidth][c]{\small\sf
+% Bankverbindung $\cdot$ Kreissparkasse Gralsruhe %
+% (BLZ~999~500~00) 98~765~4}}
+%COMMENTSONLY
+%</cfg>
+% \end{macrocode}
+%
+% \section{An example letter}
+%
+% \subsection{The letter head}
+%
+% \begin{macrocode}
+%<*brfkopf>
+% \end{macrocode}
+% \begin{macrocode}
+%
+\newlength{\UKAwd}
+\newlength{\ADDRwd}
+%
+\font\fa=cmcsc10 scaled 1440
+\font\fb=cmss12 scaled 1095
+\font\fc=cmss10 scaled 1000
+%
+\def\briefkopf{
+ \settowidth{\UKAwd}{\fa Institut f"ur Verpackungen}
+ \settowidth{\ADDRwd}{\fc EARN/BITNET: yx99 at dkauni2}
+ \expandafter\ifx\csname fontsize\endcsname\relax\else
+ \fontsize{12}{14.4pt}\selectfont
+ \fi
+%
+ \vspace*{7truemm}
+ \raisebox{-11.3mm}{%
+ \setlength{\unitlength}{1truemm}
+ \begin{picture}(15,15)(0,0)
+ \thicklines
+ \put(7.5,7.5){\circle{15}}
+ \put(7.5,7.5){\circle{10}}
+ \put(7.5,7.5){\circle{ 5}}
+ \end{picture}%
+ }
+ {\fc\hspace{.2em}}
+ \parbox[t]{\UKAwd}{\centering{\fa Universit\"at Gralsruhe} \\
+ \centering{\fa Institut f"ur Verpackungen} \\[.5ex]
+ \centering{\fb Prof.\ Dr.\ Fritz Schreiber} }
+ \hfill
+ \parbox[t]{\ADDRwd}{\fc Im Hinterhof 2 $\cdot$ Postfach 8960 \\
+ \fc D--76821 Gralsruhe \\
+ \fc Telefon: (0127) 806-0815 \\
+ \fc Electronic Mail: \\
+ \fc EARN/BITNET: yx99 at error2 }
+ }
+%
+\signature{Prof.\ Dr.\ Fritz Schreiber}
+\place{Gralsruhe}
+\address{\briefkopf}
+\phone{(0127)}{806-0815}
+\def\FS{Prof.\,F.\,Schreiber, Uni.\,Gralsruhe,
+ Postf.\,8960, 76821\,Gralsruhe\rule[-1ex]{0pt}{0pt}}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</brfkopf>
+% \end{macrocode}
+%
+% \subsection{The letter}
+% \begin{macrocode}
+%<*example>
+% \end{macrocode}
+% This will be a letter.
+% \begin{macrocode}
+
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{dinbrief}
+ \else
+ \begin{filecontents*}{signatur.ps}
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 57 32
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col0 {0.000 0.000 0.000 srgb} bind def
+end
+save
+1.0 30.0 translate
+1 -1 scale
+
+/c {curveto} bind def
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/sc {scale} bind def
+/tr {translate} bind def
+/DrawEllipse {
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc 0 0 1 startangle endangle arc
+ closepath
+ savematrix setmatrix
+ } def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+%%EndProlog
+
+$F2psBegin
+10 setmiterlimit
+n -1000 1472 m -1000 -1000 l 1888 -1000 l 1888 1472 l cp clip
+ 0.06299 0.06299 sc
+25.000 slw
+n 338 432 10 10 0 360 DrawEllipse gs col0 s gr
+n 183 9 m 267 450 l gs col0 s gr
+n 273 447 m 273 444 250 427 376 22 c 376 22 400 -40 426 21 c gs col0 s gr
+n 9 390 m 9 410 35 480 59 411 c 59 411 150 224 177 3 c gs col0 s gr
+n 778 432 10 10 0 360 DrawEllipse gs col0 s gr
+n 623 9 m 707 450 l gs col0 s gr
+n 713 447 m 713 444 690 427 816 22 c 816 22 840 -40 866 21 c gs col0 s gr
+n 449 390 m 449 410 475 480 499 411 c 499 411 590 224 617 3 c gs col0 s gr
+$F2psEnd
+rs
+ \end{filecontents*}
+ \documentclass[10pt]{dinbrief}
+ \usepackage{german}
+ \usepackage{graphicx}
+ \fi
+
+\input brfkopf
+
+% \makelabels
+% \labelstyle{deskjet}
+
+\pagestyle{contheadings}
+
+\begin{document}
+
+\bottomtext{%
+ \makebox[\textwidth][c]{\small\sf
+ Bankverbindung $\cdot$ Kreissparkasse Gralsruhe %
+ (BLZ~999~500~00) 98~765~4
+ }
+}
+
+\date{9.~Juli 1999}
+
+\setlength{\topmargin}{-15pt}
+\backaddress{\FS}
+
+\begin{letter}{Prof.\ Dr.\ Hans Forschegut\\
+ Institut f"ur Abfallbeseitigung\\
+ Fachhochschule Waldstadt\\
+ Postfach 3322\\[\medskipamount]
+ 1100 Waldstadt}
+\yourmail{\ }
+\subject{Bitte um "Uberlassung einer Sammlung von Alka-Seltzer Flaschen}
+
+\opening{Sehr geehrter Herr Prof.\ Forschegut,}
+
+von Kollegen habe ich erfahren, da"s sich bei Ihnen eine gro"se
+Anzahl von Alka-Seltzer Flaschen mit nur noch einer Tablette
+angesammelt hat, da eine Flasche 25~Tabletten enth"alt, der
+Beipackzettel aber angibt, da"s stets 2~Tabletten gleichzeitig
+einzunehmen sind.
+
+Ich forsche gerade im Bereich m"oglicher Anwendungen einzelner
+Schmerztabletten. Falls Sie so freundlich w"aren, Ihre Alka-Seltzer
+Sammlung f"ur unser Projekt zu stiften, w"urde ich Ihnen gerne
+Vorabdrucke aller zuk"unftigen Forschungsberichte zur Verf"ugung
+stellen, die wir "uber dieses kritische Problem ver"offentlichen.
+
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \closing{Mit freundlichen Gr"u"sen}
+\else
+ \closing[{\includegraphics[height=2\baselineskip]{signatur.ps}}]%
+ {Mit freundlichen Gr"u"sen}
+\fi
+
+\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob Sie Ihre
+ Schenkung in Verbindung mit unserer Forschung von der Steuer
+ absetzen k"onnen.}
+\encl{Forschungsbericht Nr.\ 6/99 des IfA}
+\cc{Future Pharma\\
+ Bundesministerium zur Unterst"utzung der Pharmaindustrie}
+
+\end{letter}
+
+\end{document}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</example>
+% \end{macrocode}
+%
+% \section{Testing the class/style}
+%
+% \begin{macrocode}
+%<*brfbody>
+% \end{macrocode}
+% \begin{macrocode}
+\yourmail{\ }
+\subject{Bitte um "Uberlassung einer Sammlung von Alka-Seltzer Flaschen}
+
+\opening{Sehr geehrter Herr Prof.\ Forschegut,}
+
+von Kollegen habe ich erfahren, da"s sich bei Ihnen eine gro"se
+Anzahl von Alka-Seltzer Flaschen mit nur noch einer Tablette
+angesammelt hat, da eine Flasche 25~Tabletten enth"alt, der
+Beipackzettel aber angibt, da"s stets 2~Tabletten gleichzeitig
+einzunehmen sind.
+
+Ich forsche gerade im Bereich m"oglicher Anwendungen einzelner
+Schmerztabletten. Falls Sie so freundlich w"aren, Ihre Alka-Seltzer
+Sammlung f"ur unser Projekt zu stiften, w"urde ich Ihnen gerne
+Vorabdrucke aller zuk"unftigen Forschungsberichte zur Verf"ugung
+stellen, die wir "uber dieses kritische Problem ver"offentlichen.
+
+{\bf Testing \verb|itemize|}\hfil\break
+\begin{itemize}
+ \item Dies ist ein \verb|\item|.
+ \begin{itemize}
+ \item \verb|\item| in Level 2.
+ \item
+ \begin{itemize}
+ \item \verb|\item| in Level 3.
+ \end{itemize}
+ \end{itemize}
+ \item Zweites \verb|\item|.
+\end{itemize}
+
+{\bf Testing \verb|enumerate|}\hfil\break
+\begin{enumerate}
+ \item Dies ist ein \verb|\item|.
+ \begin{enumerate}
+ \item \verb|\item| in Level 2.
+ \item
+ \begin{enumerate}
+ \item \verb|\item| in Level 3.
+ \end{enumerate}
+ \end{enumerate}
+ \item Zweites \verb|\item|.
+\end{enumerate}
+
+{\bf Testing \verb|description|}\hfil\break
+\begin{description}
+ \item[First] Dies ist ein \verb|\item|.
+ \begin{description}
+ \item[Second] \verb|\item| in Level 2.
+ \item[Third]
+ \begin{description}
+ \item \verb|\item| in Level 3.
+ \item Zweites \verb|\item| in Level 3.
+ \end{description}
+ \end{description}
+ \item[Second] Zweites \verb|\item|.
+\end{description}
+
+{\bf Testing Lists}\hfil\break
+\begin{description}
+ \item[First] Dies ist ein \verb|\item|.
+ \begin{itemize}
+ \item \verb|\item| in Level 2.
+ \item
+ \begin{enumerate}
+ \item \verb|\item| in Level 3.
+ \item Zweites \verb|\item| in Level 3.
+ \end{enumerate}
+ \end{itemize}
+ \item[Second] Zweites \verb|\item|.
+ \item[Third]
+ \begin{enumerate}
+ \item Genius \LaTeX.
+ \item Why has been there so large distance between the label
+ and the first number in elder versions of \LaTeX?
+ \end{enumerate}
+\end{description}
+
+{\bf Testing \verb|verse|}\hfil\break
+\begin{verse}
+{\bf Die F"u"se im Feuer\/}
+
+Wild zuckt der Blitz,\\
+im fahlen Lichte steht ein Turn,\\
+der Donner rollt,\\
+ein Reiter k"ampft mit seinem Ro"s,\\
+springt ab un pocht ans Tor und l"armt.\\
+Sein Mantel saust im Wind,\\
+und knarrent "offnet jetzt das Tor ein Edelmann.\\
+\dots\\
+Der Reiter tritt in einen dunklen Ahnensaal.
+
+Von eines weiten Herdes Feuer schwach erhellt,\\
+droht hier ein Hugenott im Harnisch,\\
+dort ein Weib, ein stolzes Weib in braunen Ebenbild.\\
+Der Reiter wirft sich in den Sessel vor dem Herd\\
+und starrt in den lebendgen Brand\\
+\dots \\
+Die Flamme zischt, zwei F"u"se zucken in der Glut.
+
+\dots
+\end{verse}
+
+{\bf Testing \verb|quotation|}\hfil\break
+\begin{quotation}
+``Ich finde'', sagte einst Winston Churchill im
+Unterhaus, ``die Art von Kritik, wie ich sie am
+Sonntagmorgen bei meiner Ankunft in den Zeitungen
+fand, erinnert mich immer an die Geschichte von
+dem Matrosen, der in ein Hafenbecken sprang ---
+in Plymouth, glaube ich ---, um einen kleinen
+Jungen vom Ertrinken zu retten.
+
+Dort sprach eine Frau den Matrosen an:\\
+`Sind Sie der Mann, der meinen Sohn neulich
+aus dem Wasser gezogen hat?'\\
+Bescheiden erwiderte der Matrose:\\
+`Ja, das stimmt.'\\
+`Aha', sagte die Frau: `Ich suche Sie schon
+die ganze Zeit \dots\ Wo ist seine M"utze?'{}''
+\end{quotation}
+
+{\bf Testing \verb|quote|}\hfil\break
+\begin{quote}
+Ein {\em klassisches\/} Werk ist ein Buch,\\
+das die Leute loben,\\
+aber nie lesen. \hfill({\em E.\ Hemingway\/})
+\end{quote}
+
+{\bf Testing \verb|equation|}\hfil\break
+\begin{equation}
+ x^2 = y^2 + z^2
+\end{equation}
+
+{\bf Testing \verb|tabular|}\hfil\break
+
+{\bf Testing \verb|tabbing|}\hfil\break
+
+\closing{Mit freundlichen Gr"u"sen}
+
+\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob Sie Ihre
+ Schenkung in Verbindung mit unserer Forschung von der Steuer
+ absetzen k"onnen.}
+\encl{Forschungsbericht Nr.\ 6/99 des IfA}
+\cc{Future Pharma\\
+ Bundesministerium zur Unterst"utzung der Pharmaindustrie}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</brfbody>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*10pt>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{dinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[10pt]{dinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</10pt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*11pt>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[11pt,german]{dinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[11pt]{dinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</11pt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*12pt>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[12pt,german]{dinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[12pt]{dinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</12pt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*norm>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[norm,german]{dinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[norm]{dinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</norm>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*test>
+% \end{macrocode}
+% \begin{macrocode}
+\input brfkopf.tex
+
+\newcommand{\oneletter}{%
+\begin{letter}{%
+Herrn Professor\\
+Dr.\ Hans Forschegut\\
+Institut f"ur Abfallbeseitigung\\
+Fachhochschule Waldstadt\\
+Postfach 3322\\[\medskipamount]
+{\bf 1100 Waldstadt}}
+
+\input brfbody.tex
+
+\end{letter}
+
+}
+
+\begin{document}
+
+\bottomtext{%
+ \makebox[\textwidth][c]{\small\sf
+ Bankverbindung $\cdot$ Kreissparkasse Gralsruhe %
+ (BLZ~999~500~00) 98~765~4
+ }
+}
+
+\backaddress{\FS}
+
+\pagestyle{empty}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+\pagestyle{plain}
+
+\writer{Gussmann}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+\pagestyle{headings}
+
+\writer{Gussmann}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+\pagestyle{contheadings}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+% \end{macrocode}
+% \begin{macrocode}
+%</test>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*10pt|11pt|12pt|norm>
+\end{document}
+%</10pt|11pt|12pt|norm>
+% \end{macrocode}
+%
+% \section{Example for using the old {\tt dinbrief\/} API}
+%
+% \begin{macrocode}
+%<*dinbriefold>
+% \end{macrocode}
+% \begin{macrocode}
+ %
+ % example letter, example receiver addresses
+ %
+ % Most of the following code has taken from the dinbrief released
+ % at May 11th, 1992. This code is originated by Rainer Sengerling.
+ %
+ % The following example contains all commands of the old dinbrief.sty
+ % API (application programming interface). We recommend to use the
+ % new dinbrief API which is much more powerfull. The outcome may be
+ % quiet unsatisfied if you mix both APIs. We had made a few changes
+ % to adapt the file to \LaTeXe.
+ %
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{dinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[10pt]{dinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+
+\Etihoehe{41mm}%
+\Etirand{46.3mm}%
+\Etizahl{6}%
+\makelabels
+\spare{1}
+ %\pagestyle{empty}
+\begin{document}
+ %
+ % Musterbrief -- Anfang
+ % In der vorliegenden Version (beachte Auskommentierungen mit %)
+ % liefert er das Anwendungsbeispiel 4 von DIN 5008
+ %
+\begin{letter}{%
+Stadt G"ottingen\\
+Stadtbauamt\\
+Postfach 28 17\par
+3400 G"ottingen
+}
+\Postvermerk{Einschreiben}
+\Behandlungsvermerk{E\ i\ l\ t}
+\Datum{G"ottingen, 29.04.86}
+\Absender{Klaus Waldmann\\B"urgerstra"se 135\\3400 G"ottingen\\::Tel.\
+(05 51) 9 34 56}
+\Retourlabel
+\Fenster
+\Retouradresse{K. Waldmann $\cdot$ B"urgerstr.\ 135 $\cdot$
+ 3400 G"ottingen}
+\Betreff{Mein Bauvorhaben Waldrebenweg 9}
+\signature{K. Waldmann}
+\opening{Sehr geehrte Damen und Herren,}
+den Antrag zur Genehmigung f"ur den Neubau eines Einfamilienhauses auf
+meinem Grund\-st"uck G"ottingen, Waldrebenweg 9, hat der Architekt,
+Herr Dipl.-Ing.\ G. Schwarz, mit allen erforderlichen Unterlagen am
+03.01.86 eingereicht. Die Baugenehmigung habe ich bis heute nicht
+erhaltern.
+
+\Einrueckung{%Der folgende Text wird eingerueckt
+Da ich die Finanzierung des Bauvorhabens ohne die Baugenehmigung nicht
+endg"ultig kl"aren kann und der Beginn der Bauarbeiten nicht verz"ogert
+werden soll, bitte ich dringend, das Genehmigungsverfahren zu
+beschleunigen.
+} % Ende der Einrueckung
+
+Gleichzeitig bitte ich um Auskunft, ob damit zu rechnen ist, da"s der
+nur geschotterte Waldrebenweg in absehbarer Zeit zu einer "`Stra"se im
+vorl"aufigen Ausbau"' umgestaltet wird.
+
+\anlagenrechts
+\Anlagen{2 Anlagen}
+\Verteiler{Verteiler:\\Landratsamt}
+
+\closing{Mit freundlichen Gr"u"sen}
+\ps{Also bis bald!}
+\end{letter}
+
+ % normgerecht geschriebene Adressen
+
+\begin{letter}{Frau\\Erika Werner\\bei M"uller\\Bahnhofstr.\ 4 -- 6
+
+8580 Bayreuth}
+\end{letter}
+
+\begin{letter}{Frau\\ Annemarie Hartmann\\Vogelsangstr.\ 17 II\par
+2870 Delmenhorst}
+\Postvermerk{Briefdrucksache}
+\end{letter}
+
+\begin{letter}{02694/73\\Herrn Gutsverwalter\\Dipl.-Ldw.\ Otto Winter\\
+Hauptstr.\ 3
+
+8221 Alm Post Neukirchen}
+\Postvermerk{Nicht nachsenden}
+\end{letter}
+
+\begin{letter}{Eheleute\\Erika und Hans M"uller\\Hochstr.\ 4
+
+4709 Bergkamen}
+\Postvermerk{Warensendung}
+\end{letter}
+
+\begin{letter}{Herrn Staatsanwalt\\Dr.\ Ernst Meyer und Frau\\
+Talblick 2
+
+8200 Rosenheim}
+\Postvermerk{Eilzustellung -- auch nachts}
+\end{letter}
+
+\begin{letter}{Herrn Rechtsanwalt\\Dr.\ Otto Freiherr von Bergheim\\
+Leonhard-Eck-Str.\ 7 W 36
+
+8000 M"unchen 19}
+\Postvermerk{Einschreiben -- R"uckschein}
+\end{letter}
+
+\begin{letter}{Herrn Direktor\\Dipl.-Kfm.\ Kurt Gr"aser\\Massivbau AG\\
+Postfach 21 03 14
+
+5600 Wuppertal 21}
+\end{letter}
+
+\begin{letter}{Frau Luise Weber\\Herrn Max Weber\\Rosenstra"se 35
+
+7030 B"oblingen}
+\end{letter}
+
+\begin{letter}{Lack- und Farbwerke\\Dr.\ Hans Sendler \& Co.\\
+Abt.\ FDM 412/10\\Postfach 80 19 36\par
+6230 Frankfurt 80}
+\end{letter}
+
+\begin{letter}{Lehmann \& Krause KG\\z.\ H. Herrn E. Winkelmann\\
+Gartenhaus III r.\\Johannisberger Str.\ 5 a\par 1000 Berlin 31}
+\end{letter}
+
+\begin{letter}{W"aschegro"shandel\\Robert Bergmann\\Venloer
+Stra"se 80 -- 82\par 5000 K"oln 30}
+\end{letter}
+
+\begin{letter}{Firma\\Otto Pfleiderer\\Braunenweiler\\Hauptstr.\ 5\par
+7968 Saulgau 1}
+\Postvermerk{Drucksache}
+\end{letter}
+
+\begin{letter}{Amtsgericht Leer\\Grundbuchamt\\Postfach 11 24\par
+2950 Leer}
+\end{letter}
+
+\begin{letter}{Regierungspr"asident\\Dezernat 44.II.2\\
+Postfach 59 07\par 4400 M"unster}
+\end{letter}
+
+\begin{letter}{Nassauische Heimst"atte GmbH\\
+Abt.\ Landestreuhandstelle\\Postfach 10 29 17\par 6000 Frankfurt 1}
+\end{letter}
+
+\begin{letter}{Volksbank Friedberg\\Hauptzweigstelle Bad Nauheim\\
+Aliceplatz 4\par 6350 Bad Nauheim}
+\end{letter}
+
+\begin{letter}{VEB Ph"onix-Apparatewerk\\
+Absatzabteilung\\Inselstr.\ 14/20
+
+DDR-7021 Leipzig}
+\Postvermerk{Einschreiben}
+\end{letter}
+
+\begin{letter}{Mevrouv J. de Vries\\ Poste restante A. Cuypstraat\\
+Postbus 99730\\1000 NA AMSTERDAM
+
+NIEDERLANDE}
+\end{letter}
+
+\begin{letter}{Monsieur P. Dubois\\Expert en assurances\\
+Escalier 3, b\^atiment C\\4, rue Jean Jaur\`es
+
+F-58500 CLAMECY}
+\end{letter}
+
+\begin{letter}{Mr.\ W. Smith\\514 Kingsbridge Road\\PURLEY, SURREY\\DE
+1\\GROSSBRITANNIEN CRZ 4TH}
+\end{letter}
+
+\end{document}
+% \end{macrocode}
+% \begin{macrocode}
+%</dinbriefold>
+% \end{macrocode}
+%
+% \section{The documentation driver file}
+%
+% We have our own document class to format the \LaTeXe
+% documentation.
+% \changes{1.0.6}{1993/12/07}{Use class ltxdoc document class}
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{german}
+\originalTeX
+% \end{macrocode}
+%
+% We don't want everything to appear in the index
+%
+% We start with a nearly empty list and go then further and
+% further. So we can catch all interesting macros.
+%
+% \begin{macrocode}
+\DoNotIndex{\@empty,\\,\space,\@warning}
+\DoNotIndex{\begin,\bfseries,\bgroup,\box,\def,\edef,\egroup}
+\DoNotIndex{\else,\end,\endcsname,\expandafter,\fi,\gdef}
+\DoNotIndex{\hbox}
+\DoNotIndex{\hfil,\hfill,\hss,\ifx,\item,\let,\long,\message}
+\DoNotIndex{\nointerlineskip}
+\DoNotIndex{\originalTeX,\p@,\par,\parbox,\parsep,\relax}
+\DoNotIndex{\setlength}
+\DoNotIndex{\space,\string,\strut,\tmpa,\typeout,\verb}
+\DoNotIndex{\vbox,\vskip,\vspace,\vss}
+\DoNotIndex{\xdef,\z@,\z@skip}
+\DoNotIndex{\LaTeX,\LaTeXe}
+\DoNotIndex{\OnlyDescription,\PrintChanges,\PrintIndex,\RecordChanges}
+% \end{macrocode}
+% We do want an index, using linenumbers
+% \begin{macrocode}
+\EnableCrossrefs
+\CodelineIndex
+ %\DisableCrossrefs
+\RecordChanges
+ %\OnlyDescription
+\typeout{Expect some under- and overfull boxes}
+% \end{macrocode}
+% We also want the full details.
+% \begin{macrocode}
+\begin{document}
+\DocInput{dinbrief.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% End each file with |\endinput|.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput
+%% End of DINBRIEF.DTX (or CLS, STY, TEX)
diff --git a/macros/latex/contrib/dinbrief/dinbrief.ins b/macros/latex/contrib/dinbrief/dinbrief.ins
new file mode 100644
index 0000000000..59023cb356
--- /dev/null
+++ b/macros/latex/contrib/dinbrief/dinbrief.ins
@@ -0,0 +1,215 @@
+%%
+%% $Id: dinbrief.ins,v 1.14 2000/03/06 11:38:08 rz32 Exp $
+%%
+%% $Log: dinbrief.ins,v $
+%% Revision 1.14 2000/03/06 11:38:08 rz32
+%% <CR><LF> replaced by UNIX's newline.
+%%
+%% Revision 1.13 2000/01/19 00:32:54 rz32
+%% - Added support for additional file 'dinbrief.cfg'
+%% - Combined multiple \generateFile commands to a single \generate command
+%% - Second (identical) preamble remmoved
+%%
+%% Revision 1.12 2000/01/12 06:51:59 Gussmann
+%% License conditions changed to the Latex Project Public License.
+%%
+%% Revision 1.11 2000/01/03 05:06:25 Gussmann
+%% - Changed the license conditions to the LaTeX Project Public
+%% License (LPPL).
+%%
+%% Revision 1.10 1996/10/29 20:50:50 Gussmann
+%% - date changed.
+%%
+%% Revision 1.9 1995/07/06 02:37:49 Gussmann
+%% In both preambles word style canged to class.
+%%
+%% Revision 1.8 1995/07/06 01:32:14 Gussmann
+%% - Only copyright date changed.
+%% - Internal installation script d.ins works also now.
+%%
+%% Revision 1.7 1995/05/11 02:45:27 Gussmann
+%% Copyright message changed.
+%%
+%% Revision 1.6 1995/01/15 23:59:09 Gussmann
+%% Changes:
+%% * RCS comments deleted.
+%% * generation of dbold.tex added.
+%%
+%% Revision 1.5 1994/12/21 23:56:22 Gussmann
+%% * Global switch to overwrite all files, if there
+%% exist old ones.
+%%
+%% Revision 1.4 1994/11/16 18:34:47 Gussmann
+%% Test version complete.
+%%
+%% Revision 1.3 1994/11/16 22:07:57 Gussmann
+%% Generates now output files for test cases in the pt-sizes
+%% 10, 11, 12 and norm.
+%%
+%% Revision 1.2 1994/11/16 22:02:36 Gussmann
+%% *** empty log message ***
+%%
+%% Revision 1.1 1994/11/16 21:54:35 Gussmann
+%% Initial revision
+%%
+%% =======================================================================
+%%
+%% This docstrip .ins file makes it possible to unpack a docstrip
+%% file using initex. This would enable a doc format LaTeX distribution
+%% to be bootstrapped just from the web (2c) sources for TeX, and the
+%% LaTeX files. It saves building plain.fmt :-)
+%%
+%% David Carlisle 1993/10/23
+%%
+\catcode`\Z=\catcode`\%
+\ifnum1=\catcode`\{{\egroup\else
+ \catcode`\Z=9
+Z
+Z \catcode`\{=1 \catcode`\}=2
+Z \catcode`\#=6 \catcode`\^=7
+Z \catcode`\@=11 \catcode`\^^L=13
+Z \let\bgroup={ \let\egroup=}
+Z
+Z \dimendef\z@=10 \z@=0pt \chardef\@ne=1 \countdef\m@ne=22 \m@ne=-1
+Z
+Z \def\wlog{\immediate\write\m@ne} \def\space{ }
+Z
+Z \count10=22 % allocates \count registers 23, 24, ...
+Z \count15=9 % allocates \toks registers 10, 11, ...
+Z \count16=-1 % allocates input streams 0, 1, ...
+Z \count17=-1 % allocates output streams 0, 1, ...
+Z
+Z \def\alloc@#1#2#3{\advance\count1#1\@ne#2#3\count1#1\relax}
+Z
+Z \def\newcount{\alloc@0\countdef} \def\newtoks{\alloc@5\toksdef}
+Z \def\newread{\alloc@6\chardef} \def\newwrite{\alloc@7\chardef}
+Z
+Z \def\newif#1{%
+Z \@if\def#1{true}{\let#1\iftrue}\@if\def#1{false}{\let#1\iffalse}%
+Z \@if\relax#1{false}}
+Z
+Z \def\@if#1#2#3{%
+Z \expandafter#1\csname\expandafter\@gobblethree\string#2#3\endcsname}
+Z \def\@gobblethree#1#2#3{}
+Z
+Z \def\loop#1\repeat{\def\body{#1}\iterate}
+Z \def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
+Z \let\repeat\fi
+Z
+Z \def\empty{}
+Z
+Z \def\tracingall{\tracingcommands2 \tracingstats2
+Z \tracingpages1 \tracingoutput1 \tracinglostchars1
+Z \tracingmacros2 \tracingparagraphs1 \tracingrestores1
+Z \showboxbreadth 10000 \showboxdepth 10000 \errorstopmode
+Z \errorcontextlines 10000 \tracingonline1 }
+Z
+\bgroup}\fi\catcode`\Z=11
+
+
+\def\batchfile{dinbrief.ins}
+\input docstrip.tex
+
+\let\OriginalAsk=\Ask
+\def\Ask#1#2{%
+ \OriginalAsk{#1}{#2}%
+ \global\let\Ask\OriginalAsk
+ \Ask\noprompt{%
+ By default you will be asked this question for every file.^^J%
+ If you enter `y' now, I will asssume `y' for all future questions^^J%
+ without prompting.}%
+ \ifx\y\noprompt\gdef\Ask##1##2{\def##1{y}}\else
+ \ifx\yes\noprompt\gdef\Ask##1##2{\def##1{y}}\fi\fi}
+
+\keepsilent
+
+
+\preamble
+
+=======================================================================
+
+Copyright (C) 1993, 96, 97 by University of Karlsruhe (Computing Center).
+Copyright (C) 1998, 2000 by University of Karlsruhe (Computing Center)
+ and Richard Gussmann.
+All rights reserved.
+For additional copyright information see further down in this file.
+
+This file is part of the DINBRIEF package
+-----------------------------------------------------------------------
+
+It may be distributed under the terms of the LaTeX Project Public
+License (LPPL), as described in lppl.txt in the base LaTeX distribution.
+Either version 1.1 or, at your option, any later version.
+
+The latest version of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+LPPL Version 1.1 or later is part of all distributions of LaTeX
+version 1999/06/01 or later.
+
+
+For error reports in case of UNCHANGED versions see readme files.
+
+Please do not request updates from us directly. Distribution is
+done through Mail-Servers, TeX organizations and others.
+
+If you receive only some of these files from someone, complain!
+
+\endpreamble
+
+\generate{\file{dinbrief.sty}{\from{dinbrief.dtx}{shortstyle}}
+ \file{dinbrief.cls}{\from{dinbrief.dtx}{class}}
+ \file{dinbrief.tex}{\from{dinbrief.dtx}{documentation}}
+ \file{dintab.tex}{\from{dinbrief.dtx}{dintab}}
+ \file{brfkopf.tex}{\from{dinbrief.dtx}{brfkopf}}
+ \file{example.tex}{\from{dinbrief.dtx}{example}}
+ \file{brfbody.tex}{\from{dinbrief.dtx}{brfbody}}
+ \file{test10.tex}{\from{dinbrief.dtx}{test,10pt}}
+ \file{test11.tex}{\from{dinbrief.dtx}{test,11pt}}
+ \file{test12.tex}{\from{dinbrief.dtx}{test,12pt}}
+ \file{testnorm.tex}{\from{dinbrief.dtx}{test,norm}}
+ \file{dbold.tex}{\from{dinbrief.dtx}{dinbriefold}}
+ \file{dinbrief.drv}{\from{dinbrief.dtx}{driver}}
+ \nopreamble\nopostamble
+ \file{dinbrief.cfg}{\from{dinbrief.dtx}{cfg}}
+ }
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space dinbrief.cls}
+\Msg{* \space\space dinbrief.sty}
+\Msg{*}
+\Msg{* To setup a standard configuration for letters, edit the}
+\Msg{* configuration file}
+\Msg{*}
+\Msg{* \space\space dinbrief.cfg}
+\Msg{*}
+\Msg{* and copy it to an appropriate directory of your search}
+\Msg{* path for TeX input files.}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.drv' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\Msg{}
+\Msg{********************************************************}
+\Msg{*}
+\Msg{* Now run LaTeX 2.09 or LaTeX 2e and enjoy the dinbrief}
+\Msg{*}
+\Msg{********************************************************}
+\Msg{}
+
+
+\endinput
+
+# Local Variables:
+# mode: latex
+# End:
diff --git a/macros/latex/contrib/dinbrief/dinbrief.pdf b/macros/latex/contrib/dinbrief/dinbrief.pdf
new file mode 100644
index 0000000000..91ac2a1a54
--- /dev/null
+++ b/macros/latex/contrib/dinbrief/dinbrief.pdf
Binary files differ
diff --git a/macros/latex/contrib/dinbrief/liesmich b/macros/latex/contrib/dinbrief/liesmich
new file mode 100644
index 0000000000..f15ef4d1bf
--- /dev/null
+++ b/macros/latex/contrib/dinbrief/liesmich
@@ -0,0 +1,93 @@
+%% ======================================================================
+%% This is LIESMICH <2000/01/19>
+%% ======================================================================
+
+Diese neue Version 1.72 des LaTeX-Paketes 'dinbrief' ist lauffaehig
+unter LaTeX2e ab der Version vom 01.12.96 oder unter LaTeX 209.
+Unter LaTeX 209 muss man gewisse Einschraenkungen in Kauf nehmen -
+beispielsweise wird die neu eingefuehrte Konfigurationsdatei unter
+LaTeX 209 nicht unterstuetzt und die vollstaendige Dokumentation des
+Paketes in 'dinbrief.drv' laesst sich nicht mit LaTeX 209 formatieren;
+Alle Beispiele und das Benutzerhandbuch koennen aber auch unter
+LaTeX 209 formatiert werden.
+
+Anmerkungen und Fehlerreports bitte an
+ Richard Gussmann
+ EMAIL: Internet: richard@gussmann.de
+ oder an
+ Dr. Klaus Braune
+ EMAIL: Internet: braune@rz.uni-karlsruhe.de
+
+1) Aenderungen
+ 1.1 Im AUX-File koennen die enthaltenen Befehle nun auch das
+ at-Zeichen (Klammeraffe) enthalten.
+ 1.2 Unterstuetzung beider Formen der DIN Norm und Befehle zum
+ Aendern des Layouts (z.B. Verschieben der Anschrift)
+ 1.3 Standardeinstellungen koennen in einer Konfigurationsdatei
+ vorgenommen werden. In der Konfigurationsdatei koennen
+ alle Befehle auftreten, die vor \begin{document} zulaessig
+ sind, z.B. \address, \bottomtext (kann jetzt vor
+ \begin{document} verwendet werden), \signature und auch
+ die neuen Befehle wie \nobackaddressrule (schaltet die
+ Linie unter dem Absender ab).
+
+2) Weitere Hinweise
+ 2.1 Neben den bisherigen Befehlen werden nun auch fast alle
+ Befehle aus Rainer Sengerlings dinbrief unterstuetzt.
+ 2.2 Die Befehle \Anlagen und \Verteiler verhalten sich jetzt
+ genau so wie in R. Sengerlings dinbrief.
+ 2.3 Die Befehle \encl und \cc haben ein optionales Argument
+ bekommen. Damit kann die Default-Ueberschrift fuer einzelne
+ Briefe geaendert werden. Ist das optionale Argument leer,
+ so unterbleibt die Ausgabe der Ueberschriftenzeile.
+ Form: \encl[andere Ueberschrift]{Anlagentexte}
+ \cc[andere Ueberschrift]{Verteilvermerke}
+ Beispiel: \encl[Anlagen]{Zeugnis\\Lebenslauf\\Lichbild}
+ \encl[]{Anlagen}
+ \cc[]{800 verteilte Handzettel}
+
+3) Installation
+ 3.1 Kopiere die Dateien dinbrief.ins und dinbrief.dtx in ein beliebiges
+ Verzeichnis.
+ 3.2 tex -i dinbrief.ins (DOS/OS/2 emTeX) oder
+ initex dinbrief.ins oder
+ latex dinbrief.ins
+ (Die notwendigen Umgebungsvariablen muessen natuerlich gesetzt sein.)
+ 3.3 Kopiere die Dateien dinbrief.cls und dinbrief.sty in ein
+ Verzeichnis, das die TeX und LaTeX macros enthaelt
+ z.B. c:\emtex\texinput oder
+ c:\emtex\texinput\latex2e (fuer den betatest).
+ 3.4 Soll eine Konfigurationsdatei verwendet werden, ist die Datei
+ dinbrief.cfg geeignet anzupassen (die Beispieldatei enthaelt nur
+ Kommentare) und in ein Verzeichnis zu legen, das von TeX nach
+ Input-Dateien durchsucht wird. Gegebenenfalls koennen in
+ unterschiedlichen Verzeichnissen fuer dort bearbeitete Briefe
+ unterschiedliche Konfigurationsdateien angelegt werden.
+ 3.5 dinbrief.tex ist die Anleitung zum dinbrief.
+ dinbrief.drv ist die Treiberdatei fuer Dokumentation und Anleitung.
+ example.tex ist ein Beispiel.
+ brfkopf.tex ist ein Beispiel fuer einen Briefkopf
+ (wird von example.tex benoetigt)
+ dbold.tex ist Rainer Sengerlings Beispiel zu seinen
+ dinbrief-Befehlen.
+
+4) Abweichungen zu Rainer Sengerlings dinbrief
+ 4.1 Der Stil `german' muss mit einem
+ \usepackage{german}
+ geladen werden. Die Angabe \documentclass[12pt,german]{dinbrief}
+ fuehrt NICHT zur gewuenschten Ausgabe.
+ 4.2 Der Befehl \heute wird nicht unterstuetzt.
+ 4.3 Die Befehle \Retourlabel und \Fenster erzeugen nur eine Warnung
+ und aendern das Layout des Briefes NICHT bzw. erzeugen kein
+ weiteres Label. (Dies kann sich in einer der naechsten
+ Versionen aendern.)
+
+5) Bekannte Fehler
+ 5.1) Der Stil `longtable' funktioniert nicht.
+ 5.2) Der Pagestyle contheadings arbeitet nicht in allen Faellen korrekt.
+ 5.3) Der Stil `merge' funktioniert nicht.
+
+
+%% ======================================================================
+%% End of LIESMICH
+%% ======================================================================
diff --git a/macros/latex/contrib/dinbrief/readme b/macros/latex/contrib/dinbrief/readme
new file mode 100644
index 0000000000..9b6baf1a0b
--- /dev/null
+++ b/macros/latex/contrib/dinbrief/readme
@@ -0,0 +1,221 @@
+%% ======================================================================
+%% This is README <2000/01/19>
+%% ======================================================================
+
+This file is part of the dinbrief package.
+------------------------------------------
+
+TABLE OF CONTENTS
+=================
+
+1. GENERAL INFORMATION
+2. ERROR REPORTS
+3. FILES IN THIS DISTRIBUTION
+4. INSTALLATION
+
+1. GENERAL INFORMATION
+======================
+
+IMPORTANT NOTICE:
+
+You are not allowed to change this readme file.
+
+Distribution of unchanged versions:
+
+ Copyright (C) 1993, 96, 97 by University of Karlsruhe (Computing Center).
+ Copyright (C) 1998, 2000 by University of Karlsruhe (Computing Center)
+ and Richard Gussmann.
+ All rights reserved.
+ For additional copyright information see further down in this file.
+
+ This file is part of the DINBRIEF package
+
+ It may be distributed under the terms of the LaTeX Project Public
+ License (LPPL), as described in lppl.txt in the base LaTeX distribution.
+ Either version 1.1 or, at your option, any later version.
+
+ The latest version of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+ LPPL Version 1.1 or later is part of all distributions of LaTeX
+ version 1999/06/01 or later.
+
+ For error reports in case of UNCHANGED versions see readme files.
+
+ Please do not request updates from us directly. Distribution is
+ done through Mail-Servers, TeX organizations and others.
+
+ If you receive only some of these files from someone, complain!
+
+ Redistribution of unchanged files is allowed provided that all files
+ listed in the corresponding package README file are distributed
+ including this readme file.
+
+ However, if these files are distributed by established suppliers as
+ part of a complete TeX distribution, and the structure of the
+ distribution would make it difficult to distribute the whole set of
+ files, *those parties* are allowed to distribute only some of the
+ files provided that it is made clear that the user will get a
+ complete distribution-set upon request to that supplier (not me).
+
+ Notice that this permission is not granted to the end user.
+
+Generation and distribution of changed versions:
+
+ The generation of changed versions of the files included in the
+ packages is allowed under the following restrictions:
+
+ - You rename the file before you make any changes to it.
+
+ - You acknowledge the origin of the original version in the file and
+ keep the information that it (or a changed version) has to be
+ distributed under the restrictions mentioned in this file.
+
+ - You change the ERROR REPORT address so that we don't get error
+ reports for files *not* maintained by us.
+
+ The distribution of changed versions of the files included in the
+ packages is allowed under the following restrictions:
+
+ - You provide the user with information how to obtain the original
+ package or, even better, distribute it with your files.
+
+ - You make sure that the changed versions contain a notice that
+ prevents others to take money for distribution or use of your
+ files, i.e. they have to be distributed under the restrictions
+ mentioned in this file.
+
+ - You inform us that you created a changed version of the files.
+ This is only necessary if you want to distribute it to others.
+
+2. ERROR REPORTS
+================
+
+ Before you report an error please check that
+
+ - the error is not already mentioned in the *.bug file of the
+ distribution. (In this case it is a feature :-)
+
+ - the error isn't caused by obsolete versions of other software;
+ LaTeX from 1986 is a good candidate ...
+
+ - you use an original version of the package.
+
+ If you think you found a genuine bug please report it together
+ with the following information:
+
+ - version of the file
+
+ - version (date!) of your LaTeX
+
+ - a short test file showing the behavior with all unnecessary
+ code removed.
+
+ - a transcript (log file) of the session that shows the error.
+
+Please note that it is important to make the file as small as possible
+to allow us to find and fix the error soon.
+
+Error reports in case of UNCHANGED versions to
+
+ K.D. Braune
+ Universit\"at Karlsruhe
+ Rechenzentrum
+ Postfach 6980
+ 76128 Karlsruhe
+ Internet: <braune@rz.uni-karlsruhe.de>
+
+ Richard Gussmann
+ Max-Beckmann-Stra\ss{}e 31
+ 76227 Karlsruhe
+ Internet: <richard@gussmann.de>
+
+Please send error reports for contributed files to the original authors.
+
+3. FILES IN THIS DISTRIBUTION
+=============================
+
+You should get the following files:
+
+ dinbrief.dtx `dinbrief' class/style for LaTeX in docstrip format.
+
+ readme This File
+
+ dinbrief.ins This is the installation script that will produce
+ the executable files in this package and the driver
+ files for the documentation when run through LaTeX
+ or TeX.
+
+4. INSTALLATION
+===============
+
+To produce the executable files please run dinbrief.ins through LaTeX or
+TeX, i.e., say
+
+ latex dinbrief.ins
+
+or whatever is necessary to process a file with LaTeX on your
+system. This will generate all necessary files. If you already have
+older versions of the files, the script will ask whether or not you
+want to overwrite those versions. Note, that the script calls
+docstrip.tex internally which is distributed with LaTeX.
+
+This script will produce the following files:
+
+ dinbrief.cls The dinbrief class file for LaTeX2e.
+ dinbrief.sty The dinbrief style file for LaTeX 2.09.
+ dinbrief.cfg A sample configuration file for the dinbrief class
+ for LaTeX2e.
+ dinbrief.drv The driver file for producing the Users Guide
+ and the documentation.
+ dinbrief.tex The Users Guide.
+ dintab.tex A list of available commands.
+
+ example.tex An example of a letter (needs brfkopf.tex).
+ brfkopf.tex An example letter head.
+ brfbody.tex LaTeX input file for the testXXXX.tex files.
+ test10.tex Files for testing the class/style.
+ test11.tex "
+ test12.tex "
+ testnorm.tex "
+ dbold.tex letter with R. Sengerlings commands.
+
+To produce the documentation run the corresponding driver files
+through LaTeX. You are allowed to change the driver files to get a
+special layout, etc.
+
+=======================================================================
+@stylefile{Ltall
+shortpackagename = {dinbrief},
+longpackagename = {dinbrief},
+baseformats = {\LaTeX\ 2.09 and \LaTeXe},
+version = {$Revision: 1.72 $},
+date = {$Date: 2000/01/19 14:51:04 $},
+author = {K.D. Braune, R. Gussmann,
+ Klaus.Braune@rz.uni-karlsruhe.de
+ richard@gussmann.de
+ Universit\"at Karlsruhe
+ Rechenzentrum
+ Postfach 6980
+ 76128 Karlsruhe
+ +49 721 608-40 31},
+abstract = {This document serves as User's Guide
+ and as documentation of the new \LaTeX-Style
+ or a \LaTeXe-Class. This class/style implements
+ a new document layout for writing letters,
+ according to the rules of DIN (Deutsches
+ Institut f\"ur Normung, German standardization
+ institute). The User's Guide is written in
+ German, since we assume the class/style is of
+ minor interest outside Germany. Of course,
+ most of the macros are explained in English.},
+support = {yes},
+comments = {},
+requirements = {},
+incompatibilities = {not full compatible to R. Sengerlings dinbrief}}
+=======================================================================
+
+%% ======================================================================
+%% End of README
+%% ======================================================================