summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mpdinbrief
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/mpdinbrief
Initial commit
Diffstat (limited to 'macros/latex/contrib/mpdinbrief')
-rw-r--r--macros/latex/contrib/mpdinbrief/lego.eps1056
-rw-r--r--macros/latex/contrib/mpdinbrief/mpdinbrief.README74
-rw-r--r--macros/latex/contrib/mpdinbrief/mpdinbrief.dtx6743
-rw-r--r--macros/latex/contrib/mpdinbrief/mpdinbrief.ins250
-rw-r--r--macros/latex/contrib/mpdinbrief/mpdinbrief.pdfbin0 -> 364199 bytes
5 files changed, 8123 insertions, 0 deletions
diff --git a/macros/latex/contrib/mpdinbrief/lego.eps b/macros/latex/contrib/mpdinbrief/lego.eps
new file mode 100644
index 0000000000..14db0a6a79
--- /dev/null
+++ b/macros/latex/contrib/mpdinbrief/lego.eps
@@ -0,0 +1,1056 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/mp/pictures/Lego2.ps
+%%BoundingBox: 0 0 71 61
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 197 string def
+
+% define space for color conversions
+/grays 197 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% size of image (on paper, in 1/72inch coords)
+70.92000 60.84000 scale
+
+197 169 8 % dimensions of data
+[197 0 0 -169 0 169] % mapping matrix
+{currentfile pix readhexstring pop}
+image
+
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7e7e7f7ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffce9c7b6b7b847b6b84ce
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff7846badcef7f7f7f7e7ad6b
+adffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff849cffffffffffffffffffe7
+8484addeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff9c6bffffffffffffffffffffce
+cead846b6b84ade7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe7847bcee7f7ffffffffffffe7adad
+ade7ffffdead846b7b84847b7b849cceffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffad6badffdedececee7f7ffe7ceadceff
+addeffffffffffffdececee7e7ce9c6b84ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffe7847bdeffffcef7ffe7e7e7f7e7e7e7ffff
+adceffffffffffffffffffffffffffff8484cef7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffad6badffffffffdedefffffff7e7e7e7e7ffce
+adf7ffffffffffffffffffffffffffffde9c7b6b849ccef7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffe7ad7b7bdefffffffffff7cedef7f7e7e7e7e7ceadad
+f7ffffffffe7ffffffffffffffffffce9cceffe7ce9c6b6b84adadad9c9caddeffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffe79c6b84adffffffffffffffffffe7cecee7f7f7decee7ff
+ffffffffe7cecee7e7fffffff7ce9cade7adffffffffffe7ad9c849c9c9c9c6b6badffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffe76b9ce7ffffffffffffffffffffffffffffffffffffffffff
+ffffffffe7def7decedee7f7e7cedeffff9cffffffffffffffffffffffffffffde6badff
+ffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff6badffffffffffffffffffffe7e7ffffffffffffffffffffff
+fffffffff7cefffffff7e7e7e7e7f7ffceadffffffffffffffffffffffffffffffe7846b
+9cade7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffe78484ffffffffffffffffffffce9cadffffffffffffffffffffff
+ffffffffffcee7fffffff7e7e7e7e7ad9ce7ffffffffffffffffffffffffffffffdecece
+ad846b6b9ccef7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffad5a9ce7dee7ffffffffffffdeadade7adf7ffffffffffffffffffff
+ffffffffffffcecedee7e7f7e7ceadcef7fffffffff7dee7ffffffffffffffe7adadadf7
+fffff7cead7b9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffe7846bdeffe7dedececee7f7f7deaddeffffade7ffffffffffffffffffff
+ffffffffffffffffe7e7f7fffff7ffffffffffffffe7decececee7f7fff7ceadceffade7
+ffffffffe7adade7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffce6b9cffffffe7defffff7e7e7e7e7e7fffff79cf7ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe7ceffffe7e7e7f7e7e7e7ffffade7
+ffffffce9ce7e7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffff7846bcefffffffff7cef7fffff7e7e7e7e7f7de9cceffffffffffffffffffffff
+ffffffffceceffffffffffffffffffffffffffffffffcefffffffff7e7e7e7e7ffceadff
+ffffceadf7ffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffff845adef7ffffffffffe7cedee7f7e7e7e7ceadaddefffffffff7f7ffffffffffff
+ffffffce9cadffffffffffffffffffffffffffffffffe7cee7fffff7e7e7e7ceadadf7ff
+f7adadffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffff5a9ce7cecedee7ffffffffe7cedee7fff7e7e7ffffffffffffdececee7f7ffffff
+f7ce9cadf7ade7ffffffffffffffffffffffffffffffffe7cececedef7f7e7ceceffffe7
+adceffffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffff846bfffff7e7cececee7f7ffffffffffffffffffffffffffffdee7e7decedef7f7
+decee7ffffade7ffffffffffffffffffffffffffffffffffffffffffffffffffffffe79c
+ceffffffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffad5affffffffffffe7dececedee7ffffffffffffffffffffffdedeffffffe7e7e7
+e7e7f7ffe79cf7ffffffffffffffffffffffffffffffffffffffffffffffffffffce9ce7
+ffffffffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffe742f7fffffffffffffffff7e7cececee7f7fffffffffffffff7cef7fffff7f7e7
+e7e7e7ce9cdeffffffffffffffffffffffffffffffffcee7ffffffffffffffffadadf7ff
+ffffffffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffff42ceffffffffffffffffffffffffe7dececedee7ffffffffffe7cecedee7e7f7
+e7ceadade7ffffffffffe7f7fffffffffffffffff7adadcefffffffffffff7adadffffff
+ffffffffffffe7ceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffff5a9cfffffffffffffffffffffffffffffff7e7cececee7f7ffffffe7dee7f7ff
+f7e7f7fffffffffffff7cecedee7f7ffffffe7ce9ccee7adffffffffffe7adceffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffff846bffffffffffffffffffffffffffffffffffffffe7dececedee7ffffffffff
+fffffffffffffffffff7ceffe7cecee7f7f7decee7ffe7adffffffffde9cdeffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffad5afffffffffffffffffffffffffffffffffffffffffffff7e7cececee7f7ff
+ffffffffffffffffffffcefffffffff7e7e7e7e7ffffceadffffffce9ce7ffffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffde42f7ffffffffffffffffffffffffffffffffffffffffffffffffffe7decece
+dee7ffffffffffffffffdecefffffff7f7e7e7e7e7adadf7ffffadadf7ffffffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffff42cefffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
+e7cececee7f7ffffffffffdecedee7e7e7f7e7ceadcefffff7adadffffffffffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffff5a9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffe7dececedee7ffffffffe7dee7fffff7e7ffffffe79cceffffffffffffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffff7b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff7e7cececee7f7ffffffffffffffffffde9cceffffffffffffffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffad5affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe7dececedee7ffffffffffce9ce7ffffffffffffffffffffffff
+ffffffffffffffceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffde42f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffff7e7cececee7f7adadf7ffffffffffffffffffffffffff
+ffffffffffffffcee7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffff742ceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe7de9c9cffffffffffffffffffffffffffffff
+ffffffffffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffff5a9cffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff9c9cffffffffffffffffffffffffffffff
+ffffffffffffffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffff7b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffad84ffffffffffffffffffffffffffffff
+ffffffffffffffdee7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffad5affffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffce84ffffffffffffffffffffffffffffff
+ffffffffffffe7ceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffde42f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffde6bffffffffffffffffffffffffffffff
+ffffffffffceceffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffffff742e7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe76bf7ffffffffffffffffffffffffffff
+ffffffffcee7fff75a9cffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffff5a5aceffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff76be7ffffffffffffffffffffffffffff
+ffffffcee7ffffe7006bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffde7b42427bcef7ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff7bceffffffffffffffffffffffffffff
+ffffcee7fffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff9c5af7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffffffffffff7ce7b42426bade7ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff84ceffffffffffffffffffffffffffff
+ffcee7fffffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff6b00e7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffce845a425a9ce7ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff84adffffffffffffffffffffffffffe7
+cee7fffffffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffe79c5a425a84deffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff9c9cffffffffffffffffffffffffe7ce
+fffffffffffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe7ad6b424284ceffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffad9cffffffffffffffffffffffe7ceff
+fffffffffffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff7ad6b42426badf7ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffad84ffffffffffffffffffffe7ceffff
+fffffffffffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffce8442426b9ce7ffffff
+ffffffffffffffffffffffffffffffffffffffffce84ffffffffffffffffffe7ceffffff
+fffffffffffffff7007bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde9c5a425a9cde
+ffffffffffffffffffffffffffffffffffffffffde6bffffffffffffffffceceffffffff
+fffffffffffff7f70084ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe79c6b42
+4284cefffffffffffffffffffffffffffffffffff76bf7ffffffffffffcee7ffffffffff
+ffffffffffffad84005a84f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
+ad6b42427bcef7ffffffffffffffffffffffffffff6be7ffffffffffcee7ffffffffffff
+ffffffffffffce0000005affffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffce7b42426bade7ffffffffffffffffffffff7bceffffffffcee7ffffffffffffff
+fffffffffffff72100009cffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffce845a425a9ce7ffffffffffffffff84ceffffffcee7ffffffffffffffff
+ffffffffffffff5a0000ceffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffe79c5a425a84ceffffffffff9cadffe7cee7ffffffffffffffffff
+ffffffffffffff840008e7ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffe7ad6b42427bcef7ff9c9cf7ceffffffffffffffffffffff
+ffffffffffffffad0042ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff7ce7b42427b846bdeffffffffffffffffffffffff
+ffffffffffffffe7006bffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffce845a9cffffffffffffffffffffffffff
+ffffffffffffffff299cffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff6bceffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffadf7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff7adceffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff7847b7b6b9c9cadceffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffe7ceffffffffffffffffffffff
+fffffffffffff77b9cffffdeadad9c6b6bceffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffff
+fffffffffff77b9cffffffffffffffffce6b7baddeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff7ce7b00deceffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffff
+fffffffff77b9cffffffffffffffffffffffce846b6b9ccef7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff5a290029adfffffffffffffffff75a
+9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffff
+fffffff77b9cffffffffffffffffffffffffffffffde9c6b6b84ade7ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff6b000008e7ffffffffffffffffe700
+6bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffff
+fffff77b9cffffe7ffffffffffffffffffadadffffffffffe7ad846b84adadcef7ffffff
+ffffffffffffffffffffffffffffffffffffffffffad000042fffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffffffffff
+fff77b9cffffe7cecee7ffffffffffde9cadadf7ffffffffffffffe7ad9c9c846b9ce7ff
+ffffffffffffffffffffffffffffffffffffffffffde08006bfffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff7ce7b00deceffffffffffffffffff
+f77b9cffffffdee7e7cecedee7ffdeaddeff9cffffffffffffffffffffffffffe79c5a9c
+cef7ffffffffffffffffffffffffffffffffffffffff29009cfffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff5a290029adfffffffffffffffff7
+7b9cffffffffe7cefffffff7e7e7e7e7ffceadffffffffffffffffffffffffffffffe7ad
+6b6b84ade7ffffffffffffffffffffffffffffffffff5a00cefffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff6b000008e7ffffffffffffffe77b
+9cffffffffffffdecee7fffff7e7e7deadadf7ffffffffffffffffffffffffffffffffff
+ffe7ad846b84ade7ffffffffffffffffffffffffffff8408f7fffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffad000042ffffffffffffffe77bad
+ffffffffffffffffe7cecedee7f7e7cecefffffffffffff7f7ffffffffffffffffffe7ce
+ffffffffe7ad846b6b9ccee7f7ffffffffffffffffffad42fffffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffde08006bffffffffffffe77badff
+fffffffffffffffffffff7e7f7ffffffffffffffffffffe7cedeffffffffffffffce9cad
+f7ffffffffffffffce9c7b7b6b7b9ce7ffffffffffffde84fffffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff29009cffffffffffe77badffff
+ffffffffffffffffffffffffffffffffffffffffffffffdee7dececee7f7fff7ceade7ad
+f7fffffffffffffffffffff7e7ce9c5a9ce7ffffffffffe7fffffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffffe7ceffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff5a00ceffffffffe77badffffff
+ffffffffffffffffffffffffffffffffffffffffffffffe7deffffe7dee7f7e7def7f79c
+ffffffffffffffffffffffffffffffe79c6b7baddefffffffffffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff8408f7ffffffe77badffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcee7fffffff7e7e7e7deadce
+fffffffffffffffffffffffffffffffffff7ce846b6b9ccefffffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffad42ffffffe77badffffffffff
+ffffffffffffffdeceffffffffffffffffffffffffffffffffcecedee7e7e7e7ceaddeff
+ffffffffffffffffffffffffffffffffffffffffffce9c6badfffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffde84ffffe77badffffe7def7ff
+ffffffffffffce9cadf7ffffffffffffffffffffffffffffffffe7e7dee7fffff7ffffff
+ffffffffffdee7ffffffffffffffffffceceffffffffffad9cfffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe7ffe77badffffffcedecede
+e7ffffffe7adadf7ade7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffff7dececee7ffffffffffe7adadadffffffffceadcefffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffe77badffffffffcee7ffe7
+cedef7f7decefff79cffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffceffe7cecedee7ffe7cecee7adffffffde9cf7defffffffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe784adffffffffffe7ceffff
+fff7e7e7e7e7e7adceffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffcee7fffffff7e7e7e7e7ffadcefffff79ce7ff9c9ce7fffffffffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff846be7f7ffffffffffe7cee7
+f7f7e7e7e7ceadceffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff7cedef7fffff7e7e7deadadffffffadcefff7ad9c6b84ade7fffffffff700
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff6b84e7cecedef7fffffff7de
+cedee7ffe7e7f7ffffffffffffffe7fffffffffffffffffff7cee7ffffffffffffffffff
+ffffffffffffffdececee7e7f7e7ceceffffffadadffffe7adfff7ad846b7baddeffff00
+7bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff7b7bfffff7dececedef7ffff
+ffffffffffffffffffffffffffe7cedeffffffffffffffe7adadceffffffffffffffffff
+ffffffffffffffffffe7e7f7ffffffffffffceadffffffe7adf7e7fffff7ce846b7b9c00
+6bffffffffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff9c6bfffffffffff7dececede
+f7ffffffffffffffffffffffffdee7e7cecee7f7ffffceaddeceadffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe79cf7ffffffe7adadadffffffffffffce9c00
+296badf7ffffffffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffad5afffffffffffffffff7de
+cecee7f7ffffffffffffffffffe7ceffffe7dee7f7e7dee7ffadceffffffffffffffffff
+fffffffffffffffffffffffffffffffff79cdeffffffffe7cece9cffffffffffffffff00
+7be7846b84ade7ffffffffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffce42ffffffffffffffffffff
+ffe7dececee7f7ffffffffffffffcee7fffffff7e7e7e7e7adadffffffffffffffffffff
+ffffffffffffffffffffffffffffffffadceffffffffffe7deadcefffffffffffffff700
+7bffffe7ad846b84ade7ffffffffffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe742f7ffffffffffffffffff
+ffffffffe7dececee7f7ffffffffffcecee7e7f7f7e7deadceffffffffffffffffffffff
+fffffffffffffffff7ffffffffffffceadffffffffffffdeade7fffffffff7e7fffff700
+7bfffff7ffffe7ad846b6b9ccedeffffffffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff729e7ffffffffffffffffff
+ffffffffffffffe7dececee7f7ffffffe7decee7f7ffe7f7fffffffffffffff7e7ffffff
+ffffffffffffffceceffffffffffdeadf7ffffffffffffceceffffffffffe7cecee7e700
+7bf7adadfffffffffff7ce9c846b6b9cf7ffffffffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff42ceffffffffffffffffff
+ffffffffffffffffffffe7dececee7f7ffffffffffffffffffffffffffffffe7cecef7ff
+fffffffffff7adadceffffffffe79ce7ffffffffffffffceceffffffffffe7cef7dece00
+6bceceadffffffffffffffffffffde845a84ade7ffffffffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff5aadffffffffffffffffff
+ffffffffffffffffffffffffffe7dececee7f7ffffffffffffffffffffffffdee7e7cece
+e7e7ffffe7adcee7adffffffff9cceffffffffffffffffceceffffffffffffcedef7e700
+6bdeadceffffffffffffffffffffffffe7ad846b84ade7ffffff7b00f7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff5a9cffffffffffffffffff
+ffffffffffffffffffffffffffffffffe7dececee7f7ffffffffffffffffffe7ceffffe7
+dee7e7f7e7deffceceffffffadadffffffffffffffffffceceffffffffffffffe7847b00
+5a6bcefffffffff7e7f7ffffffffffffffffffe7ad846b7bade76b00ffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff6b84ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe7cececee7f7ffffffffffffffcedeffff
+fff7f7e7e7e7ce9cf7ffffceadffffffffffffffffffffceceffffffffffffffffce0000
+005affffffffffe7cecee7ffffffffcecee7fffffffff7ce848442009ce7ffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff846bffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffe7dececee7f7ffffffffffcecede
+e7f7e7e7e7ceade7ffffe79cf7ffffffffffffffffffffaddefffffffffffffffff72100
+009cfffffffffff7cef7cecedef7deadade7ffffffffffffffff7b00846b84cef7ffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff9c5affffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffe7dececee7f7fffffff7de
+cedef7fff7e7fffffff79ce7ffffffffffffffffffffffade7ffffffffffffffffff5a00
+00ceffffffffffffcedeffffe7dececeadffffffffffffffffff7b00ffe7ad7b6b84ade7
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffad5affffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7cececee7f7ffff
+ffffffffffffffffffadceffffffffffffffffffffffceadf7e7ffffffffffffffff7b00
+08e7ffffffffffffffdecedee7e7decef7fffffffff7f7ffffff7b00f7ffffffe7ad846b
+84ade7ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffce42ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7dececee7
+ffffffffffffffffadadfffffffffffffffffffffff79ce7e7cecef7ffffffffcece9c00
+42ffffffffffffffffffffe7e7ffffffffffffffffdecee7ffff7b00f7e7defffffffff7
+ad846b7b849cceffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffe742f7ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7de
+cecee7ffffffffceadffffffffffffffffffffffffadceffe7cee7cecee7f7ceadadce00
+6bffffffffffffffffffffffffffffffffffffffffcee7cecee76b00ceadadffffffffff
+fffff7dece9c6b84cef7ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff9c5affffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffe7dececee7e79ce7ffffffffffffffffffffffceadffffffcee7fff7e7dececeadff29
+9cffffffffffffffffffffffffffffffffffffffffe7cefffff76b00ceceadffffffffff
+ffffffffffffffad6b6b84adf7ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffad7bcee7f7ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffe7de84ceffffffffffffffffffffffce5a5a9ce7ffffcecedee7e7decef7ff6b
+ceffffffffffffffffffffffffffffffffffffffffffe7cecece6b00ad9ce7fffffffff7
+ffffffffffffffffffe7ad7b6bceffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffad7be7ffdececee7ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff84ceffffffffffffffffffffe75acead7b5a5a84e7f7f7f7ffffffffffad
+e7ffdecef7ffffffffffdee7ffffffffffffffffffffffffde5a210029adffffffffffde
+cef7ffffffffffffffffffff9c9cffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffad6be7ffffffffe7cecedee7ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff84ceffffffffffffffffffff6b9cfffffff7ce845a5a9ce7ffffffffffff
+ffffcee7cedee7f7ffceadceffffffffffffffffffffffffff7b000008e7ffffffffffce
+e7cedef7fffff7ceceffffff84ceffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffad6be7ffffffffffffffffe7cecede
+e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff7bceffffffffffffffffff9c6bfffffffffffffff7ad6b5af7ffffffffff
+ffffcee7ffe7dee7deceadceffffffffffffffffffffffffffad000042ffffffffffffce
+e7ffdecedef7ceadadffffad9ce7ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffce6be7ffffffffffffffffe7cefff7e7
+cecedef7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff6be7ffffffffffffffffce5ae7ffffffffffffffffffad5affffffffffff
+ffffffcecee7f7e7deceadf7ffffffffffffffffffffffffffde08006bfffffffffffff7
+cedeffffe7deceadceffde9cceffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffce6bdeffe7def7ffffffffdeadaddeffff
+fff7dececee7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff77be7ffffffffffffffe75acef7e7fffffffffffff7ad42e7ffffffffffff
+ffffffffe7cedee7f7e7ffffffffffffe7e7fffffffffffffff729009cffffffffffffff
+ffdececee7e7e7deffffaddedeffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffde6bceffffdecececee7ffdeade7ade7ffff
+ffffffffe7dececee7f7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff77be7ffffffffffffff7b9cffdedecee7ffffffe7ad42adffffffffffffff
+ffffffffffffffffffffffffffffffe7cecedef7fffffff7cede5a00ceffffffffffffff
+fffffff7f7ffffffffdeadffceffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffde6bceffffffe7cef7f7e7e7dedeadadffffff
+ffffffffffffffe7dececee7ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff77be7ffffffffffff9c6bffffdedef7decee7e7ce6b6bffffffffffffffff
+ffffffffffffffffffffffffffffffe7ceffdececef7f7adadce8408f7ffffffffffffff
+ffffffffffffffffffaddee7deffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffe76bceffffffffffe7cedee7e7e7ceceffffffff
+ffffffffffffffffffffe7cecedee7f7ffffffffffffffffffffffffffffffffffffffff
+fffffffffff77be7ffffffffffce5ae7ffffffcedefff7e7e7ad5ae7fff7ffffffffffff
+ffffffffffffffffffffffffffffffffdeceffffe7e7deceade7ad42ffffffffffffffff
+ffffffffffffffffdeadffe7e7ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffe76badffffffffffffffffe7e7fff7ffffffffffff
+f7f7ffffffffffffceadf7ffffce29295aadffffffffffffffffffffffffffffffffffff
+fffffffffff77be7ffffffffe76bceffffffffffdececee7de5aceffffdeceffffffffff
+fffffff7e7ffffffffffffffffffffffffe7cedee7e7e7cedeffde84ffffe7f7ffffffff
+ffffffffffffffff9cdeffcee7ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffe77badffffffffffffffffffffffffffffffffffffff
+decedef7fffff7adadade7fff75a9cce6b29296bceffffffffffffffffffffffffffffff
+fffffffffff77be7ffffffff7b9cffffffffffffffffffff6b84ffffffcedecee7ffffff
+ffffdeadadffffffffffffffffffffffffffffe7e7ffffffffffffe7ffffdecef7ffffff
+ffffffe7ffffffceadffffceffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffe77badffffffffffffffffffffffffffffffffffffffff
+cee7e7cee7f7cecee79cffff7b7bffffffffad5a294284ceffffffffffffffffffffffff
+fffffffffff77be7ffffffad6bffffffffffffffffffffad5af7ffffffcef7e7cecedef7
+ffdeadceadffffffffffffffffffffffffffffffffffffffffffffffffffcee7cedef7ff
+fff7adadf7fff79cf7ffffceffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff77badffffffffffffffffffffffffffffffffffffffffff
+e7cee7f7e7e7dece9cdeff9c5afffffffffffffff7ad5a214284e7ffffffffffffffffff
+fffffffffff77be7ffffde5ae7ffffffffffffffffffe742ceffffffffe7ceffffffe7e7
+e7dee7adceffffffffffffffffffffffffffffffffffffffffffffffffffcee7ffdecede
+f7cead9cffffadadffffe7ceffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff7b9cffffffffffffffffffceceffffffffffffffffffffff
+fff7cecee7f7e7cee7ffad5ae7ffffffffffffffffffe7de9c5a295a9cf7ffffffffffff
+fffffffffff76be7fff76badffffffffffffffffffff5a9cffffffffffffe7cedef7f7e7
+e7deceadfffffffffffffffffffffffffffffffffffffffffffffffffffff7cedeffffe7
+deceadcefff79cf7ffffe7e7ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff849cffffe7e7ffffffffffceadadf7ffffffffffffffffffff
+ffffffffffffffffffce42e7ffe7e7ffffffffffffceade7ffffde8442295aadf7ffffff
+fffffffffff76bf7ff849cffe7ffffffffffffffe7846bffffffffffffffffffdececee7
+f7e7e7ffffffffffffffe7e7fffffffffffffffffffffffffffff7cee7ffffffdececee7
+e7e7deffffadadffffffcef7ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff849cfffff7cececee7fff7ceade79cffffffffffffffffffffff
+ffffffffffffffffe742ceffffdececee7f7fff7ceadadceffffffffffce6b42296bceff
+fffffffffff76bffad6bffe7cecee7ffffffffce8442e7ffffffffffffffffffffffffff
+ffffffffffffffffffffcecef7fffffffffffffff7def7ffffffceade7ffffffffffffff
+fffffffff79cf7ffffe7deffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff9c84ffffffffcee7f7e7e7e7dee7adceffffffffffffffffffffff
+fffffffffffffff75aadffffffdedef7dedee7e7cee79cf7ffffffffffffffffce6b2942
+6bcefffffff76bce5ae7fff7cee7cecee7f7dead5aadffffffffffffffffffffffffffff
+ffffffffffffffffffffcee7cedef7ffffffffe7adadf7fffff79cadf7ffffffffffffff
+ffffffffadceffffffceffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffde42cee7fffffff7cedee7e7e7deadceffffffffffffffffffffffff
+ffffffffffffff6b84ffffffffffcedef7e7e7e7ceadcefffffffffffffffffffffff7ad
+5a294284deff5a5aadffffffdedeffffe7e7e76b84ffffffffffffffffffffffffffffff
+ffffffffffffffffffffcee7ffdececee7f7e7adce9cffffffadceadffffffffffffffff
+ffffffde9cffffffe7e7ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffe742e7cecedee7ffffe7e7f7ffe7f7ffffffffffffffffffffffffff
+e7cef7ffffff846bffffffffffffffdecedee7f7dee7ffffffffffffffffffffffffffff
+fff79c5a29420884ffffffffffe7cecee7f7ad5af7ffffffffffffffffffffffffffffff
+fffffffffffffffffffff7cee7fffff7e7e7e7e7adceffffdeade7adffffffffffffffff
+ffffff9cdeffffffceffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff742e7fff7e7cecee7ffffffffffffffffffffffe7e7ffffffffffce
+adade7ffff9c5af7fffffffffffffffffffffffffffffffffffff7dee7ffffffffffffad
+adffffffe79c9cffffffffffffffffe7f7e742ceffffffffffffffffffffffffffffffff
+fffffffffffffffffffffff7cecee7f7e7e7e7ceceffffff9ce7deadffffffffffffffff
+ffffdeadffffffdee7ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff5aadffffffffe7dececee7ffffffffffffffffcececedef7ffcead
+de9cf7ffad5ae7ffffffffffffffffffffffffffffffffffffffe7cececee7f7ffe7adad
+adffffffffffffffffffffffffffffffff6b9cffffe7e7ffffffffffffffffffe7e7ffff
+ffffffffffffffffffffffffffe7dedee7fff7f7ffffffceadffceadffffffffffceceff
+ffffaddeffffffceffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff5a9cffffffffffffffe7cecedef7ffffffffffcee7ffe7e7e7dee7
+adceffce42ceffffffffffffffffffffffffffffffffffffffffffcef7f7dee7e7cecece
+adffffffffffffffffffffffffffffffad5affffffe7ceceffffffffffffffdeadceffff
+fffffffffffffffffffffffffffffffffffffffffffff79cf7ff9c9ccecee7ffceadadff
+ffdeadffffffe7e7ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff847bfffffffffffffffffff7dececee7ffffffffcecee7e7e7dead
+ceffe75aadffffffffffffffffffffffffffffffffffffffffffffe7cee7f7e7e7decead
+f7ffffffffffffffffffffffffffffde42deffffffdee7e7cedee7ffffffceadadceffff
+ffffffffffffffffffffffffffffffffffffffffffffadadffff84cefff7e7e7ceadceff
+ff9cdeffffffceffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff9c5affffffffffffffffffffffffe7decedee7ffffe7e7f7fff7f7
+ffff5a9cffffffffffffffffffffdee7fffffffffffffffffffffffff7decee7f7e7e7ff
+fffffffffffffffffffffffffffff75aadffffffffe7ceffffe7cedef7e7cee7addeffff
+ffffffffffffffffffffffffffffffffffffffffffe79cf7ffff9caddee7e7e7ceceffff
+ceadffffffdedeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffce42ffffffffffffffffffffffffffffffe7cecedeffffffffffff
+ff7b7bffffe7def7ffffffffffadadceffffffffffffffffffffffffffffffffffffffff
+fffffffff7dee7ffffffffffffde6b6bffffffffffffe7cee7fffff7e7e7e7adadffffff
+ffffffffffffffffffffffffffffffffffffffffffaddefffff79cf7e7e7f7fff7fffff7
+9cf7ffffffceffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffe742f7fffffffffffffffffffffffffffffffff7dececee7ffffff
+9c5af7ffffdedececee7fff7cecececeffffffffffffffffffffffffffffffffffffffff
+ffffffffe7cececee7fffff7ce8442e7ffffffffffffffe7cecee7e7e7e7ceceffffffff
+ffffffffffffffffffffffffffffffffffffffffdeadfffffff7adffffffffffffffffad
+adffffffcee7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff742deffffffffffffffffffffffffffffffffffffffe7cecede9c
+5ae7ffffffe7cef7e7e7e7e7cedeade7ffffffffffffffffffffffffffffffffffffffff
+ffffffffffcef7e7cedef7e7ad5aadffffffffffffffffffffe7e7f7ffffffffffffffff
+fffff7def7fffffffffffffffffffffffffffff79cdeffffffdeadfffffffffffffff79c
+f7ffffe7ceffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff5aadffffffffffffffffffffffffffffffffffffffffffffde21
+ade7f7ffffffe7cee7e7e7e7ceade7ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffe7cee7ffe7e7e76b84ffffffffffffffffffffffffffffffffffffffffffff
+ffffe7cecef7ffffffffffffffe7cef7ffffffceadffffffffceceffffffffffffffadad
+ffffffcee7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff5a9cffffffffffffffffffffffffffffffffffffffffffffff42
+ade7cecee7fffff7dee7f7ffe7ffffffffffffffffffffffffffffffe7f7ffffffffffff
+ffffffffffffe7cecee7ffad5af7ffffffffffffffffffffffffffffffffffffffffffff
+ffffe7cef7cedee7ffffffffceadade7fffff79cf7ffffffffcecefffffffffffff79cf7
+ffffe7ceffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff846bffffffffffffffffffffffffffffffffffffffffffffff42
+9cffffe7cecedef7ffffffffffffffffffffffdedeffffffffffffce9cceffffffffffff
+ffffffffffffffffffffe742ceffffffffffffffffffffffffffffffffffffffffffffff
+ffffffcef7ffe7cecee7f7e7cede9cffffffadceffffffffffade7fffff7ffffffadceff
+ffffcee7ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffce427bdeffffffffffffffffffffffffffffffffffffffffff5a
+9cfffffffff7e7cecee7ffffffffffffffffffcececee7f7ffffceadadceffffffffffff
+ffffffffffffffffffff5a9cffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7cee7fffff7e7e7e7deadceffffde9cffffffffffdeadffe7adceffffde9cffff
+ffe7ceffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffde7b425aadf7ffffffffffffffffffffffffffffffffffff5a
+6bffffffffffffffe7cececee7ffffffffffffdee7f7dedee7e7cee7ade7ffffffffffff
+ffffffffffffffffff9c5affffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffff7cecedee7e7e7e7ceceffffff9cdeffffffffff9ccee7adadceffffaddeffff
+ffcee7ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffe7ad5a427bceffffffffffffffffffffffffffffffff6b
+5affffffffffffffffffffe7cecedef7ffffffffcedef7f7e7e7ceadceffffffffffffff
+ffffffffffffffffce42e7ffffe7e7fffffffffffffffffff7f7ffffffffffffffffffff
+ffffffffffffe7dedee7fff7ffffffffceadffffffffffce84e7deceade7ffdeadffffff
+e7ceffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffde7b4242ade7ffffffffffffffffffffffffff9c
+5afffffffffffffffffffffffff7dececee7ffffffe7cedee7f7e7e7ffffffffffffffff
+ffffffffffffffe75aadffffffcecee7ffffffffffffffe7adceffffffffffffffffffff
+fffffffffffffffffffffffffffffff79cf7fffffffff77bcee7e7cee7ffffaddeffffff
+cee7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff7ad5a426bceffffffffffffffffffffff9c
+42ffffffffffffffffffffffffffffffe7cececee7ffffffffffffffffffffffffe7e7ff
+ffffffffffffde6b7bffffffffcee7cedee7ffffffffceadadceffffffffffffffffffff
+ffffffffffffffffffffffffffffffadadffffffffffadadf7fff7ffffffde9cffffffe7
+ceffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffde7b42429ce7ffffffffffffffffad
+42ffffffffffffffffffffffffffffffffffffe7cecee7f7ffffffffffffffffffdecece
+f7ffffffffce7b5ae7ffffffffdedeffe7cecee7ffe7cee7adceffffffffffffffffffff
+ffffffffffffffffffffffffffffe79cf7fffffffff79cf7ffffffffffff9cdeffffffce
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffad5a426badffffffffffffce
+29f7fffffffffffffffffffffffffffffffffffffff7dececee7ffffffffffffffdedee7
+cecee7f7cead42ceffffffffffffcee7fffff7e7e7e7e7ceadffffffffffffffffffffff
+ffffffffffffffffffffffffffffadceffffffffffadceffffffffffffceadffffffe7e7
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffde8442429ce7ffffffe7
+21e7ffffffffffffffffffffffffffffffffffffffffffffe7cecedee7ffffffffffcee7
+fff7e7e7e79c42cedee7ffffffffffcecee7e7f7e7e7cecef7ffffffffffffffffffffff
+ffffffffffffffffffffffffffde9cffffffffffe79cf7fffffffffff79cf7ffffffceff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffad5a426badffff
+21defffffffffffffffffffffffffffffffffffffffffffffffff7e7cecee7f7ffffffce
+cedee7e7e7845affe7cecee7f7ffffffe7dedee7fff7f7fffffffffffffffff7ffffffff
+ffffffffffffffffffffffffff9cdeffffffffffaddeffffffffffffadceffffffe7e7ff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe784424284
+29ceffffffffffffffffffffffffffffffffffffffffffffffffffffffe7dececee7ffff
+f7e7f7ffff9c42ffffffe7dececee7ffffffffffffffffffffffffffffffffdedeffffff
+ffffffffffffe7e7ffffffffceadffffffffffdeadfffffffffffff79cf7ffffffceffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffad6b
+295aadffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7cecede
+f7ffffffff9c42ffffffffffffe7cecedee7fffffffffffffffffffffffff7cedeceffff
+ffffffffffdeadcefffffff79cf7ffffffffff9cdeffe7e7ffffffadadffffffe7e7ffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+e79c424284defffffffffffffffffffffffffffffffffffffffffffffffffffffffff7de
+cecee7ffff9c42fffffffffffffffff7e7cecee7f7ffffffffffffffffffffceffe7cede
+e7e7ffffceadadadffffffadceffffffffffceadffceadadfffff79cf7ffffffceffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffce6b425aadffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffe7decee79c5afffffffffffffffffffffff7dececee7ffffffffffffffffe7ceffffe7
+dee7e7e7cee7addeffffde9cffffffffffe784e7e7ceadceffffadceffffffe7deffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffe79c42427bdeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffe78442ffffffffffffffffffffffffffffe7cececee7ffffffffffffdecef7ff
+fff7e7e7deadceffffff9cdeffffffffff9c9ce7deceadf7ffdeadffffffffceffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffce6b425aadf7ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff9c5afffffffffffffffffffffffffffffffff7e7cecee7f7ffffffffe7cece
+dee7f7e7cedeffffffceadfffffffffff784def7e7def7ffffaddeffffffdee7ffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffe7ad5a427bceffffffffffffffffffffffffffffffffffffffff
+ffffffffff845afffffffffffffffffffffffffffffffffffffff7dececee7fffffffff7
+e7f7fffffffffffff79ce7ffffffffffadceffffffffffffdeadfffffff7ceffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffde7b4242ade7ffffffffffffffffffffffffffffffffff
+ffffffffff845affffffffffffffffffffffffffffffffffffffffffffe7cecedee7ffff
+ffffffffffffffffadadffffffffffce84ffffffffffffffaddeffffffcee7ffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff7ad5a426bceffffffffffffffffffffffffffffff
+ffffffffff845affffffffffffffffffffffffffffffffffffffffffffffffffe7cecede
+f7ffffffffffffe79cf7ffffffffff6badcecee7ffffffdeadffffffe7ceffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffde7b42429ce7ffffffffffffffffffffffff
+ffffffffff845afffffffffffffffffffffffffffffffffffffffffffffffffffffff7de
+cecee7ffffffffadceffffffffffce6bffffe7cececee79ce7ffffffcee7ffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffad5a426bceffffffffffffffffffff
+ffffffffff845affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffe7cecedef7deadffffffffffe75aceffffffffffe79c9cffffffe7ceffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffde8442429ce7ffffffffffffff
+ffffffffff845affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffe7ce7bdeffffffffff9c84ffffffffffffff9c9cffffffcee7ffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffad5a426badffffffffff
+ffffffffff7b5affffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff75af7ffffffffe75ae7ffffffffffffff84adffffe7ceffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe784424284e7ffff
+ffffffffff9c42e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffe76bffffffffff9c9cffffffffffffffff6bceffffcee7ffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffad6b425aad
+ffffffffffe75a215aadffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffce7bffffffffce5ae7fffffffffffffff76be7ffe7ceffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe79c42
+4284deffffffffde6b424284deffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffad84ffffffff6bceffffffffffffffffe76bffffcef7ffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ce6b425aadffffffffffad5a295a9cffffffffffffffffffffffffffffffffffffffffff
+ffffffffffad9cffffffce6bffffffffffffffffffce6bffe7deffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffe79c42427bdeffffffffde8442296bceffffffffffffffffffffffffffffffffffff
+ffffffffff9c9cffffff6bceffffffffffffffffffad84ffceffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffce6b425aadf7ffffffffad5a21429cf7ffffffffffffffffffffffffffffff
+ffffffffff9cadffffad7bffffffffffffffffffff9c9ce7e7ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffe7ad5a427bdeffffffffe79c42296bceffffffffffffffffffffffffff
+ffffffffff84adffff844284deffffffffffffffff9caddeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffde7b425aade7ffffffff6b5a29429ce7ffffffffffffffffffff
+ffffffffff7bceffe7dead6b425aadf7ffffffffff849ce7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7ad5a426bceffff7bade7ad5a426bceffffffffffffffff
+ffffffffff6be7ffceffffffe79c5a426bceffffff5aadffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffde7b42429c5aadffffffde8442429ce7ffffffffff
+fffffffff76bf7dee7ffffffffffffde84424284ce42ceffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffad5a7be7ffffffffffffad5a426badffffff
+ffffffffe76be7ceffffffffffffffffffffad6b426bffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe784424284de
+ffffffffce7bcef7ffffffffffffffffffffffffe7e7ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffad6b42
+5aadf7ffce6bceffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7
+9c424284845af7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffce7b42adffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/macros/latex/contrib/mpdinbrief/mpdinbrief.README b/macros/latex/contrib/mpdinbrief/mpdinbrief.README
new file mode 100644
index 0000000000..f6dadd698f
--- /dev/null
+++ b/macros/latex/contrib/mpdinbrief/mpdinbrief.README
@@ -0,0 +1,74 @@
+Changes (``diff mpdinbrief.dtx dinbrief.dtx''):
+
+ - external horizontal ``pressure'' onto backaddress reduced from ``hfill'' to ``hfil''
+ % makes it possible to use ``\hfill'' between the fields of backaddress to
+ % widen it to the maximum possible extent
+
+ - answertonew line changed:
+ + date/place go to the right border
+ + every horizontal item takes just the space it needs
+ and white space is shared equally
+ % may be this is not conforming to DIN 676, but the given placement of items
+ % was not satisfying: why should an empty field eat up so much space ?
+
+ - fontseries for the concern (Betreff) line: ``bx''
+ % isn't it a kind of heading for the whole thing ?
+
+ - defaultfont for \signature: \footnotesize
+ % because I think it's overweighted with \normalsize
+ % you only want to be able to decypher some cryptic signature
+
+ - cc, ps, encl:
+ + fontseries ``bx''
+ + strings (PS, Anlage(n), Verteiler) now ending with ``:''
+ + vspace(.3ex) after these strings
+ % because these strings bear structuring significance in a document
+
+ - ps, cc, encl following the closing pushed down to the bottom of the page
+ % I consider them being a kind of final contents of a complete letter package;
+ % putting them to close to the closing binds them to tightly to the central text.
+
+ - new example
+
+ - certainly some new bugs brought in % don't call them features !
+
+
+
+May be, it would have been a good idea to merge all these changes into dinbrief
+by introducing switches to make them optional:
+ - This would blow up the code size of dinbrief.
+ - It's a matter of taste:
+ + Your taste % if you like it [or not], have an influence onto the maintainers
+ + the taste of the maintainers of dinbrief
+.
+Should there be more than some spread out fools, who like and use my modifications,
+then it'll be certainly a good idea to merge them into the original distribution.
+But we'll only know, if somebody tells us: so send us a mail with your opinion!
+
+
+ <Markus Pilzecker> markus.pilzecker@rhein-neckar.netsurf.de
+ <K.D. Braune> braune@rz.uni-karlsruhe.de
+ <R. Gussmann> gussmann@rz.uni-karlsruhe.de
+
+
+Installing:
+
+ gzip -dc mpdinbrf.tgz | (cd <target_directory>; tar -xvf - )
+ cd <target_directory>
+
+ # read the original readme file ``readme''
+
+ tex mpdinbrief.ins # extracts the archive mpdinbrief.dtx
+
+ latex mpexample # produces the example letter mpexample.dvi
+
+
+Known Bugs:
+
+ - \enclright does not work correctly with latex2e (as of 97-01)
+ (even with the original dinbrief 1.66)
+ (made it impossible to test my modifications with this option)
+
+ - dbold does not compile correctly with latex2e (as of 97-01)
+ (even with the original dinbrief 1.66)
+ (same symptoms as above) \ No newline at end of file
diff --git a/macros/latex/contrib/mpdinbrief/mpdinbrief.dtx b/macros/latex/contrib/mpdinbrief/mpdinbrief.dtx
new file mode 100644
index 0000000000..4b9efcfa35
--- /dev/null
+++ b/macros/latex/contrib/mpdinbrief/mpdinbrief.dtx
@@ -0,0 +1,6743 @@
+%
+% \iffalse meta-comment
+%
+% $Id: mpdinbrief.dtx 1.66mp 1997/02/10 15:50:05 Pilzecker Exp $
+%
+%<*styleinfo>
+=======================================================================
+@stylefile{Ltall
+shortpackagename = {mpdinbrief},
+longpackagename = {mpdinbrief},
+baseformats = {\LaTeX\ 2.09 and \LaTeXe},
+version = {$Revision: 1.66mp $},
+date = {$Date: 1997/02/10 15:50:05 $},
+author = {K.D. Braune, R. Gussmann; mod. Markus Pilzecker
+ markus.pilzecker@rhein-neckar.netsurf.de
+ rz32@dkauni2.bitnet
+ braune@rz.uni-karlsruhe.de
+ ry46@dkauni2.bitnet
+ gussmann@rz.uni-karlsruhe.de
+ Universit\"at Karlsruhe
+ Rechenzentrum
+ Postfach 6980
+ 76128 Karlsruhe
+ +49 721 608-40 31},
+abstract = {This document serves as User's Guide
+ and as documentation of the new \LaTeX-Style
+ or a \LaTeXe-Class. This class/style implements
+ a new document layout for writing letters,
+ according to the rules of DIN (Deutsches
+ Institut f\"ur Normung, German standardization
+ institute). The User's Guide is written in
+ German, since we assume the class/style is of
+ minor interest outside Germany. Of course,
+ most of the macros are explained in English.},
+support = {yes},
+comments = {},
+requirements = {},
+incompatibilities = {not full compatible to R. Sengerlings dinbrief}}
+=======================================================================
+%</styleinfo>
+%
+% $Log: dinbrief.dtx $
+% 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 by University of Karlsruhe (Computing Center).
+% All rights reserved.
+% For additional copyright information see further down in this file.
+%
+% This file is part of the MPDINBRIEF package
+% -----------------------------------------------------------------------
+%
+% This system is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%
+%
+% IMPORTANT NOTICE:
+%
+% 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 and TeX organizations.
+%
+% You are not allowed to change this file.
+%
+% You are allowed to distribute this file under the condition that
+% it is distributed together with all files mentioned in 00readme.din.
+%
+% If you receive only some of these files from someone, complain!
+%
+% You are NOT ALLOWED to distribute this file alone. You are NOT
+% ALLOWED to take money for the distribution or use of either this
+% file or a changed version, except for a nominal charge for copying
+% etc.
+% \fi
+%
+% \CheckSum{4909}
+%%
+%% \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 \~}
+%%
+% \setcounter{StandardModuleDepth}{1}
+% \newcommand\Lopt[1]{\textsf {#1}}
+% \newcommand\file[1]{\texttt {#1}}
+% \newcommand\Lcount[1]{\textsl {\small#1}}
+% \newcommand\pstyle[1]{\textsl {#1}}
+%
+%
+% \title{Standard Document Class `mpdinbrief'\\ for \LaTeX{} version 2e\\
+% Standard Document Style `mpdinbrief'\\ for \LaTeX{} version 2.09}
+%
+% \author{%
+% Copyright \copyright\ 1993,\ 94,\ 95,\ 96\\
+% 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.}
+ \else
+ \documentclass[10pt]{article}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+
+\title{Standard Document Class `mpdinbrief'\\ for \LaTeX{} version 2e\\
+ Standard Document Style `mpdinbrief'\\ for \LaTeX{} version 2.09}
+
+\author{%
+Copyright \copyright\ 1993,\ 96\\ by Klaus Dieter Braune, Richard Gussmann
+}
+% \fi
+%
+\newenvironment{decl}%
+ {\par\small\addvspace{4.5ex plus 1ex}%
+ \vskip -\parskip
+ \noindent\hspace{-\leftmargini}%
+ \begin{tabular}{|l|}\hline\ignorespaces}%
+ {\\\hline\end{tabular}\par\nopagebreak\addvspace{2.3ex}%
+ \vskip -\parskip}
+%
+\newcommand{\declline}[1]{\\\multicolumn1{|r|}{\small#1}}
+%
+\newcommand{\m}[1]{\mbox{$\langle$\emph{#1}$\rangle$}}
+%
+\renewcommand{\arg}[1]{{\tt\string{}\m{#1}{\tt\string}}}
+%
+\expandafter\ifx\csname oarg\endcsname\relax
+ \newcommand{\oarg}[1]{{\tt[}\m{#1}{\tt]}}
+\fi
+%
+\makeatletter
+\expandafter\ifx\csname cmd\endcsname\relax
+ \def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\fi
+%
+\expandafter\ifx\csname cmd@to@cs\endcsname\relax
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+\fi
+\makeatother
+%
+\expandafter\ifx\csname cs\endcsname\relax
+\def\cs#1{{\tt\char`\\#1}}
+\fi
+%
+\newcommand{\env}[2]{\cmd{#1}{\protect\tt\char`\{#2\char`\}}}
+\newcommand{\envname}[1]{{\protect\tt#1}}
+%
+\germanTeX
+%
+\expandafter\ifx\csname emph\endcsname\relax
+ \newcommand\emph[1]{{\em#1\/}}% This is \emph{not} the LaTeX2e
+ % definition!
+\fi
+
+% \iffalse
+\begin{document}
+\maketitle
+% \fi
+%
+% \iffalse
+%</documentation|dintab>
+% \fi
+% \iffalse
+%<*documentation>
+% \fi
+%
+\renewcommand{\textfraction}{0.10}
+\renewcommand{\topfraction}{0.65}
+\renewcommand{\bottomfraction}{0.85}
+%
+\expandafter\ifx\csname sect\endcsname\relax
+ \let\sect=\section
+\fi
+\expandafter\ifx\csname ssect\endcsname\relax
+ \let\ssect=\subsection
+\fi
+\expandafter\ifx\csname sssect\endcsname\relax
+ \let\sssect=\subsubsection
+\fi
+%
+\sect{Benutzerhandbuch (User's Guide)}
+%
+
+Mit \LaTeX\ k"onnen (nat"urlich) auch Briefe geschrieben werden.
+F"ur englische Briefe gibt es die Dokumentklasse \envname{letter}.
+Deutsche Briefe k"onnen mit der Klasse \envname{mpdinbrief}
+geschrieben werden.
+
+Die vorliegende Klasse \envname{mpdinbrief} 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 \verb|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{Befehle in der {\protect\tt mpdinbrief}-Klasse}
+\index{Briefe!DIN 676}\index{DIN-Brief}\index{Briefe!mpdinbrief@\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.
+
+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]{mpdinbrief}
+\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.
+
+Die Faltmarkierung am linken Papierrand wird durch den Befehl
+\cmd\nowindowtics\index{nowindowtics@\verb+\nowindowtics+} ab- und mit
+\cmd\windowtics\index{windowtics@\verb+\windowtics+} wieder angeschaltet.
+
+% \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\arg{{Gru"sformel}}] \hfil\break
+ Der Befehl \cmd\closing{} setzt die Gru"sformel und nach
+ drei Leerzeilen die maschinenschrifliche Wiederholung
+ der Unterschrift.
+
+ \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\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\setlabelwidth\arg{Breite eines Labels}] \hfil\break
+ Dieser Befehl legt die Breite eines Labels fest.
+ Als Argument erwartet dieser Befehl eine L"angenangabe.
+
+ {\sl Die Labelbreite ist in der vorliegenden Version
+ auf 105~$mm$ festgelegt worden und sollte nicht
+ ge"andert werden. Dieser Befehl ist f"ur sp"atere
+ Erweiterungen reserviert.\/}
+
+ \item[\cmd\setlabelheight\arg{H"ohe eines Labels}] \hfil\break
+ Der Befehl \cmd\setlabelheight{} vereinbart die im
+ Argument angegebene L"ange als Labelh"ohe.
+
+ \item[\cmd\setlabeltopmargin\arg{oberer Rand}] \hfil\break
+ Bevor die beiden obersten Label (bei beiden Spalten)
+ ausgegeben werden, wird oben ein Rand gelassen, dessen
+ H"ohe mit \cmd\setlabeltopmargin{} angegeben wird.
+ Es wird eine L"angenangabe erwartet.
+
+ \item[\cmd\setlabelnumber\arg{Labelanzahl pro Spalte}] \hfil\break
+ Dieser Befehl bestimmt die Zahl der Labels in einer Spalte.
+
+ \item[\cmd\spare\arg{Anzahl leerer Labels}] \hfil\break
+ Es werden die im Argument des Befehls angegebene
+ Anzahl von Label freigelassen, bevor das erste
+ Adre"s--Etikett ausgegeben wird. Die Label werden
+ spaltenweise durchgez"ahlt.
+
+% \iffalse
+ \item[\cmd\offlabels] \hfil\break
+ \item[\cmd\onlabels] \hfil\break
+ \item[\cmd\nolabels] \hfil\break
+% \fi
+ \item[\cmd\stdaddress\arg{Adresse des Absenders}] \hfil\break
+ Dieser Befehl setzt die Absenderanschrift in der
+ auf Schreibmaschinen "ublichen Form (DIN 5008).
+ Mit diesem Befehl kann der Briefkopf nicht frei gestaltet
+ werden.
+
+ \item[\env\begin{dinquote} \dots\ \env\end{dinquote}] \hfil\break
+ Diese Umgebung r"uckt den Text auf der linken Seite um
+ ein Inch ein. Rechts folgt keine Einr"uckung.
+
+ \item[\cmd\enclright] \hfil\break
+ Die Anlagen- und Verteilvermerke beginnen, falls sie vor
+ den \cmd\closing-Befehl angegeben wurden, rechts
+ neben der Gru"sformel.
+
+ \item[\cmd\postremark\arg{Postvermerk}] \hfil\break
+ Der Postvermerk wird mit dem Befehl \cmd\postremark{}
+ vereinbart. Der Postvermerk geht der Empf"angeranschrift
+ mit einer Leerzeile voraus. Dieser Befehl mu"s zwischen
+ \env\begin{letter} und dem Befehl \cmd\opening\ stehen.
+
+ \item[\cmd\handling\arg{Behandlungsvermerk}] \hfil\break
+ Der Behandlungsvermerk wird rechts neben der
+ Empf"angeranschrift auf Grad 50 (bei einer 10er Teilung)
+ in H"ohe der letzten Zeile der Empf"angeranschrift
+ ausgegeben. Dieser Befehl mu"s zwischen
+ \env\begin{letter} und dem Befehl \cmd\opening\ stehen.
+\end{description}
+
+% \iffalse
+%</documentation>
+% \fi
+% \iffalse
+%<*documentation|dintab>
+% \fi
+
+\begin{table}[htp]
+\caption{Zusammenfassung der Dinbrief-Befehle:}\index{mpdinbrief!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|\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|\nowindowtics| \\
+ \verb|\windowtics| \\
+ \hline
+ \verb|\disabledraftstandard| \\
+ \verb|\enabledraftstandard| \\
+ \hline
+ \verb|\setlabelwidth|\arg{Breite eines Labels} \\
+ \verb|\setlabelheight|\arg{H"ohe eines Labels} \\
+ \verb|\setlabeltopmargin|\arg{oberer Rand} \\
+ \verb|\setlabelnumber|\arg{Labelanzahl pro Spalte} \\
+ \verb|\spare|\arg{Anzahl leerer Labels} \\
+ \hline
+ \verb|\stdaddress|\arg{Adresse des Absenders} \\
+ \verb|\begin{dinquote}| \\
+ \verb|\end{dinquote}| \\
+ \verb|\enclright| \\
+ \verb|\postremark|\arg{Postvermerk} \\
+ \verb|\handling|\arg{Behandlungsvermerk} \\
+ \hline
+\end{tabular}
+\end{center}
+\end{table}
+
+% \iffalse
+%</documentation|dintab>
+% \fi
+% \iffalse
+%<*documentation>
+% \fi
+
+\begin{table}[ht]
+\caption{"Uberschriftvariablen und deren Inhalt}
+\index{mpdinbrief!"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{mpdinbrief}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}{{\sffamily\tiny Ihre Zeichen, Ihre Nachricht vom}\\{\cmd\yourmail}}}
+ \put( 60.8, 49){\parbox[t]{50.8\unitlength}{{\sffamily\tiny Unsere Zeichen}\\{\cmd\sign}}}
+ \put(111.6, 49){\parbox[t]{25.4\unitlength}{{\sffamily\tiny Telefon}\\{\cmd\phone}}}
+ \put(137.0, 49){\parbox[t]{25.4\unitlength}{{\sffamily\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}{{\sffamily\tiny Ihr Zeichen, Ihre Nachricht vom}\\{\cmd\yourmail}}}
+ \put( 60.8, 16){\parbox[t]{50.8\unitlength}{{\sffamily\tiny Unser Zeichen, unsere Nachricht vom}\\{\cmd\sign}}}
+ \put(111.6, 16){\parbox[t]{50.8\unitlength}{{\sffamily\tiny Telefon, Bearbeiter}\\{\cmd\phone}\\{\cmd\writer}}}
+ \put(162.4, 16){\parbox[t]{15.0\unitlength}{{\sffamily\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{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 mpbrfkopf.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 mpbrfkopf.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{mpbrfkopf}+
+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{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 mpdinbrief} 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]{mpdinbrief}
+\usepackage{german}
+
+\input{mpbrfkopf}
+\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 `mpdinbriefs'
+ 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 `mpdinbriefs'
+ unterst"utzt trotzdem ein Postscriptum.
+ Wir empfehlen das Postscriptum unmittelbar
+ nach der Gru"sformel \verb|\closing| oder
+ nach Anlagen- und Verteilvermerken zu setzen.
+
+ \item {\bf Seitennumerierung}
+
+ Die Seiten eines Schriftst"ucks sind von der
+ 2.~Seite an oben fortlaufend zu benummern.
+ Die Pagestyles \verb|headings| und
+ \verb|contheadings| unterst"utzen diese
+ Forderung. Das Verfahren ist jedoch noch nicht
+ befriedigend.
+
+ \item {\bf Hinweis auf Folgeseiten}
+
+ Wenn der Text eines Schriftst"ucks eine n"achste
+ Seite beansprucht, wird empfohlen
+ \begin{itemize}
+ \item am Fu"s der bereits beschrifteten Seite,
+ \item nach der letzten Textzeile,
+ \item mit mindestens einer Leerzeile Abstand,
+ \item auf Grad 60 (72 oder 90) beginnend,
+ \end{itemize}
+ als Hinweis auf die folgende Seite drei Punkte
+ zu schreiben.
+
+ Dieses Vorgehen wird zur Zeit nicht unterst"utzt.
+ Der Pagestyle \verb|contheadings| schreibt jedoch
+ an das Ende der laufenden Seite die Seitenzahl
+ der Folgeseite und auf Folgeseiten die
+ aktuelle Seite in der Kopf der Seite.
+
+ Die Kombination des Befehls \verb|\bottomtext|,
+ zum Einblenden einer weiteren Kommunikationszeile
+ am unteren Blattende der ersten Seite sowie
+ von gesellschaftsrechtlichen Angaben,
+ mit Seitenstilen, die die Fu"szeile unten mit
+ der Seitennummer oder Folgeseitennummer
+ beschriften, hat unter Umst"anden zur Folge,
+ da"s die Seiten- oder Folgeseitennummer
+ von diesen Feldern "uberschrieben wird.
+
+ \item {\bf Kommunikationszeile am Blattende und
+ gesellschaftsrechtliche Angaben}
+
+ Eine Kommunikationszeile am Blattende kann die folgenden
+ Angaben enthalten: Gesch"aftsr"aume, Telefon, Telefax,
+ Teletex, Telex, Btx und Kontoverbindungen.
+
+ Bei Kapitalgesellschaften sind die Angaben "uber
+ \begin{itemize}
+ \item die Rechtsform und den Sitz der Gesellschaft,
+ \item das Registergericht des Sitzes der Gesellschaft
+ und die Nummer, unter der die Gesellschaft in
+ das Handelsregister eingetragen ist,
+ \item den Namen des Vorsitzenden des Aufsichtsrates
+ (sofern die Gesellschaft nach gesetzlicher
+ Vorschrift einen Aufsichtsrat zu bilden hat),
+ \item die Namen des Vorsitzenden und aller Mitglieder
+ des Vorstandes (bei Gesellschaften mit
+ beschr"ankter Haftung die Namen der
+ Gesch"afts\-f"uhrer),
+ \end{itemize}
+ am Fu"s des Vordrucks aufzuf"uhren.\hfil\break
+ Die Rechtsform kann auch im Briefkopf als Bestandteil
+ der Firma angegeben werden.
+\end{enumerate}
+
+\ssect{Adre"s--Etiketten}
+Das Ausdrucken von Adre"s-Etiketten ist w"unschenswert, wenn
+keine Fensterbriefh"ullen verwendet werden. Damit das Bedrucken
+von verschiedenen Etiketts"atzen m"oglich wird, kann die Breite
+und H"ohe der einzelnen Etiketten mit den Befehlen
+\verb|\setlabelwidth|\arg{Breite} und
+\verb|\setlabelheight|\arg{H"ohe} eingestellt
+werden. Der obere Rand kann mit dem Befehl
+\verb|\setlabeltopmargin|\arg{oberer Rand} festgelegt werden.
+Die Anzahl der Labels in einer Spalte wird durch den Befehl
+\verb|\setlabelnumber|\arg{Anzahl} angegeben. Die mehrfache
+Verwendung eines Etikettenblatts wird durch den Befehl
+\verb|\spare|\arg{Anzahl} m"oglich. Dieser Befehl r"uckt
+den Druckbeginn um {\em Anzahl\/} Positionen vor.
+Die Ausgabe der Adre"s--Etiketten erfolgt spaltenweise.
+
+In vielen Druckern bleiben die Etikettenbl"atter h"angen,
+wenn die Tr"agerfolie in beiden Spalten freiliegt. Drucker,
+die alternativ einen ebenen Papiertransport besitzen, sollten
+zur Ausgabe von Etiketten auf diesen umgeschaltet werden.
+
+\ssect{Kompatibilit"at zu Rainer Sengerlings `dinbrief'}
+Im Jahr 1992 wurde an der Universit"at Karlsruhe ein Briefstil
+entwickelt, dem der Namen `dinbrief' gegeben wurde. Im gleichen
+Jahr ver"offentlichte Rainer Sengerling einen Briefstil unter
+dem gleichen Namen.
+
+Rainer Sengerling hat darauf verzichtet seinen Briefstil
+an \LaTeXe\ anzupassen. Daraufhin haben wir den Briefstil
+`dinbrief' im Dezember 1994 als \LaTeXe-Klasse ver"offentlicht.
+Die beiden Briefstile haben unterschiedliche Befehlss"atze,
+was bei vielen Benutzern zu Verwirrung und Irritationen
+gef"uhrt hat. Wegen der unterschiedlichen Befehle der beiden
+Stile haben uns viele Anfragen erreicht. Die jetzt vorliegende
+Fassung stellt beide Befehlss"atze zur Verf"ugung und f"uhrt die
+bisher unabh"anigen Briefstile zusammen.
+
+Gegenw"artig wird die Klassenoption \verb|german| nicht ausgewertet
+und f"uhrt zu einer Warnung. Alternativ mu"s mit dem Befehl
+\begin{quote}
+ \verb|\usepackage{german}|\\
+\end{quote}
+der Stil "`{\tt german}"' geladen werden.
+
+\begin{description}
+
+ \item[\cmd\Retouradresse\arg{{Absenderadresse im Brief\kern 0pt fenster}}]
+ Der Befehl legt die Anschrift des Absenders oben im
+ Anschriftenfeld des Briefs fest.
+
+ \item[\cmd\Retourlabel] \hfil\break
+ Dieser Befehl erzeugt Absenderadre"s-Etiketten, falls
+ die Erzeugung der Etiketten aktiviert wurde.
+
+ Ferner wird die Ausgabe der \cmd\Retouradresse\ unterdr"uckt.
+
+ {\bf Dieser Befehl wird gegenw"artig nicht unterst"utzt und
+ erzeugt eine Warnung.\/}
+
+ \item[\cmd\Fenster] \hfil\break
+ Bei der Verwendung von Fensterbriefh"ullen wird die mit
+ \cmd\Retouradresse\ vereinbarte einzeilige R"ucksendeadresse
+ (Absenderadresse) oben im Anschriftenfeld eingeblendet,
+ falls der Befehl \cmd\Fenster\ angegeben wurde. Ferner
+ werden die Faltmarken am linken Rand ausgegeben.
+
+ Daf"ur wird die Ausgabe der Etiketten unterdr"uckt.
+
+ {\bf Dieser Befehl wird gegenw"artig nicht unterst"utzt und
+ erzeugt eine Warnung.\/}
+
+ \item[\cmd\Postvermerk\arg{Postvermerk}] \hfil\break
+ Dieser Befehl vereinbart Vermerke f"ur den
+ Postversand wie z.B.\ Einschreiben.
+
+ \item[\cmd\Behandlungsvermerk\arg{Behandlungsvermerk}] \hfil\break
+ Der Befehl \cmd\Behandlungsvermerk\ dient zur
+ Angabe von (man wirds kaum glauben) Behandlungsvermerken
+ wie z.B.\ Eilt, pers"onlich oder "`F"ur die unterste
+ Schublade"'.
+
+ \item[\cmd\Absender\arg{Name und Adresse des Absenders}] \hfil\break
+ Die Adresse des Absenders wird vereinbart.
+ Dieser Befehl gilt f"ur den laufenden und alle
+ weiteren Briefe; er gilt solange, bis ein
+ weiterer \cmd\Absender- oder \cmd\address-Befehl
+ angegeben wird.
+
+ \item[\cmd\Absender\arg{Teil 1::Teil 2}] \hfil\break
+ Dies ist eine Sonderform des \cmd\Absender-Befehls.
+ Der durch \verb|::| abgetrennte {\em Teil2\/}
+ erscheint im Briefkopf, aber nicht im
+ Absenderetikett, falls ein solches mit dem
+ Befehl \cmd\Retourlabel\ angefordert
+ wurde.
+
+ Dieser Befehl wird korrekt unterst"utzt. Da aber
+ der Befehl \cmd\Retourlabel\ nicht implementiert
+ wurde, hat die Aufteilung im Moment praktisch keine
+ Bedeutung; sie kann aber in sp"ateren Versionen
+ wieder notwendig sein.
+
+ \item[\cmd\Datum\arg{Briefdatum}] \hfil\break
+ Soll als Absendedatum {\sl nicht\/} das aktuelle
+ Tagesdatum (des Rechners) eingesetzt werden, kann
+ mit diesem Befehl das Datum explizit angegeben werden.
+
+ Der Befehl \cmd\heute\ wird nicht unterst"utzt.
+
+ \item[\cmd\Betreff\arg{{Betreff}}] \hfil\break
+ Mit diesem Befehl wird der Betreff gesetzt, der den
+ Empf"anger "uber den Gegenstand des Briefes
+ informiert. Der Betreff kann ein oder mehrzeilig sein.
+
+ \item[\cmd\Einrueckung\arg{Text}] \hfil\break
+ Der Text wird um $1 in$ einger"uckt und geht bis zum
+ rechten Rand. Der Text darf Abs"atze enthalten.
+
+ \item[\cmd\anlagenrechts] \hfil\break
+ Die Anlagen- und Verteilvermerke beginnen {\sl rechts\/}
+ neben der Gru"sformel auf Grad 50. Mit diesem Befehl
+ kann Platz gespart werden, falls die Seite fast voll
+ ist, und kein neues Blatt begonnen werden soll.
+ Dieser Befehl mu"s vor \cmd\closing\ stehen.
+ Die Anlagen- und Verteilvermerke m"ussen in diesem
+ Fall ebenfalls vor dem \cmd\closing-Befehl stehen.
+
+ \item[\cmd\Anlagen\arg{Anlagenvermerk}] \hfil\break
+ Mit diesem Befehl werden eventuelle Anlagenvermerke
+ vereinbart oder gesetzt. Dieser Befehl darf sowohl
+ vor dem \cmd\closing-Befehl als auch hinter diesem
+ stehen. Der Anlagenvermerk wird nur vereinbart falls
+ der Befehl vor dem \cmd\closing-Befehl angegeben wird.
+ Der Anlagenvermerk wird sofort ausgegeben und gesetzt,
+ falls der Befehl nach dem \cmd\closing-Befehl angegeben
+ wird.
+
+ \item[\cmd\Verteiler\arg{Verteilvermerk}] \hfil\break
+ Dieser Befehl vereinbart oder setzt Verteilvermerke.
+ Die Ausf"uhrungen zum \cmd\Anlagen-Befehl gelten
+ auch f"ur diesen Befehl.
+
+ \item[\cmd\Etihoehe\arg{H"ohe eines Adressetiketts}] \hfil\break
+ Verschiedene Herstelle vertreiben Adressetiketten,
+ die alle ein bischen anders sind. Um den Briefstil
+ an unterschiedlich hohe Adre"setiketten anzupassen,
+ kann mit dem Befehl \cmd\Etihoehe\ die H"ohe eines
+ Etiketts angegeben werden.
+
+ \item[\cmd\Etirand\arg{oberer Rand}] \hfil\break
+ Die B"ogen mit den Adre"setiketten haben oft einen
+ Versatz oder oberen Rand. Mit dem Befehl \cmd\Etirand\
+ kann dieser Versatz eingestellt werden.
+
+ \item[\cmd\Etizahl\arg{Zahl der Etiketten}] \hfil\break
+ Auf ein Blatt mit Adre"setiketten passen leider
+ nicht beliebig viele sondern nur eine begrenzte
+ Anzahl von Etiketten, die sich dann auch nicht kunterbunt
+ auf dem Blatt tummeln, sondern Spaltenweise angeordnet
+ sind. Die Zahl der Etiketten, die in eine Spalte
+ passen werden durch den Befehl \cmd\Etizahl\
+ angegeben.
+
+ \item[\cmd\spare\arg{{n}}] \hfil\break
+ Das Bedrucken der Adre"setiketten beginnt nach {\em n\/}
+ leeren Adre"slabeln. Die Label werden spaltenweise
+ durchgez"ahlt.
+
+\end{description}
+
+\clearpage
+% \iffalse
+%</documentation>
+% \fi
+% \iffalse
+%<*documentation|dintab>
+% \fi
+% \iffalse
+\end{document}
+% \fi
+% \iffalse
+%</documentation|dintab>
+% \fi
+%
+% \StopEventually{}
+%
+% \clearpage
+%
+% \originalTeX
+%
+% \section{Documentation}
+%
+% \begin{macrocode}
+%<*class|style>
+% \end{macrocode}
+%
+% We store the date, version and name of this file in four control
+% sequences, for future use.
+% \begin{macrocode}
+\def\RCSdate{$Date: 1996/10/29 20:50:05 $}
+\def\RCSrevision{$Revision: 1.66 $}
+%
+{%
+ \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
+}%
+%
+% ^^A \def\fileversion{0.94.1}
+% ^^A \def\filedate{1994/08/15}
+\def\filename{mpdinbrief.dtx}
+% ^^A \def\docdate {1994/08/15}
+% \end{macrocode}
+%
+%
+% \subsection{The class/style file `mpdinbrief'}
+%
+% This is |MPDINBRIEF.STY| in text format, as of 1997/02/10,
+% by K.~Braune and R.~Gussmann
+% (Rechenzentrum der Universit\"at Karlsruhe)
+% and modified by Markus Pilzecker, Bensheim.
+%
+% 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}
+%
+% \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 'mpdinbrief' - %
+ (Preliminary) Version \fileversion}
+\typeout{University of Karlsruhe - \filedate}
+\typeout{}
+% \end{macrocode}
+%
+% \subsubsection{Print system information}
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \typeout{*** mpdinbrief: Running in LaTeX 2e mode!}
+ \else
+ \typeout{*** mpdinbrief: Running in LaTeX 2.09 mode!}
+ \fi
+\ifka@db@nfss
+ \typeout{*** mpdinbrief: NFSS!}
+ \else
+ \ifka@db@nfsstwo
+ \typeout{*** mpdinbrief: NFSS 2!}
+ \else
+ \typeout{*** mpdinbrief: original LaTeX 2.09 font %
+ selection mechanism found!!!}
+ \fi
+ \fi
+% \end{macrocode}
+%
+% \subsection{\LaTeXe\ version control}
+%
+% \begin{macrocode}
+\ifka@db@ltxtwoe
+ \NeedsTeXFormat{LaTeX2e}[1994/12/01]
+ \ProvidesClass{mpdinbrief}[1995/07/01 LaTeX2e class]
+\fi
+% \end{macrocode}
+%
+% \subsection{Initial code}
+%
+% In this part we define a few comands that are used later on.
+%
+% \subsubsection{temporary variables}
+%
+% \begin{macro}{\ka@db@tmpdima}
+% Unfortunately we have to define our own temporary dimen
+% variable, 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
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{{\tt mpdinbrief\/} 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 mpdinbrief\/} 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 |\kd@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}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+ \DeclareOption{a5paper}
+ {\setlength\paperheight {210mm}%
+ \setlength\paperwidth {148mm}}
+ \DeclareOption{b5paper}
+ {\setlength\paperheight {250mm}%
+ \setlength\paperwidth {176mm}}
+ \DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+ \DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+ \DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\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{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 `mpdinbrief' 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 `mpdinbrief' 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 -15pt
+\topmargin0pt
+\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
+\textheight 260truemm
+% \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 `mpdinbrief' 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 `mpdinbrief' 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{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}
+%
+% \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!{\@withmark}{\@withoutmark}#1\stop
+ \@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\expandafters 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 -19.4truemm\raggedright\@fromaddress\vss}%
+ \nointerlineskip
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tswindowtics}
+% \begin{macrocode}
+\def\ka@db@tswindowtics{%
+ \ifka@db@windowtics
+ \vbox to 0pt{%
+ \rule{0pt}{81.1truemm}% 62.5truemm > 80.0truemm
+ \hbox to 0pt{\hspace*{-24truemm}\vbox{\hrule width 7truemm}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{%
+ \rule{0pt}{124.6truemm}% 106.0truemm > 123.5truemm
+ \hbox to 0pt{\hspace*{-18truemm}\vbox{\hrule width 6truemm}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{%
+ \rule{0pt}{186.1truemm}% 167.5truemm > 185.0truemm
+ \hbox to 0pt{\hspace*{-24truemm}\vbox{\hrule width 7truemm}\hss}%
+ \vss}\nointerlineskip
+ \else
+ \vbox to 0pt{\rule{0pt}{81.1truemm}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{\rule{0pt}{124.6truemm}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \vbox to 0pt{\rule{0pt}{186.1truemm}%
+ \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
+ \vss}\nointerlineskip
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbottomtext}
+% \begin{macrocode}
+\newdimen\dbottomtext
+\dbottomtext=261.0truemm
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ka@db@tsbottomtext}
+% \changes{0.0.0}{1994/02/08}{(KDB) Changed to check the height of
+% the footer (\cmd\@@bottomtext\ now dimen,
+% no longer command)}
+% \begin{macrocode}
+\def\ka@db@tsbottomtext{%
+ \ifdim\ht\@@bottomtext>0pt
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KDB) \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}
+ \vbox to 0pt{%
+% \rule{0pt}{261.0truemm}% 243.5truemm
+ \rule{0pt}{\dbottomtext}% 243.5truemm
+% \end{macrocode}
+% \changes{0.0.0}{1994/02/08}{(KDB) \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}
+% \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{%
+ \vbox to 0pt{\vss%
+ \ifka@db@windowrules
+ \hbox to 0pt{\hspace*{-4truemm}\vbox{\hrule width 85truemm}\hss}%
+ \else
+ \hbox to 0pt{\hss}%
+ \fi
+ \vss
+ }%
+ \nointerlineskip
+% \end{macrocode}
+% \begin{macrocode}
+ \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{\hfil
+ {\ka@db@bafntsel\@backaddress}\hfil}%
+ \hrule width 85truemm}\hss}%
+ % \vss % <- removed to get exact layout
+ }%
+ \nointerlineskip
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+ \vbox to 40truemm{%
+ \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 %\toname \\ \toaddress%
+ % \typeout{End dumping \string\@addresslist}%
+ \fi
+ }%
+ \ifdim\ht\@tempboxa>40mm
+ %\@warning{Receivers address is larger than letter window}%
+ \ClassWarning{mpdinbrief}{%
+ 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
+ %\unvbox\@tempboxa
+ \box\@tempboxa
+ }%
+ \if@toadrcenter\relax
+ \else\vskip 2.5truemm minus 2.5truemm
+ \fi
+ }%
+ \fi
+ \box\@tempboxa
+ \hss
+ }%
+ \if@toadrcenter
+ \vss
+ \fi
+ }\nointerlineskip
+ \vskip 2.5truemm
+% \end{macrocode}
+% \begin{macrocode}
+ \vbox to 0pt{\vss%
+ \ifka@db@windowrules
+ \hbox to 0pt{\hspace*{-4truemm}\vbox{\hrule width 85truemm}\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
+ \hbox{}\bigskip\smallskip\hbox{}
+ \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{%
+ \vskip 18.6truemm % old value 13.1truemm
+ % \vbox to 50truemm{\vss\ka@db@tstoaddress\vss}\nointerlineskip
+ % \vbox to 50truemm{\ka@db@tstoaddress}\nointerlineskip
+ % \vbox to 50truemm{\ka@db@tstoaddress\vss}\nointerlineskip
+ % ^- org. value
+ \moveright\ka@db@indadr\vbox to 50truemm{\ka@db@tstoaddress\vss}%
+ \nointerlineskip
+ \vskip 6truemm
+}%
+\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.}
+% \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
+ \enlargethispage{-\ht\@@bottomtext}
+ \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}
+% \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
+ \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}{(KDB) 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}{(KDB) \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}{(KDB) \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.}
+% \begin{macrocode}
+ \setcounter{lt@state}{3}
+ \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
+ \ignorespaces #2\\[3\baselineskip]
+ \vbox to 0pt{%
+ \vskip -4\baselineskip\relax
+ \hbox to 0pt{\strut#1\hss}%
+ \vss}%
+% \ifx\@empty\@fromsig
+% \else \@fromsig
+% \fi\strut
+ \ka@db@ifemptyvar{signature}{}{%
+ \footnotesize\ka@db@usevar{signature}%
+ }%
+ \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
+ \ignorespaces #2\\[3\baselineskip]
+ \leavevmode
+ % here the signature <- not correct
+ \vbox to 0pt{%
+ \vskip -4\baselineskip\relax
+ \hbox to 0pt{\strut#1\hss}%
+ \vss}%
+% \ifx\@empty\@fromsig
+% \else \@fromsig
+% \fi\strut
+ \ka@db@ifemptyvar{signature}{}{%
+ \footnotesize\ka@db@usevar{signature}%
+ }%
+ \strut
+ \fi
+ }%
+ \par\medskip\vfil
+ \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}[{{\ka@db@fontseries{bx}\ka@db@selectfont\ccname:\vspace{.3ex}}}]}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{cc}{}}%
+% \end{macrocode}
+%
+% (mp:) Oh boys, why couldn't a parameter be simply a parameter ? Why do I have to put
+% double braces around my argument ? Why doesn't vskip work instead of vspace ?
+%
+% \begin{macrocode}
+\def\encl{%
+ \@ifnextchar[%]
+ {\ka@db@genencl{encl}}{\ka@db@genencl{encl}[{{\ka@db@fontseries{bx}\ka@db@selectfont\enclname:\vspace{.3ex}}}]}%
+}
+\ka@db@execatletter{\ka@db@assignvarlocal{encl}{}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ps}
+% \begin{macrocode}
+\def\ps#1{\par\noindent{{\ka@db@fontseries{bx}\ka@db@selectfont\psname:\vspace{.3ex}}\\
+ \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 three macros assigns values to the counters 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{mpdinbrief}{%
+ Use \string\setlabelheight\space instead of \string\Etihoehe}%
+ \setlabelheight{#1}%
+ }
+\def\Etirand#1{
+ %\@warning{Use \string\setlabeltopmargin\space instead %
+ % of \string\Etirand}%
+ \ClassWarning{mpdinbrief}{%
+ Use \string\setlabeltopmargin\space instead of \string\Etirand}%
+ \setlabeltopmargin{#1}%
+ }
+\def\Etizahl#1{
+ %\@warning{Use \string\setlabelnumber\space instead %
+ % of \string\Etizahl}%
+ \ClassWarning{mpdinbrief}{%
+ Use \string\setlabelnumber\space instead of \string\Etizahl}%
+ \setlabelnumber{#1}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Defining the standard mpdinbrief 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 mpdinbrief 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 50.8truemm{\vss \box0 \vss}%
+ \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}%
+ \fi
+ \vss}\nointerlineskip
+%
+ \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 #1}\hfill}
+ \hrule width 85truemm}\hss}%
+ \vss}\nointerlineskip
+%
+ \vbox to 40truemm{%
+ \vss
+ \hbox to 0pt{\hskip0pt minus 4truemm%
+ \vbox{\raggedright #2%
+ \if@toadrcenter
+ \relax\else\vskip 2.5truemm minus 2.5truemm
+ \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
+ }}%
+ \vbox to 0pt{\vss}%
+ \vskip 18.0truemm
+ \vbox to 50.8truemm{\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
+ \textwidth2\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}{(KDB) 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}
+\def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
+% \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{\def\@fromsig{#1}}
+\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}{(KDB) 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}
+% \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}%
+}
+\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@dobottomtext{#1}%
+ % \gdef\ka@db@bottomtextmsg{#1}%
+ % \setbox\@@bottomtext=\hbox to 0pt{\hskip0pt minus 4truemm%
+ % \vbox{\raggedright #1}%
+ % \hss}%
+ }
+\long\def\ka@db@dobottomtext#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}
+ % \ka@db@assbottomtext{\ka@db@bottomtextmsg}%
+ \long\def\ka@db@dobottomtext##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{mpdinbrief}{%
+ \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{}{1994/02/09}{(KDB)}
+% \begin{macro}{\ifka@db@lastpage}
+% The following switch is used by pagestyle |contheadings| to detect the
+% last page.
+% \begin{macrocode}
+\newif\ifka@db@lastpage
+\ka@db@lastpagefalse
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ps@headings}
+% \begin{macrocode}
+\def\ps@headings{
+ \headheight=\ltf@headheight
+ \headsep=\ltf@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 0truemm
+ \def\@oddhead{%
+ \sl \headtoname\
+ \ignorespaces\toname \hfil \@date
+ \hfil \pagename{} \thepage}
+ \def\@oddfoot{}
+ \def\@evenhead{%
+ \sl \headtoname\
+ \ignorespaces\toname \hfil \@date
+ \hfil \pagename{} \thepage}
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle headings}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@empty}
+% \begin{macrocode}
+\def\ps@empty{%
+ \headheight=\lts@headheight
+ \headsep=\lts@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 0truemm
+ \def\@oddhead{}
+ \def\@oddfoot{}
+ \def\@evenhead{}
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle empty}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@first@page}
+% \begin{macrocode}
+\def\ps@first@page{%
+ \headheight=\lts@headheight
+ \headsep=\lts@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 4.2truemm
+ \fi
+ \footskip 8.8truemm
+% \end{macrocode}
+% We do not redefine the macros |\@oddfoot| and |\@evenfoot|.
+% So the first page gets the same layout in the foot as the
+% other pages.
+%
+% We can talk about use of such a half pagestyle. So we provide
+% here a hook |psfirstpagehook| and the user can complete this
+% pagestyle (if he wishes) simply by doing:
+%
+% \begin{quote}
+% |\def\psfirstpagehook{%|\\
+% | \def\@oddfoot{}|\\
+% | \def\@evenfoot{}}|
+% \end{quote}
+%
+% \begin{macrocode}
+ \def\@oddhead{}
+ \def\@evenhead{}
+ \expandafter\ifx\csname psfirstpagehook\endcsname\relax
+ \else
+ \psfirstpagehook
+ \fi
+%<debug> \message{executing pagestyle firstpage}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\psfirstpagehook}
+% \begin{macrocode}
+\def\psfirstpagehook{%
+ \def\@oddfoot{}
+ \def\@evenfoot{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@plain}
+% \begin{macrocode}
+\def\ps@plain{%
+ \headheight=\lts@headheight
+ \headsep=\lts@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 4.2truemm
+ \fi
+ \footskip 8.8truemm
+ \def\@oddhead{}
+ \def\@oddfoot{\hfil{\ka@db@fontshape{n}%
+ \ka@db@fontseries{m}\ka@db@selectfont\thepage}
+ \hfil}%
+ \def\@evenhead{}
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle plain}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ps@myheadings}
+% \begin{macrocode}
+\def\ps@myheadings{%\let\@mkboth\@gobbletwo
+ \headheight=\ltf@headheight
+ \headsep=\ltf@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 0truemm
+ \def\@oddhead{{\sl \rightmark}}%
+ \def\@oddfoot{}
+ \def\@evenhead{{\sl \leftmark}}%
+ \def\@evenfoot{}
+%<debug> \message{executing pagestyle myheadings}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ps@contheadings}
+% \changes{}{1994/02/09}{(KDB)}
+% Like pagestyle 'headings' with pagenumber in top line and
+% number of following page in bottom line.
+%
+% \smallskip
+% \changes{}{1994/02/10}{(KDB)}
+% Problem to be solved before this pagestyle can be introduced:
+% There must be found a method to detect the last page is typesetted
+% (endletter is not sufficient, since there may be another pagebreak when
+% \TeX\ has seen the command - due to an overfull page)
+% \begin{macrocode}
+\def\ps@contheadings{%\let\@mkboth\@gobbletwo
+ \headheight=\ltf@headheight
+ \headsep=\ltf@headsep
+ \ifka@db@ltxtwoe
+ \relax
+ \else
+ \footheight 0truemm
+ \fi
+ \footskip 8.8truemm
+ \def\@oddhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date
+ \hfil\pagename{} \thepage}}%
+ \def\@oddfoot{\ifka@db@lastpage
+ \relax
+%<debug> \message{ignoring oddfoot in contheadings}%
+ \else
+ \addtocounter{page}{1}%
+ \hfil--- \thepage{} ---\hfil%
+ \addtocounter{page}{-1}%
+%<debug> \message{executing oddfoot in contheadings}%
+ \fi}
+ \def\@evenhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date
+ \hfil\pagename{} \thepage}}%
+ \def\@evenfoot{\ifka@db@lastpage
+ \relax
+%<debug> \message{ignoring evenfoot in contheadings}%
+ \else
+ \addtocounter{page}{1}%
+ ~\hfil--- \thepage{} ---~%
+ \addtocounter{page}{-1}%
+%<debug> \message{executing evenfoot in contheadings}%
+ \fi}
+%<debug> \message{executing pagestyle contheadings}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Fonts --- paragraphing}
+% These parameters control \TeX's behaviour when two lines tend
+% to come too close together.
+%
+% \begin{macrocode}
+\lineskip 1pt
+\normallineskip 1pt
+% \end{macrocode}
+% \begin{macro}{\baselinestretch}
+% This is used as a multiplier for |\baselineskip|. The default is
+% {\em not\/} to stretch the baselines.
+% \begin{macrocode}
+\def\baselinestretch{1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parskip}
+% \begin{macro}{\parindent}
+% |\parskip| gives extra vertical space between paragraphs and |\parindent|
+% is the width of the paragraph indentation.
+% \begin{macrocode}
+\parskip .7em
+\parindent 0pt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\topsep .4em
+\partopsep 0pt
+\itemsep .4em
+% \end{macrocode}
+%
+% \begin{macro}{\@lowpenalty}
+% \begin{macro}{\@medpenalty}
+% \begin{macro}{\@highpenalty}
+% The commands |\nopagebreak| and |\nolinebreak| put in penalties to
+% discourage these breaks at the point they are put in. They use
+% |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|, dependant on their
+% argument.
+% \begin{macrocode}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+% \end{macrocode}
+%
+% \subsection{Lists}
+%
+% \subsubsection{General list parameters}
+%
+% The following commands are used to set default values for the list
+% environment's parameters. See the \LaTeX{} manual for an explanation
+% of the meanings of these parameters. Defaults for the list
+% environment are set as follows. First, |\rightmargin|,
+% |\listparindent| and |\itemindent| are set to 0pt. Then, for a Kth
+% level list, the command |\@listK| is called, where `K' denotes `i',
+% '`i', ... , `vi'. (I.e., |\@listiii| is called for a third-level
+% list.) By convention, |\@listK| should set |\leftmargin| to
+% |\leftmarginK|.
+%
+% \begin{macro}{\leftmargin}
+% \begin{macro}{\leftmargini}
+% \begin{macro}{\leftmarginii}
+% \begin{macro}{\leftmarginiii}
+% \begin{macro}{\leftmarginiv}
+% \begin{macro}{\leftmarginv}
+% \begin{macro}{\leftmarginvi}
+% For efficiency, level-one list's values are defined at top level, and
+% |\@listi| is defined to set only |\leftmargin|.
+%
+% \begin{macrocode}
+\leftmargini 2.5em
+\leftmarginii 2.2em
+\leftmarginiii 1.87em
+\leftmarginiv 1.7em
+\leftmarginv 1em
+\leftmarginvi 1em
+% \end{macrocode}
+% Here we set the top level leftmargin.
+% \begin{macrocode}
+\leftmargin\leftmargini
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelsep}
+% \begin{macro}{\labelwidth}
+% |\labelsep| is the distance between the label and the text of an
+% item; |\labelwidth| is the width of the label.
+% \begin{macrocode}
+\labelwidth\leftmargini
+\advance\labelwidth-\labelsep
+\labelsep 5pt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\parsep 0pt
+% \end{macrocode}
+%
+% \begin{macro}{\@listi}
+% \begin{macrocode}
+\let\@listi\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@listii}
+% \begin{macro}{\@listiii}
+% \begin{macro}{\@listiv}
+% \begin{macro}{\@listv}
+% \begin{macro}{\@listvi}
+% Here are the same macros for the higher level lists.
+% \begin{macrocode}
+\def\@listii{%
+ \leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep}
+\def\@listiii{%
+ \leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep .2em
+ \itemsep \topsep}
+\def\@listiv{%
+ \leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv{%
+ \leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi{%
+ \leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Enumerate}
+%
+% The enumerate environment uses four counters: \Lcount{enumi},
+% \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
+% \Lcount{enumN} controls the numbering of the Nth level
+% enumeration.
+%
+% \begin{macro}{\theenumi}
+% \begin{macro}{\theenumii}
+% \begin{macro}{\theenumiii}
+% \begin{macro}{\theenumiv}
+% The counters are already defined in \file{latex.tex}, but their
+% representation is changed here.
+%
+% \begin{macrocode}
+\def\theenumi{\arabic{enumi}}
+\def\theenumii{\alph{enumii}}
+\def\theenumiii{\roman{enumiii}}
+\def\theenumiv{\Alph{enumiv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelenumi}
+% \begin{macro}{\labelenumii}
+% \begin{macro}{\labelenumiii}
+% \begin{macro}{\labelenumiv}
+% The label for each item is generated by the commands \hfil\break
+% |\labelenumi| ... |\labelenumiv|.
+% \begin{macrocode}
+\def\labelenumi{\arabic{enumi}.}
+\def\labelenumii{(\alph{enumii})}
+\def\labelenumiii{\roman{enumiii}.}
+\def\labelenumiv{\Alph{enumiv}.}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\p@enumii}
+% \begin{macro}{\p@enumiii}
+% \begin{macro}{\p@enumiv}
+% The expansion of |\p@enumN||\theenumN| defines the output of a
+% |\ref| command when referencing an item of the Nth level of an
+% enumerated list.
+% \begin{macrocode}
+\def\p@enumii{\theenumi}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\p@enumiv{\p@enumiii\theenumiii}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Itemize}
+%
+% \begin{macro}{\labelitemi}
+% \begin{macro}{\labelitemii}
+% \begin{macro}{\labelitemiii}
+% \begin{macro}{\labelitemiv}
+% Itemization is controlled by four commands: |\labelitemi|,
+% |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
+% the labels of thevarious itemization levels: the symbols used are
+% bullet, bold en-dash, asterisk and centred dot.
+%
+% \begin{macrocode}
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Description}
+%
+% \begin{macro}{\description}
+% \begin{macro}{\descriptionlabel}
+% \begin{macro}{\enddescription}
+% The description environment is defined here -- while the itemize
+% and enumerate environments are defined in \file{latex.tex}.
+%
+% To change the formatting of the label, you must redefine
+% |\descriptionlabel|.
+%
+% \begin{macrocode}
+\def\descriptionlabel#1{%
+ \hspace\labelsep \bf #1}
+\def\description{%
+ \list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+\let\enddescription\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Verse}
+%
+% \begin{macro}{\verse}
+% \begin{macro}{\endverse}
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types |\\| to end a line.
+% This is implemented by |\let|'ing |\\| equal |\@centercr|.
+%
+% \begin{macrocode}
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@
+ \itemindent -15pt
+ \listparindent \itemindent
+ \rightmargin\leftmargin
+ \advance\leftmargin 15pt}\item[]}
+\let\endverse\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Quotation}
+%
+% \begin{macro}{\quotation}
+% \begin{macro}{\endquotation}
+% The quotation environment is also defined by making clever use of
+% the list environment's parameters. The lines in the environment
+% are set smaller than |\textwidth|. The first line of a paragraph
+% inside this environment is indented.
+%
+% \begin{macrocode}
+\def\quotation{%
+ \list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin}%
+ \item[]}
+\let\endquotation=\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Quote}
+%
+% \begin{macro}{\quote}
+% \begin{macro}{\endquote}
+% The quote environment is like the quotation environment except
+% that paragraphs are not indented.
+%
+% \begin{macrocode}
+\def\quote{%
+ \list{}{\rightmargin\leftmargin}%
+ \item[]}
+\let\endquote=\endlist
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Setting parameters for existing environments}
+%
+% \subsubsection{Array and tabular}
+%
+% \begin{macro}{\arraycolsep}
+% The columns in an array environment are separated by
+% 2|\arraycolsep|.
+% \begin{macrocode}
+\arraycolsep 5pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tabcolsep}
+% The columns in an tabular environment are separated by
+% 2|\tabcolsep|.
+% \begin{macrocode}
+\tabcolsep 6pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\arrayrulewidth}
+% The width of rules in the array and tabular environments is given
+% by \hfil\break
+% |\arrayrulewidth|.
+% \begin{macrocode}
+\arrayrulewidth .4pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doublerulesep}
+% The space between adjacent rules in the array and tabular
+% environments is given by |\doublerulesep|.
+% \begin{macrocode}
+\doublerulesep 2pt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Tabbing}
+%
+% \begin{macro}{\tabbingsep}
+% This controls the space that the |\'| command puts in. (See
+% \LaTeX{} manual for an explanation.)
+% \begin{macrocode}
+\tabbingsep \labelsep
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Minipage}
+%
+% \begin{macro}{\@minipagerestore}
+% The macro |\@minipagerestore| is called upon entry to a minipage
+% environment to set up things that are to be handled differently
+% inside a minipage environment. In the current styles, it does
+% nothing.
+% \end{macro}
+%
+% \begin{macro}{\@mpfootins}
+% Minipages have their own footnotes; |\skip||\@mpfootins| plays
+% the same r\^ole for footnotes in a minipage as |\skip||\footins| does
+% for ordinary footnotes.
+%
+% \begin{macrocode}
+\skip\@mpfootins = \skip\footins
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Framed boxes}
+%
+% \begin{macro}{\fboxsep}
+% The space left by |\fbox| and |\framebox| between the box and the
+% text in it.
+% \begin{macrocode}
+\fboxsep = 3pt
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fboxrule}
+% The width of the rules in the box made by |\fbox| and |\framebox|.
+% \begin{macrocode}
+\fboxsep = 3pt
+\fboxrule = .4pt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Equation and eqnarray}
+%
+% \begin{macro}{\theequation}
+% The equation counter will be reset at beginning of a new letter.
+% The equation counter will be typeset using arabic numbers.
+%
+% \begin{macrocode}
+\def\theequation{\arabic{equation}}
+\@addtoreset{equation}{letter}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\jot}
+% |\jot| is the extra space added between lines of an eqnarray
+% environment. The default value is used.
+% \begin{macrocode}
+% \setlength\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 mpdinbrief 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}
+% \begin{macrocode}
+\newcount\yearcnt
+\yearcnt=\year
+\advance\yearcnt-\number1900
+\def\@znumber#1{\ifnum\number#1<10 0\number#1\else\number#1\fi}
+\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{}{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 \ka@db@fontseries{bx}\ka@db@selectfont #1\par}}
+\let\subject=\concern
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@fordate}
+% |\@fordate| is the length of the remaining part of the
+% referline.
+% \begin{macrocode}
+\newlength{\@fordate}
+\setlength{\@fordate}{\textwidth}
+\addtolength{\@fordate}{-131truemm}
+% \end{macrocode}
+% \end{macro}
+%
+% \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?)
+%
+% \begin{macrocode}
+\def\@answertoold{%
+ \setlength{\@fordate}{\textwidth}
+ \addtolength{\@fordate}{-131truemm}
+ \parbox[b]{50.8truemm}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \yourmailmsg{}}%
+ \hfill\\ \@yourmail\hbox{}\hss}%
+ \parbox[b]{50.8truemm}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \signmsg{}}%
+ \hfill\\ \@mymail\hbox{}\hss}%
+ \parbox[b]{25.4truemm}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \phonemsg{} \@prephone{}}%
+ \hfill\\ \@phone\hbox{}\hss}%
+ \parbox[b]{\@fordate}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
+ \ifx\@empty\@place
+ \vphantom{K}\rule{2pt}{0pt}
+ \else
+ \@place{}%
+ \fi
+ }\hfill\\ \@ntoday}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \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. In dinbrief there has been
+% added some extra space to this box to conform to this.
+% Mpdinbrief deviates from the DIN and adjusts the referline to \cmd\textwidth.
+% The whitespace between the fields is equally spread.
+% I (mp) think, there is no reason for DIN's rigid position in post
+% typewriter times.
+%
+% \begin{macrocode}
+\def\@answertonew{%
+ \hbox to \textwidth{%
+ \vbox{\hbox{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \yourmailmsg{}}%
+ \hbox{\@yourmail}}%
+ \hfil
+ \vbox{\hbox{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \signmsg{}}%
+ \hbox{\@mymail}}%
+ \hfil
+ \vbox{\hbox{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \phonemsg{}%
+ \writermsg{}%
+ }%
+ \hbox{
+ \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
+ }
+ }%
+ \hfil
+ \vbox{\hbox{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
+ \datemsg
+ }
+ \hbox{\@ntoday}
+ }
+ \setlength{\@fordate}{\textwidth}%
+ }%
+ }
+% \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{mpdinbrief}{%
+ 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{mpdinbrief}{%
+ 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{mpdinbrief}{%
+ \string\Retourlabel\space not yet implemented.}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Fenster}
+% \begin{macrocode}
+\def\Fenster{%
+ \ClassWarning{mpdinbrief}{%
+ \string\Fenster\space not yet implemented.}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Retouradresse}
+% \begin{macrocode}
+\def\Retouradresse#1{%
+ \ClassWarning{mpdinbrief}{%
+ Use \string\backaddress\space instead of \string\Retouradresse}%
+ \backaddress{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Betreff}
+% \begin{macrocode}
+\def\Betreff#1{%
+ \ClassWarning{mpdinbrief}{%
+ 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{mpdinbrief}{%
+ 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{mpdinbrief}{%
+ 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{mpdinbrief}{%
+ 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}
+%
+% \begin{macrocode}
+%</class|style>
+% \end{macrocode}
+%
+% \subsection{The short class file/the short style file}
+% This file only inputs the mpdinbrief.sty file.
+%
+% \begin{macrocode}
+%<*shortclass>
+\input mpdinbrief.sty
+%</shortclass>
+% \end{macrocode}
+%
+% This file only inputs the mpdinbrief.cls file.
+%
+% \begin{macrocode}
+%<*shortstyle>
+\input mpdinbrief.cls
+%</shortstyle>
+% \end{macrocode}
+%
+% \section{An example letter}
+%
+% \subsection{The letter head}
+%
+% \begin{macrocode}
+%<*mpbrfkopf>
+% \end{macrocode}
+% \begin{macrocode}
+%
+\usepackage{epsfig}
+%
+\def\rdash{\raise.125ex\hbox{-}}
+
+\def\tel{\raise.3ex\hbox{\footnotesize+}49\kern.2em6251\kern.2em39415}
+\def\facs{\raise.3ex\hbox{\footnotesize+}49\kern.2em6251\kern.2em39575}
+%
+
+\def\briefkopf{
+ \vbox
+ {\null
+ \vskip3mm
+ \hbox to \textwidth
+ {\hbox{\huge\textbf{Softwerk}}%
+ \hskip7mm
+ \raise13mm\hbox to 30mm {\vbox to 0mm{\originalTeX\psfig{scale=1.0, file=lego.eps}}}%
+ \hfill
+ \hbox{\large Ihr Partner f"ur zeitgem\kern-.0375em"a"se EDV\rdash""L"osungen}%
+ }
+ \vskip6mm
+ \hbox to \textwidth
+ {\hbox{}%
+ \hfill
+ \hbox{\vbox{\raggedleft
+ Markus Pilzecker\\
+ Am Wechsel 9a\\[.3ex]
+ D\rdash""64625 Bensheim\\[.7ex]
+ Tel.\ \tel\\
+ Facs.\ \facs\\%
+ {\footnotesize markus.pilzecker@rhein-neckar.netsurf.de}
+ }%
+ }%
+ }%
+ }%
+ }
+%
+\signature{Markus Pilzecker}
+ %\place{Bensheim}
+\address{\briefkopf}
+ %\phone{}{\raise.3ex\hbox{\footnotesize+}49\kern.2em6251\kern.2em39415}
+\def\FS{\textbf{Softwerk},\hfil{}Markus\,Pilzecker,\hfil{}Am\,Wechsel\,9a,\hfil{}D\rdash""64625\,Bensheim\rule[-1ex]{0pt}{0pt}}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</mpbrfkopf>
+% \end{macrocode}
+%
+% \subsection{The letter}
+% \begin{macrocode}
+%<*mpexample>
+% \end{macrocode}
+% This will be a letter.
+% \begin{macrocode}
+
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{mpdinbrief}
+ \else
+ \documentclass[11pt]{mpdinbrief}
+ \usepackage{german}
+ \fi
+
+\input mpbrfkopf
+\input isotoday.sty
+
+% \makelabels
+% \labelstyle{deskjet}
+
+\pagestyle{contheadings}
+
+\begin{document}
+
+ %\fontencoding{T1} % use this, if you want to use the new ec fonts
+ % but esp. together with cmss, it's not very nice yet
+\fontfamily{cmss}
+\selectfont
+
+\enabledraftstandard
+\nowindowtics
+
+ %\phonemsg{\ }
+ %\signmsgnew{ }
+ %\yourmailmsg{ }
+
+\bottomtext{%
+ \vskip3mm
+ \makebox[\textwidth][c]{\footnotesize
+ Bankverbindung $\cdot$ Sparkasse Bensheim %
+ (BLZ~509~500~68) 123456
+ }
+}
+
+\date{\ISOtoday}
+
+ %\setlength{\topmargin}{-15pt}
+\backaddress{\FS}
+
+\begin{letter}{\null\vss\null\vss\null\vss\null\vss\null % three fifth whitespace
+ LEGO System A/S\\
+ c/o Ole Kirk Christiansen\\
+ Dept.\ for Reanimation of the basic things of life\\[\smallskipamount]
+ DK\rdash""7190 Billund
+ \null\vss\null\vss\null % two fifth whitespace
+ }
+
+ %\yourmail{\ } % switches the referline to verbose: isn't this mnemonic ?
+ %\centeraddress
+
+\subject{Bitte um "Uberlassung von Lego\rdash""Bausteinen}
+
+\opening{Sehr geehrter Herr Christiansen,}
+
+vor etwa drei"sig Jahren haben wir mit Ihren Entwicklungswerkzeugen
+objektorientiertes Programmieren, Modellieren und Pattern Extraction gelernt.
+
+Nachdem das Preis\rdash""/Leistungs\rdash""Verh"altnis Ihrer Nachahmer
+[Rational, PARC, Pulli\rdash""Billy, etc.] einfach nicht an Ihr pro Modul wirklich
+ungeschlagbares heranreicht, uns aber angesichts unserer immer komplexer werdenden
+Projekte zusehends die Brocken ausgehen, bitten wir Sie, uns gegebenenfalls
+farblich fehlerhafte 1b\rdash""Ware zu erschwinglichen Konditionen zu "uberlassen.
+Auch funkig\rdash""bunte Spritzgu"s\rdash"""Ubergangs\rdash""St"ucke w"aren uns
+f"ur unsere Produkt\rdash""Pr"asentationen genehm.
+
+
+\closing{Mit freundlichen Gr"u"sen}
+
+\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob wir uns in unseren
+ virtuellen Multimedien\rdash""Welten z.B. mit Banden\rdash""Werbung
+ revangieren k"onnen.}
+\encl{Forschungsbericht Nr.\ 6/99 des Instituts f"ur Lego-basiertes object-oriented
+ Enterprising
+ }
+\cc{Gewerkschaft Erziehung und Wissenschaft\\
+ Bundesministerium zur Demontage des Bildungswesens}
+
+\end{letter}
+
+\end{document}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</mpexample>
+% \end{macrocode}
+%
+% \section{Testing the class/style}
+%
+% \begin{macrocode}
+%<*brfbody>
+% \end{macrocode}
+% \begin{macrocode}
+\yourmail{\ }
+\subject{Bitte um "Uberlassung einer Sammlung von Alka-Seltzer Flaschen}
+
+\opening{Sehr geehrter Herr Prof.\ Forschegut,}
+
+von Kollegen habe ich erfahren, da"s sich bei Ihnen eine gro"se
+Anzahl von Alka-Seltzer Flaschen mit nur noch einer Tablette
+angesammelt hat, da eine Flasche 25~Tabletten enth"alt, der
+Beipackzettel aber angibt, da"s stets 2~Tabletten gleichzeitig
+einzunehmen sind.
+
+Ich forsche gerade im Bereich m"oglicher Anwendungen einzelner
+Schmerztabletten. Falls Sie so freundlich w"aren, Ihre Alka-Seltzer
+Sammlung f"ur unser Projekt zu stiften, w"urde ich Ihnen gerne
+Vorabdrucke aller zuk"unftigen Forschungsberichte zur Verf"ugung
+stellen, die wir "uber dieses kritische Problem ver"offentlichen.
+
+{\bf Testing \verb|itemize|}\hfil\break
+\begin{itemize}
+ \item Dies ist ein \verb|\item|.
+ \begin{itemize}
+ \item \verb|\item| in Level 2.
+ \item
+ \begin{itemize}
+ \item \verb|\item| in Level 3.
+ \end{itemize}
+ \end{itemize}
+ \item Zweites \verb|\item|.
+\end{itemize}
+
+{\bf Testing \verb|enumerate|}\hfil\break
+\begin{enumerate}
+ \item Dies ist ein \verb|\item|.
+ \begin{enumerate}
+ \item \verb|\item| in Level 2.
+ \item
+ \begin{enumerate}
+ \item \verb|\item| in Level 3.
+ \end{enumerate}
+ \end{enumerate}
+ \item Zweites \verb|\item|.
+\end{enumerate}
+
+{\bf Testing \verb|description|}\hfil\break
+\begin{description}
+ \item[First] Dies ist ein \verb|\item|.
+ \begin{description}
+ \item[Second] \verb|\item| in Level 2.
+ \item[Third]
+ \begin{description}
+ \item \verb|\item| in Level 3.
+ \item Zweites \verb|\item| in Level 3.
+ \end{description}
+ \end{description}
+ \item[Second] Zweites \verb|\item|.
+\end{description}
+
+{\bf Testing Lists}\hfil\break
+\begin{description}
+ \item[First] Dies ist ein \verb|\item|.
+ \begin{itemize}
+ \item \verb|\item| in Level 2.
+ \item
+ \begin{enumerate}
+ \item \verb|\item| in Level 3.
+ \item Zweites \verb|\item| in Level 3.
+ \end{enumerate}
+ \end{itemize}
+ \item[Second] Zweites \verb|\item|.
+ \item[Third]
+ \begin{enumerate}
+ \item Genius \LaTeX.
+ \item Why has been there so large distance between the label
+ and the first number in elder versions of \LaTeX?
+ \end{enumerate}
+\end{description}
+
+{\bf Testing \verb|verse|}\hfil\break
+\begin{verse}
+{\bf Die F"u"se im Feuer\/}
+
+Wild zuckt der Blitz,\\
+im fahlen Lichte steht ein Turn,\\
+der Donner rollt,\\
+ein Reiter k"ampft mit seinem Ro"s,\\
+springt ab un pocht ans Tor und l"armt.\\
+Sein Mantel saust im Wind,\\
+und knarrent "offnet jetzt das Tor ein Edelmann.\\
+\dots\\
+Der Reiter tritt in einen dunklen Ahnensaal.
+
+Von eines weiten Herdes Feuer schwach erhellt,\\
+droht hier ein Hugenott im Harnisch,\\
+dort ein Weib, ein stolzes Weib in braunen Ebenbild.\\
+Der Reiter wirft sich in den Sessel vor dem Herd\\
+und starrt in den lebendgen Brand\\
+\dots \\
+Die Flamme zischt, zwei F"u"se zucken in der Glut.
+
+\dots
+\end{verse}
+
+{\bf Testing \verb|quotation|}\hfil\break
+\begin{quotation}
+``Ich finde'', sagte einst Winston Churchill im
+Unterhaus, ``die Art von Kritik, wie ich sie am
+Sonntagmorgen bei meiner Ankunft in den Zeitungen
+fand, erinnert mich immer an die Geschichte von
+dem Matrosen, der in ein Hafenbecken sprang ---
+in Plymouth, glaube ich ---, um einen kleinen
+Jungen vom Ertrinken zu retten.
+
+Dort sprach eine Frau den Matrosen an:\\
+`Sind Sie der Mann, der meinen Sohn neulich
+aus dem Wasser gezogen hat?'\\
+Bescheiden erwiderte der Matrose:\\
+`Ja, das stimmt.'\\
+`Aha', sagte die Frau: `Ich suche Sie schon
+die ganze Zeit \dots\ Wo ist seine M"utze?'{}''
+\end{quotation}
+
+{\bf Testing \verb|quote|}\hfil\break
+\begin{quote}
+Ein {\em klassisches\/} Werk ist ein Buch,\\
+das die Leute loben,\\
+aber nie lesen. \hfill({\em E.\ Hemingway\/})
+\end{quote}
+
+{\bf Testing \verb|equation|}\hfil\break
+\begin{equation}
+ x^2 = y^2 + z^2
+\end{equation}
+
+{\bf Testing \verb|tabular|}\hfil\break
+
+{\bf Testing \verb|tabbing|}\hfil\break
+
+\closing{Mit freundlichen Gr"u"sen}
+
+\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob Sie Ihre
+ Schenkung in Verbindung mit unserer Forschung von der Steuer
+ absetzen k"onnen.}
+\encl{Forschungsbericht Nr.\ 6/99 des IfA}
+\cc{Future Pharma\\
+ Bundesministerium zur Unterst"utzung der Pharmaindustrie}
+
+% \end{macrocode}
+% \begin{macrocode}
+%</brfbody>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*10pt>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{mpdinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[10pt]{mpdinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</10pt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*11pt>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[11pt,german]{mpdinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[11pt]{mpdinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</11pt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*12pt>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[12pt,german]{mpdinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[12pt]{mpdinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</12pt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*norm>
+% \end{macrocode}
+% \begin{macrocode}
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[norm,german]{mpdinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[norm]{mpdinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+%</norm>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*test>
+% \end{macrocode}
+% \begin{macrocode}
+\input mpbrfkopf.tex
+
+\newcommand{\oneletter}{%
+\begin{letter}{%
+Herrn Professor\\
+Dr.\ Hans Forschegut\\
+Institut f"ur Abfallbeseitigung\\
+Fachhochschule Waldstadt\\
+Postfach 3322\\[\medskipamount]
+{\bf 1100 Waldstadt}}
+
+\input brfbody.tex
+
+\end{letter}
+
+}
+
+\begin{document}
+
+\bottomtext{%
+ \makebox[\textwidth][c]{\small\sf
+ Bankverbindung $\cdot$ Kreissparkasse Gralsruhe %
+ (BLZ~999~500~00) 98~765~4
+ }
+}
+
+\backaddress{\FS}
+
+\pagestyle{empty}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+\pagestyle{plain}
+
+\writer{Gussmann}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+\pagestyle{headings}
+
+\writer{Gussmann}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+\pagestyle{contheadings}
+
+\enabledraftstandard
+
+\oneletter
+
+\disabledraftstandard
+
+\oneletter
+
+% \end{macrocode}
+% \begin{macrocode}
+%</test>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*10pt|11pt|12pt|norm>
+\end{document}
+%</10pt|11pt|12pt|norm>
+% \end{macrocode}
+%
+% \section{Example for using the old {\tt dinbrief\/} API}
+%
+% \begin{macrocode}
+%<*dinbriefold>
+% \end{macrocode}
+% \begin{macrocode}
+ %
+ % example letter, example receiver addresses
+ %
+ % Most of the following code has taken from the dinbrief released
+ % at May 11th, 1992. This code is originated by Rainer Sengerling.
+ %
+ % The following example contains all commands of the old dinbrief.sty
+ % API (application programming interface). We recommend to use the
+ % new dinbrief API which is much more powerfull. The outcome may be
+ % quiet unsatisfied if you mix both APIs. We had made a few changes
+ % to adapt the file to \LaTeXe.
+ %
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \documentstyle[german]{dinbrief}
+ \typeout{Using the command \string\documentstyle.}
+ \else
+ \documentclass[10pt]{dinbrief}
+ \usepackage{german}
+ \typeout{Using the command \string\documentclass.}
+ \fi
+
+\Etihoehe{41mm}%
+\Etirand{46.3mm}%
+\Etizahl{6}%
+\makelabels
+\spare{1}
+ %\pagestyle{empty}
+\begin{document}
+ %
+ % Musterbrief -- Anfang
+ % In der vorliegenden Version (beachte Auskommentierungen mit %)
+ % liefert er das Anwendungsbeispiel 4 von DIN 5008
+ %
+\begin{letter}{%
+Stadt G"ottingen\\
+Stadtbauamt\\
+Postfach 28 17\par
+3400 G"ottingen
+}
+\Postvermerk{Einschreiben}
+\Behandlungsvermerk{E\ i\ l\ t}
+\Datum{G"ottingen, 29.04.86}
+\Absender{Klaus Waldmann\\B"urgerstra"se 135\\3400 G"ottingen\\::Tel.\
+(05 51) 9 34 56}
+\Retourlabel
+\Fenster
+\Retouradresse{K. Waldmann $\cdot$ B"urgerstr.\ 135 $\cdot$
+ 3400 G"ottingen}
+\Betreff{Mein Bauvorhaben Waldrebenweg 9}
+\signature{K. Waldmann}
+\opening{Sehr geehrte Damen und Herren,}
+den Antrag zur Genehmigung f"ur den Neubau eines Einfamilienhauses auf
+meinem Grund\-st"uck G"ottingen, Waldrebenweg 9, hat der Architekt,
+Herr Dipl.-Ing.\ G. Schwarz, mit allen erforderlichen Unterlagen am
+03.01.86 eingereicht. Die Baugenehmigung habe ich bis heute nicht
+erhaltern.
+
+\Einrueckung{%Der folgende Text wird eingerueckt
+Da ich die Finanzierung des Bauvorhabens ohne die Baugenehmigung nicht
+endg"ultig kl"aren kann und der Beginn der Bauarbeiten nicht verz"ogert
+werden soll, bitte ich dringend, das Genehmigungsverfahren zu
+beschleunigen.
+} % Ende der Einrueckung
+
+Gleichzeitig bitte ich um Auskunft, ob damit zu rechnen ist, da"s der
+nur geschotterte Waldrebenweg in absehbarer Zeit zu einer "`Stra"se im
+vorl"aufigen Ausbau"' umgestaltet wird.
+
+\anlagenrechts
+\Anlagen{2 Anlagen}
+\Verteiler{Verteiler:\\Landratsamt}
+
+\closing{Mit freundlichen Gr"u"sen}
+\ps{Also bis bald!}
+\end{letter}
+
+ % normgerecht geschriebene Adressen
+
+\begin{letter}{Frau\\Erika Werner\\bei M"uller\\Bahnhofstr.\ 4 -- 6
+
+8580 Bayreuth}
+\end{letter}
+
+\begin{letter}{Frau\\ Annemarie Hartmann\\Vogelsangstr.\ 17 II\par
+2870 Delmenhorst}
+\Postvermerk{Briefdrucksache}
+\end{letter}
+
+\begin{letter}{02694/73\\Herrn Gutsverwalter\\Dipl.-Ldw.\ Otto Winter\\
+Hauptstr.\ 3
+
+8221 Alm Post Neukirchen}
+\Postvermerk{Nicht nachsenden}
+\end{letter}
+
+\begin{letter}{Eheleute\\Erika und Hans M"uller\\Hochstr.\ 4
+
+4709 Bergkamen}
+\Postvermerk{Warensendung}
+\end{letter}
+
+\begin{letter}{Herrn Staatsanwalt\\Dr.\ Ernst Meyer und Frau\\
+Talblick 2
+
+8200 Rosenheim}
+\Postvermerk{Eilzustellung -- auch nachts}
+\end{letter}
+
+\begin{letter}{Herrn Rechtsanwalt\\Dr.\ Otto Freiherr von Bergheim\\
+Leonhard-Eck-Str.\ 7 W 36
+
+8000 M"unchen 19}
+\Postvermerk{Einschreiben -- R"uckschein}
+\end{letter}
+
+\begin{letter}{Herrn Direktor\\Dipl.-Kfm.\ Kurt Gr"aser\\Massivbau AG\\
+Postfach 21 03 14
+
+5600 Wuppertal 21}
+\end{letter}
+
+\begin{letter}{Frau Luise Weber\\Herrn Max Weber\\Rosenstra"se 35
+
+7030 B"oblingen}
+\end{letter}
+
+\begin{letter}{Lack- und Farbwerke\\Dr.\ Hans Sendler \& Co.\\
+Abt.\ FDM 412/10\\Postfach 80 19 36\par
+6230 Frankfurt 80}
+\end{letter}
+
+\begin{letter}{Lehmann \& Krause KG\\z.\ H. Herrn E. Winkelmann\\
+Gartenhaus III r.\\Johannisberger Str.\ 5 a\par 1000 Berlin 31}
+\end{letter}
+
+\begin{letter}{W"aschegro"shandel\\Robert Bergmann\\Venloer
+Stra"se 80 -- 82\par 5000 K"oln 30}
+\end{letter}
+
+\begin{letter}{Firma\\Otto Pfleiderer\\Braunenweiler\\Hauptstr.\ 5\par
+7968 Saulgau 1}
+\Postvermerk{Drucksache}
+\end{letter}
+
+\begin{letter}{Amtsgericht Leer\\Grundbuchamt\\Postfach 11 24\par
+2950 Leer}
+\end{letter}
+
+\begin{letter}{Regierungspr"asident\\Dezernat 44.II.2\\
+Postfach 59 07\par 4400 M"unster}
+\end{letter}
+
+\begin{letter}{Nassauische Heimst"atte GmbH\\
+Abt.\ Landestreuhandstelle\\Postfach 10 29 17\par 6000 Frankfurt 1}
+\end{letter}
+
+\begin{letter}{Volksbank Friedberg\\Hauptzweigstelle Bad Nauheim\\
+Aliceplatz 4\par 6350 Bad Nauheim}
+\end{letter}
+
+\begin{letter}{VEB Ph"onix-Apparatewerk\\
+Absatzabteilung\\Inselstr.\ 14/20
+
+DDR-7021 Leipzig}
+\Postvermerk{Einschreiben}
+\end{letter}
+
+\begin{letter}{Mevrouv J. de Vries\\ Poste restante A. Cuypstraat\\
+Postbus 99730\\1000 NA AMSTERDAM
+
+NIEDERLANDE}
+\end{letter}
+
+\begin{letter}{Monsieur P. Dubois\\Expert en assurances\\
+Escalier 3, b\^atiment C\\4, rue Jean Jaur\`es
+
+F-58500 CLAMECY}
+\end{letter}
+
+\begin{letter}{Mr.\ W. Smith\\514 Kingsbridge Road\\PURLEY, SURREY\\DE
+1\\GROSSBRITANNIEN CRZ 4TH}
+\end{letter}
+
+\end{document}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</dinbriefold>
+% \end{macrocode}
+%
+%
+% This produces a small macro to represent the date -- conforming to an
+% unknown ISO standard -- in the form yy-mm-dd
+%
+% \begin{macrocode}
+%<*isotoday>
+\def\ISOtoday{%
+ \relax
+ \loop \ifnum \year > 100 \advance\year by -100 \repeat
+ \ifnum \year < 10 \number0 \fi\number\year\raise.125ex\hbox{-}%
+ \ifnum \month < 10 \number0 \fi\number\month\raise.125ex\hbox{-}%
+ \ifnum \day < 10 \number0 \fi\number\day%
+ }
+%</isotoday>
+% \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{mpdinbrief.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% End each file with |\endinput|.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput
+%% End of MPDINBRIEF.DTX (or CLS, STY, TEX)
diff --git a/macros/latex/contrib/mpdinbrief/mpdinbrief.ins b/macros/latex/contrib/mpdinbrief/mpdinbrief.ins
new file mode 100644
index 0000000000..16f46e38c8
--- /dev/null
+++ b/macros/latex/contrib/mpdinbrief/mpdinbrief.ins
@@ -0,0 +1,250 @@
+%%
+%% $Id: mpdinbrief.ins 1.10 1996/10/29 20:50:50 Gussmann Exp $
+%%
+%% $Log: dinbrief.ins $
+%% 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{mpdinbrief.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 by Richard Gussmann, University of Karlsruhe.
+For additional copyright information see further down in this file.
+
+This file is part of the mpdinbrief-class.
+----------------------------------------
+
+ This system is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+IMPORTANT NOTICE:
+
+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 and TeX organizations.
+
+You are not allowed to change this file.
+
+You are allowed to distribute this file under the condition that
+it is distributed together with all files mentioned in 00readme..
+
+If you receive only some of these files from someone, complain!
+
+You are NOT ALLOWED to distribute this file alone. You are NOT
+ALLOWED to take money for the distribution or use of either this
+file or a changed version, except for a nominal charge for copying
+etc.
+\endpreamble
+
+%\generateFile{mpdinbrief.sty}{t}{%
+% \from{mpdinbrief.dtx}{style}
+%}
+\generateFile{mpdinbrief.sty}{t}{%
+ \from{mpdinbrief.dtx}{shortstyle}
+}
+\generateFile{mpdinbrief.cls}{t}{%
+ \from{mpdinbrief.dtx}{class}
+}
+%\generateFile{mpdinbrief.cls}{t}{%
+% \from{mpdinbrief.dtx}{shortclass}
+% }
+\generateFile{mpdinbrief.tex}{t}{%
+ \from{mpdinbrief.dtx}{documentation}
+ }
+\generateFile{dintab.tex}{t}{%
+ \from{mpdinbrief.dtx}{dintab}
+ }
+\generateFile{mpbrfkopf.tex}{t}{%
+ \from{mpdinbrief.dtx}{mpbrfkopf}
+ }
+\generateFile{mpexample.tex}{t}{%
+ \from{mpdinbrief.dtx}{mpexample}
+ }
+\generateFile{mpbrfbody.tex}{t}{%
+ \from{mpdinbrief.dtx}{brfbody}
+ }
+\generateFile{isotoday.sty}{t}{%
+ \from{mpdinbrief.dtx}{isotoday}
+ }
+\generateFile{test10.tex}{t}{\from{mpdinbrief.dtx}{test,10pt}}
+\generateFile{test11.tex}{t}{\from{mpdinbrief.dtx}{test,11pt}}
+\generateFile{test12.tex}{t}{\from{mpdinbrief.dtx}{test,12pt}}
+\generateFile{testnorm.tex}{t}{\from{mpdinbrief.dtx}{test,norm}}
+\generateFile{dbold.tex}{t}{%
+ \from{mpdinbrief.dtx}{dinbriefold}
+ }
+
+%%%%%%%%%%%%%%%%% DOCUMENTATION FILES
+
+
+\preamble
+
+Copyright (C) 1993, 96 by Richard Gussmann.
+For additional copyright information see further down in this file.
+
+This file is part of the dinbrief-class.
+----------------------------------------
+
+ This system is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+IMPORTANT NOTICE:
+
+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 and TeX organizations.
+
+You are not allowed to change this file.
+
+You are allowed to distribute this file under the condition that
+it is distributed together with all files mentioned in 00readme..
+
+If you receive only some of these files from someone, complain!
+
+You are NOT ALLOWED to distribute this file alone. You are NOT
+ALLOWED to take money for the distribution or use of either this
+file or a changed version, except for a nominal charge for copying
+etc.
+\endpreamble
+
+\generateFile{mpdinbrief.drv}{t}{%
+ \from{mpdinbrief.dtx}{driver}}
+
+\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 mpdinbrief.}
+\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 mpdinbrief}
+\Msg{*}
+\Msg{********************************************************}
+\Msg{}
+
+
+\endinput
+
+# Local Variables:
+# mode: latex
+# End:
diff --git a/macros/latex/contrib/mpdinbrief/mpdinbrief.pdf b/macros/latex/contrib/mpdinbrief/mpdinbrief.pdf
new file mode 100644
index 0000000000..b62e4894c6
--- /dev/null
+++ b/macros/latex/contrib/mpdinbrief/mpdinbrief.pdf
Binary files differ