From ecf966f305f6aeff2bbdf42c82d8425921aa9eda Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Jan 2006 23:03:17 +0000 Subject: source 1 git-svn-id: svn://tug.org/texlive/trunk@105 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/dinbrief/dinbrief.drv | 85 + .../texmf-dist/source/latex/dinbrief/dinbrief.dtx | 7653 ++++++++++++++++++++ .../texmf-dist/source/latex/dinbrief/dinbrief.ins | 215 + 3 files changed, 7953 insertions(+) create mode 100644 Master/texmf-dist/source/latex/dinbrief/dinbrief.drv create mode 100644 Master/texmf-dist/source/latex/dinbrief/dinbrief.dtx create mode 100644 Master/texmf-dist/source/latex/dinbrief/dinbrief.ins (limited to 'Master/texmf-dist/source/latex/dinbrief') diff --git a/Master/texmf-dist/source/latex/dinbrief/dinbrief.drv b/Master/texmf-dist/source/latex/dinbrief/dinbrief.drv new file mode 100644 index 00000000000..c132722a2ec --- /dev/null +++ b/Master/texmf-dist/source/latex/dinbrief/dinbrief.drv @@ -0,0 +1,85 @@ +%% +%% This is file `dinbrief.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dinbrief.dtx (with options: `driver') +%% +%% ======================================================================= +%% +%% 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! +%% +%% +%% \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 \~} +%% +\documentclass{ltxdoc} +\usepackage{german} +\originalTeX +\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} +\EnableCrossrefs +\CodelineIndex + %\DisableCrossrefs +\RecordChanges + %\OnlyDescription +\typeout{Expect some under- and overfull boxes} +\begin{document} +\DocInput{dinbrief.dtx} +\PrintChanges +\PrintIndex +\end{document} +\endinput +%% +%% End of file `dinbrief.drv'. diff --git a/Master/texmf-dist/source/latex/dinbrief/dinbrief.dtx b/Master/texmf-dist/source/latex/dinbrief/dinbrief.dtx new file mode 100644 index 00000000000..12f214df71e --- /dev/null +++ b/Master/texmf-dist/source/latex/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}} +======================================================================= +% +% +% $Log: dinbrief.dtx,v $ +% Revision 1.73 2000/03/02 12:49:21 rz32 +% 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 +% +% \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 +% +% \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 +% +% \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 +% +% \fi +% \iffalse +%<*documentation|dintab> +% \fi +% \iffalse +\end{document} +% \fi +% \iffalse +% +% \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{} +% \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{} +% \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 +% \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{} +% \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{} +% \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 +% \message{ignoring oddfoot in contheadings}% + \else + \addtocounter{page}{1}% + \hfil--- \thepage{} ---\hfil% + \addtocounter{page}{-1}% +% \message{executing oddfoot in contheadings}% + \fi} + \def\@evenhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date + \hfil\pagename{} \thepage}}% + \def\@evenfoot{\ifka@db@lastpage + \relax +% \message{ignoring evenfoot in contheadings}% + \else + \addtocounter{page}{1}% + ~\hfil--- \thepage{} ---~% + \addtocounter{page}{-1}% +% \message{executing evenfoot in contheadings}% + \fi} +% \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} +% +% \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 +% +% \end{macrocode} +% +% This file only inputs the dinbrief.cls file. +% +% \begin{macrocode} +%<*shortstyle> +\input dinbrief.cls +% +% \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} +%< +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*10pt|11pt|12pt|norm> +\end{document} +% +% \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} +% +% \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} +% +% \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/Master/texmf-dist/source/latex/dinbrief/dinbrief.ins b/Master/texmf-dist/source/latex/dinbrief/dinbrief.ins new file mode 100644 index 00000000000..59023cb3562 --- /dev/null +++ b/Master/texmf-dist/source/latex/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 +%% 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: -- cgit v1.2.3