From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/mpdinbrief/lego.eps | 1056 ++++ macros/latex/contrib/mpdinbrief/mpdinbrief.README | 74 + macros/latex/contrib/mpdinbrief/mpdinbrief.dtx | 6743 +++++++++++++++++++++ macros/latex/contrib/mpdinbrief/mpdinbrief.ins | 250 + macros/latex/contrib/mpdinbrief/mpdinbrief.pdf | Bin 0 -> 364199 bytes 5 files changed, 8123 insertions(+) create mode 100644 macros/latex/contrib/mpdinbrief/lego.eps create mode 100644 macros/latex/contrib/mpdinbrief/mpdinbrief.README create mode 100644 macros/latex/contrib/mpdinbrief/mpdinbrief.dtx create mode 100644 macros/latex/contrib/mpdinbrief/mpdinbrief.ins create mode 100644 macros/latex/contrib/mpdinbrief/mpdinbrief.pdf (limited to 'macros/latex/contrib/mpdinbrief') 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@rhein-neckar.netsurf.de + braune@rz.uni-karlsruhe.de + gussmann@rz.uni-karlsruhe.de + + +Installing: + + gzip -dc mpdinbrf.tgz | (cd ; tar -xvf - ) + cd + + # 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}} +======================================================================= +% +% +% $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 +% +% \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 +% +% \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 +% +% \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 +% +% \fi +% \iffalse +%<*documentation|dintab> +% \fi +% \iffalse +\end{document} +% \fi +% \iffalse +% +% \fi +% +% \StopEventually{} +% +% \clearpage +% +% \originalTeX +% +% \section{Documentation} +% +% \begin{macrocode} +%<*class|style> +% \end{macrocode} +% +% We store the date, version and name of this file in four control +% sequences, for future use. +% \begin{macrocode} +\def\RCSdate{$Date: 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{} +% \message{executing pagestyle headings}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps@empty} +% \begin{macrocode} +\def\ps@empty{% + \headheight=\lts@headheight + \headsep=\lts@headsep + \ifka@db@ltxtwoe + \relax + \else + \footheight 0truemm + \fi + \footskip 0truemm + \def\@oddhead{} + \def\@oddfoot{} + \def\@evenhead{} + \def\@evenfoot{} +% \message{executing pagestyle empty}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps@first@page} +% \begin{macrocode} +\def\ps@first@page{% + \headheight=\lts@headheight + \headsep=\lts@headsep + \ifka@db@ltxtwoe + \relax + \else + \footheight 4.2truemm + \fi + \footskip 8.8truemm +% \end{macrocode} +% We do not redefine the macros |\@oddfoot| and |\@evenfoot|. +% So the first page gets the same layout in the foot as the +% other pages. +% +% We can talk about use of such a half pagestyle. So we provide +% here a hook |psfirstpagehook| and the user can complete this +% pagestyle (if he wishes) simply by doing: +% +% \begin{quote} +% |\def\psfirstpagehook{%|\\ +% | \def\@oddfoot{}|\\ +% | \def\@evenfoot{}}| +% \end{quote} +% +% \begin{macrocode} + \def\@oddhead{} + \def\@evenhead{} + \expandafter\ifx\csname psfirstpagehook\endcsname\relax + \else + \psfirstpagehook + \fi +% \message{executing pagestyle firstpage}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\psfirstpagehook} +% \begin{macrocode} +\def\psfirstpagehook{% + \def\@oddfoot{} + \def\@evenfoot{}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps@plain} +% \begin{macrocode} +\def\ps@plain{% + \headheight=\lts@headheight + \headsep=\lts@headsep + \ifka@db@ltxtwoe + \relax + \else + \footheight 4.2truemm + \fi + \footskip 8.8truemm + \def\@oddhead{} + \def\@oddfoot{\hfil{\ka@db@fontshape{n}% + \ka@db@fontseries{m}\ka@db@selectfont\thepage} + \hfil}% + \def\@evenhead{} + \def\@evenfoot{} +% \message{executing pagestyle plain}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{ps@myheadings} +% \begin{macrocode} +\def\ps@myheadings{%\let\@mkboth\@gobbletwo + \headheight=\ltf@headheight + \headsep=\ltf@headsep + \ifka@db@ltxtwoe + \relax + \else + \footheight 0truemm + \fi + \footskip 0truemm + \def\@oddhead{{\sl \rightmark}}% + \def\@oddfoot{} + \def\@evenhead{{\sl \leftmark}}% + \def\@evenfoot{} +% \message{executing pagestyle myheadings}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{ps@contheadings} +% \changes{}{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 +% \message{ignoring oddfoot in contheadings}% + \else + \addtocounter{page}{1}% + \hfil--- \thepage{} ---\hfil% + \addtocounter{page}{-1}% +% \message{executing oddfoot in contheadings}% + \fi} + \def\@evenhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date + \hfil\pagename{} \thepage}}% + \def\@evenfoot{\ifka@db@lastpage + \relax +% \message{ignoring evenfoot in contheadings}% + \else + \addtocounter{page}{1}% + ~\hfil--- \thepage{} ---~% + \addtocounter{page}{-1}% +% \message{executing evenfoot in contheadings}% + \fi} +% \message{executing pagestyle contheadings}% + } +% \end{macrocode} +% \end{macro} +% +% \subsection{Fonts --- paragraphing} +% These parameters control \TeX's behaviour when two lines tend +% to come too close together. +% +% \begin{macrocode} +\lineskip 1pt +\normallineskip 1pt +% \end{macrocode} +% \begin{macro}{\baselinestretch} +% This is used as a multiplier for |\baselineskip|. The default is +% {\em not\/} to stretch the baselines. +% \begin{macrocode} +\def\baselinestretch{1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\parskip} +% \begin{macro}{\parindent} +% |\parskip| gives extra vertical space between paragraphs and |\parindent| +% is the width of the paragraph indentation. +% \begin{macrocode} +\parskip .7em +\parindent 0pt +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\topsep .4em +\partopsep 0pt +\itemsep .4em +% \end{macrocode} +% +% \begin{macro}{\@lowpenalty} +% \begin{macro}{\@medpenalty} +% \begin{macro}{\@highpenalty} +% The commands |\nopagebreak| and |\nolinebreak| put in penalties to +% discourage these breaks at the point they are put in. They use +% |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|, dependant on their +% argument. +% \begin{macrocode} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +% \end{macrocode} +% +% \subsection{Lists} +% +% \subsubsection{General list parameters} +% +% The following commands are used to set default values for the list +% environment's parameters. See the \LaTeX{} manual for an explanation +% of the meanings of these parameters. Defaults for the list +% environment are set as follows. First, |\rightmargin|, +% |\listparindent| and |\itemindent| are set to 0pt. Then, for a Kth +% level list, the command |\@listK| is called, where `K' denotes `i', +% '`i', ... , `vi'. (I.e., |\@listiii| is called for a third-level +% list.) By convention, |\@listK| should set |\leftmargin| to +% |\leftmarginK|. +% +% \begin{macro}{\leftmargin} +% \begin{macro}{\leftmargini} +% \begin{macro}{\leftmarginii} +% \begin{macro}{\leftmarginiii} +% \begin{macro}{\leftmarginiv} +% \begin{macro}{\leftmarginv} +% \begin{macro}{\leftmarginvi} +% For efficiency, level-one list's values are defined at top level, and +% |\@listi| is defined to set only |\leftmargin|. +% +% \begin{macrocode} +\leftmargini 2.5em +\leftmarginii 2.2em +\leftmarginiii 1.87em +\leftmarginiv 1.7em +\leftmarginv 1em +\leftmarginvi 1em +% \end{macrocode} +% Here we set the top level leftmargin. +% \begin{macrocode} +\leftmargin\leftmargini +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelsep} +% \begin{macro}{\labelwidth} +% |\labelsep| is the distance between the label and the text of an +% item; |\labelwidth| is the width of the label. +% \begin{macrocode} +\labelwidth\leftmargini +\advance\labelwidth-\labelsep +\labelsep 5pt +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +\parsep 0pt +% \end{macrocode} +% +% \begin{macro}{\@listi} +% \begin{macrocode} +\let\@listi\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@listii} +% \begin{macro}{\@listiii} +% \begin{macro}{\@listiv} +% \begin{macro}{\@listv} +% \begin{macro}{\@listvi} +% Here are the same macros for the higher level lists. +% \begin{macrocode} +\def\@listii{% + \leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep} +\def\@listiii{% + \leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep .2em + \itemsep \topsep} +\def\@listiv{% + \leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv{% + \leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi{% + \leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{Enumerate} +% +% The enumerate environment uses four counters: \Lcount{enumi}, +% \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where +% \Lcount{enumN} controls the numbering of the Nth level +% enumeration. +% +% \begin{macro}{\theenumi} +% \begin{macro}{\theenumii} +% \begin{macro}{\theenumiii} +% \begin{macro}{\theenumiv} +% The counters are already defined in \file{latex.tex}, but their +% representation is changed here. +% +% \begin{macrocode} +\def\theenumi{\arabic{enumi}} +\def\theenumii{\alph{enumii}} +\def\theenumiii{\roman{enumiii}} +\def\theenumiv{\Alph{enumiv}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelenumi} +% \begin{macro}{\labelenumii} +% \begin{macro}{\labelenumiii} +% \begin{macro}{\labelenumiv} +% The label for each item is generated by the commands \hfil\break +% |\labelenumi| ... |\labelenumiv|. +% \begin{macrocode} +\def\labelenumi{\arabic{enumi}.} +\def\labelenumii{(\alph{enumii})} +\def\labelenumiii{\roman{enumiii}.} +\def\labelenumiv{\Alph{enumiv}.} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\p@enumii} +% \begin{macro}{\p@enumiii} +% \begin{macro}{\p@enumiv} +% The expansion of |\p@enumN||\theenumN| defines the output of a +% |\ref| command when referencing an item of the Nth level of an +% enumerated list. +% \begin{macrocode} +\def\p@enumii{\theenumi} +\def\p@enumiii{\theenumi(\theenumii)} +\def\p@enumiv{\p@enumiii\theenumiii} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{Itemize} +% +% \begin{macro}{\labelitemi} +% \begin{macro}{\labelitemii} +% \begin{macro}{\labelitemiii} +% \begin{macro}{\labelitemiv} +% Itemization is controlled by four commands: |\labelitemi|, +% |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define +% the labels of thevarious itemization levels: the symbols used are +% bullet, bold en-dash, asterisk and centred dot. +% +% \begin{macrocode} +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{Description} +% +% \begin{macro}{\description} +% \begin{macro}{\descriptionlabel} +% \begin{macro}{\enddescription} +% The description environment is defined here -- while the itemize +% and enumerate environments are defined in \file{latex.tex}. +% +% To change the formatting of the label, you must redefine +% |\descriptionlabel|. +% +% \begin{macrocode} +\def\descriptionlabel#1{% + \hspace\labelsep \bf #1} +\def\description{% + \list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} +\let\enddescription\endlist +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{Verse} +% +% \begin{macro}{\verse} +% \begin{macro}{\endverse} +% The verse environment is defined by making clever use of the +% list environment's parameters. The user types |\\| to end a line. +% This is implemented by |\let|'ing |\\| equal |\@centercr|. +% +% \begin{macrocode} +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ + \itemindent -15pt + \listparindent \itemindent + \rightmargin\leftmargin + \advance\leftmargin 15pt}\item[]} +\let\endverse\endlist +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{Quotation} +% +% \begin{macro}{\quotation} +% \begin{macro}{\endquotation} +% The quotation environment is also defined by making clever use of +% the list environment's parameters. The lines in the environment +% are set smaller than |\textwidth|. The first line of a paragraph +% inside this environment is indented. +% +% \begin{macrocode} +\def\quotation{% + \list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin}% + \item[]} +\let\endquotation=\endlist +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{Quote} +% +% \begin{macro}{\quote} +% \begin{macro}{\endquote} +% The quote environment is like the quotation environment except +% that paragraphs are not indented. +% +% \begin{macrocode} +\def\quote{% + \list{}{\rightmargin\leftmargin}% + \item[]} +\let\endquote=\endlist +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Setting parameters for existing environments} +% +% \subsubsection{Array and tabular} +% +% \begin{macro}{\arraycolsep} +% The columns in an array environment are separated by +% 2|\arraycolsep|. +% \begin{macrocode} +\arraycolsep 5pt +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tabcolsep} +% The columns in an tabular environment are separated by +% 2|\tabcolsep|. +% \begin{macrocode} +\tabcolsep 6pt +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\arrayrulewidth} +% The width of rules in the array and tabular environments is given +% by \hfil\break +% |\arrayrulewidth|. +% \begin{macrocode} +\arrayrulewidth .4pt +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\doublerulesep} +% The space between adjacent rules in the array and tabular +% environments is given by |\doublerulesep|. +% \begin{macrocode} +\doublerulesep 2pt +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Tabbing} +% +% \begin{macro}{\tabbingsep} +% This controls the space that the |\'| command puts in. (See +% \LaTeX{} manual for an explanation.) +% \begin{macrocode} +\tabbingsep \labelsep +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Minipage} +% +% \begin{macro}{\@minipagerestore} +% The macro |\@minipagerestore| is called upon entry to a minipage +% environment to set up things that are to be handled differently +% inside a minipage environment. In the current styles, it does +% nothing. +% \end{macro} +% +% \begin{macro}{\@mpfootins} +% Minipages have their own footnotes; |\skip||\@mpfootins| plays +% the same r\^ole for footnotes in a minipage as |\skip||\footins| does +% for ordinary footnotes. +% +% \begin{macrocode} +\skip\@mpfootins = \skip\footins +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Framed boxes} +% +% \begin{macro}{\fboxsep} +% The space left by |\fbox| and |\framebox| between the box and the +% text in it. +% \begin{macrocode} +\fboxsep = 3pt +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fboxrule} +% The width of the rules in the box made by |\fbox| and |\framebox|. +% \begin{macrocode} +\fboxsep = 3pt +\fboxrule = .4pt +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Equation and eqnarray} +% +% \begin{macro}{\theequation} +% The equation counter will be reset at beginning of a new letter. +% The equation counter will be typeset using arabic numbers. +% +% \begin{macrocode} +\def\theequation{\arabic{equation}} +\@addtoreset{equation}{letter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jot} +% |\jot| is the extra space added between lines of an eqnarray +% environment. The default value is used. +% \begin{macrocode} +% \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} +% +% \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 +% +% \end{macrocode} +% +% This file only inputs the mpdinbrief.cls file. +% +% \begin{macrocode} +%<*shortstyle> +\input mpdinbrief.cls +% +% \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} +% +% \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} +% +% \end{macrocode} +% +% \section{Testing the class/style} +% +% \begin{macrocode} +%<*brfbody> +% \end{macrocode} +% \begin{macrocode} +\yourmail{\ } +\subject{Bitte um "Uberlassung einer Sammlung von Alka-Seltzer Flaschen} + +\opening{Sehr geehrter Herr Prof.\ Forschegut,} + +von Kollegen habe ich erfahren, da"s sich bei Ihnen eine gro"se +Anzahl von Alka-Seltzer Flaschen mit nur noch einer Tablette +angesammelt hat, da eine Flasche 25~Tabletten enth"alt, der +Beipackzettel aber angibt, da"s stets 2~Tabletten gleichzeitig +einzunehmen sind. + +Ich forsche gerade im Bereich m"oglicher Anwendungen einzelner +Schmerztabletten. Falls Sie so freundlich w"aren, Ihre Alka-Seltzer +Sammlung f"ur unser Projekt zu stiften, w"urde ich Ihnen gerne +Vorabdrucke aller zuk"unftigen Forschungsberichte zur Verf"ugung +stellen, die wir "uber dieses kritische Problem ver"offentlichen. + +{\bf Testing \verb|itemize|}\hfil\break +\begin{itemize} + \item Dies ist ein \verb|\item|. + \begin{itemize} + \item \verb|\item| in Level 2. + \item + \begin{itemize} + \item \verb|\item| in Level 3. + \end{itemize} + \end{itemize} + \item Zweites \verb|\item|. +\end{itemize} + +{\bf Testing \verb|enumerate|}\hfil\break +\begin{enumerate} + \item Dies ist ein \verb|\item|. + \begin{enumerate} + \item \verb|\item| in Level 2. + \item + \begin{enumerate} + \item \verb|\item| in Level 3. + \end{enumerate} + \end{enumerate} + \item Zweites \verb|\item|. +\end{enumerate} + +{\bf Testing \verb|description|}\hfil\break +\begin{description} + \item[First] Dies ist ein \verb|\item|. + \begin{description} + \item[Second] \verb|\item| in Level 2. + \item[Third] + \begin{description} + \item \verb|\item| in Level 3. + \item Zweites \verb|\item| in Level 3. + \end{description} + \end{description} + \item[Second] Zweites \verb|\item|. +\end{description} + +{\bf Testing Lists}\hfil\break +\begin{description} + \item[First] Dies ist ein \verb|\item|. + \begin{itemize} + \item \verb|\item| in Level 2. + \item + \begin{enumerate} + \item \verb|\item| in Level 3. + \item Zweites \verb|\item| in Level 3. + \end{enumerate} + \end{itemize} + \item[Second] Zweites \verb|\item|. + \item[Third] + \begin{enumerate} + \item Genius \LaTeX. + \item Why has been there so large distance between the label + and the first number in elder versions of \LaTeX? + \end{enumerate} +\end{description} + +{\bf Testing \verb|verse|}\hfil\break +\begin{verse} +{\bf Die F"u"se im Feuer\/} + +Wild zuckt der Blitz,\\ +im fahlen Lichte steht ein Turn,\\ +der Donner rollt,\\ +ein Reiter k"ampft mit seinem Ro"s,\\ +springt ab un pocht ans Tor und l"armt.\\ +Sein Mantel saust im Wind,\\ +und knarrent "offnet jetzt das Tor ein Edelmann.\\ +\dots\\ +Der Reiter tritt in einen dunklen Ahnensaal. + +Von eines weiten Herdes Feuer schwach erhellt,\\ +droht hier ein Hugenott im Harnisch,\\ +dort ein Weib, ein stolzes Weib in braunen Ebenbild.\\ +Der Reiter wirft sich in den Sessel vor dem Herd\\ +und starrt in den lebendgen Brand\\ +\dots \\ +Die Flamme zischt, zwei F"u"se zucken in der Glut. + +\dots +\end{verse} + +{\bf Testing \verb|quotation|}\hfil\break +\begin{quotation} +``Ich finde'', sagte einst Winston Churchill im +Unterhaus, ``die Art von Kritik, wie ich sie am +Sonntagmorgen bei meiner Ankunft in den Zeitungen +fand, erinnert mich immer an die Geschichte von +dem Matrosen, der in ein Hafenbecken sprang --- +in Plymouth, glaube ich ---, um einen kleinen +Jungen vom Ertrinken zu retten. + +Dort sprach eine Frau den Matrosen an:\\ +`Sind Sie der Mann, der meinen Sohn neulich +aus dem Wasser gezogen hat?'\\ +Bescheiden erwiderte der Matrose:\\ +`Ja, das stimmt.'\\ +`Aha', sagte die Frau: `Ich suche Sie schon +die ganze Zeit \dots\ Wo ist seine M"utze?'{}'' +\end{quotation} + +{\bf Testing \verb|quote|}\hfil\break +\begin{quote} +Ein {\em klassisches\/} Werk ist ein Buch,\\ +das die Leute loben,\\ +aber nie lesen. \hfill({\em E.\ Hemingway\/}) +\end{quote} + +{\bf Testing \verb|equation|}\hfil\break +\begin{equation} + x^2 = y^2 + z^2 +\end{equation} + +{\bf Testing \verb|tabular|}\hfil\break + +{\bf Testing \verb|tabbing|}\hfil\break + +\closing{Mit freundlichen Gr"u"sen} + +\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob Sie Ihre + Schenkung in Verbindung mit unserer Forschung von der Steuer + absetzen k"onnen.} +\encl{Forschungsbericht Nr.\ 6/99 des IfA} +\cc{Future Pharma\\ + Bundesministerium zur Unterst"utzung der Pharmaindustrie} + +% \end{macrocode} +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*10pt> +% \end{macrocode} +% \begin{macrocode} +\expandafter\ifx\csname documentclass\endcsname\relax + \documentstyle[german]{mpdinbrief} + \typeout{Using the command \string\documentstyle.} + \else + \documentclass[10pt]{mpdinbrief} + \usepackage{german} + \typeout{Using the command \string\documentclass.} + \fi +% \end{macrocode} +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*11pt> +% \end{macrocode} +% \begin{macrocode} +\expandafter\ifx\csname documentclass\endcsname\relax + \documentstyle[11pt,german]{mpdinbrief} + \typeout{Using the command \string\documentstyle.} + \else + \documentclass[11pt]{mpdinbrief} + \usepackage{german} + \typeout{Using the command \string\documentclass.} + \fi +% \end{macrocode} +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*12pt> +% \end{macrocode} +% \begin{macrocode} +\expandafter\ifx\csname documentclass\endcsname\relax + \documentstyle[12pt,german]{mpdinbrief} + \typeout{Using the command \string\documentstyle.} + \else + \documentclass[12pt]{mpdinbrief} + \usepackage{german} + \typeout{Using the command \string\documentclass.} + \fi +% \end{macrocode} +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*norm> +% \end{macrocode} +% \begin{macrocode} +\expandafter\ifx\csname documentclass\endcsname\relax + \documentstyle[norm,german]{mpdinbrief} + \typeout{Using the command \string\documentstyle.} + \else + \documentclass[norm]{mpdinbrief} + \usepackage{german} + \typeout{Using the command \string\documentclass.} + \fi +% \end{macrocode} +% \begin{macrocode} +% +% \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} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*10pt|11pt|12pt|norm> +\end{document} +% +% \end{macrocode} +% +% \section{Example for using the old {\tt dinbrief\/} API} +% +% \begin{macrocode} +%<*dinbriefold> +% \end{macrocode} +% \begin{macrocode} + % + % example letter, example receiver addresses + % + % Most of the following code has taken from the dinbrief released + % at May 11th, 1992. This code is originated by Rainer Sengerling. + % + % The following example contains all commands of the old dinbrief.sty + % API (application programming interface). We recommend to use the + % new dinbrief API which is much more powerfull. The outcome may be + % quiet unsatisfied if you mix both APIs. We had made a few changes + % to adapt the file to \LaTeXe. + % +\expandafter\ifx\csname documentclass\endcsname\relax + \documentstyle[german]{dinbrief} + \typeout{Using the command \string\documentstyle.} + \else + \documentclass[10pt]{dinbrief} + \usepackage{german} + \typeout{Using the command \string\documentclass.} + \fi + +\Etihoehe{41mm}% +\Etirand{46.3mm}% +\Etizahl{6}% +\makelabels +\spare{1} + %\pagestyle{empty} +\begin{document} + % + % Musterbrief -- Anfang + % In der vorliegenden Version (beachte Auskommentierungen mit %) + % liefert er das Anwendungsbeispiel 4 von DIN 5008 + % +\begin{letter}{% +Stadt G"ottingen\\ +Stadtbauamt\\ +Postfach 28 17\par +3400 G"ottingen +} +\Postvermerk{Einschreiben} +\Behandlungsvermerk{E\ i\ l\ t} +\Datum{G"ottingen, 29.04.86} +\Absender{Klaus Waldmann\\B"urgerstra"se 135\\3400 G"ottingen\\::Tel.\ +(05 51) 9 34 56} +\Retourlabel +\Fenster +\Retouradresse{K. Waldmann $\cdot$ B"urgerstr.\ 135 $\cdot$ + 3400 G"ottingen} +\Betreff{Mein Bauvorhaben Waldrebenweg 9} +\signature{K. Waldmann} +\opening{Sehr geehrte Damen und Herren,} +den Antrag zur Genehmigung f"ur den Neubau eines Einfamilienhauses auf +meinem Grund\-st"uck G"ottingen, Waldrebenweg 9, hat der Architekt, +Herr Dipl.-Ing.\ G. Schwarz, mit allen erforderlichen Unterlagen am +03.01.86 eingereicht. Die Baugenehmigung habe ich bis heute nicht +erhaltern. + +\Einrueckung{%Der folgende Text wird eingerueckt +Da ich die Finanzierung des Bauvorhabens ohne die Baugenehmigung nicht +endg"ultig kl"aren kann und der Beginn der Bauarbeiten nicht verz"ogert +werden soll, bitte ich dringend, das Genehmigungsverfahren zu +beschleunigen. +} % Ende der Einrueckung + +Gleichzeitig bitte ich um Auskunft, ob damit zu rechnen ist, da"s der +nur geschotterte Waldrebenweg in absehbarer Zeit zu einer "`Stra"se im +vorl"aufigen Ausbau"' umgestaltet wird. + +\anlagenrechts +\Anlagen{2 Anlagen} +\Verteiler{Verteiler:\\Landratsamt} + +\closing{Mit freundlichen Gr"u"sen} +\ps{Also bis bald!} +\end{letter} + + % normgerecht geschriebene Adressen + +\begin{letter}{Frau\\Erika Werner\\bei M"uller\\Bahnhofstr.\ 4 -- 6 + +8580 Bayreuth} +\end{letter} + +\begin{letter}{Frau\\ Annemarie Hartmann\\Vogelsangstr.\ 17 II\par +2870 Delmenhorst} +\Postvermerk{Briefdrucksache} +\end{letter} + +\begin{letter}{02694/73\\Herrn Gutsverwalter\\Dipl.-Ldw.\ Otto Winter\\ +Hauptstr.\ 3 + +8221 Alm Post Neukirchen} +\Postvermerk{Nicht nachsenden} +\end{letter} + +\begin{letter}{Eheleute\\Erika und Hans M"uller\\Hochstr.\ 4 + +4709 Bergkamen} +\Postvermerk{Warensendung} +\end{letter} + +\begin{letter}{Herrn Staatsanwalt\\Dr.\ Ernst Meyer und Frau\\ +Talblick 2 + +8200 Rosenheim} +\Postvermerk{Eilzustellung -- auch nachts} +\end{letter} + +\begin{letter}{Herrn Rechtsanwalt\\Dr.\ Otto Freiherr von Bergheim\\ +Leonhard-Eck-Str.\ 7 W 36 + +8000 M"unchen 19} +\Postvermerk{Einschreiben -- R"uckschein} +\end{letter} + +\begin{letter}{Herrn Direktor\\Dipl.-Kfm.\ Kurt Gr"aser\\Massivbau AG\\ +Postfach 21 03 14 + +5600 Wuppertal 21} +\end{letter} + +\begin{letter}{Frau Luise Weber\\Herrn Max Weber\\Rosenstra"se 35 + +7030 B"oblingen} +\end{letter} + +\begin{letter}{Lack- und Farbwerke\\Dr.\ Hans Sendler \& Co.\\ +Abt.\ FDM 412/10\\Postfach 80 19 36\par +6230 Frankfurt 80} +\end{letter} + +\begin{letter}{Lehmann \& Krause KG\\z.\ H. Herrn E. Winkelmann\\ +Gartenhaus III r.\\Johannisberger Str.\ 5 a\par 1000 Berlin 31} +\end{letter} + +\begin{letter}{W"aschegro"shandel\\Robert Bergmann\\Venloer +Stra"se 80 -- 82\par 5000 K"oln 30} +\end{letter} + +\begin{letter}{Firma\\Otto Pfleiderer\\Braunenweiler\\Hauptstr.\ 5\par +7968 Saulgau 1} +\Postvermerk{Drucksache} +\end{letter} + +\begin{letter}{Amtsgericht Leer\\Grundbuchamt\\Postfach 11 24\par +2950 Leer} +\end{letter} + +\begin{letter}{Regierungspr"asident\\Dezernat 44.II.2\\ +Postfach 59 07\par 4400 M"unster} +\end{letter} + +\begin{letter}{Nassauische Heimst"atte GmbH\\ +Abt.\ Landestreuhandstelle\\Postfach 10 29 17\par 6000 Frankfurt 1} +\end{letter} + +\begin{letter}{Volksbank Friedberg\\Hauptzweigstelle Bad Nauheim\\ +Aliceplatz 4\par 6350 Bad Nauheim} +\end{letter} + +\begin{letter}{VEB Ph"onix-Apparatewerk\\ +Absatzabteilung\\Inselstr.\ 14/20 + +DDR-7021 Leipzig} +\Postvermerk{Einschreiben} +\end{letter} + +\begin{letter}{Mevrouv J. de Vries\\ Poste restante A. Cuypstraat\\ +Postbus 99730\\1000 NA AMSTERDAM + +NIEDERLANDE} +\end{letter} + +\begin{letter}{Monsieur P. Dubois\\Expert en assurances\\ +Escalier 3, b\^atiment C\\4, rue Jean Jaur\`es + +F-58500 CLAMECY} +\end{letter} + +\begin{letter}{Mr.\ W. Smith\\514 Kingsbridge Road\\PURLEY, SURREY\\DE +1\\GROSSBRITANNIEN CRZ 4TH} +\end{letter} + +\end{document} +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% 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% + } +% +% \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} +% +% \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 Binary files /dev/null and b/macros/latex/contrib/mpdinbrief/mpdinbrief.pdf differ -- cgit v1.2.3