From 75553bd842302454a6c00a4df2cc016411d7a4b4 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Jan 2006 23:54:18 +0000 Subject: trunk/Master/texmf-dist/source/latex/koma-script git-svn-id: svn://tug.org/texlive/trunk@342 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/koma-script/00CONTEN | 85 + .../texmf-dist/source/latex/koma-script/00README | 2 + .../texmf-dist/source/latex/koma-script/ChangeLog | 3602 ++++++ .../source/latex/koma-script/INSTALL.TXT | 111 + .../source/latex/koma-script/INSTALLD.TXT | 149 + .../texmf-dist/source/latex/koma-script/LEGAL.TXT | 157 + .../source/latex/koma-script/LEGALDE.TXT | 179 + .../source/latex/koma-script/Makefile.unx | 708 ++ .../source/latex/koma-script/genindex.pl | 197 + .../source/latex/koma-script/koma-script.tex | 26 + .../source/latex/koma-script/komabug.tex | 991 ++ .../source/latex/koma-script/komascr.ins | 89 + .../source/latex/koma-script/komascript.md5 | 83 + .../source/latex/koma-script/liesmich.txt | 236 + .../texmf-dist/source/latex/koma-script/readme.txt | 226 + .../source/latex/koma-script/scr_new1.tex | 133 + .../source/latex/koma-script/scr_new2.tex | 106 + .../source/latex/koma-script/scr_new3.tex | 128 + .../source/latex/koma-script/scr_new4.tex | 124 + .../source/latex/koma-script/scr_new5.tex | 151 + .../source/latex/koma-script/scr_new6.tex | 119 + .../source/latex/koma-script/scr_new7.tex | 118 + .../source/latex/koma-script/scr_new8.tex | 116 + .../source/latex/koma-script/scr_new9.tex | 122 + .../source/latex/koma-script/scraddr.dtx | 510 + .../source/latex/koma-script/scrclass.dtx | 12466 +++++++++++++++++++ .../source/latex/koma-script/scrclass.ins | 298 + .../source/latex/koma-script/scrguide/adressen.tex | 254 + .../source/latex/koma-script/scrguide/adrkonv.tex | 104 + .../source/latex/koma-script/scrguide/brief.tex | 4016 ++++++ .../source/latex/koma-script/scrguide/datladen.tex | 319 + .../source/latex/koma-script/scrguide/datmzeit.tex | 230 + .../source/latex/koma-script/scrguide/einleit.tex | 310 + .../koma-script/scrguide/english/addrconv.tex | 113 + .../koma-script/scrguide/english/addressf.tex | 243 + .../koma-script/scrguide/english/datetime.tex | 233 + .../koma-script/scrguide/english/headfoot.tex | 1478 +++ .../koma-script/scrguide/english/introduc.tex | 246 + .../latex/koma-script/scrguide/english/letter.tex | 3372 +++++ .../koma-script/scrguide/english/loadfile.tex | 334 + .../latex/koma-script/scrguide/english/main.tex | 270 + .../latex/koma-script/scrguide/english/maincls.tex | 4825 +++++++ .../koma-script/scrguide/english/pglayout.tex | 1178 ++ .../koma-script/scrguide/english/scrguide-en.bst | 1700 +++ .../koma-script/scrguide/english/scrguide-en.dbj | 319 + .../koma-script/scrguide/english/scrguide.bib | 362 + .../koma-script/scrguide/english/scrguide.gst | 33 + .../koma-script/scrguide/english/scrguide.ist | 32 + .../koma-script/scrguide/english/scrguide.mbs | 145 + .../koma-script/scrguide/english/scrguide2.tex | 1081 ++ .../source/latex/koma-script/scrguide/hauptcls.tex | 5308 ++++++++ .../source/latex/koma-script/scrguide/layout.tex | 1477 +++ .../source/latex/koma-script/scrguide/satzspgl.tex | 1353 ++ .../source/latex/koma-script/scrguide/scrguide.bib | 362 + .../source/latex/koma-script/scrguide/scrguide.bst | 1676 +++ .../source/latex/koma-script/scrguide/scrguide.dbj | 319 + .../source/latex/koma-script/scrguide/scrguide.gst | 33 + .../source/latex/koma-script/scrguide/scrguide.ist | 32 + .../source/latex/koma-script/scrguide/scrguide.mbs | 145 + .../latex/koma-script/scrguide/scrguide2.tex | 1081 ++ .../source/latex/koma-script/scrlettr.dtx | 2836 +++++ .../source/latex/koma-script/scrlogo.dtx | 57 + .../source/latex/koma-script/scrnew10.tex | 128 + .../source/latex/koma-script/scrnew11.tex | 120 + .../source/latex/koma-script/scrnew12.tex | 120 + .../source/latex/koma-script/scrnew13.tex | 108 + .../source/latex/koma-script/scrnew14.tex | 116 + .../source/latex/koma-script/scrnew15.tex | 110 + .../source/latex/koma-script/scrnew16.tex | 179 + .../source/latex/koma-script/scrnew17.tex | 142 + .../source/latex/koma-script/scrnew18.tex | 149 + .../source/latex/koma-script/scrnew19.tex | 166 + .../source/latex/koma-script/scrnew20.tex | 131 + .../source/latex/koma-script/scrnew21.tex | 260 + .../source/latex/koma-script/scrpage.dtx | 2588 ++++ .../source/latex/koma-script/scrpage.ins | 137 + .../source/latex/koma-script/scrtime.dtx | 526 + .../source/latex/koma-script/scrtime.ins | 133 + 78 files changed, 62221 insertions(+) create mode 100644 Master/texmf-dist/source/latex/koma-script/00CONTEN create mode 100644 Master/texmf-dist/source/latex/koma-script/00README create mode 100644 Master/texmf-dist/source/latex/koma-script/ChangeLog create mode 100644 Master/texmf-dist/source/latex/koma-script/INSTALL.TXT create mode 100644 Master/texmf-dist/source/latex/koma-script/INSTALLD.TXT create mode 100644 Master/texmf-dist/source/latex/koma-script/LEGAL.TXT create mode 100644 Master/texmf-dist/source/latex/koma-script/LEGALDE.TXT create mode 100644 Master/texmf-dist/source/latex/koma-script/Makefile.unx create mode 100644 Master/texmf-dist/source/latex/koma-script/genindex.pl create mode 100644 Master/texmf-dist/source/latex/koma-script/koma-script.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/komabug.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/komascr.ins create mode 100644 Master/texmf-dist/source/latex/koma-script/komascript.md5 create mode 100644 Master/texmf-dist/source/latex/koma-script/liesmich.txt create mode 100644 Master/texmf-dist/source/latex/koma-script/readme.txt create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new1.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new2.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new3.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new4.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new5.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new6.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new7.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new8.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scr_new9.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scraddr.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrclass.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrclass.ins create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/adressen.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/adrkonv.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/brief.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/datladen.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/datmzeit.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/einleit.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/addrconv.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/addressf.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/datetime.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/headfoot.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/introduc.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/letter.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/loadfile.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/main.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/maincls.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/pglayout.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.bst create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.dbj create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.bib create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.gst create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.ist create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.mbs create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide2.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/hauptcls.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/layout.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/satzspgl.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bib create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bst create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.dbj create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.gst create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.ist create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.mbs create mode 100644 Master/texmf-dist/source/latex/koma-script/scrguide/scrguide2.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrlettr.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrlogo.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew10.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew11.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew12.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew13.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew14.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew15.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew16.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew17.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew18.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew19.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew20.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrnew21.tex create mode 100644 Master/texmf-dist/source/latex/koma-script/scrpage.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrpage.ins create mode 100644 Master/texmf-dist/source/latex/koma-script/scrtime.dtx create mode 100644 Master/texmf-dist/source/latex/koma-script/scrtime.ins (limited to 'Master/texmf-dist/source/latex/koma-script') diff --git a/Master/texmf-dist/source/latex/koma-script/00CONTEN b/Master/texmf-dist/source/latex/koma-script/00CONTEN new file mode 100644 index 00000000000..e8f3ef8bb1c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/00CONTEN @@ -0,0 +1,85 @@ +4,0K 00CONTEN +4,0K 00README +128K ChangeLog +8,0K INSTALL.TXT +8,0K INSTALLD.TXT +8,0K LEGAL.TXT +8,0K LEGALDE.TXT + 24K Makefile.unx +8,0K genindex.pl + 24K koma-script.pdf +4,0K koma-script.tex + 32K komabug.tex +4,0K komascr.ins + 0 komascr.pdf +8,0K komascript.md5 + 0 komascript.pdf + 12K liesmich.txt + 12K readme.txt +8,0K scr_new1.tex +8,0K scr_new2.tex +8,0K scr_new3.tex +8,0K scr_new4.tex +8,0K scr_new5.tex +8,0K scr_new6.tex +8,0K scr_new7.tex +8,0K scr_new8.tex +8,0K scr_new9.tex + 20K scraddr.dtx +432K scrclass.dtx + 12K scrclass.ins +1,7M scrguide.dvi +1,5M scrguide.pdf + 12K scrguide/adressen.tex +4,0K scrguide/adrkonv.tex +164K scrguide/brief.tex + 16K scrguide/datladen.tex + 12K scrguide/datmzeit.tex + 16K scrguide/einleit.tex +4,0K scrguide/english/addrconv.tex + 12K scrguide/english/addressf.tex + 12K scrguide/english/datetime.tex + 60K scrguide/english/headfoot.tex + 12K scrguide/english/introduc.tex +136K scrguide/english/letter.tex + 16K scrguide/english/loadfile.tex + 12K scrguide/english/main.tex +192K scrguide/english/maincls.tex + 52K scrguide/english/pglayout.tex + 36K scrguide/english/scrguide-en.bst + 12K scrguide/english/scrguide-en.dbj + 0 scrguide/english/scrguide.bib +4,0K scrguide/english/scrguide.gst +4,0K scrguide/english/scrguide.ist + 0 scrguide/english/scrguide.mbs + 0 scrguide/english/scrguide2.tex +216K scrguide/hauptcls.tex + 60K scrguide/layout.tex + 64K scrguide/satzspgl.tex + 12K scrguide/scrguide.bib + 32K scrguide/scrguide.bst + 12K scrguide/scrguide.dbj +4,0K scrguide/scrguide.gst +4,0K scrguide/scrguide.ist +8,0K scrguide/scrguide.mbs + 40K scrguide/scrguide2.tex +1,6M scrguien.dvi +1,3M scrguien.pdf +108K scrlettr.dtx +4,0K scrlogo.dtx +8,0K scrnew10.tex +8,0K scrnew11.tex +8,0K scrnew12.tex +8,0K scrnew13.tex +8,0K scrnew14.tex +8,0K scrnew15.tex + 12K scrnew16.tex +8,0K scrnew17.tex +8,0K scrnew18.tex +8,0K scrnew19.tex +8,0K scrnew20.tex + 12K scrnew21.tex + 92K scrpage.dtx +8,0K scrpage.ins + 20K scrtime.dtx +8,0K scrtime.ins diff --git a/Master/texmf-dist/source/latex/koma-script/00README b/Master/texmf-dist/source/latex/koma-script/00README new file mode 100644 index 00000000000..437a37ad492 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/00README @@ -0,0 +1,2 @@ +Wenn Sie Deutsch verstehen, lesen Sie bitte liesmich.txt. +If you do not understand german, read readme.txt. diff --git a/Master/texmf-dist/source/latex/koma-script/ChangeLog b/Master/texmf-dist/source/latex/koma-script/ChangeLog new file mode 100644 index 00000000000..198f2d6d08a --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/ChangeLog @@ -0,0 +1,3602 @@ +2004-09-22 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2004/09/16 v2.9t + scrbook.cls 2004/09/16 v2.9t + scrreprt.cls 2004/09/16 v2.9t + scrlttr2.cls 2004/09/16 v2.9t + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2004/09/05 v2.2a + typearea.sty 2004/09/16 v2.9t + scrlfile.sty 2004/09/16 v2.9t + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2004-09-22 Markus Kohm + + * english/main.tex: + - draft note + + * scrguide2.tex: + - Vorabversionsvermerk auf der Titelrückseite + +2004-09-17 Markus Kohm + + * scrguide2.tex: + - array und longtable Paket (auskommentiert) + + * brief.tex: + - Tabelle der Pseudolängen vorbereitet + +2004-09-16 Markus Kohm + + * brief.tex: + - Brieffuß korrgiert (Ligatur etc.) + - Index korrigiert + + * scrguide/english/letter.tex: + - descripted --> described + - paragraph~\ref --> \autoref + + * Makefile.unx: + - New target texlive + + * scrguide/brief.tex, scrguide/hauptcls.tex: + - Index korrigiert + + * scrguide/scrguide2.tex, scrguide/english/main.tex: + - autoref names changed + + * mostchanges: + - ready for next release + + * scrclass.dtx: + - Das \par am Ende des Titels in scrlttr2 wird in Größe und Schrift + des Titels gesetzt. ACHTUNG: Dies ist eine inkompatible Änderung! + +2004-09-14 Markus Kohm + + * Makefile.unx: + - new rule "check" (maintainer only) + + * announce.pl: + - catalogue file is not longer part of the distribution + + * koma-script.xml: + - not longer part of KOMA-Script; + see the catalogue repository at sarovar for actual versions + + * Makefile.unx: + - catalogue file is not longer part of the distribution + +2004-09-13 Markus Kohm + + * scrguide/english/maincls.tex: + - 11pt, 12pt into index + + * scrguide/english/main.tex: + - \ExampleName in upper case + - Index names changed + - \PseudoPrefix with space instead of hyphenmark + + * scrguide/english/maincls.tex, scrguide/english/letter.tex: + - Index fixed + + * scrguide/english/letter.tex: + - recipient --> addressee + + * scrguide/english/letter.tex: + - back address --> return address + + * scrguide/english/headfoot.tex: + - sectioning-commands --> sectioning commands + + * scrguide/english/introduc.tex: + - section "Bugreports" renamed to "Bugreports and Other Requests" + + * scrguide/english/letter.tex: + - \autoref + - letterhead --> letter-head (see Langenscheidt Deutsch-Englisch 1984) + + * scrguide/english/loadfile.tex: + - Autoren --> Authors + + * scrguide/english/main.tex: + - float-\StyleName --> float \StyleName + + * scrguide/english/maincls.tex: + - \autoref + + * scrguide/english/pglayout.tex: + - Case of headings + - \autoref + +2004-09-05 Markus Kohm + + * brief.tex, datmzeit.tex: + - Bindestrich im Komposita mit Paket + + * scrguide2.tex: + - Bindestrich bei \KOMAScript-Paket in \TitleText + + * brief.tex, hauptcls.tex: + - "zum einen" und "zum anderen" ist korrekt (--> § 52) + + * scrpage.dtx: + - \automark uses several new groups to fix e.g. two column problem + with \part + +2004-08-30 Markus Kohm + + * scrguide2.tex: + - typofix + - \eTeX added + +2004-08-24 Markus Kohm + + * LEGAL.TXT, LEGALDE.TXT: + - not lppl but almost lppl + (this was an old change not yet committed) + + * koma-script.xml: + - new version + + * releasenews: *** empty log message *** + +2004-08-24 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2004/08/11 v2.9s + scrbook.cls 2004/08/11 v2.9s + scrreprt.cls 2004/08/11 v2.9s + scrlttr2.cls 2004/08/11 v2.9s + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2004/07/05 v2.2 + typearea.sty 2004/08/11 v2.9s + scrlfile.sty 2004/08/11 v2.9s + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2004-08-24 Markus Kohm + + * komascript.xml: + - new version + + * releasenews: *** empty log message *** + +2004-08-11 Markus Kohm + + * scrclass.dtx: + - vertikale Ausrichtung in \LT@makecaption korrigiert [Axel Sommerfeldt] +2004-08-09 Markus Kohm + + * brief.tex: + - fix: "zum Einen", "zum Anderen" + + * hauptcls.tex: + - fix: "Zum Einen", "Zum Anderen" + +2004-07-16 Markus Kohm + + * hauptcls.tex: + - Querverweis bei der Erklärung zu den Optionen "titlepage" und + "notitlepage" korrigiert [gemeldet von Kai Weber] + +2004-07-14 Markus Kohm + + * headfoot.tex: + - Changes of german manual 2004/07/06 added by Karl-Heinz Zimmer and + Christoph Bier + - some \ref replaced by \autoref + +2004-07-06 Markus Kohm + + * liesmich.txt: + - Umlaute ersetzt + + * layout.tex: + - \ChangedAt-Einträge ergänzt + - Index verbessert + +2004-07-05 Markus Kohm + + * scrpage.dtx: + - new: \partmarkformat + - new: \partlevel + + * scrclass.dtx: + - new: \partmark + + * komabug.tex: + - missing \endlinechar=-1 added! + + * scrguide2.tex: + - weiteres optionales Argument von \setheadtopline ... beschrieben + + * scrpage.dtx: + - \setheadtopline, \setheadsepline, \setfootsepline and + \setfootbotline have a new optional argument, the pre line + command, which will be executed before drawing the line. + +2004-06-16 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2004/06/11 v2.9r + scrbook.cls 2004/06/11 v2.9r + scrreprt.cls 2004/06/11 v2.9r + scrlttr2.cls 2004/06/11 v2.9r + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2004/02/07 v2.1c + typearea.sty 2004/06/11 v2.9r + scrlfile.sty 2004/06/11 v2.9r + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2004-06-16 Markus Kohm + + * scrclass.dtx: + - Wenn die aktuelle Sprache, die bei \providecaptionname etc. + geaenderte ist, wird die Aenderung sofort aktiviert. + +2004-06-11 Markus Kohm + + * scrclass.dtx: + - fix: one line captions don't use the premade box to make + footnotes possible + +2004-05-30 Markus Kohm + + * scrclass.dtx: + - Typofix: "scrlttr" --> "scrlttr2 in der Warnung zu 10pt, 11pt, + 12pt etc. + +2004-05-25 Markus Kohm + + * announce.pl: + - Distributors note added + + * scrclass.dtx: + - fix: \parfillskip was often 1em plus 1fil instead of 0pt plus 1fil + +2004-05-24 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2004/04/26 v2.9q + scrbook.cls 2004/04/26 v2.9q + scrreprt.cls 2004/04/26 v2.9q + scrlttr2.cls 2004/04/26 v2.9q + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2004/02/07 v2.1c + typearea.sty 2004/04/26 v2.9q + scrlfile.sty 2004/04/26 v2.9q + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2004-05-24 Markus Kohm + + * Makefile.unx: + - komascript.md5 + - 00CONTEN improved + + * scrguide2.tex: + - Untertitel sprachabhängig (Martin Hensel) + + * english/main.tex: + - subtitle in English (Martin Hensel) + +2004-05-11 Markus Kohm + + * brief.tex: + - more index entries fixed (Stephan Henning) + - backaddrheight index entry fixed + - index entry of toaddrhpos (Stephan Henning) + +2004-05-07 Markus Kohm + + * hauptcls.tex: + - typofix: tabelcaptionabove --> tablecaptionabove (Ralf Angeli) + +2004-04-26 Markus Kohm + + * koma-script.xml: + - version and time update + + * INSTALLD.TXT: + - Einige neue Worte zum Makefile. + + * INSTALL.TXT: + - some new words about the makefile + + * liesmich.txt: + - eine Verbesserungen der Beschreibung bezüglich benötigter Dateien + - notwendig: scrguide.dvi --> scrguide.pdf + + * readme.txt: + - eine Verbesserungen der Beschreibung bezüglich benötigter Dateien + - notwending: scrguide.dvi --> scrguien.pdf + + * scrclass.dtx: + - \parfillskip wird nicht mehr zu \fill, sondern grundsätzlich zu + \z@ plus 1fil + +2004-04-19 Markus Kohm + + * scrclass.dtx: + - dictum verwendet \raggeddictum nun innerhalb einer Gruppe, um + Probleme zu vermeiden + +2004-03-24 Markus Kohm + + * scrclass.dtx: + - addmargin lässt die Finger von \labelsep (weil klassenspezifisch) + - Bugfix: \chapter* und \addchap fügen den Leerraum nach der + Überschrift nun genau wie \chapter ein. + +2004-02-07 Markus Kohm + + * scrpage.dtx: + - thickness of footbelow line fixed (Diab Jerius) + +2004-02-06 Markus Kohm + + * liesmich.txt: + - Erlaubte Verbreitung zusammengehörender Dateien präzisiert, + weil die willkürliche Interpretation einiger Distributoren + und der daraus resultierende erhöhte Supportaufwand inzwischen + wirklich nervt! + + * readme.txt: + - specify allowed distributions + +2004-01-31 Markus Kohm + + * scrclass.dtx: + - Kompatibilitätsänderung in \deffootnote (David Kastrup) + +2004-01-30 Markus Kohm + + * scrclass.dtx: + - Bad DIV-Warnungsberechnung korrigiert + + * scrclass.dtx: + - \@makecaption und \@@makecaption korrigiert + +2004-01-28 Markus Kohm + + * scrclass.dtx: + - \closing darf ein leeres Argument haben und ist in der Länge auf + die Textbreite beschränkt + +2004-01-21 Markus Kohm + + * scrclass.dtx: + - Wrong typearea warning at twocolumn mode fixed + +2004-01-11 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2004/01/07 v2.9p + scrbook.cls 2004/01/07 v2.9p + scrreprt.cls 2004/01/07 v2.9p + scrlttr2.cls 2004/01/07 v2.9p + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2003/05/31 v2.1b + typearea.sty 2004/01/07 v2.9p + scrlfile.sty 2004/01/07 v2.9p + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2004-01-11 Markus Kohm + + * INSTALLD.TXT: + - Hinweis auf komabug.tex geändert. + - Hinweis auf gedruckte KOMA-Script-Anleitung. + + * koma-script.xml: + - datestamp and version number + + * scrclass.ins, scrpage.ins, scrtime.ins, scraddr.dtx, + scrclass.dtx, scrlettr.dtx, scrlogo.dtx, scrpage.dtx, + scrtime.dtx, komascr.ins: + - Copyright end year 2004 + +2004-01-07 Markus Kohm + + * scrguide.bib: + - URLs fixed + - Neue Literatur zugefügt + + * scrclass.dtx: + - \protect before \othersectionlevelsformat added + + * scrguide/hauptcls.tex: + - Datum korrigiert + - \appendixmore Beispiel für scrartcl korrigiert + + * scrguide/english/maincls.tex: + - date of german base fixed + - \appendixmore example for scrartcl fixed + +2003-12-18 Markus Kohm + + * scrguide/brief.tex: + - lco-Beispiel verbessert, u. a. Verweis auf Abschnitt mit + Erklärung zu \setkomavar + - optionalen Text geändert, um den Umbruch etwas zu verbessern + +2003-12-10 Markus Kohm + + * scrclass.dtx: + - overfull hbox problem at captionbeside fixed + +2003-12-03 Markus Kohm + + * INSTALL.TXT: + - texmf.cfg --> texmf.cnf (Andreas Mohr) + +2003-11-18 Markus Kohm + + * hauptcls.tex: + - Mehrere \IndexPackage{float} ergänzt + + * english/maincls.tex: + - \IndexPackage{float} added serveral times + +2003-11-12 Markus Kohm + + * scrclass.dtx: + - \MessageBeak --> \MessageBreak (Christian Faulhammer) + +2003-10-18 Markus Kohm + + * koma-script.xml: + - entry fixed + +2003-10-01 Markus Kohm + + * scrclass.dtx: + - Fix: \addpart was missing in scrartcl because of docstrip + comment failure + +2003-09-30 Markus Kohm + + * scrguide/english/maincls.tex: + - translation mistake fixed + +2003-07-18 Markus Kohm + + * Makefile.unx: + - Typofix (Karl Voit) + +2003-07-07 Markus Kohm + + * scrclass.dtx: + - Fix: Kolumnentitel bei bibtotocnumbered und liststotocnumbered + nummeriert + +2003-06-28 Markus Kohm + + * scrclass.dtx: + - Fix: \parfillskip bei \chapter und \chapter* auf \fill gesetzt + +2003-06-19 Markus Kohm + + * scrguide/layout.tex: + - "autoondeside" im Index in "autooneside" korrigiert + +2003-05-31 Markus Kohm + + * scrpage.dtx: + - \ifx\foo\undefined changed + +2003-05-26 Markus Kohm + + * einleit.tex: + - Typofix + +2003-05-13 Markus Kohm + + * hauptcls.tex: + - Schreibfehler (Christan Ullrich) + + * pglayout.tex, satzspgl.tex: + - \CharsDX --> \CharsLX (Christian Ullrich) + +2003-05-12 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2003/04/22 v2.9o + scrbook.cls 2003/04/22 v2.9o + scrreprt.cls 2003/04/22 v2.9o + scrlttr2.cls 2003/04/22 v2.9o + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2002/11/01 v2.1a + typearea.sty 2003/04/22 v2.9o + scrlfile.sty 2003/04/22 v2.9o + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2003-05-12 Markus Kohm + + * koma-script.xml: + - version is 2.9o + + * adressen.tex, einleit.tex, hauptcls.tex, layout.tex, scrguide2.tex: + - Anpassungen für die Druckversion + + * scrguide/scrbook.tex: + - Version April 2003, ISBN 3-936427-45-3 + +2003-04-22 Markus Kohm + + * scrclass.dtx: + - \parfillskip-Problem in \cc und \encl gelöst + +2003-04-16 Markus Kohm + + * scrguide/einleit.tex: + - Umbruchverbesserung mit "headinclude" + + * hauptcls.tex: + - Tippfehler (gemeldet von Rolf) + +2003-04-12 Markus Kohm + + * scrguide2.tex: + - Bookmarks wieder aktiviert + - Notwendige Änderungen für die Druckvorlage + + * scrguide.bib: + - Zwei Fehler beseitigt + + * satzspgl.tex: + - Notwendige Änderungen für die Druckvorlage + + * layout.tex, hauptcls.tex, einleit.tex: + - Notwendige Änderungen für die Druckvorlage + - Minimale Verbesserungen + + * datladen.tex: + - Notwendige Änderungen für die Druckvorlage + + * hnopdftex.def, mkhyperref.sty: + - wird für die Druckvorlage benötigt + + * scrbook.tex: + - Einstellungen für die Druckvorlage + + +2003-02-27 Markus Kohm + + * satzspgl.tex: + - DIV-Wert "last" beschrieben. + + * pglayout.tex: + - DIV value "last" described + +2003-02-20 Markus Kohm + + * scrclass.dtx: + - \noindent beim Setzen von `specialmail' eingefügt. + +2003-02-13 Markus Kohm + + * letter.tex: + - % Date of translated german file: 2003-02-13 + + * brief.tex: + - einmal "Class{scrlettr}" --> "\Class{scrlettr}" + + * maincls.tex: + - structural formular --> sum formular + + * hauptcls.tex: + - chemische Strukturformeln --> chemische Summenformeln + +2003-02-06 Markus Kohm + + * scrclass.dtx: + - Typofix für "twoside=false" in scrlttr2. + +2003-02-04 Markus Kohm + + * scrguide2.tex: + - \docdate will become the \ProvidesFile date of the newest file at + the second LaTeX run. + + * letter.tex: + - % Date of translated german file: 2003-02-04 + + * brief.tex: + - Indexeinträge korrigiert + +2003-01-31 Markus Kohm + + * scrclass.dtx: + - color-bug at minisec fixed + + * pglayout.tex: + - Typofixes + + * satzspgl.tex: + - Typofixes (Volker Schaa) + +2003-01-31 <<<<<<<<<<<<<<<<<<<<<<<< HOTFIX >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2003/01/31 v2.9n + scrbook.cls 2003/01/31 v2.9n + scrreprt.cls 2003/01/31 v2.9n + scrlttr2.cls 2003/01/31 v2.9n + typearea.sty 2003/01/31 v2.9n + scrlfile.sty 2003/01/31 v2.9n + +2003-01-31 Markus Kohm + + * scrclass.dtx: + - idxtotoc fixed. + + +2003-01-30 <<<<<<<<<<<<<<<<<<<<<<<< HOTFIX >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2003/01/30 v2.9m + scrbook.cls 2003/01/30 v2.9m + scrreprt.cls 2003/01/30 v2.9m + scrlttr2.cls 2003/01/30 v2.9m + typearea.sty 2003/01/30 v2.9m + scrlfile.sty 2003/01/30 v2.9m + +2003-01-30 Markus Kohm + + * scrclass.dtx: + - idxtotoc fixed. + + * maincls.tex: + - % Date of translated german file: 2003-01-30 + + * hauptcls.tex: + - Typos und Schiller statt Goethe [Olaf Dietrich] + +2003-01-29 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + * Versionen: + scrartcl.cls 2003/01/28 v2.9l + scrbook.cls 2003/01/28 v2.9l + scrreprt.cls 2003/01/28 v2.9l + scrlttr2.cls 2003/01/28 v2.9l + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2002/11/01 v2.1a + typearea.sty 2003/01/28 v2.9l + scrlfile.sty 2003/01/28 v2.9l + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2003-01-29 Markus Kohm + + * scrclass.dtx: + - lco-files do not longer use preamble commands + - refline with toaddrhpos < 0 fixed + + * scrguide2.tex: + - date + + * announce.pl: + - xml entry + + * releasenews: + - 2nd release at jan 2003 + + * koma-script.xml: + - Update + +2003-01-28 Markus Kohm + + * scrguide2.tex: + - Use of mparhack package + + * scrclass.dtx: + - new pseudo length "refhpos" + if refwidth = 0 + refline=wide sets refhpos to toaddrhpos + refline=narrow sets refhpos to \oddsidemargin + 1in + else if refhpos = 0 + refhpos = ( \textwidth - refwidth ) * ( \oddsidemargin + 1in ) / + ( \paperwidth - \textwidth ) + - Schmale Geschäftszeile wird auch bei assymmetrischen Rändern korrekt + gesetzt. + - Expansionsproblem bei \edef\@tempa{#1} entweder durch + \def\@tempa{#1} oder durch + \expandafter\def\expandafter\@tempa\expandafter{#1} gelöst, wie dies + notwendig erschient (\dictum, \setcapwidth, \deffootnote) + - \@tempdima durch \@tempskipa ersetzt beim Setzen des Briefkopfes + - \ifthispageodd improved + +2003-01-24 Markus Kohm + + * pglayout.tex: + - % Date of translated german file: 2003-01-24 + + * maincls.tex: + - Date of translated german file: 2003-01-24 + +2003-01-23 Markus Kohm + + * scrclass.dtx: + - Kopf und Fuß der ersten Seite sind nun unabhängig von der + horizontalen Position des Satzspiegels. + +2003-01-22 Markus Kohm + + * pglayout.tex: + - Fix: DVIcalc --> DIVcalc + - date of german root updated + + * satzspgl.tex: + - Fix: DVIcalc --> DIVcalc [Martin Hensel] + +2003-01-20 Markus Kohm + + * scrclass.dtx: + - neuer Schalter \ifthispagewasodd + + * Makefile.unx: + - More informations about installation + - Rules beta and release also change Makefile (INSTALLTEXMF)! + + * letter.tex: + - based on note changed + + * brief.tex: + - Korrektur in der Erklärung zu \opening + +2003-01-19 Markus Kohm + + * scrclass.dtx: + - Fix: An einigen Stellen \if@twoside\cleardoublepage durch + \if@openright\cleardoublepage ersetzt. + +2003-01-14 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + * Versionen: + scrartcl.cls 2003/01/12 v2.9k + scrbook.cls 2003/01/12 v2.9k + scrreprt.cls 2003/01/12 v2.9k + scrlttr2.cls 2003/01/12 v2.9k + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2002/11/01 v2.1a + typearea.sty 2003/01/12 v2.9k + scrlfile.sty 2003/01/12 v2.9k + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2003-01-14 Markus Kohm + + * scrguide2.tex: + - date change only + + * letter.tex: + - changes of brief.tex 2003/01/02 + + * scrclass.dtx: + - \@autodottrue wird zuverlässiger in die aux-Datei geschrieben. + +2003-01-02 Markus Kohm + + * scrguide/brief.tex: + - Erklärung und Beispiel für das Löschen von Variableninhalt und + Variablenbezeichnung hinzugefügt (siehe "\setkomavar") + - Querverweis von Option "enlargefirstpage" zu "firstfootvpos" im + Abschnitt "Brieffuß" eingefügt + - Umbruch nach obigen Ergänzungen korrigiert + + * scrclass.dtx: + - Verhalten bei parskip-Optionen verbessert + - Option tocleft funktioniert nun auch mit umbrochenen Einträgen + - Option tocleft funktioniert nun auch bei scrartcl + +2002-12-04 Markus Kohm + + * scrclass.dtx: + - Bugfix: die (half)parskip-Optionen haben alle wie "(half)parskip-" + gearbeitet + +2002-11-21 Markus Kohm + + * scrguide/brief.tex: + - Wortdreher im ersten Satz von "Rückblick auf die alte Briefklasse" + behoben (Björn Fischer) + +2002-11-07 Markus Kohm + + * scrguide/english/headfoot.tex: + - Date changed + + * scrguide/layout.tex: + - Fix: clearheadfoot --> clearscrheadfoot + +2002-11-01 Markus Kohm + + * scrguide/brief.tex: + - dämlichen Klammervertauscher beseitigt + + * scrpage.dtx: + - Fix: \expandaffter --> \expandafter + +2002-10-30 Markus Kohm + + * scrpage.dtx: + - fix: problem with running headline after \pagestyle{empty} + (reported by Mathias Bauer) + + * Makefile.unx: + - progress indicator while installation + +2002-10-17 Markus Kohm + + * scrguide/english/letter.tex: + - Fix: "to to reference" --> "to the reference" + +2002-10-15 Markus Kohm + * adressen.tex, addressf.tex: + - Fix: \InputAddressFile{lotr.adr} --> \InputAddressFile{lotr} + (Michael Wiedmann) + * letter.tex: + - "Construction" --> "construction" + (Michael Wiedmann) + * letter.tex: + - "an window" --> "a window" + (Michael Wiedmann) + +2002-10-14 Markus Kohm + * brief.tex: + - Fix: Optionswerte für locfield sind narrow und wide nicht narrow + und false + * letter.tex: + - Fix: option values of locfield are narrow and wide not narrow and + false + +2002-09-29 Markus Kohm + * brief.tex: + - \parbox{\linewidth}[b] in \parbox[b]{\linewidth} korrigiert + * letter.tex: + - changed \parbox{\linewidth}[b] to \parbox[b]{\linewidth} + +2002-09-23 Markus Kohm + * brief.tex: + - Beispiel zu \firstfoot korrigiert + * letter.tex: + - example of \firstfoot fixed + +2002-09-18 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + * Versionen: + scrartcl.cls 2002/09/04 v2.9j + scrbook.cls 2002/09/04 v2.9j + scrreprt.cls 2002/09/04 v2.9j + scrlttr2.cls 2002/09/04 v2.9j + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2002/03/28 v2.1 + typearea.sty 2002/09/04 v2.9j + scrlfile.sty 2002/09/04 v2.9j + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2002-09-18 Markus Kohm + * scrclass.dtx: + - BugFix: optionales Argument von \@usekomavar und \@usekomaname ist + nun \@firstofone, damit eine Gruppe verhindert wird. + +2002-09-06 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + * Versionen: + scrartcl.cls 2002/09/04 v2.9i + scrbook.cls 2002/09/04 v2.9i + scrreprt.cls 2002/09/04 v2.9i + scrlttr2.cls 2002/09/04 v2.9i + scrlettr.cls 2002/05/24 v2.6e (obsolete) + scrtime.sty 2002/02/02 v1.1m + scrdate.sty 2002/02/02 v1.1m + scrpage2.sty 2002/03/28 v2.1 + typearea.sty 2002/09/04 v2.9i + scrlfile.sty 2002/09/04 v2.9i + scrpage.sty 2001/06/22 v1.3c (obsolete) + scraddr.sty 2002/06/02 v1.1b + +2002-09-06 Markus Kohm + * satzspgl.tex, hauptcls.tex: + - Umbruch verbessert + * brief.tex: + - \ChangedAt eingefügt (\usekomavar, \ifkomavarempty) + - Umbruch verbessert (noch ein Fall erfolglos) + * maincls.tex: + - paragraph break fixed + * letter.tex: + - \ChangedAt added (\usekomavar and \ifkomavarempty) + - paragraph and page break fixed + +2002-09-05 Jens-Uwe Morawski + * hauptcls.tex, maincls.tex + - Bsp. für linksbündige Fußnotenmarkierung bei \deffootnote + +2002-09-04 Markus Kohm + * scrclass.dtx: + - Workaround für den neusten Babel-Bug + - Fix: Leerzeichen in \ifkomavarempty beseitigt + +2002-09-03 Markus Kohm + * scrclass.dtx: + - \usekomavar etwas robuster + - \ifkomavarempty etwas robuster + - \small und \footnotesize wieder etwas robuster + * Makefile.unx: + - SN.lco hinzugefügt + - Installationsort von komabug.tex geändert + - "cp -af" --> "cp -apf" to avoid problems, if not cp from FSF + * INSTALLD.TXT: + - Punkt 4 korrigiert + * INSTALL.TXT: + - fixed: 4th + +2002-09-01 Markus Kohm + * scrclass.dtx: + - \size@chapter bei Kapitelüberschriften mit Nummer nach \sectfont + verschoben + +2002-08-30 Markus Kohm + * scrguide2.tex: + - Text der Änderungsliste korrigiert + - Bib-Präambel korrigiert + * scrguide.bib: + - DANTE:FAQ Autorenliste korrigiert + * brief.tex, letter.tex, maincls.tex, pglayout.tex, hauptcls.tex, + satzspgl.tex, scrguide2.tex: + - indexrm --> indexother + - indexit --> indexmain + - \indexmain=\indexbf + +2002-08-30 Jens-Uwe Morawski + * einleit.tex, datmzeit.tex, datladen.tex: + - Rolf's allgem. und spezielle Korrekturen umgesetzt + * loadfile.tex: + - modifications according to changes in datladen.tex + +2002-08-30 Markus Kohm + * hauptcls.tex: + - \caption-Texte gekürzt + - ca. zwei Ligaturen aufgelöst + * hauptcls.tex, satzspgl.tex: + - Verwendung von \autoref + * pglayout.tex: + - Example at description of \ifpdfoutput changed + * satzspgl.tex: + - Beispiel in der Erklärung zu \ifpdfoutput geändert + +2002-08-29 Christian Buss + * satzspg.tex, hauptcls.tex: + - Rolfs und meine Korrekturen eingearbeitet + +2002-08-29 Markus Kohm + * brief.tex: + - Rolfs Korrekturen umgesetzt + - minimale Änderung der Formatierung + * scrclass.dtx, scrlfile.sty (v2.9f): + - Fix: \AfterClass* and \AfterPackage* + * main.tex: + - new: \AutoRefTextFarAway + * scrguide2.tex: + - \autovref funktioniert jetzt + - Neue Trennausnahmen + +2002-08-28 Markus Kohm + * headfoot.tex, introduc.tex, letter.tex, maincls.tex, + pglayout.tex, brief.tex, einleit.tex, hauptcls.tex, + layout.tex, satzspgl.tex: + - use of \automark, \autopagemark + * scrguide2.tex: + - some restructurations + - new macros \autopageref, \autorefnametillsection, \autovref + - load of varioref package + +2002-08-25 Markus Kohm + * scrclass.dtx, typearea (v2.9e): + - Fix: jeweils \relax nach \ta@div=\ta@divlistelse eingefügt + +2002-08-23 Jens-Uwe Morawski + * layout.tex, adressen.tex, adrkonv.tex: + - Rolf's allgem. und spezielle Korrekturen umgesetzt + +2002-08-12 Markus Kohm + * scrclass.dtx (v2.9d): + - Fußnotenzähler bei Briefen korrigiert + +2002-08-10 Markus Kohm + * scrclass.dtx (v2.9c): + - In \part \@parskipfalse\@parskip@indent \centering in der + Reihenfolge vertauscht und so einen Formatierungsfehler behoben. + +2002-08-06 Markus Kohm + * komabug.tex: + - Altersbeschränkung geändert / fixed age check + * INSTALL.TXT: + - some fixes; `.lco' files + * INSTALLD.TXT: + - einige Verbesserungen und Berücksichtigung der lco-Dateien + +2002-08-05 Markus Kohm + * scrclass.dtx (v2.9b): + - Fußnotendefinition von KOMA-Script 3 übernommen + +2002-07-27 Markus Kohm + * chapterthumbs.tex: + - Neues Beispiel: Daumenkino der Kapitelnummern + +2002-07-07 Markus Kohm + * maincls.tex + - \llap explained after \othersectionlevelsformat example + * hauptcls.tex + - \llap-Erklärung bei \othersectionlevelsformat-Beispiel + +2002-07-07 Jens-Uwe Morawski + * maincls.tex + - fixed description and examples in section + footnote + - additional example for \othersectionslevelformat + that places section numbers in the left margin + * hauptcls.tex + - Fehler der Definition und Beispiele im Fußnotenabschnitt + korregiert + - zusätzliches Beispiel für \othersectionslevelformat + eingefügt; hierbei ragt die Abschnittsnummerierung + in den linken Rand + +2002-07-06 Markus Kohm + * uni-konstanz.tex: + - New example (Briefpapier Uni Konstanz) + * create: + - -shell-escape added + +2002-06-29 Markus Kohm + * template: + - neues bash Skript, um Templates für Beispiele zu erzeugen + * number-at-margin.tex: + - neues Beispiel für Gliederungsnummern im Rand + +2002-06-28 Markus Kohm + * infoblock.tex: + - Neues Beispiel: Infoblock statt Geschäftszeile (Torsten) + +2002-06-27 Markus Kohm + * scrclass.dtx: + - \if@thispageodd an diversen Stellen durch \ifthispageodd + ersetzt + +2002-06-25 Markus Kohm + * datladen.tex + - Tippfehler (Michael Müller) + * INSTALL.TXT, INSTALLD.TXT + - Fix: old step 5 removed + +2002-06-24 Jens-Uwe Morawski + * maincls.tex + - many corrections (Georg) + +2002-06-21 Markus Kohm + * einleit.tex + - orthografischer Fehler (Uwe Jochum) + * hauptcls.tex + - Fehler in Erklärung zu \chaptermarkformat + * maincls.tex + - Mistake in description of \chaptermarkformat + +2002-06-21 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +2002-06-18 Jens-Uwe Morawski + * letter.tex + - many corrections (Georg) + +2002-06-17 Markus Kohm + * Makefile.unx + - "make komascript.log" doesn't relate to guide-files any longer + - rule dist-zip + * scrguide2.tex + - index improvement + - \OnlyAt new + - \ChangedAt changed + * maincls.tex + - index improvement + - sectioning uppercased + - \OnlyAt + * pglayout.tex + - index improvement + - sectioning uppercased + * headfoot.tex + - index improvement + * letter.tex + - index improvement + - sectioning uppercased + * loadfile.tex + - sectioning uppercased + * addressf.tex + - sectioning uppercased + * datetime.tex + - sectioning uppercased + * introduc.tex + - sectioning uppercased + - \OnlyAt + * hauptcls.tex + - Verbesserung des Index + - \OnlyAt + * einleit.tex + - \OnlyAt + * brief.tex + - Verbesserung des Index + +2002-06-16 Markus Kohm + * pglayout.tex + - some fixes (Jens) + * brief.tex + - Fehler behoben (Jens) + - Umbruchkorrekturen + * letter.tex + - page break optimization + - \FontElement, \IndexFontElement, \Variable, \IndexVariable + +2002-06-16 Jens-Uwe Morawski + * letter.tex + - initial translation, now all sections are included + NEEDS PROOF-READING + * maincls.tex + - updated translation (\listof....) etc. + +2002-06-14 Markus Kohm + * liesmich.txt + - an scrguien angepasst + - einige Korrekturen + * readme.txt + - scrguien + - some fixes + * brief.tex + - Korrekturen (Jens) + * Makefile.unx + - diverse kleinere Verbesserungen + - die ps-Dateien sind nun nicht mehr in der Distribution und für + die Installation optional + * hauptcls.tex + - Tippfehler + * genindex.pl + - KOMA-Script header added + - german comments changed into english comments + * main.tex + - new proof-reader + * scrguide2.tex + - neuer Korrektor + * scrnew21.tex + - jede Menge Korrekturen und Verbesserungen (Stefan, Georg) + +2002-06-13 Markus Kohm + * scrguide2.tex + - Briefvariable --> Variable + * brief.tex + - Viele, viele \PValue --> \FontElement + * main.tex + - obsolete names removed + - new names added + * maincls.tex + - reformated and some fixes + * Makefile.unx + - run latex and pdflatex as much as neccessary + - added scrlfile.sty, scraddr.sty to CLS_FILES (Torsten) + * scrnew21 + - Abschnitt zum KOMA-Script Documentation Project + Section about KOMA-Script Documentation Project + +2002-06-12 Markus Kohm + * Makefile.unx + - Multi-Index wird nun auch bei scrguide2.pdf, main.dvi und + main.pdf erzeugt. + +2002-06-12 Jens-Uwe Morawski + * introduc.tex + - some fixes + * letter.tex + - initial translation + (priliminary version section 6.4 is missing) + - NEEDS PROOF-READING + +2002-06-11 Markus Kohm + * Makefile.unx + - removed "but needs ..." at description of rule guides + * brief.tex + - "ein regelrechter" --> "geradezu ein" (Raimund) + +2002-06-10 Jens-Uwe Morawski + * introduc.tex + - translation of Thanks section + * letter.tex + - initial translation + (priliminary version sections + 6.3, 6.4, 6.6 missing) + +2002-06-10 Markus Kohm + * Makefile.unx + - default-Regel ist nun all; die Installationsverzeichnisse + werden erst getestet, wenn installiert werden soll. + - Änderungen in Makefile sind ein Grund, alles neu zu erzeugen + - Änderungen in Makefile.unx werden gemeldet + - TEXINPUTS sollte jetzt funktionieren + - scrguide2.dvi wird als Standard mit MultiIndex erstellt, falls + genindex.pl verfügbar und ausführbar ist + * genindex.pl + - komplett neue Version; benötigt Unterstützung in der ind-Datei + - stellt selbst fest, welche ind-Dateien außer *-gen.ind erzeugt + werden sollen + * scrguide2.tex + - diverse "Sort"-Namen gelöscht, die mit halbwegs aktuellen + MakeIndex gar nicht benötigt werden + - diverse Index-Namen hinzugefügt + ACHTUNG: HIER IST NOCH EINIGES NEU ZU ÜBERSETZEN BZW. AUS DER + ÜBERSETZUNG ZU ENTFERNEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + - diverse Makros für den MultiIndex hinzugefügt oder geändert. + +2002-06-09 Markus Kohm + * brief.tex + - SNold in Erklärung durch SN ersetzt (Harald) + +2002-06-08 Markus Kohm + * brief.tex + - Korrekturen (Georg) + +2002-06-07 Markus Kohm + * brief.tex + - \IndexFontElement verwendet + - Diverse Tippfehler beseitigt (Harald) + - Kleinigkeiten geändert (Jens) + * hauptcls.tex + - \IndexFontElement verwendet + - Überschriften an gepasst: + "Der Haupttext" --> "Der Text" + "Schlussteil" --> "Der Schlussteil" + * scrguide2.tex + - \IndexFontElement + - \indexsection verbessert + - Alternative für einen aufgeteilten Index + * Makefile.unx + - Alternative für einen aufgeteilten Index + * satzspgl.tex + - Indexeintrag für typearea.cfg eingefügt + * genindex.pl + - Erste Version des perl-Scripts für die Erzeugung des + aufgeteilten Index + +2002-06-04 Markus Kohm + * komabug.tex + - Tippfehler behoben (Aenderund --> Aenderung) + [Ulf Jaenicke-Roessler] + * brief.tex + - Einige Ergänzungen für SN.lco. + * scrclass.dtx + - Mindestplatz für Index und Glossary geändert. + +2002-06-03 Markus Kohm + * scrclass.dtx, scrlttr.cls (v2.8q), SN.lco + - Maße für SN 010130 (SN.lco) eingebaut einschließlich + Sonderbehandlung für Adresse rechts. + * scrclass.ins + - Erzeugung von SN.lco aktiviert. + * Makefile.unx + - Nur ich bin berechtigt, aus einer BETA-Version eine Release zu + machen und umgekehrt. + +2002-06-02 Markus Kohm + * brief.tex + - Erklärung zu \adrchar etwas gekürzt. + - Noch eine Bemerkung zu \addrchar und \addrentry bezüglich + adrconv eingefügt. + * scraddr.dtx (v1.1b): + - Damit das Paket unabhängig von scrlettr und scrlttr2 + eingesetzt werden kann, werden nun bei \InputAdressFile + ggf. auch \adrchar und \addrchar definiert. + +2002-06-01 Markus Kohm + * brief.tex + - Fehler in Abschnitt 6.7 ("die wird sie" --> "dann wird sie") + [Jens] + - Autorenliste korrigiert [Jens] + +2002-05-31 Markus Kohm + * scrguide2.tex + - Liste der Beteiligten als eigene Titelseite gesetzt + - \LegalText in \LegalText und \LegalTextB aufgeteilt + * main.tex + - \LegalText --> \LegalText and \LegalTextB + +2002-05-28 Markus Kohm + * brief.tex + - Überschriften vereinheitlicht (\section mit Artikel, + \subsection ohne) + - Tabelle mit den Datumsformaten verschoben, damit der + Seitenumbruch verbessert wird + - Kapitelüberschrift an Kapitel 3 angeglichen + - Änderungsvermerk eingefügt + +2002-05-27 Markus Kohm + * einleit.tex + - Danksagung erweitert + ACHTUNG: DAS MUSS NOCH ÜBERSETZT WERDEN!!!!!!!!!!!!!!!!!!!!!!!!!! + * Makefile.unx + - adrguide und $(OLD)-Teile entfernt + * main.tex + - spell fix + - \WhoIsWho added + - \LegalText enlarged + * satzspgl.tex + - Satzbau in Zeile 800 (mpinclude/mpexclude) + - Mathemodus reduziert + * scrguide2.tex + - Mathemodus reduziert + - \WhoIsWho und \lowertitleback hinzugefügt + - \LegalText erweitert + * hauptcls.tex + - Mathemodus reduziert + * brief.tex + - Mathemodus reduziert + +2002-05-26 Jens-Uwe Morawski + * pglayout.tex: + - removed ".sty" from chapter title + - some fixes + - added documentation for options mpinclude + and mpexclude + +2002-06-26 Markus Kohm + * brief.tex + - Kleine Schönheitsänderung in "Von scrlettr zu scrlttr2" wird + deutlicher gemacht, das das erste Beispiel bereits eine + Modifikation des alten Beispiels ist. + +2002-05-25 Markus Kohm + * main.tex + - "Verweise" --> "destination" + * maincls.tex + - "jorney" --> "journey" + - at tab:numberKind use of \PValue instead of \PName + * hauptcls.tex + - tab:numberKind verwendet \PValue statt \PName + +2002-05-24 Markus Kohm + * Makefile.unx + - handling of removed obsolet files removed + * scrclass.ins + - handling of removed obsolet files removed + - preambles renamed + * scrlettr.dtx + - dir.tex, phone.tex, addrconv.*, email.* and birthday.* removed + * brief.tex + - kleiner Fehlerchen korrigiert (Torsten) + * adressen.tex + - Declaration von \FreeIV fixed + * scrguide2.tex + - \url@ redefined to become CTAN:// an alias to + ftp://\CTANserver/tex-archive/ + - \CTANserver defined + - \BibPreamble changed to use \CTANserver + * main.tex + - \CTANserver defined + - \BibPreamble changed to use \CTANserver + * scrguide.bib + - links to clsguide, usrguide and fntguide changed to get the + pdf file not the tex file + - URL of DANTE:FAQ changed to main FAQ page at www.dante.de + +2002-05-23 Jens-Uwe Morawski + * hauptcls.tex: + - fehlplaziertes \EndIndex{Cmd}{ifthispageodd} + an die richtige Stelle verschoben + - "gewühlten" --> "gewählten" im Abschnitt \pagenumbering + * maincls.tex: + - description for \pagenumbering added + * scrguide.bib: + - alle URL-Verweise, die auf Verzeichnisse und + nicht Dateien zeigen, am Ende mit "/" geschrieben + * main.tex: + - \BibPreambleText added + * scrguide2.tex: + - CTAN-Präfix-Beispiel bei Dante in URL geändert, + da für z.B. PDF-Dokumente die Links im Literatur- + verzeichnis aufgrund des "CTAN://" Präfixes nicht + im Browser funktionieren. + * adrkonv.tex: + - Overfull hbox entfernt + +2002-05-23 Markus Kohm + * maincls.tex: + - linebreak fix at example + * satzspgl.tex: + - mpinclude und mpexclude dokumentiert + * introduc.tex: + - \cite{UK:FAQ} added + +2002-05-22 Jens-Uwe Morawski + * maincls.tex: + - remaining german examples replaced with + english examples + * addressf.tex: + - description for new package options of warnings + (adrFreeIV...) added + * adressen.tex: + - neue Paketoptionen für Warnungen (adrFreeIV...) + dokumentiert + +2002-05-22 Markus Kohm + * brief.tex: + - \cc-Beispiel korrigiert: \raggedright war falsch (Torsten) + - \AtBeginLetter-Beispiel korrigiert (Torsten) + * scrguide.bib: + - error at ragged2 entry fixed + - adrconv entry changed (Jens) + - "CTAN: /tex-archive" --> "CTAN://" + * scrguide2.tex: + - \BibPreambleText hinzugefügt + - Präambel für das Literaturverzeichnis gesetzt. + * maincls.tex: + - \ref{cha:scrletter} --> \ref{cha:scrlttr2} (Jens) + +2002-05-21 Jens-Uwe Morawski + * adrkonv.tex: + - Kapitel geändert, da addrconv nicht mehr Teil von KOMA-Script + * addrconv.tex: + - chapter rewritten since addrconv is not included in + KOMA-Script anymore + +2002-05-20 Jens-Uwe Morawski + * pglayout.tex: + - many bugfixes + - removed all overfull and underfull boxes + * addressf.tex + - fixed index bug + * loadfile.tex + - fixed overfull hbox + +2002-05-19 Markus Kohm + * pglayout.tex: + - some changes to avoid overfull \hbox + * maincls.tex: + - some changes to avoid overfull \hbox and to get umlauts at the + german examples which should be translated + * addressf.tex: + - some changes to avoid overfull \hbox + * headfoot.tex: + - some changes to avoid overfull \hbox + * Makefile.unx: + - scraddr.dtx hinzugefügt + * scraddr.dtx: + - scraddr.sty wird nun daraus erzeugt und nicht länger aus + scrlettr.dtx + - Neue Optionen (adrFreeIV...) + - \adrentry verwendet \addrentry + - \adrchar verwendet \addrchar + * scrclass.dtx, scrlttr2.cls (v2.8q): + - \adrentry verwendet \addrentry + - \adrchar verwendet \addrchar + * scrclass.ins: + - scraddr.sty wird nun aus scraddr.dtx erzeugt und nicht länger + aus scrlettr.dtx + * scrlettr.dtx: + - scraddr.sty ist nicht länger enthalten + * scrguide2.tex: + - Umbruch im Index vor "(Pseudo-Länge)" ermöglicht (wegen eines + Eintrags im Index). + - PDF-Info erweitert (für Jens). + * scrguide.ist: + - Umbruch vor den Pünktchen in der ersten Ebene ermöglicht. + +2002-05-18 Jens-Uwe Morawski + * addressf.tex: + - changes for \addrentry support + - bugfix, since only letters not numbers are allowed as TeX + command names + * adressen.tex: + - Anpassungen für \addrentry Einträge + - Fehler korrigiert, da in TeX Macronamen keine Zahlen erlaubt + sind + * loadfile.tex: + - initial translation + +2002-05-18 Markus Kohm + * Makefile.unx, INSTALL.TXT, INSTALLD.TXT: + - Das von Jens gemeldete Problem in Makefile.unx wegen TEXMF + durch Umbenennung in INSTALLTEXMF behoben. + * scrlogo.dtx: + - \@ifundefined testet nun wirklich auf KOMAScript (gemeldet von + Jens) + * scrlettr.dtx, scraddr.sty (v1.1): + - Erweiterungen für \addrentry von Jens übernommen und ein klein + wenig geändert. + +2002-05-17 Markus Kohm + * hauptcls.tex: + - \pagenumbering dokumentiert + - Änderung bei Fußnoten in \caption dokumentiert + * scrclass.dtx (v2.8q): + - Fußnoten in Gleitumgebungen führen nun nicht mehr zu falscher + Zählweise und doppelter Ausgabe. + +2002-05-15 Markus Kohm + * brief.tex: + - Weitere Hinweise und Beispiele von Torsten berücksichtigt. + +2002-05-14 Markus Kohm + * brief.tex: + - Torstens Korrekturen und Hinweise umgesetzt. + * scrclass.dtx, scrlttr2 und lco-Dateien (v2.8q): + - Von Torsten gemeldete Fehler umgesetzt (\NeedsTeXFormat in den + lco-Dateien und Schriftumschaltung in Kopf- und Fußzeile der + Folgeseiten). + +2002-05-11 Markus Kohm + * brief.tex: + - Einige Hinweise von Torsten umgesetzt. + - Konsistenzänderung bei den Pseudolängen eingearbeitet. + * scrclass.dtx, scrlttr2 (v2.8q): + - Konsistenzänderung bei den Pseudolängen: Wenn \useplength eine + Benutzeranweisung ist, dann sollten \setlengthtoplength und + \addtolengthplength dies ebenfalls sein. + +2002-05-10 Markus Kohm + * brief.tex: + - Korrekturen von Torsten eingearbeitet + +2002-05-09 Markus Kohm + * addrconv.tex, letter.tex, loadfile.tex: + - missing note added + * main.tex: + - \include{loadfile} and \PseudoPrefix added. + * Makefile.unx: + - koma-script.tex, koma-script.pdf, komascript.pdf, komascr.pdf + * koma-script.tex: + - Neu: nützlich beispielsweise, wenn jemand unter teTeX mit + texdoc koma-script + nach der Anleitung sucht. + +2002-05-08 Markus Kohm + * scrguide.tex: + - Neu: \PseudoPrefix, \PLength und \IndexPLength + * brief.tex: + - Meine temporäre Version ersetzt nun die unfertige Version von + Enrico (sorry, aber so ging es deutlich schneller, wenn auch + nicht unbedingt besser). + * adrkonv.tex, hauptcls.tex: + - Verweise auf scrlettr in Verweise auf scrlttr2 geändert. + +2002-04-18 Markus Kogm + * scrclass.dtx, scrbook, scrreprt (v2.8q): + - Bei Verwendung der Option chapterprefix wirkt sich + \raggedsection nun auch auf den Präfix aus. Damit sind + vollständig zentrierte Überschriften durch ein einfaches + \let\raggedsection=\centering möglich. + +2002-04-09 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - Verwendung von \@tempskipa statt \@tempdima weil Längen ebenfalls + skip- und keine dim-Register sind. Gleichzeitig default-Wert für + den optionalen Faktor entfernt, damit plus und minus funktionieren. + Im Ergebnis funktionieren specialmailindent und + specialmailrightindent nun wie gewünscht. + +2002-04-08 Markus Kohm + * scrclass.dtx, scrbook, scrreprt, scrartcl (v2.8q): + - liststotoc korrigiert + - listtotocnumbered neu hinzugefügt + +2002-03-29 Markus Kohm + * Makefile.unx: + - distclean löscht auf die zu den dtx-Files gehörenden dvi-Files. + - Der neue englische guide ist Standard, der alte kann noch mit + OLD=yes erzeugt werden. + - scrlttr2 und die lco-Dateien werden mit installiert. + * scrclass.ins: + - scrlttr2 etc. wird nicht mehr nur in der BETA erzeugt. + +2002-03-28 Markus Kohm + * scrclass.dtx, typearea, scrbook, scrreprt, scrartcl (v2.8q): + - Auf Anregung von Frank Mittelbach, Optionen "mpinclude" und + "mpexclude" implementiert. Typearea berechnet bei "mpinclude" + einen Satzspiegel, bei dem die Randnotizen zum Textbereich + gezählt werden. Die Randnotizen haben dabei eine Breite von + einem Streifen abzüglich \marginparsep. + Es gibt keine vordefinierten DIV-Werte für die Verwendung mit + "mpinclude" stattdessen wird in diesem Fall "DIVcalc" + verwendet. + Die Hauptklassen setzen bei Verwendung von "mpinclude" die + Kopf und Fußzeile über die gesamte Breite des Bereichs für + Text und Randnotizen. + Die Optionen sind so definiert, dass KOMA-Script-Klassen, + typearea und scrpage2 optimal zusammenarbeiten können. + + * scrpage.dtx, scrpage2 (v2.1): + - scrpage2 versteht ebenfalls eine Option "mpinclude" und + "mpexclude". Bei "mpinclude" wird als Voreinstellung + \setheadwidth[0pt]{textwithmarginpar} und + \setfootwidth[0pt]{textwithmarginpar} verwendet. Dies + entspricht auch der Verwendung der Option bei den KOMA-Script + Klassen. + Die Optionen sind so definiert, dass KOMA-Script-Klassen, + typearea und scrpage2 optimal zusammenarbeiten können. + +2002-03-25 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - Die fehlenden separator-Variablen ergänzt. Man kann jetzt + beispielsweise mit + \setkomavar{fromurl}[]{http://socha.net/scrguide} dafür + sorgen, dass das Präfix "URL: " verschwindet. Das macht das + leere optionale Argument. + - Speziell für Luzia specialmailindent und + specialmailrightindent + - \LetterOptionNeedsPaperSize wirkt sich nun erst bei \opening + aus. Dadurch kann nach DIN.lco noch eine lco-Datei geladen + werden, die ein anderes Format verlangt ohne dass DIN.lco eine + Warnung ausgibt. + +2002-03-20 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - In der Variablen signature darf "\\" verwendet werden, um eine + mehrzeilig Unterschrift zu erzeugen. + +2002-03-06 Markus Kohm + * scrclass.dtx, typearea (v2.8q): + - Berechnung der günstigen Zeilenlänge korrigiert + (\normalfont\normalsize hinzugefügt). + +2002-03-01 Markus Kohm + * scrclass.dtx (v2.8q): + - \normalfont aus \sectfont herausgenommen, weil das (fast) + überall vor \sectfont ohnehin schon aufgerufen wurde. + - Überall, wo es relevant ist nach \sectfont ein \nobreak + eingefügt. Das war notwendig, weil in \sectfont ein + \normalcolor enthalten ist. color.sty hat aber einen Bug, + der einen Zeilen- und Seitenumbruch nach \normalcolor + ermöglichst. Dadurch konnte zwischen \section und \subsection + ein Seitenumbruch erfolgen, sobald color.sty geladen ist. + +2002-02-25 Markus Kohm + * scrguide2.tex: + Index wird ins Inhaltsverzeichnis aufgenommen + (wurde gewünscht). + * brief.tex: + Enricos erster Entwurf für die neue Briefklasse. + +2002-02-23 Markus Kohm + * scrguide2.tex: + \Variable, \IndexVariable und \VariableName eingeführt. + * main.tex: + \VariableName (stimmt die Übersetzung?) + * scrclass.dtx, scrlttr (v2.8q): + Einige kleinere Bugfixes: + - wlocfield und slocfield sind obsolete Optionen + - Breite des location-Feldes wird ggf. während \openin + berechnet. + - Leerer Absendername und leere Absenderadresse sind + mehr oder weniger erlaubt. + - \@title durch \usekomavar{title} ersetzt. + +2002-02-22 Markus Kohm + * hauptcls.tex: + Ein paar Fehler korrigiert. + +2002-02-22 Jens-Uwe Morawski + * addressf.tex, headfoot.tex, main.tex: + some fixes + +2002-02-11 Markus Kohm + * layout.tex: + Jens Änderungen zur Verhinderung von Warnungen + * datladen.tex: + Neues Kapitel für scrlfile.sty + * scrguide2.tex: + datladen.tex hinzugefügt + * Makefile.unx: + datladen.tex hinzugefügt + +2002-02-11 Markus Kohm + * scrclass.dtx, scrlfile (v2.8q): + - Sternformen \AfterPackage* und \AfterClass* führen die + entsprechende Anweisungen sofort aus, falls das Paket oder + die Klasse bereits geladen ist. + +2002-02-06 Markus Kohm + * koma-script.xml: + - in verschiedenen Sprachen (keine Ahnung, ob + mehrere gleichartige Einträge überhaupt erlaubt sind, da + catalogue.dtd saumäßig dokumentiert ist). + * scrpage.dtx, scrpage2 (v2.0m): + - Schwerwiegenden Bug in \ps@useheadings beseitigt. + * scrclass.dtx, scrlttr2 (v2.8q): + - Option "addrfield=false" kann nun nicht nur gesetzt werden, + sondern hat auch eine Funktion (Adressfeld komplett + ausblenden). + +2002-02-05 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - Option "pagenumber=top" und "pagenumber=bot" funktionieren + wie gewünscht und ohne Umdefinierung von \@tempa. + - \closing ist nicht mehr \long, dafür dürfen im Argument + \\[...] vorkommen. + +2002-02-04 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + Problem beseitigt, falls "refline=wide" nach dem Laden der + lco-Datei gesetzt wird. + * hauptcls.tex: + - Umgebung addmargin und Anweisung \ifthispageodd dokumentiert. + - Alle relevanten overfull \hbox Meldungen beseitigt. + +2002-02-03 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - fromrulelength --> fromrulewidth + - frumrulewidth --> fromrulewidth + +2002-02-02 Markus Kohm + * scrpage.dtx, scrpage2 (v2.0m): + - scrlttr2 wird erkannt und aktiv unterstützt, das bedeutet + insbesondere auch, dass Kopf- und Fu"szeilen entsprechend + angepasst werden. Beim Seitenstil scrheadings funktioniert + sogar die Option automark. Der Befehl \automark kann auch + verwendet werden, allerdings spielt es derzeit keinerlei + Rolle, was man dabei als Argumente verwendet, solange es + Gliederungsebenen unter chapter sind. + Vielleicht werde ich in einer späteren Release die + Zusammenarbeit zwischen scrpage2 und scrlttr2 bezüglich + \automark noch verbessern, wenn begründete Nachfrage + besteht. + * scrtime.dtx, scrtime (v1.1m): + - Holländisch wird unterstützt (Dank an Henk Jongbloets) + * scrclass.dtx, scrlttr2 (v2.8q): + - \ta@hh-Fehler in Option headlines beseitigt (gemeldet + von Chef-Alpha-Tester Torsten Krüger) + - Option fax heißt nun entsprechtend aller anderen + fromfax (gemeldet von Henk Jongbloets) + +2002-02-01 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - Fehlende französische Übersetzungen ergänzt + (von Henk Jongbloets) + - Einige Tippfehler behoben (gemeldet von Henk Jongbloets) + - \captionsdutch und \datedutch neu (von Henk Jongbloets) + - Fehlende spanische Übersetzungen ergänzt + (von Alejandro López-Valencia) + +2002-01-31 Markus Kohm + * koma-script.xml: + Maybe a better description. Version number in future. + +2002-01-31 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + Kopf- und Fußzeilen funktionieren nun auch auf den Folgeseiten + sowohl bei Seitenstil plain als auch bei Seitenstil headings. + Dabei wird die neue Option "pagenumber" berücksichtigt. + Der Inhalt der Marken beim Seitenstil headings kann mit + \markboth{}{} und \markright{} beeinflusst werden. Dies muss + jedoch NACH opening erfolgen, weil opening, selbst ein + \@mkboth{\usekomavar{fromname}}{\usekomavar{subject}} + ausführt. Ich habe deshalb auch noch den Seitenstil myheadings + definieren, der wie headings funktioniert, aber \@mkboth auf + \@gobbletwo setzt. + +2002-01-31 Markus Kohm + * koma-script.xml: + Der Catalogue-Eintrag für KOMA-Script wird nun vom Projekt + mitverwaltet. Dadurch haben wir hoffentlich mehr Einfluss + auf seinen Inhalt. + Dies ist noch die unveränderte Originalversion. + +2002-01-29 Jens-Uwe Morawski + * datetime.tex: + Übersetzung. + +2002-01-28 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + - Einige Variablen (z. B. place in fromplace) umbenannt. + - Einige neue Variablen. + - Neue \...name Makros. + - Einige neue Font-Variablen. + - Die Option fromalign beachtet nun die Werte: + left - linksbündiger Briefkopf entsprechend + briefkopf.sty + right - rechtbündiger Briefkopf analog zu "left" + center - zentrierter Briefkopf mit Logo neben der + Adresse + no - Keine Änderung des Briefkopfes. + Die Verwendung von \firsthead schaltet automatisch + auf fromalign=no. + +2002-01-28 Markus Kohm + * einleit.tex, satzspgl.tex: + Von Yoshi Nagata gemeldete Fehler korrigiert. + +2002-01-27 Jens-Uwe Morawski + * layout.tex, adressen.tex: + Korrekturen nach Vorschlägen von Torsten Krueger + +2002-01-25 Markus Kohm + * scrclass.dtx, scrlttr2 (v2.8q): + Diverse Optionen aus briefkopf.sty eingebaut. + * scrclass.dtx (v2.8q): + Alle ``blubber'' durch `blubber' ersetzt. + +2002-01-22 Markus Kohm + * scrclass.dtx, scrbook, scrreprt, scrartcl (v2.8q): + halfparskip-Bug beseitigt + +2002-01-22 Markus Kohm + * scrclass.dtx, scrlttr2.cls (v2.8q): + - Neue Variable backaddressseparator ersetzt \\ in der + Rücksendeadresse. + - Neue Fontvariable backaddress + - Variable backaddress wird als \usekomavar{fromname}\\ + \usekomavar{fromaddress} vordefiniert. Bei KOMAold wird + darauf getestet und ggf. auf leer gesetzt. + - Neues Makro \@ogobble, um ein optionales Argument zu + vernichten. Dieses wird bei der lokalen Umdefinierung + von \\ beispielsweise für die Rücksendeadresse verwendet. + - \captionenglish wird in jedem Fall definiert + - \ifkomavarempty*{placeseparator} durch \ifkomavarempty{place} + und \usekomavar*{placeseparator} durch \usekomavar{place} + ersetzt. + +2002-01-16 Markus Kohm + * scrclass.dtx, scrlttr2.cls (v2.8q): + - Es gibt eine Fontvariable für "subject". + - Ein paar überflüssige % entfernt und ein paar fehlende % + ergänzt. + - Neue Sprachabhängigkeit \headfromname. + - Die letter Umgebung kennt nun ein optionales Argument zum + Setzen der Optionen (erspart ggf. den Aufruf von + \KOMAoptions). + - Der Fußnotenzähler wird bei jedem Brief zurückgesetzt. + - Neue Befehle \newkomavar, \setkomavar, \usekomavar, + \ifkomavarempty und \addtoreffields. Funktion siehe + scrclass.dtx. + - Die ganzen \from..., \to..., \place usw. Befehle wurden + durch komavar-Variablen ersetzt. Die alten Befehle sind + jedoch bei Verwendung der Optionendatei "KOMAold" wieder + verfügbar. Namen und Bedeutung der Variablen siehe + scrclass.dtx. + +2002-01-14 Markus Kohm + * scrclass.dtx, scrlttr2.cls (v2.8q): + Das Setzen der Geschäftszeile wurde optimiert. + +2002-01-10 Markus Kohm + * scrclass.dtx, scrbook.cls, scrreprt.cls, scrartcl.cls (v2.8q): + Leere Präambel im Literaturverzeichnis vergrößert nicht länger + den Abstand nach der Überschrift. + +2001-12-13 Markus Kohm + * scrclass.dtx, typearea.sty (v2.8q): + Es war immer dokumentiert, dass DIVcalc die optimale Breite + einer Spalte nimmt. Tatsächlich hat das aber aufgrund eines + Bugs nie funktioniert. Dieser Fehler ist nun behoben, führt + aber u. U. bei alten Dokumenten, die auf diesen weit zurück + reichenden Bug bauen, zu einem anderen Umbruch! + +2001-11-29 Markus Kohm + * hauptcls.tex: + Dokumentation von \setcapmargin der erfolgen Änderung + angepasst. + * scrclass.dtx (v2.8q): + Bei \setcapmargin gibt das optionale Argument nun den linken + bzw. inneren Rand an, da mir dies intuitiver erscheint. + Neue Umgebungen addmargin und addmargin* mit einem optionalen + und einem obligatorischen Argument, um innerhalb des Dokuments + die Randeinstellung kurzzeitig zu ändern. Negative Werte sind + möglich. Realisation erfolgte mit Hilfe einer Liste. + +2001-11-27 Markus Kohm + * Makefile.unx: + Mit "env BETA=yes make scrguien" kann der neue englische Guide + erzeugt werden. Dabei werden alle benötigten symbolischen Links + automatisch erzeugt. Daher ist es nicht mehr notwendig, die + folgenden Dateien im CVS zu halten: + scrguide/english/scrguide.bib + scrguide/english/scrguide.ist + scrguide/english/scrguide.mbs + scrguide/english/scrguide2.tex + * scrguide-en.bst: + BibTeX style for the english guide. + * scrguide.bst: + Zwischen Monat und Jahr ist kein Umbruch erlaubt. + + * main.tex: + \LoadChapters + \LanguageShortcut + + * scrguide2.tex: + Notwendige Definitionen von Jens ergänzt. Dabei den + Zeilenumbruch im Quellcode angepasst und die Umlaute entfernt + (die Definition erfolgt vor dem Laden der Sprache). + Verwendung von Babel für jede Sprache. + Welche Kapitel in welcher Reihenfolge geladen werden, wird + von der Sprachdatei festgelegt (\LoadChapters). + Das Literaturverzeichnis ist wirklich linksbündig. + Unterschiedliche Sprachen können unterschiedliche BibTeX Stile + verwenden. + HINWEIS: Ich erinnere daran, dass english/scrguide2.tex mit + scrguide2.tex identisch ist! + +2001-11-26 Jens-Uwe Morawski + * layout.tex: + Macro- und Environment-Definitionen entfernt; + sprachunabhängige Teile nun in scrguide2.tex; + sprachabhängige Teile werden in entsprechender + Hauptdatei deklariert; für layout.tex ebenfalls + in scrguide2.tex + \phantomsection für page:-Label eingefügt + damit hyperref-\pageref-Links auch auf diese + Seite zeigen; Abschlußbeispiel hinzugefügt + von Markus vorgeschlagene Korrekturen bis + auf einen Vorschlag umgesetzt + * headfoot.tex: + removed macro and environment declarations; + language independent declarations are moved + to scrguide2.tex; language dependent declarations + are in main.tex + added \phantomsection for page:-labels, thus + hyperref-\pageref-links point to this page + final example added + * addressf.tex: + fixed two small bugs (it's -> its); + + * main.tex: + extended with english sample-texts and + required macros for use in headfoot.tex + +2001-11-24 Markus Kohm + * hauptcls.tex: + Zwei Tippfehler behoben. + * scrclass.dtx (v2.8q): + Bei Verwendung der captionbeside-Umgebung darf \label nun + tatsächlich hinter der Umgebung stehen. + +2001-11-23 Markus Kohm + * scrclass.dtx, scrlttr2.cls (v2.8q): + \KOMAoptions{parskip=...} kann innerhalb des Dokuments verwendet + werden. Ebenso kann es als Umgebung eingesetzt werden. + +2001-11-22 Markus Kohm + * hauptcls.tex: + Beispiel für \setcapwidth ergänzt. + Beschreibung für die captionbeside-Umgebung. + * scrclass.dtx (v2.8q): + Neues Makro \ifthispageodd{}{}: + Durch eine Art Label-Mechanismus wird beim übernächsten + LaTeX-Lauf garantiert korrekt entscheidet, ob der + oder der auszuführen ist. + Demgegenüber entscheidet \ifodd\value{page} innerhalb + des ersten Absatzes einer Seite oder innerhalb von + Gleitumgebungen sehr oft falsch. + \setcapwidth[o] und \setcapwidth[i] sowie \setcapmargin* + funktionieren nun korrekt. + Neue Umgebungen: + \begin{captionbeside}[] + {}[] + [][] + \begin{captionbeside}[] + {}[] + [][]* + Es wird ein + \caption[]{} + neben dem Inhalt der Umgebung ausgegeben. Daher die die + Umgebung nur innerhalb von Gleitumgebungen verwendet + werden. + kann sein: + l = links neben dem Inhalt der Umgebung + r = rechts neben dem Inhalt der Umgebung (default) + ist die Breite von Umgebungsinhalt und + Beschreibung. Voreingestellt ist \linewidth. + ist eine horizontale Verschiebung für + Umgebungsinhalt und Beschreibung. Voreingestellt + ist Zentrierung. + In der Version mit Stern am Ende wird die + im doppelseitigen Satz auf linken Seiten so umgerechnet + das ein gespiegelter Rand entsteht. Die Beschreibung wird + fussbündig zum Inhalt der Umgebung gesetzt. + +2001-11-21 Jens-Uwe Morawski + * layout.tex: + - neue Befehle und Umgebungen für die + Übersichtlichkeit der Beispiele + - Index-Korrektur bei \pagemark + - Index-Korrektur bei \setfootsepline + - Anpassung der Label + - !!! End-Beispiel fehlt noch !!! + * headfoot.tex: + - initial translation, including all + changes of the current german version + - !!! final example and translations + of example-texts missing !!! + * adressen.tex: + - Änderung der Grußformel, da die englische + keinen Sinn machte + - Labels angepaßt + * addressf.tex: + - changed closing in example, since the former + closing-text had a unsuitable meaning in the + english version + +2001-11-20 Markus Kohm + * hauptcls.tex: + Die Optionen und Makros vom 2001-11-17 dokumentiert. + * scrclass.dtx (v2.8q): + \setcapmargin bewirkt noonelinecaption. + +2001-11-18 Markus Kohm + * scrclass.dtx (v2.8q): + Bei longtable wird \LTcapwidth ignoriert. Stattdessen findet + die mit \setcapwidth bzw. \setcapmargin getroffene + Einstellung Anwendung. Außerdem funktionieren \captionabove + und \captionbelow nun auch in longtable Tabellen. Dabei wird + auch die Option tablecaptionabove beachtet. + BTW: longtable hat einen Bug. Bei links- oder rechtsbündig + gesetzten Tabellen ragt der caption-Text in den jeweiligen + Rand. Ursache ist \LTleft=\z@ und \LTright=\fill bzw. + umgekehrt in Verbindung mit \hss innerhalb von + \LT@makecaption. Ich denke nicht, dass der Bug einfach zu + beheben ist. KOMA-Script beseitigt diesen Bug auch nicht. + +2001-11-17 Markus Kohm + * scrclass.dtx (v2.8q): + Kompatibilität mit caption2 weiter erhöht. Dazu werden einige + KOMA-Script-Makros umdefiniert, sobald caption2 geladen ist. + Neue Optionen: + onelinecaption - Voreinstellung wie bisher + noonelinecaption - entspricht Option "nooneline" von + caption2 + Neue Makros: + \setcapwidth[]{} - siehe scrclass.dtx + \setcapmargin[]{} - siehe scrclass.dtx + \setcapmargin*[]{} - siehe scrclass.dtx + * scrclass.ins: + scrlfile.sty wird erzeugt. + * scrclass.dtx, scrlfile.sty (v2.8q): + Erste Implementierung. Es mag seltsam sein, dass die erste + Implementierung die Version v2.8q ist. Aber da das Paket + eigentlich Bestandteil der Klassen ist und nur deshalb + ausgelagert wurde, weil es auch getrennt davon verwendet + werden kann, bekommt es dieselbe Versionsnummer wie die + Klassen. Optimal wäre, wenn dieses Paket Bestandteil von + LaTeX werden würde. + +2001-11-16 Markus Kohm + * hauptcls.tex: + Die neuen Optionen tocleft, tocindent, listsleft und listsindent + dokumentiert. + Die neue Schriftumschaltung für Fußnoten und Fußnotenmarken + dokumentiert. + secnumdepth dokumentiert. + Ein paar informative Ergänzungn. + * scrclass.dtx (v2.8q): + Schriftumschaltung für Fußnoten und Fußnotenmarken. + +2001-11-15 Markus Kohm + * scrclass.dtx (v2.8q): + Ein 0\p@ durch \z@ ersetzt. + Die Anzahl der Info-Einträge bei scrlttr2.cls reduziert. + +2001-11-14 Markus Kohm + * scrclass.dtx (v2.8q): + Neue Optionen: + tocleft - Das Inhaltsverzeichnis wird nicht stufig, sondern + linksbündig dargestellt. Dabei stehen alle + Gliederungsnummern linksbündig untereinander und + alle Überschriften beginnen in einer Fluchtlinie. + Es entsteht ein Tabelleneindruck. Der Platz, der + für die Gliederungsnummern benötigt wird, wird + automatisch ermittelt. Eine korrekte Darstellung + wird nach max. 3 LaTeX Durchläufen erreicht. + tocindent - Inhaltsverzeichnis wie bisher (default) + listsleft - Die Listenverzeichnisse sind linksbündig. Der + Platz, der für die Nummern benötigt wird, wird + automatisch ermittelt. + listsindent - Listenverzeichnisse mit festem Wert für die + Breite der Nummer wie bisher (default) + Aufgrund der verwendeten Implementierung sollte das ganze auch + mit float.sty Listen funktionieren und außerdem sehr robust + gegen Änderungen der betroffenen Makros sein. Es funktioniert + allerdings nur bei Verzeichnissen, die mit \@dottedtocline + bzw. mit Hilfe von \numberline erstellt werden. + +2001-11-13 Markus Kohm + * scrclass.dtx (v2.8q): + Tokenoptimierung (XXXpt --> XXX\p@, 0pt --> \z@, plus --> \@plus, + minus \@minus). + * scrguide2.tex: + Wenn keine pdf-Ausgabe verlangt ist, wird explizit "hypertex" + als hyperref-Option angegeben, damit nicht automatisch "dvips" + verwendet wird (wenn jemand doch dvips will, sollte er auch + die Option "linktocpage" verwenden). + * scrclass.dtx (v2.8q): + \setlength{\parskip}{\z@} an vielen Stellen durch + \@parskipfalse\@parskip@indent ersetzt. + * scrclass.dtx, typearea.sty (v2.8q): + \ifpdfoutput funktioniert wieder. + +2001-11-08 Markus Kohm + * scrclass.dtx, scrlttr2.cls (v2.8q): + Komplett neue Schnittstelle für die Sprachumschaltung. Dadurch + kann der Benutzer nun mit Hilfe folgender Makros bereits in der + Präambel Begriffe für einzelne Sprachen definieren: + \newcaptionname{}{}{} + \renewcaptionname... + \providecaptionname... + definiert das für die Sprache . + \new... definiert ein neues Makro - auch, wenn die Sprache + zuvor nicht existiert hat. Existiert das Makro bereits + wird ein Fehler ausgegeben. + \renew... definiert ein vorhandenes Makro erneut. + Existiert Sprache oder Makro noch nicht, wird ein Fehler + ausgegeben. + \provide... definiert ein noch nicht vorhandenes Makro. + Existiert Sprache nicht oder Makro bereits wird eine + Information in die log-Datei geschrieben. + Die Option "numericaldate" funktioniert nun auch im Dokument. + \KOMAoptions ist auch innerhalb des Dokuments erlaubt. + +2001-11-06 Markus Kohm + * scrclass.dtx, scrlttr2.cls (v2.8q): + Option parskip funktioniert nun auch per \KOMAoptions. + * scrclass.dtx, typearea.sty (v2.8q): + Die Optionen DIVcalc und DIVclassic lassen die Finger von der + DIV-Liste, so dass der symbolische Wert "default" bei \typearea + später auch noch funktioniert - wenn ein entsprechender Wert + definiert ist. + \typearea kennt außerdem den symbolischen Wert "last", der im + Gegensatz zu "current" nicht der aktuelle DIV-Wert ist, sondern + der Wert, mit dem \typearea zuletzt aufgerufen + wurde. Unterschiede können sich ergeben nach einem Aufruf mit + "calc", "classic" oder "default". + Intern wird nun ebenfalls \typearea[current]{current} für die + Initialisierung verwendet, statt \typearea[\ta@bcor]{\ta@div}. + * scrclass.dtx, scrlttr2.cls (v2.8q): + \AfterProcessOptions wird nicht mehr bei jedem Aufruf der + Optionen "headsepline" und "footsepline", sondern nur noch + jeweils einmal insgesamt ausgeführt. + titlepage-Material, das nie verwendet wurde, entfernt. + Die Optionen "BCOR" und "headlines" verwenden jetzt + \typearea[...]{last} statt \typearea[...]{current} beim Aufruf + per \KOMAoptions. + Die Option "paper" funktioniert jetzt auch nach dem Laden von + typearea und sorgt nicht nur für eine Fehlermeldung. + * scrclass.dtx (v2.8q): + \cleardoublestandardpage in der Option "cleardoublestandard" + bzw. "cleardoublepage" korrigiert. + +2001-11-01 Markus Kohm + * addrconv.tex, addressf.tex, datetime.tex, headfoot.tex, + introduc.tex, letter.tex, maincls.tex, pglayout.tex: + Comments changed. + +2001-10-31 Markus Kohm + * komascr.ins, scrclass.ins, scrpage.ins, scrtime.ins: + \askonceonly, falls docstrip es bietet. Dadurch finden bei der + Installation ggf. weniger Nachfragen statt. + +2001-10-30 Markus Kohm + * scrclass.dtx (v2.8q, nur Briefklasse): + Klassenoption "footsepline" funktioniert nun ("{#1}" + fehlte). Die Option setzt derzeit aber nur einen Schalter, der + intern nicht ausgewertet wird! + Klassenoption "twoside" funktioniert nun ("{#1}" fehlte) ohne + Warnung. + Klassenoption "enlargefirstpage" funktioniert nun ("{#1}" + fehlte). + Klassenoption "cleardoublepage" beachtet nun auch die Werte + "plain" und "standard". Die Option hat derzeit aber nicht viel + Sinn. + Klassenoption "numericaldate" funktioniert nun korrekt (nicht + mehr invers zur Bedeutung). + Warnungen über zu hohes Anschriftfeld bzw. zu hohe + Rücksendeadresse sollte nur noch einmal ausgegeben werden. + Warnung über zu hohe Rücksendeadresse sollte nur noch ausgegeben + werden, wenn tatsächlich zuvor eine overfull \vbox gemeldet + wurde. + Für den Kopf und den Fuß der ersten Seite wird \parfillskip + lokal auf 0 gesetzt. + Bei Warnungen über zu hohe Inhalte der Elemente der ersten + Seite, wird nun nicht mehr der zu hohe Wert, sondern der Name + des zu hohen Wertes ausgegeben. Außerdem wird angegeben, um + wieviel die entsprechende Box zu hoch ist. + Hinweis: Die Verwendung der Optionen per \KOMAoptions führt noch + nicht bei jeder Option zu einer sinnvollen Reaktion. + +2001-10-19 Markus Kohm + * scrclass.dtx (v2.8q): + Einige Teile wurden zeitweilig in die falschen Klassen + generiert. + Die mit Carsten besprochene Änderung an \ifpdfoutput + vorgenommen. Dadurch wird \pfdoutput jetzt nicht mehr + \relax falls es undefiniert war. Außerdem darf ein + anderes Paket \ifpdfoutput vor typearea.sty definieren + und dem Befehl sogar eine andere Bedeutung geben. + +2001-10-19 Jens-Uwe Morawski + * addressf.tex: + adressen.tex --> addressf.tex + adressen_en.tex --> addressf.tex + * main.tex: + \Opt: optional parameter has to be an obligatory one + at case 3rd. + +2001-10-19 Markus Kohm + * scrlettr.dtx (v2.6d): + \subjectafteron funktioniert nun. Die Aktivierung führte + seit ewigen Zeiten zu einer Fehlermeldung. Da das + Feature auf expliziten Anwenderwunsch eingebaut wurde, + wundert der Umstand, dass der Bug nie gemeldet wurde, + doch sehr. Ich sollte mit der Implementierung von + Anwenderwünschen zukünftig wohl sparsamer umgehen. + * scrclass.dtx (v2.8q, nur Briefklasse): + Einige Fehlermeldungen korrigiert. + Option "subject=afteropening" funktioniert. + +2001-10-18 Markus Kohm + * scrclass.dtx (v2.8q, nur Briefklasse): + Die Optionenwerte können nun tatächlich per + \documentclass gesetzt werden. Das ging vorher schief. + Die Optionen DIV, BCOR und headlines werden nach dem + Laden von typearea so geändert, dass sie keine Optionen + mehr an typearea schicken, sondern \typearea aufrufen. + * scrclass.dtx (v2.8q): + \z@ in \@z korrigiert (oder umgekehrt). + +2001-10-17 Markus Kohm + * scrclass.dtx (v2.8q, nur Briefklasse): + Alle von Carsten und Torsten gemeldeten Fehler behoben. + Bei \KOMAoptions verhalten sich die Optionen fontsize + und paper anders als bei \documentclass (soweit + \KOMAoptions nach dem Laden der sizeX.clo-Datei bzw. + nach dem Laden von typearea aufgerufen wird, was + immer der Fall sein dürfte). Es wird dann ggf. eine + Warnung bzw. ein Fehler ausgegeben. + +2001-10-16 Markus Kohm + * layout.tex: + Verbesserungsvorschlag aus de.comp.text.tex eingefügt. + +2001-10-15 Markus Kohm + * scrclass.dtx (v2.8q nur Briefklasse): + Alle von Torsten gemeldeten Fehler behoben. + +2001-10-14 Markus Kohm + * filestate.html: + names inserted and states updated + * maincls.tex: + only a dummy + * letter.tex: + only a dummy + * introduc.tex: + don't no any change + * headfoot.tex: + only a dummy + * datetime.tex: + only a dummy + + * addressf.tex: + New translation from Jens with "Telephon" --> "Telephone" + and use of \Ord instead of math-hack from Markus. + * addrconv.tex: + only a dummy + * main.tex: + Names for all the chapter-files inserted. + New command \Ord{} inserted. See + "addressf.tex" for usage. + * pglayout.tex: + "\eg{}" --> "e.g." + +2001-10-12 Markus Kohm + * satzspgl.tex: + Wichtige Ergänzung zu Paketoptionen bei Verwendung einer + KOMA-Script Klasse. + +2001-10-09 Markus Kohm + * scrclass.ins + In der Beta-Version werden neben der neuen Briefklasse auch die + neuen Letter-Class-Option-Dateien ausgepackt. + Anpassung an die neuen Schlüssel (class, package, lco). + * scrclass.dtx (v2.8q): + Die Briefklasse ist nochmal komplett überarbeitet und verwendet + jetzt das keyval-Paket. Dafür wurden diverse Kompatibilitäten + über Bord geworfen. Alle scrlettr-Befehle und Umgebungen werden + zwar noch unterstützt, die alten Längen jedoch nicht mehr. + Für alle Neuerungen bitte die Implementierungsdoku konsultieren. + Es wurde versucht, alle neuen Befehle auch einem Datum + zuzuordnen. + Außerdem sind nun hoffentlich alle Makros, Umgebungen, Optionen, + Längen und Zähler in \begin{...}...\end{...} eingeschlossen und + so im Index aufgeführt. + * scrlettr.dtx (v2.6c unvollendet): + Die Klasse gibt am Anfang eine übertriebene OBSOLET-Warnung aus. + Die Dokumentation aus brief.tex wurde in diese Datei integriert. + TODO: Alle Teile, die nicht unmittelbar scrlettr.cls sind, in ein + neues dtx verschieben. + Implementierungsdoku von scrlettr.cls komplett entfernen + (hauptsächlich aus Platzgründen, stattdessen gibt es dann + nur noch einen Verweis auf scrclass.dtx). + +2001-10-05 Markus Kohm + * scrguide/datmzeit.tex: + Kroatisch dokumentiert. + Möglichkeit, die Namen der Wochentage kleingeschrieben zu + erhalten, dokumentiert. + +2001-10-05 Markus Kohm + * scrclass.dtx (v2.8q), nur die Briefklasse: + Kroatisch wird nun ebenfalls unterstützt. + * scrtime.dtx (v1.1l): + Kroatisch wird nun ebenfalls unterstützt. + +2001-10-05 Markus Kohm + * scrguide.bib: + package:ragged2e neu aufgenommen. + * hauptcls.tex: + Änderungen in scrclass.dtx Version 2.8q dokumentiert. + * layout.tex: + Änderungen und Korrekturen, wie von Jens erhalten. + Zusätzlich einen Zeilenumbruch und einen Seitenumbruch + verbessert. + +2001-10-04 Markus Kohm + * scrclass.dtx (v2.8q): + \dictum und die zugehörigen Makros definiert. + +2001-10-01 Markus Kohm + * hauptcls.tex: + Änderungen im Zuge von \setkomafont, \addtokomafont und + \usekomafont abgeschlossen. + Änderungen von \setchapterpreamble und \setpartpreamble + dokumentiert. Ein Beispiel ist im Zuge der noch zu + implementierenden epigraph-Geschichte nachzuholen. + +2001-09-30 Markus Kohm + * scrpage.dtx (v2.0l): + Kopf und Fuß mit geänderter Breite sollten nun auch im + einseitigen Satz korrekt funktionieren. + * scrclass.dtx (v2.8p): + \usekomafont + +2001-09-27 Markus Kohm + * pglayout.tex: + Neuste Version von Colin. + * scrclass.dtx (v2.8p): + \setchapterpreamble und \setpartpreamble erweitert. Beide + verstehen jetzt jeweils ein optionales Argument für die Position + der Präambel und ein zweites optionales Argument für die Breite + der Präambel. + Part-Überschriften werden nun immer mit \parskip=0 gesetzt. + * brief.tex, hauptcls.tex: + Tippfehler und Indexfehler korrigiert. + +2001-09-23 Markus Kohm + * hauptcls.tex: + Änderung des Font-Änderungskonzeptes (Verwendung von \setkomafont + und \addtokomafont an Stelle von \renewcommand) dokumentiert. + * scrguide.tex: + \BeginIndex und \EndIndex haben nun wie \Index ein optionales + Argument. Aus Kompatibilitätsgründen ist aber indexit statt + indexrm voreinsgestellt. + * scrclass.dtx (v2.8p): + \setkomafont/\addtokomafont-Konzept geändert und ausgebaut. + +2001-09-21 Markus Kohm + * scrguide.gst: + Neue MakeIndex-Stil-Datei, um die Änderungsliste zu erzeugen. + * Makefile.unx: + Erzeugung des Änderungsverzeichnisses hinzugefügt. + * scrguide2.tex: + Änderungsverzeichnis hinzugefügt. + * hauptcls.tex: + Zeilenumbruch korrigiert. + * layout.tex: + Einen Tippfehler korrigiert. + Zusätzliche Erklärung zum Seitenstil scrheadings und der + Paketoption automark eingefügt (aufgrund von Supportanfragen). + +2001-09-19 Markus Kohm + * datmzeit.tex: + Umlaute geändert, Leerzeichen nach der Fußnote korrigiert, + "dass". + * hauptcls.tex: + \chapappifchapterprefix. + * scrguide.bib: + Verwendet nur noch US-ASCII und benötigt deshalb kein BibTeX8 + mehr. + +2001-09-19 Markus Kohm + * scrclass.dtx (v2.8o) - scrbook.cls, scrreprt.cls: + Da \chapappifprefix ein optionales Argument hat, wird es nicht + expandiert, sondern ist geschützt definiert. Das führt dazu, dass + in \botmark (also in \leftmark) ein nicht expandiertes \chapapp + steht. Dies wiederum führt bei \appendix dazu, dass in der + Kopfzeile des letzten Kapitels u. U. \appendixname statt + \chaptername verwendet wird. Außerdem kann deshalb beispieslweise + \chaptermarkformat nicht so einfach umdefiniert werden, sondern + erfordert meist ein \DeclareRobustCommand. + Da ich nicht einfach bei einem existierenden Makro aus einem + optionales ein obligatorisch Argument machen kann, gibt + \chapappifprefix neuerdings eine Warnung aus, funktioniert aber + weiter. + Außerdem habe ich aber \chapappifchapterprefix mit einem + obligatorischen Argument definiert. Damit treten obige Probleme + nicht auf. + HINWEIS: IM SCRGUIDE IST ZUKÜNFTIG NUR NOCH DAS NEUE MAKRO ZU + DOKUMENTIEREN!!! Das alte Makro ist obsolet. + +2001-09-18 Markus Kohm + * scrclass.dtx (v2.8o): + Tippfehler (parskip, halfpaskip) in der Implementierungsdoku + behoben. + Zur Erhöhung der Seitenumbruchskompatibilität mit der alten + Briefklasse die Optionen "firstpageenlarge" und + "nofirstpageenlarge" implementiert. Bei "KOMAold" wird + automatisch "firstpageenlarge" aktiviert. Die Option bewirkt, + dass der Satzspiegel der ersten Seite vertikal vergößert wird, + wenn die Position des Fußes dies erlaubt. + Bei der Variante "KOMAold" wurde der Fuß zur Erhöhung der + Kompatibilität mit der alten Briefklasse weiter nach unten + verschoben. + +2001-09-17 Markus Kohm + * scrclass.dtx (v2.8o): + Einen Tippfehler (\renewommand) korrigiert und sowohl + \chapterheadstartvskip als auch \chapterheadendvskip leer + vordefiniert, damit die Optionen \renewcommand verwenden können. + * scrclass.dtx (v2.8o) alle Klassen: + Viele \def durch \(re)newcommand ersetzt oder ergänzt. Dadurch + nun besser LaTeX-konform als die Standardklassen. + * scrclass.dtx (v2.8o) nur die Briefklasse: + Einzug am Anfang des location-Feldes abgeschaltet. + Standardbriefkopf für DINmoretext so geändert, dass er ohne + overfull \vbox Meldung passt. + Führt das Setzen von Kopf der ersten Seite, Adresse oder location + Feld zu einer overfull \vbox Meldung, so wird anschließend eine + Warnung ausgegeben, der zu entnehmen ist, welches Feld + verantwortlich war und was getan werden kann. Früher wurde nur + die Meldung mit der Zeilennummer der \opening-Zeile ausgegeben, + so dass man raten musste, welches Element verantwortlich ist. + Das location-Feld kann nun ebenfalls eine overfull \vbox melden. + +2001-09-14 Markus Kohm + * scrclass.dtx (v2.8o) nur die Briefklasse: + Korrektur der Erzeugung der Geschäftszeile. Dazu wurden außerdem + \varrefitemnamei etc. durch \refiteminame etc. ersetzt. Dies ist + eine Inkompatibilität zu scrlettr.cls. Da jedoch Befehle zur + Definition existieren, die nicht umbenannt wurden, sollte sich + die Inkompatibilität extrem selten auswirken. Eigentlich sollte + ich interne Variablen definieren. + +2001-09-14 Markus Kohm + * scrclass.dtx (v2.8o): + Neuer Befehle \setkomafont{}{}. + Beispielsweise entspricht \setkomafont{captionlabel}{\normalfont} + der Anweisung \renewcommand{\caplabelfont}{\normalfont}. Die + möglichen Werte von sind durch die Makros + \scr@fnt@ vorgegeben. Siehe dazu scrclass.dtx. + Bei =chapter, section o. ä. gibt es eine Warnung, + dass andere Elemente mit geändert werden. + +2001-09-11 Markus Kohm + * Makefile.unx: + Vorsichtshalber wird bei "make" nun auch die + Implementierungsdoku erzeugt. Dadurch werden Checksum-Fehler + offenbar, die durch fehlerhaften Download entstehen. + Innerhalb des make-Prozesses werden LaTeX und pdfLaTeX nun nicht + mehr im interaktiven Modus, sondern immer im nonstopmode oder im + batchmode aufgerufen. Dabei erfolgt der erste Aufruf + normalerweise im nonstopmode, damit Fehler direkt auf ausgegeben + werden und nicht erst das Log-File konsultiert werden muss. Alle + weiteren Läufe für die gleiche Datei erfolgen normalerweise im + batchmode. Wenn Fehler auch erst durch den Aufruf von BibTeX + oder MakeIndex entstehen können, erfolgen auch die + (pdf)LaTeX-Aufrufe danach im nonstopmode. + * scrclass.dtx (v2.8n): + Einige Teile landeten versehentlich in der Brief-Klasse statt in + den normalen Klassen, weshalb die normalen Klassen nicht mehr + funktioniert haben. + +2001-09-09 Markus Kohm + * scrclass.dtx (v2.8n) nur die Brief-Klasse: + Die neuen Optionen nochmal umbenannt und KOMAold hinzugefügt. + KOMAold ist nun die Standardeinstellung. Dabei wird weitgehend + das Layout der alten scrlettr-Klasse übernommen. Vollkommene + Übereinstimmung wird jedoch nicht erreicht. Briefstil-Optionen + sind nun: + DIN - entspricht den Vorgaben der DIN + DINmoretext - entspricht der alternativen nach DIN + swisssleft - für schweizer Fensterumschläge mit Fenster links + SNold - nach alter schweizer Norm (nicht implementiert) + SN - nach neuer schweizer Norm (nicht implementiert) + KOMAold - entspricht der alten scrlettr-Klasse + Darüber hinaus ist das Ändern der Längen mit \setlength{...} nun + obsolet. Stattdessen gibt es die Befehle: + \setletterpos[Faktor]{Brieflänge}{Wert} + \addletterpos[Faktor]{Brieflänge}{wert} + mit + Brieflänge - Name einer Längenvariablen aus der letter-Umgebung + Wert - Nummerischer Wert oder der Name einer Länge + Faktor - Faktor, mit dem der Wert zu multipizieren ist. + Beispiele sind in scrclass.dtx zu finden. Die Wertänderung + erfolgt sofort und erneut bei jedem Aufruf von + \begin{letter}. Direkte Änderungen der Längen werden erkannt und + von den relativen Positionsangaben der alten scrlettr-Klasse + möglichst genau in die neuen absoluten Positionsangaben + umgerechnet. Dadurch wird größt mögliche Kompatibilität zur + alten Klasse erreicht. Durch gleichzeitige Warnung, wird auf die + neuen Methoden aufmerksam gemacht. + +2001-09-08 Markus Kohm + * scrclass.ins: + In der BETA-VERSION wird auch scrlttr2.cls ausgepackt. + * scrclass.dtx (v2.8n): + Enthält nun ebenfalls scrlettr.cls bzw. scrlttr2.cls. Diese + Klasse ist als grundlegend überarbeitete Version der bisherigen + scrlettr Klasse gedacht. Hauptvorteil der Klasse ist, dass sie + wesentlich weniger empfindlich auf Satzspiegeländerungen + reagiert. Sie funktioniert daher auch mit typearea und nutzt + selbst typearea. Die erste Seite wurde dazu komplett neu + gestaltet. Alle dafür benötigten Abstände sind nun relativ zur + oberen linken Ecke des Papiers nicht mehr zum Textbeginn (der + zudem von der Schriftgrößen abhängig war). Die Seitengestaltung + ist nun auch etwas mehr DIN-konform. Außerdem gibt es eine Reihe + neuer Optionen: + refnormal - Geschäftszeile ist so breit wie der Textbereich + refwide - Geschäftszeile ist so breit wie die Adresse + suggeriert + dinnormal - Kopf- und Faltmarkenanordnung nach der alten DIN + dinmoretext - Kopf- und Faltmarkenanordnung für mehr Text + Die parskip-Optionen (einschließlich parindent) funktionieren + ebenfalls. + Die gesamte Klasse ist EXPERIMENTELL! + +2001-09-06 Markus Kohm + * scrlettr.dtx: + addrconv.tex, email.tex etc. funktionieren nun auch in der + BETA-VERSION (\message eingefügt). + * scrclass.dtx (v2.8n): + Ein wenig umstrukturiert (Schalter werden nun möglichst in der + Nähe ihrer Verwendung definiert). + Es wird tatsächlich explizit immer die aktuelle Version von + typearea von den Klassen angefordert. Die Verwendung einer + älteren Version führt also zu einer Warnung. + +2001-09-04 Markus Kohm + * Makefile.unx: + $(SRC_FILES) definiert. + * scrclass.dtx (v2.8m): + Der Aufruf von \AtBeginDvi wird nun durch \AtBeginDocument + verzögert, damit das special nicht sofort expandiert. Dies ist + notwendig, weil \AtBeginDvi sofort expandiert - im Gegensatz zu + den anderen Hooks. + +2001-08-20 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +2001-08-20 Markus Kohm + * Makefile.unx: + "make all" erzeugt nun keine Guides mehr. Dadurch funktioniert + die Installation beim Benutzer besser. + "make install" installiert nun auch die Sourcen von KOMA-Script. + "make install" funktioniert nun auch, wenn es aus einen + Zielverzeichnis kopiert wird - außer das Zielverzeichnis ist + /tmp/koma-script.tmp + +2001-08-18 Markus Kohm + * layout.tex: + Die Änderungen von scrpage2.sty Version 2.0j eingearbeitet. + * scrpage.dtx (2.0j): + Neue Option "nouppercase", um in allen von scrpage2 definierten + Seitenstilen (also auch scrheadings und scrplain) \MakeUppercase + und \uppercase zu deaktivieren. + Neue Makros: + \clearscrheading - löscht alle Felder in scrheadings + \clearscrplain - löscht alle Felder in scrplain + \clearscrheadfoot - löscht alle Felder in scrheadings und + scrplain +2001-08-17 Markus Kohm + * scrguide.bib: + package:caption2 hinzugefügt. + * hauptcls.tex: + Option origlongtable dokumentiert. + * scrguide: + Kommentarfehler in allen Dateien behoben (Copryrightnotiz). + * scrclass.dtx: + Fehler in \@setcapindent behoben. Es wurde dort \def statt \edef + verwendet. Dadurch wurde \@tempdima zum Zeitpunkt \@@makecaption + statt zum Zeitpunkt der Definition verwendet. + * komabug.tex + Es wird nicht länger nach scrguide.tex, sondern nach + scrguide2.tex gesucht. + * INSTALL.TXT, INSTALLD.TXT: + Die Dateien von addrconv waren nicht aufgeführt. Außerdem wird + nun zwischen adrconv und addrconv unterschieden. + * scrclass.dtx: + \addpart-Fehler (Eintrag ins Inhaltsverzeichnis zu spät) behoben. + * layout.tex: + Beschreibung von \automark korrigiert und erweitert. + Neue Option dokumentiert. + * scrpage.dtx: + \automark weiter verbessert. Nun funktionierten auch Anweisungen + wie \automark[chapter]{section} nicht allein + \automark[section}{chapter}. \automark{chapter} ist nun identisch + mit \automark[]{chapter} statt mit \automark[chapter]{chapter}. + Es gibt eine neue Option autooneside. Ist sie gesetzt wird im + einseitigen Satz das optionale Argument von \automark ignoriert. + +2001-08-16 Markus Kohm + * hauptcls.tex: + Die neuen Optionen dokumentiert. + * scrclass.dtx: + Neue Optionen parskip- und halfparskip-. + parskip-Optionen beeinflussen nicht mehr den Abstand der Einträge + in Inhalts-, Abbildungs- und Tabellenverzeichnis. Dies + Verzeichnisse von float.sty bleiben davon unberührt. + * scrguide2.tex: + introduc.tex wird in der englischen Version mit eingebunden. + * english/introduc.tex: + Neu: Übersetzung der Einleitung (leicht gekürzt und angepasst). + Das muss noch dringend korrigiert werden. Das Englisch darin ist + an einigen Stellen mehr als fragwürdig. + * english/main.tex: + Fehlende Ausdrücke und Übersetzungen eingefügt. + +2001-08-15 Markus Kohm + * Makefile.unx: + "../" in TEXINPUTS aufgenommen, damit die neu erzeugten Klassen + und Pakete sofort für die Erzeugung der guides gefunden werden. + Neue Regeln, um zwei A5 Seiten auf jeweils eine A4 Seite zu + setzen und zwei Methoden für booklets. + Orthografische Fehler beseitigt. + default-Regel leicht geändert. + +2001-08-15 Markus Kohm + * satzspgl.tex: + "Abschnitt~\ref{cha:scrpage}" durch "Kapitel~\ref{cha:scrpage}" + ersetzt. + "\Var{halber innerer Rand}" durch "\Var{halber~innerer~Rand}" + ersetzt. + setspace-Referenz korrigiert. + + * layout.tex: + Der symbolische Wert ist "paper" nicht page. + + * scrguide2.tex: + Autorenliste auf der Titelseite vervollständigt. + \Macro, \Option, \Environment, \Length und \Counter erlauben + keinen Umbruch mehr. + * hauptcls.tex: + Die Optionen für Absatzabstand heißen korrekt "...parskip". + +2001-08-15 Markus Kohm + * scrclass.dtx (v2.8k): + Neue Option "origlongtable", um die Änderung von \LT@makecaption + zu unterbinden. Dies passiert automatisch, wenn caption2 geladen + ist. + Die Optionen tablecaptionabove und tablecaptionbelow sind nicht + mehr fälschlich in typerarea, sondern in den Klassen. + +2001-08-14 <<<<<<<<<<<<<<<<<<<<<<<< RELEASE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +2001-08-13 Markus Kohm + * scrguide2.tex: + Abbildungsverzeichnis rausgeworfen, da es nicht sonderlich + informativ ist. Tabellenverzeichnis dringelassen, weil es etwas + sinnvoller ist. + +2001-08-13 Thomas Neumann + * einleit.tex: + 3 orthografische Fehler beseitigt + * adrkonv.tex: + Vorerst die final Version (mit minimalen Änderungen von Markus) + +2001-08-13 Markus Kohm + * scrguide: + Diverse Änderungen für adrkonv.tex + Diverse Indexkorrekturen (unerwünschte Leerzeichen verhindert + etc.) + * adrkonv.tex: + Thomas Konzept. + * scrclass.dtx: + Korrekturen in example.bib und den bst-Files von Thomas. + +2001-08-11 Markus Kohm + * scrguide: + Alle Dateien nochmal auf unerwünschte Ligaturen untersucht und + diverse korrgiert. + * brief.tex: + Indexeinträge mit Umlauten geändert. + Einen Satz gestrichen und damit alle Seitenumbruchprobleme + gelöst. + * scrguide.ist: + "Symbols" wird unterdrückt. + * scrguide2.tex: + Längen und Zähler werden korrekt in den Index einsortiert. + * Makefile.unx: + scrnew20 wird berücksichtigt + * liesmich.txt: + Anpassungen für den neuen scrguide, + Mausadresse gelöscht. + * readme.txt: + Anpassungen für den neuen scrguide, + Mausadresse gelöscht. + * scrpage.ins: + scrpage2 wird nun nicht mehr allein in der Beta-Version erzeugt. + +2001-08-10 Markus Kohm + * Makefile.unx: + Bei der Installation werden die Rechte sinnvoll gesetzt. Außerdem + werden die Sourcen der Guides nun in den jeweiligen + Unterverzeichnissen installiert. Dadurch herrscht mehr Ordnung + + * adressen.tex: + Jens liefert ab. + * scrnew20.tex: + Entwurf + * Makefile.unx: + Die deutsche Version des scrguide heißt nun in der Distribution + wieder scrguide.(dvi|ps|pdf). Die Namen der Sourcen sind + unverändert. Dadurch kann ein Anwender nicht versehentlich das + Kompilat versauen. Die Regeln zum Kompilieren des scrguides + funktionieren nicht in der Installation, da das Unterverzeichnis + scrguide bzw. scrguide-english nicht existiert. + +2001-08-09 Markus Kohm + * brief.tex: + Neue Version von Enrico mit kleinen Korrekturen und + \adrchar-Erklärung von Markus. + +2001-08-08 Markus Kohm + * scrguide2.tex: + \Length{} analog zu \Macro{} definiert. + \LengthName definiert. + \IndexLength{} definiert (und damit auch + \BeginIndex{Length}{} und + \EndIndex{Length}{}). + +2001-08-07 Markus Kohm + * brief.tex: + Erste Beta-Version. + * scrguide.bib: + Kleiner Fehler beseitigt. + * layout.tex: + Kleiner Fehler beseitigt. + * scrclass.dtx, scrlettr.cls (2.6b), scraddr.sty (1.0a): + Jeweils ein kleiner Fehler beseitigt. + +2001-08-04 Jens-Uwe Morawski (E-Mail ist Markus Kohm bekannt) + * layout.tex: + Ein paar Fehler korrgiert und eine kleine Erklärung zu + \rlap und \llap ergänzt. + +2001-08-04 Markus Kohm + * komascr.ins: + Copyrightvermerk auf den aktuellen Stand gebracht. + * Makefile.unx: + Aufbau verbessert + Der alte deutschsprachige scrguide wird nicht mehr erzeugt. + Stattdessen wird der neue scrguide erzeugt. Die Guides werden + als dvi, ps und pdf erzeugt (bis auf den adrguide, der nur als + dvi erzeugt wird). + Die Regel tar wurde durch die Regel dist ersetzt. Die + Reihenfolge der Dateien im Archiv wurde geändert. Der Archivname + beinhaltet das ISO-Datum der Erzeugung. + Die Regel srctar wurde durch die Regel distsrc ersetzt. Der + Archivname beinhaltet das Datum der Erzeugung. + "make install" erzeugt aus einer Distribution (nicht aus einer + Source-Distribution, die ohnehin nicht verteilt werden darf) vor + der Installation alle für die Installation benötigten Dateien. + Es genügt damit aus der Distribution "make install" aufzurufen + statt wie bisher "make; make install". Aus der + Source-Distribution wird nach wie vor "make; make install" + benötigt. + 00CONTEN enthält nun auch sich selbst. Dafür enthält die Liste + nur noch Größe, Datum, Uhrzeit und Dateiname. Auf + Zugriffsrechte, Benutzer und Gruppe wird verzichtet. + +2001-08-03 Markus Kohm + * datmzeit.tex, hauptcls.tex, satzspgl.tex: + Korrekturen von Enrico eingearbeitet. + +2001-07-30 Markus Kohm + * layout.tex: + Besprochene Änderungen, für die Jens offenbar gerade keine Zeit + hat, provisorisch durchgeführt. + * scrguide.bib: + Literatur package:longtable und package:float eingefügt. + * scrguide2.tex: + \StilName und Index für float-Stile eingefügt. + * hauptcls.tex: + Änderungen von scrclass v2.8j dokumentiert. Dabei einige Stellen + geringfügig umgestellt. + * scrclass.dtx (v2.8j): + Kompatibilität mit longtable durch Definition von \LT@makecaption + erhöht. + Kompatibilität mit float durch Definition von \floatc@komascript, + \fs@komaabove und \fs@komabelow erhöht. + Im Zuge obiger Änderungen wurde \@@makecaption von \@makecaption + abgespaltet. + ShowOutput leicht geändert. + +2001-07-22 Markus Kohm + * hauptcls.tex: + Änderungen von v2.8i dokumentiert. + * scrclass.dtx (v2.8i): + Die Änderung von v2.8h setzte das optionale Argument von figure + und table außer Kraft. Das ist behoben. + Neue Optionen: + parskip - stellt auf eine Zeile Absatzabstand um mit min. + Freiraum in der letzten Zeile von 1 em + parskip+ - stellt auf eine Zeile Absatzabstand um mit min. + Freiraum in der letzten Teile von 1/3 Zeile + parskip* - stellt auf eine Zeile Absatzabstand um mit min. + Freiraum in der letzten Teile von 1/4 Zeile + halfparskip - wie parskip mit einer halben Zeile Abstand + halfparskip+ - wie parskip+ mit einer halben Zeile Abstand + halfparskip* - wie parskip* mit einer halben Zeile Abstand + Diese Optionen arbeiten besser als parskip.sty, da einige + Zusatzprobleme (Liste innerhalb von footnotesize- oder + small-Umgebung) ebenfalls behandelt werden. Außerdem wird + \parfillskip gesetzt (siehe oben). Die Dehnbarkeit von \parskip + ist so eingestellt, dass \flushbottom trotzdem noch ohne + Warnung arbeiten sollte. + +2001-07-19 Markus Kohm + * scrguide.bib: + Referenz für topcapt.sty und hyperref ausgenommen. + * hauptcls.tex: + \caption-Erklärung geändert und dabei zusätzlich \captionabove + und \captionbelow erklärt. + * scrclass.dtx (v2.8h): + Neu: \captionabove setzt eine Überschrift statt einer + Unterschrift. Entsprechend setzt \captionbelow eine + Unterschrift. \caption ist bei figure identisch mit + \captionbelow. Bei table kann mit den Optionen + tablecaptionabove und tablecaptionbelow gewählt werden, ob + \caption mit \captionabove oder \captionbelow identisch + ist. Voreingstellt ist aus Kompatibilitätsgründen natürlich + tablecaptionbelow. Bei \captionabove ist die Bedeutung von + \abovecaptionskip und \belowcaptionskip vertauscht. + Das ganze ist so implementiert, dass es auch dann noch + funktioniert, wenn ein Paket \caption neu definiert, wie das + bei hyperref.sty geschieht. Es funktioniert aber natürlich + nicht, wenn \@makecaption umdefiniert wird (caption2-Paket). + * hauptcls.tex: + \textsubscript dokumentiert. + * scrclass.dtx (v2.8h): + \textsubscript entsprechend \textsuperscript definiert. + +2001-07-18 Markus Kohm + * scrclass.dtx (v2.8g): + Das Anselm statt \float@headings das Ding nun \float@listhead + genannt hat, \float@headings umbenannt. + Verwendung von \float@addtolists in \@chapter eingebaut. Dadurch + dürfte die Zusammenarbeit mit dem float-Paket optimal sein. + +2001-07-13 Markus Kohm + * scrguide2.tex: + Dafür gesorgt, dass trotz Schriftänderung die Seitenzahlen im + Index mit hyperref aktiv bleiben. + +2001-07-12 Markus Kohm + * hauptcls.tex: + Neue Umgebung ShowOutput für die Verdeutlichung der Ergebnis in + den Beispielen verwendet. Dazu wurde das quote-Beispiel außerdem + auch als Source aufgeführt (bisher war nur das Ergebnis zu + sehen). + * scrguide2.tex: + Neue Umgebung ShowOutput angelehnt an die picture-Umgebungen, die + Jens in layout.tex verwendet. Allerdings ist innerhalb von + ShowOutput ein Seitenumbruch möglich. Dafür ist es nicht ganz so + schön. + * hauptcls.tex: + Neuerung von scrclass.dtx v2.8f dokumentiert. + * scrclass.dtx (v2.8f): + Präambel für \part implementiert. Die Präambel wird analog zur + Kapitelpräambel mit \setpartpreamble{} gesetzt. + +2001-07-10 Markus Kohm + * hauptcls.tex: + Die Dokumentation von pointednumbers und pointlessnumbers wurde + entsprechende scrclass.dtx v2.8e angepasst. + * scrclass.dtx (v2.8e): + Die Einhaltung von Duden Regel 5 und 6 (20. Auflage) wird nun + in beide Richtungen überwacht. Außerdem genügt es nicht mehr + \part oder \appendix zu verwenden, um Regel 6 einzuschalten. + Stattdessen muss ein Gliederungsbefehl mit einer Nummer + verwendet werden, in der eines der Makros \Roman, \roman, \Alph, + \alph, \@Roman, \@roman, \@Alph, \@alph oder \romannumeral + vorkommt. Das ist noch keineswegs narrensicher, dürfte aber in + den meisten Fällen zum gewünschten Ergebnis führen. + Dafür führt jetzt ein vergessenes \appendix am Ende des Dokuments + nicht mehr zu einem unerwünschten Punkt und ein + \renewcommand*{\thesubsubsection}{\alph{subsubsection}} + wird erkannt, falls danach noch ein \subsubsection-Aufruf + erfolgt. + +2001-07-09 Markus Kohm + * komabug.tex: + Über die Konfigurationsdatei kann nun auch eine englische Version + angefordert werden. + * scrguide2.tex: + Die Explain-Umgebung erzeugt nun immer einen Abschnitt (\par + eingefügt). + * hauptcls.tex: + Letzte Korrektur eingearbeitet. + * einleit.tex: + Abschnitt zu Fehlermeldungen hinzugefügt + Einige Fehler korrigiert. + +2001-07-05 Markus Kohm + * scrguide2.tex: + Spielereien entfernt und ae.sty eimgefügt. + * hauptcls.tex: + Die neuen Makros von Version 2.8d dokumentiert und den Umbruch + optimiert. + * scrclass.dtx (v2.8d): + Seitenstile bestimmter Seiten variabler durch die Makros: + \titlepagestyle, \partpagestyle, \chapterpagestyle, + \indexpagestyle. + +2001-07-03 Markus Kohm + * einleit.tex: + Referenzen vom Typ "unknown" ersetzt. + * satzspgl.tex: + Referenzen vom Typ "unknown" ersetzt. + * scrguide2.tex: + Vorübergehend eine Spielerei für die Diskussion mit Jens + eingebaut, die sich im Normalfall nicht auswirkt. + * hauptcls.tex: + Korrekturen von Thomas umgesetzt. Einige zusätzliche Änderungen + für die Verbesserung des Zeilen- oder Seitenumbruchs + durchgeführt. + +2001-06-29 Markus Kohm + * scrguide2.tex (2001/06/29): + draft wieder aktiviert. + * layout.tex (2001/06/25): + Neue Version von Jens. + * hauptcls.tex (2001/06/29): + Änderungen von scrclass.dtx v2.8c dokumentiert. + * scrclass.dtx (v2.8c): + Bei der Fontumschaltung wird an diversen Stellen nicht nur auf + \normalfont, sondern auch auf \normalcolor umgeschaltet. + Neue Makros \addpart und \addpart* (noch ungetestet). + +2001-06-28 Markus Kohm + * scrguide2.tex: + Spielerreien am Titel + +2001-06-28 Markus Kohm + * scrguide2.tex: + Ergänzungen für die Erzeugung des Index. + * hauptcls.tex: + Verbesserungen bei der Erzeugung des Index. + +2001-06-26 Markus Kohm + * scrguide.bib: + Einträge auf die aktuellen Versionen gebracht. + package:fancyhdr hinzugefügt. + * komascr.ins, scrclass.ins, scrtime.ins, scrpage.ins: + Abschlusstext geändert. Dort wird nun auf INSTALL.TXT, + INSTALLD.TXT, readme.txt und liesmich.txt verwiesen. + * scrclass.dtx (v2.8b): + In Absprache mit Anselm, die Zusammenarbeit mit float.sty durch + Definition von \float@headings verbessert. \float@headings wird + in zukünftigen Versionen von float.sty verwendet und nur dann + definiert, wenn es nicht bereits existiert. \float@headings + wird nun in KOMA-Script intern von \lot@heading und \lof@heading + verwendet und bei der Klassenoption liststotoc berücksichtigt. + +2001-06-25 Markus Kohm + * scrpage.dtx (v2.0g): + \manualmark deaktiviert auch \chaptermark etc. und funktioniert + daher sofort, selbst bei Verwendung von \pagestyle{headings}. + \pagestyle{scrplain} setzt den Seitenstil plain ebenfalls auf + scrplain. + Neue Optionen: + komastyle - stellt scrheadings KOMA-Script-Klassen-üblich + ein + standardstyle - stellt scrheadings Standardklassen-üblich ein + Wenn \headfont nicht definiert ist, wird er als + \normalfont\slshape statt als \normalfont definiert. + +2001-06-24 Markus Kohm + * layout.tex: + Erste Vorabversion von Jens geliefert und von Markus leicht + korrigiert. Es fehlen noch: Rechtschreibkontrolle, Indexeinträge. + +2001-06-23 Markus Kohm + * scrpage.dtx (v2.0f): + Symbolischer Wert "auto" für \set...line, der automatisch zu + "autohead" oder "autofoot" wird je nachdem, ob \sethead...line + oder \setfoot...line. + \set...line erlauben "current" oder ein leeres Argument als + Breite. In beiden Fällen bleibt die Breite unverändert. + Neue Paketoptionen: + clines - Linien werden wie bisher relativ zum Kopf zentriert. + ilines - Linien werden bündig an den inneren Rand angeschlossen + olines - Linien werden bündig an den äußeren Rand angeschlossen + * scrpage.dtx (v2.0f, 1.3c): + Symbolische Werte "autohead" und "autofoot" für \deftowidthof + implementiert (führen zu \def\Macro{\@headwidth} bzw. + \def\Macro{\@footwidth} an Stelle von \edef...). + +2001-06-22 Markus Kohm + * scrpage.dtx (v2.0e, 1.3b): + Neu: + \settowidthof{Länge}{symbolischer_Wert_oder_Wert} + \deftowidthof{Name}{symbolischer_Wert_oder_Wert} + Wichtig: In beiden Fällen wird der aktuelle Wert verwendet. Ein + \deftowidthof{Textbreite}{\textwidth} oder + \deftowidthof{Textbreite}{text} definiert also ein Makro + \Textbreite mit dem aktuellen Wert von \textwidth. Wird + \textwidth anschließend verändert, so wirkt sich dies + NICHT auf \Textbreite aus. + Beide Anweisungen wirken lokal zur jeweiligen Gruppe. Mögliche + symbolische Werte sind alle bereits in früheren Versionen von + scrpage definierten symolischen Werte sowie: + headtopline - aktuelle Länge der oberen Kopfzeilenlinie + headsepline - aktuelle Länge der unteren Kopfzeilenlinie + footsepline - aktuelle Länge der oberen Fußzeilenlinie + footbotline - aktuelle Länge der unteren Fußzeilenlinie + \settowidthof bzw. \deftowidthof werden intern für die Breite des + Kopfes und Fußes in \setheadwidth und \setfootwidth, sowie für + die Länge bei \setheadtopline, \setheadsepline, \setfoottopline, + \setfootbotline verwendet. + Ein unbekannter symbolischer Wert führt zu einer Fehlermeldung. + Fehlerkompatibilität wird nicht garantiert (spätere Versionen + dürfen neue symbolische Werte kennen, melden bei diesen also + keinen Fehler). Nicht voll expandierbare Makros (z. B. \relax + oder \undefined) als Wert_oder_symbolischer_Wert führen zu einer + Fehlermeldung. Die Fehlermeldungen entsprechen den Meldungen bei + \setlength mit dem entsprechenden Wert (und treten genau dabei + auch auf). + +2001-06-19 Markus Kohm + * hauptcls.tex: + Schreibfehler korrigiert. + * scrpage2.dtx (v2.0d): + Fehler bei \setheadtopline etc. behoben. Außerdem erweitert + um symbolische Werte (wie \setheadwidth und zusätzlich "head" + und "foot"). + +2001-06-18 Markus Kohm + * hauptcls.tex: + Die Makros und Optionen von v2.8a ergänzt. + Due Umgebungen verse, quote und quotation ergänzt. + * scrclass.dtx (v2.8a): + Neue Optionen cleardoublestandard, cleardoubleplain und + cleardoubleempty, sowie die Makros \cleardoublestandardpage, + \cleardoubleplainpage und \cleardoubleemptypage. + +2001-06-18 Markus Kohm + * INSTALL.TXT, INSTALLD.TXT: + MikTeX explizit in der Schritt-für-Schritt-Anleitung + berücksichtig. + +2001-06-18 Markus Kohm + * scrguide2.tex: + Zu Debuggzecken eingeführte \typeout-Anweisung entfernt. + * hauptcls.tex: + Neuheiten und Änderungen in scrclass.dtx v2.8 dokumentiert. + +2001-06-15 Markus Kohm + * scrclass.dtx (v2.8): + scrbook und scrreprt kennen vier neue Optionen: + chapterprefix - die Kapitel erscheinen in der Form der + Standardklassen also mit einer abgesetzten + Zeile "Kapitel ". + Dies wirkt sich auch auf die Kolumnentitel + aus. + nochapterprefix - alles wie bisher lediglich \parindent\z@ + eingefügt. + appendixprefix - definiert \appendixmore so, dass für den + Anhang unabhängig von "(no)chapterprefix" + die abgesetzte Zeile "Appendix " + gesetzt wird. + noappendixprefix - definiert \appendixmore so, dass für den + Anhang unabhängig von "(no)chapterprefix" + alles wie bisher angezeigt wird + Zur Realisierung existiert der neue Schalter \if@chapterprefix. + Außerdem wurde das Makro \usechapapp[Zusatz] eingeführt: + \newcommand*{\chapappifprefix}[1][]{% + \if@chapterprefix\chapapp#1\fi} + Dieses neue Makro wird in \chapterformat und \chaptermarkformat + verwendet. Das Makro \chapapp stellt lediglich \@chapapp auf + Benutzerebene zur Verfügung. + +2001-06-15 Markus Kohm + * scrguide.bib: + Literatur "package:natbib" hinzugefügt. + +2001-06-15 Markus Kohm + * hauptcls.txt: + Alle fehlenden Punkte ergänzt. Damit fehlt jetzt erstmal nur noch + die Korrektur. + +2001-06-08 Markus Kohm + * scrguide2.tex: + Trennregel für "Standardanweisungen". + * hauptcls.tex: + Fehlende Beispiele im Titelei-Abschnitt ergänzt. + Abschnitt über Seitenstil, Abschnitt zum Hauptteil mit diversen + Unterabschnitten (Gliederung, Fußnoten, Randnotizen). + Es fehlen hier noch einige Punkte (siehe TODO-Kommentar). + * scrguide.bib: + Neuer Eintrag latex:fntguide. + +2001-06-07 Markus Kohm + * scrpage2 (v2.0c): + Neue Optionen: + markuppercase - automatische Kolumnentitel verwenden + \MakeUppercase + markusedcase - automatische Kolumnentitel verwenden nicht + \MakeUppercase, sondern die Groß- und + Kleinschreibung, die in der Überschrift + vorgefunden wurde. + Das Makro \MakeMarkcase wird von obigen Optionen entweder auf + \MakeUppercase oder auf \@empty gesetzt. Wird keine der obigen + Optionen verwendet, wird das Makro ebenfalls auf \MakeUppercase + gesetzt, wenn eine Standardklasse vorgefunden wurde. Bei einer + KOMA-Script-Klasse wird es stattdessen auf \@empty gesetzt. Bei + allen anderen Klassen wird ebenfalls \@empty verwendet, jedoch + zusätzlich eine Warnung ausgegeben. + Fehler in einer Warnung behoben und den Umbruch der Warnung + optimiert (head- oder footwidth). + +2001-05-31 Markus Kohm + * scrpage2 (v2.0b): + Die ganzen \ps@standard... heißen jetzt \ps@save@ und sind somit + nur noch für den internen Gebrauch. Bei Verwendung der + Seitenstile "headings" und "myheadings" wird eine Warnung + ausgegeben. Dafür existiert ein neuer Seitenstil "useheadings", + der sich je nach \automark oder \manualmark wie "headings" oder + "myheadings" ohne Umdefinierung von \chaptermark, \sectionmark, + \subsectionmark verhält. + Bei Klassen, die \chapter besitzen, schaltet scrpage2 automatisch + den Seitenstil "useheadings" ein. + \setheadwidth und \setfootwidth verstehen folgende symbolische + Werte: + paper - gesamte Papierbreite + text - gesamte Textbreite + textwithmarginpar + - Textbreite einschließlich Platz für Randnotizen + Die Optionen automark und manualmark funktionieren nun. + +2001-05-30 Markus Kohm + * scrguide2: + Die Sache mit der Version der Dateien funktioniert jetzt + Vollautomatisch und benötigt keine Änderung der Einzeldateien + mehr. + +2001-05-30 Markus Kohm + * scrguide2 (alle Kapitel): + Im draft-Modus wird die Version jeder einzelnen Datei + angezeigt. + +2001-05-28 Markus Kohm + * Makefile.unx, komascr.ins, scrclass.dtx, scrclass.ins, + scrlettr.dtx, scrpage.dtx, scrpage.ins, scrtime.dtx, + scrtime.ins: + Betavermerk mit einheitlichem Mechanismus zur Aktivierung. + * liesmich.txt, readme.txt: + Sondervermerk für das CVS des "KOMA-Script documentation + project". + +2001-05-27 Markus Kohm + * scrclass.dtx (2.7j): + Zur Verbesserung der Zusammenarbeit mit natbib verwendet + \setbibpreamble nun \def statt \renewcommand. Dadurch + funktioniert \setbibpreamble nun auch noch bei Verwendung + von natbib. Man muss also nicht \renewcommand verwenden, + wie das in der natbib-Anleitung beschrieben ist. + natbib verwendet unauthorisiert interne KOMA-Script-Makros. + Dies ging natürlich ab scrclass-Version 2.6c (2001-06-10) + total in die Hose. Das Setzen der Präambel wurde nun aus + \bib@heading nach thebibliography verschoben, um diesen Bug + in natbib auszugleichen. Aus Konsistenzgründen wurde für + den Index genauso verfahren. + Paketautoren werden gebeten, zukünftig Rücksprache zu + halten, ehe sie interne Makros von KOMA-Script verwenden! + +2001-05-24 Markus Kohm + * scrlettr.dtx (2.6a): + Option a4paper hinzugefügt und als Standardoption gesetzt, + um Probleme mit pdftex und graphics oder hyperref zu + beheben. + +2001-05-24 Markus Kohm + * scrguide2: + Auf xspace verzichtet, weil es damit an verschiedenen Stellen + Probleme gibt. + * scrguide2: + Die von Jens-Uwe gemeldeten Fehler korrigiert und versucht, + seine Hinweise umzusetzen. + +2001-05-22 Markus Kohm + * hauptcls.tex: + Eine Art Kapitelvorwort zugefügt. + +2001-05-22 Markus Kohm + * scrguide.bib, satzspgl.tex, hauptcls.tex: + Präfix "package:" bei Zitaten auf Paketen eingefügt. + Neue Literatur "package:multicol". + * scrguide2.tex: + Ergänzenden Hinweis zum draft-Modus eingefügt (im draft- + Modus funktionieren die hängenden Einzüge beispielsweise + bei Tabellenunterschriften nicht). + +2001-05-21 Markus Kohm + * scrguide.tex (alt): + Zwei Tippfehler behoben. + +2001-05-18 Markus Kohm + * scrguide.bib: + graphics zugefügt + * satzspgl.tex: + center-Umgebung in float-Tabelle durch \centering ersetzt. + * hauptcls.tex: + Alle Optionen dokumentiert. + +2001-05-17 Markus Kohm + * hauptcls.tex: + Da es ja sonst doch keiner tut, habe ich damit begonnen. + Wenn ich gewusst hätte, dass von dem guten Dutzend Leute, + die angeblich mithelfen wollten, nur einer übrig bleibt, + hätte ich nie mit dem neuen scrguide angefangen. + Hoffentlich ist mir das endlich eine Lehre! + +2001-05-17 Markus Kohm + * scrclass.dtx (2.7i): + Die Berechnung der maximalen Zeilenlänge in typearea ist + robuster gegen arithmetischen Überlauf durch zu große + Schriftgrößen. + Eine benutzerseitige Umdefinierung von + \othersectionlevelsformat wirkt sich nun tatsächlich aus. + Die Klassenoption "bibtotocnumbered" wurde korrigiert und + ist nun nicht mehr mit "bibtotoc" identisch. + \setchapterpreamble verwendet nicht mehr \xdef sondern + gdef. + +2001-04-28 Markus Kohm + * satzspgl.tex: + Die Optionen dvips, pdftex und pagesize und das Makro + \ifpdfoutput ergänzt, sowie einige kleinere Verbesserungen + (in den Tipps) vorgenommen. + +2001-04-26 Markus Kohm + * satzspgl.tex: + Einmal DIV durch BCOR ersetzt, ein Tippfehler und ein + Kommafehler korrigiert (gemeldet von Colin) + +2001-04-24 Markus Kohm + * scrguide.bib: + Neue Literatur "Erste Hilf ein Typograpfie" eingefügt. + * satzspgl.tex: + Neue Optionen eingearbeitet. + * einleit.tex, satzspgl.tex: + "typografisch" etc. schreibt man nicht mehr mit "ph" + +2001-04-24 Markus Kohm + * scrpage.dtx (v2.0a): + \strut in \ps@scrplain und \ps@scrheadings ergänzt. + * scrlogo.dtx, scrtime.dtx, scrpage.dtx: + Mit Hilfe des Macros \englishonly wird unterschieden, ob die + deutsche oder die englische Erklärung für "\KOMAScript" + ausgegeben werden soll. + +2001-04-22 Markus Kohm + * scrclass.dtx (v2.7h): + Fehlender Backslash in \partformat ergänzt. + * Alle Klassen und Pakete definieren \KOMAScript. + +2001-04-20 Markus Kohm + * scrpage.dtx, scrpage2.sty (v2.0): + Neue Optionen: + scrplainheadtopline - headtopline für Seitenstil scrplain + (nur, wenn außerdem headtopline) + scrplainheadsepline - headsepline für Seitenstil scrplain + (nur, wenn außerdem headsepline) + scrplainfootsepline - footsepline für Seitenstil scrplain + (nur, wenn außerdem footsepline) + scrplainfootbotline - footbotline für Seitenstil scrplain + (nur, wenn außerdem footbotline) + Neuer Seitenstil scrheadings und scrplain. + \pagestyle{scrheadings} ändert Seitenstil plain automatisch in + scrplain, während bei bei Seitenstil headings und myheadings + automatisch wieder der alte plain aktiviert wird, der außerdem + als standardplain verfügbar ist. + Seitenstil scrheadings und scrplain sind Stile mit dreigeteiltem + Kopf und Fuß. Die Teile werden gesteuert über die Makros: + \lohead[]{} - setze linke Kopfmarke für + ungerade Seiten + \lehead[]{} - setze linke Kopfmarke für gerade + Seiten + \cohead[]{} - setze mittlere Kopfmarke für + ungerade Seiten + \cehead... - für gerade Seiten + \rohead... - setze rechte Kopfmarke für + ungerade Seiten + \rehead... - für gerade Seiten + \ohead... - setze äußeren Kopfmarke für alle + Seiten + \ihead... - setze innere Kopfmarke für alle + Seiten + \chead... - setzte mittlere Kopfmarke für + alle Seiten + \lofoot, \lefoot, \cofoot, \cefoot, \rofoot, \refoot, \ofoot, + \ifoot, \cfoot analog für die Fußmarken. + Zur Realisierung wurden einige neue innere Makros definiert. + * scrpage.dtx, scrpage2.sty (v2.0): + \defpagestyle und \defpagestyle* sind identisch, zwischen den + unterschiedlichen Markierungsmodi wird nur noch mit den Optionen + automark und manualmark und den Makros \automark[]{} und + \manualmark unterschieden. + +2001-04-17 Markus Kohm + * Index und Glossary wird erzeugt bei "make -fMakefile.unx tar". + +2001-04-17 Markus Kohm + * scrpage.dtx (v2.0): + \headheight-check + +2001-04-17 Markus Kohm + * scrclass.dtx, typearea.sty (v2.7g): + typearea.sty kennt die folgenden drei neuen Optionen: + dvips - Per \special{papersize=,} die Seitengröße für + dvips definieren, damit später z. B. gv die + richtige Größe anzeigt. + pdftex - \pdfpagewidth und \pdfpageheight auf die korrekte + Breite und Höhe der Seite setzen, damit später + z. B. acroreader die richtige Größe anzeigt. Dies + führt zu einem Fehler, wenn nicht pdftex + (bzw. pdflatex oder pdfetex oder pdfelatex) + verwendet wird. + pagesize - In Abhängigkeit davon, ob \pdfoutput definiert und + größer 0 ist oder nicht, wie Option "dvips" oder + "pdftex" verhalten. + und das neue Macro: + \ifpdfoutput{}{} + Interessant ist vielleicht, dass auch der Aufruf + \ifpdfoutput{\pdfoutput=0}{} + in der Präambel einwandfrei funktioniert und sowohl mit LaTeX + als auch mit pdflatex zur Ausgabe einer DVI-Datei führt. + +2001-04-17 Markus Kohm + * scrclass.dtx (v2.7g): + typearea.sty und die drei Hauptklassen verstehen die neue Option + "headlines". Diese legt fest, dass der Kopf genau + \baselineskip hoch sein soll, also wieviele Zeilen im Kopf + untergebracht werden. Voreingestellt ist "1.25headlines". Diese + Option wird nur bei impliziter oder expliziter Verwendung von + \typearea, nicht jedoch bei expliziter Verwendung von \areaset + beachtet. + +2001-04-17 Markus Kohm + * scrclass.dtx, typearea.sty (v2.7g): + \typearea versteht neben dem numerischen DIV-Wert auch die + folgenden symbolischen DIV-Werte: + current - Wert nicht ändern + (beispielweise zur Änderung nur von BCOR). + default - Standardwert verwenden + calc - Günstigen Wert selbst ermitteln + classic - Kreisberechnung nach dem mittelalterlichen Buchkanon + \typearea versteht neben dem numerischen BCOR-Wert auch den + folgenden symbolischen BCOR-Wert: + current - Wert nicht ändern + (beispielsweise zur Änderung nur von DIV). + Durch diese Änderungen muss man bei der Verwendung von \typearea + anstelle der Paketoptionen nicht mehr auf die numerischen + Pseudowerte zurückgreifen, die ich mir nie merken konnte. + Die BCOR-Erweiterung existiert auch für \areaset. + +2001-04-17 Markus Kohm + * scrclass.dtx (v2.7f): + Fehlendes Klammerpaar (nur scrbook.cls) ergänzt. + +2001-04-16 Markus Kohm + * scrclass.dtx (v2.7e): + Fehlende schließende Klammer (nur scrbook.cls) ergänzt. + +2001-04-11 Markus Kohm + * scrpage.ins: + Version 2 wird nun ebenfalls erzeugt. + * scrpage.dtx (v2.0): + \automark und \manualmark sowie die davon benötigten Makros + definiert. Syntax siehe Implementierungsdoku (latex scrpage.dtx). + +2001-04-10 Markus Kohm + * scrpage.dtx (v2.0): + Die Linienlängen und -dicken können definiert werden: + \setheadtopline[Länge]{Dicke}, \setheadsepline[Länge]{Dicke}, + \setfootsepline[Länge]{Dicke}, \setfootbotline[Länge]{Dicke}. + +2001-04-05 Markus Kohm + * scrclass.dtx, scrpage.dtx: + Checksum um Klammerung korrigiert. + +2001-04-05 Markus Kohm + * Makefile.unx: + Erzeugung des tar-Archives verbessert, so dass nun keine + Release-Archive mit fehlerhaften dtx-Files mehr erzeugt + werden sollten! + +2001-04-05 Markus Kohm + * Vorbereitungen für eine Release: Textdokumente geringfügig + ergänzt und scrnews19 zusammengeklopft. + +2001-03-30 Markus Kohm + * scrpage.dtx v1.3: + Kopf und Fuß können eine andere Breite haben als der Textkörper. + Um diese Breiten und die Verschiebung zum Textkörper festzulegen, + wurde die Anwenderschnittstelle um \setheadwidth und + \setfootwidth erweitert. + * scrpage.dtx v2.0: + Mitten in der Arbeit + * scrpage.ins: + Unterscheidung zwischen Version 1 und Version 2 eingebaut und + das Copyright auf 2001 ausgedehnt. + +2001-03-28 Markus Kohm + * datmzeit.tex: + Alten Text leicht überarbeitet in dieses Kapitel eingefügt. + * scrguide2.tex: + scrdate.sty und scrtime.sty werden ebenfalls geladen. + +2001-03-27 Markus Kohm + * scrguide2.tex, main.tex, pglayout.tex, satzspgl.tex: + scrguide2.tex kann nun für alle Sprachen verwendet werden. Die + tatsächliche Sprachumschaltung für English findet in main.tex + statt. Die englische Dokumentation wird mit "latex main.tex" + erzeugt. + Use "latex main.tex" to create the english manual. + +2001-03-26 Markus Kohm + * layout.tex: + Alten Text eingefügt und auf die neuen Makros angepasst. + * scrguide2.tex: + Neues Makro \PValue für Werte von Parametern eingefügt. Die + Werte wurden früher direkt mit \texttt gesetzt. Stattdessen + sollte nun \PValue verwendet werden. + +2001-03-22 Markus Kohm + * satzspgl.tex: + Erste Version fertiggestellt. + * scrguide2.tex, einleit.tex: + Bibliography ist vorhanden und wird verwendet. + * scrguide.mbs: + neue Datei zur Verwendung mit makebst (custom-bib) + * scrguide.dbj: + neue Datei zur Erzeugung einer bst-Datei + * scrguide.bst: + generiert aber trotzdem im cvs + * scrguide.bib: + Erste Einträge in der Bibliography + +2001-02-23 Markus Kohm + * scrclass.dtx: + hyperref 6.71b hat den alten \@addchap-bug nicht länger, daher + wird nun nur noch vor der Verwendung älterer hyperref-Versionen + gewarnt. + Einen Workaround für diese Versionen gibt es nicht mehr. + +2001-01-22 Markus Kohm + * scrguide2.tex: + Definitionen korrigiert und ergänzt. + * einleit.tex: + Fehler korrigiert. Geringfügige Ergänzungen. + * satzspgl.tex: + Gliederung und Text bis zur Erwähnung der DIV-Optionen, + BCOR-Option und dem Befehl \typearea[]{}. + +2001-01-19 Markus Kohm + * scrclass.dtx v2.7c: + Vertikaler Abstand vor zu Abstand nach einer Kapitelüberschrift + nun bei allen drei Größenabstufungen im Verhältnis 4:3 (1,3333) + mit glue zwischen 5:4 (1,25) und 3:2 (1,5). + +2001-01-18 Markus Kohm + * scrguide: + Mit dem neuen scrguide begonnen. + +2001-01-05 Markus Kohm + * scrclass.dtx v2.7b: + Implementierungsdoku der Gliederungsbefehle verbessert. + * scrclass.dtx v2.7b: + \setchapterpreamble eingeführt, um Kapitel allgemein mit einer + Preamble versehen zu können, die auch im zweispaltigen Druckmodus + einspaltig gesetzt wird. + * scrclass.dtx v2.7b: + Kernel-Makro \@topnewpage erweitert, damit + \twocolumn[\chapter{...}] funktioniert. + * scrclass.dtx v2.7b: + In \addchap wird bei scrbook nicht mehr \@addchap sondern + \@@addchap verwendet, um einer Umdefinition von \@addchap in + einigen hyperref-Treibern zu entgehen. Gleichzeitig wird im + Falle der Umdefinierung von \@addchap für eine entsprechende + Warnung mit deutlichem Hinweis, was ich von der Umdefinierung in + hyperref halt, gesorgt. + * scrclass.dtx v2.7b: + \bib@hading und \index@heading verwenden \setchapterpreamble. + +2001-01-04 Markus Kohm + * scrclass.dtx v2.7a: + Linkerzeugung im Zusammenhang mit hyperref verbessert + (funktioniert nur mit bestimmten Treibern und noch recht + unzureichend). + * scrclass.dtx v2.7a: + Im Abstract wird \addsec* statt \ßection* verwendet, damit die + Kolumnentitel korrekt gesetzt werden. + +2001-01-03 Markus Kohm + * scrclass.dtx v2.7: + Klammerung bei den Optionen bibtotoc und bibtotocnumbered war + fehlerhaft. + * scrclass.dtx v2.7: + \if@altsecnumformat.\fi durch neues Makro \autodot + ersetzt. Dadurch können die \...format-Makros nun auf + Benutzerebene unter Verwendung dieses neuen Makros umdefiniert + werden. + * scrclass.dtx v2.7: + \@seccntformat ruft nun intern das Benutzerlevel-Makro + \othersectionlevelsformat auf, damit auch diese Ebenen + benutzerseitig umdefiniert werden können. Möglicherweise werden + hier später alle von KOMA-Script definierten Gliederungsebenen + eigene Makros erhalten, die per + \newcommand*{\...format}[1]\othersectionlevelsformat{...} + kompatibel definiert werden. Damit wäre diese Schnittstelle dann + vollständig (was auch die Dokumentation erleichtern würde). + * scrclass.dtx v2.7: + Die ganzen End-Abstände in den \...format-Makros von \quad bzw. + einfachem Leerzeichen (in \chapterformat) auf \enskip geändert. + HINWEIS: Diese Änderung führt zu einer Umbruchinkompatibilität + gegenüber früheren KOMA-Script-Versionen. In der + Anleitung sollte unbedingt darauf hingewiesen + werden. Für die Überschriften kann der alte Zustand wie + folgt wieder hergestellt werden: + \renewcommand*\chapterformat{\thechapter\autodot\ } + \renewcommand*\othersectionlevelsformat[1]{% + \csname the#1\endcsname\autodot\quad} + Analoges gilt für die \...markformat-Makros, wobei die + dortige Änderung zu keiner Umbruchinkompatibilität + führen sollte. + Deshalb soll an dieser Stelle darauf hingewiesen + werden, dass für die Überschriften der alte Zustand wie + folgt wieder hergestellt werden kann: + \renewcommand*\chapterformat{\thechapter\autodot\ } + \renewcommand*\othersectionlevelsformat[1]{% + \csname the#1\endcsname\autodot\quad} + Analoges gilt für die \...markformat-Makros, wobei die + dortige Änderung zu keiner Umbruchinkompatibilität + führen sollte. + Deshalb soll an dieser Stelle darauf hingewiesen + werden, dass für die Überschriften der alte Zustand wie + folgt wieder hergestellt werden kann: + \renewcommand*\chapterformat{\thechapter\autodot\ } + \renewcommand*\othersectionlevelsformat[1]{% + \csname the#1\endcsname\autodot\quad} + Analoges gilt für die \...markformat-Makros, wobei die + dortige Änderung zu keiner Umbruchinkompatibilität + führen sollte. diff --git a/Master/texmf-dist/source/latex/koma-script/INSTALL.TXT b/Master/texmf-dist/source/latex/koma-script/INSTALL.TXT new file mode 100644 index 00000000000..8eb172a538a --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/INSTALL.TXT @@ -0,0 +1,111 @@ +Installation +============ + +Preamble: +--------- + +This manual is only for use with TeX installations using TDS. Examples +of those TeX installations are teTeX and MikTeX. If you are not sure, +search about a directory named `texmf'. Perhaps there are more lots of +directories named `texmf'. At unix you may find `/usr/texmf' (or +`/usr/share/texmf' or `/usr/TeX/texmf' or `/usr/share/TeX/texmf'), +`/usr/local/texmf' (or `/usr/local/share/texmf' or +`/usr/TeX/texmf.local' or many more) and several users with +`~/texmf' (`texmf' at the home directory of several users). At windows +with MikTeX this is often `\texmf' or `\Miktex' and `\localtexmf'. + +One of these is the primary texmf tree of the package manager +(`/usr/texmf' or `/usr/share/texmf' or ..., with MikTeX `\texmf' or +`\Miktex'). This was created at the installation of your TeX +distribution. + +One of these is the system texmf tree (`/usr/local/texmf' or +`/usr/local/share/texmf' or ..., with MikTeX `\localtexmf'). If you +are administrator use this texmf tree to install KOMA-Script. + +If you install KOMA-Script as normal user, you have to ask your +administrator, where to install KOMA-Script. You can also ask +texmf.cnf, if you can use a local texmf tree at your HOME directory. + +Short: + +- Do NOT install KOMA-Script at the primary texmf tree of the package + manager (e.g. if you're using MikTeX not at `\texmf' oder `\Miktex'). +- If you are administrator, install KOMA-Script at the system texmf + tree. +- If you are normal user, use the texmf tree of your HOME directory or + "Own Files" at windows or ask your administrator. + +In the following `.../texmf' is used for your texmf tree. If you are +using windows and the explorer or DOS-prompt, you have also replace +every slash (`/') by backslash (`\'). At TeX itself you're using still +slash for directory separation. + + +Installation: +------------- + +At Unix you may edit a `Makefile' called copy of `Makefile.unx', set +variable INSTALLTEXMF to your texmf tree, save Makefile and call make. +If no error occurs, you can do the installation with `make install' +subsequently. + +Note: Distributors do not need to put the Makefile into a KOMA-Script +distribution and the Makefile needs (almost) all other files of +KOMA-Script that are not needed for distributions. If you are using +the KOMA-Script distribution from CTAN you have good changes to get +the Makefile and to use it. But KOMA-Script distributions from some +TeX installations don't have those files or even the Makefile. + +If you don't use Unix or don't like Makefile, do this: + +1. Copy all files of KOMA-Script bundle to a new directory and change + to this directory. +2. Call LaTeX with filename komascr.ins. At Unix just say: + latex komascr.ins + This may be done at windows, too. + If LaTeX tells you some files already existing, DO NOT overwrite + them, yet. + Inform yourself, which files are newer, the one you want to install + or the already installed. Afterwards call LaTeX again an overwrite + older files - and only older - by newer. +3. Copy all generated files ending `.cls' and all files ending `.sty' + and all files ending `.lco' into the directory + `.../texmf/tex/latex/koma-script'. If there isn't a directory named + `.../texmf/tex/latex/koma-script', create it. (Remember! This is + `\localtexmf\tex\latex\koma-script' at MikTeX.) +4. Copy all files ending `.dvi', `.ps', `.pdf', `.txt' or `.TXT' and all + `komabug.tex' and `scrclass.dtx' into the directory + `.../texmf/doc/latex/koma-script'. If there isn't a directory named + `.../texmf/doc/latex/koma-script', create it. (Remember! This is + `\localtexmf\doc\latex\koma-script' at MikTeX.) Copy `scrclass.dtx' + to this directory, too. This will be need, if you'll want to + generate a bug report. + You will need file `scrclass.dtx' there, if you try to write a bug + report. You may use a symbolic link to the file at the source + directory instead of a copy of `scrclass.dtx'. +5. Install adrconv package. This step is only neccessary, if you got + it separatly from KOMA-Script or have one at subdirectory `contrib' + at your KOMA-Script distribution. +6. Maybe you have to inform your TeX distribution about the newly + installed files. Using teTeX you have to call `texhash', using + MikTeX this is `Refresh Filename Database'. At fpTeX there is also + an entry at windows start button. Ask the manual of your + distribution or your administrator. +7. Save following als `komaexam.tex' and call LaTeX. + \documentclass{scrartcl} + \begin{document} + dummy + \end{document} + Read the LOG file and search for the date and version numbers of + the loaded scrlartcl class and typearea package. Compare these with + the date and version number of the previously installed files + scrartcl.cls and typearea.sty. If they are not equal, installation + failed. Compare also the filenames at the LOG file. Ask your + administrator for help. +8. Read all DVI files, you've copied at step 4. You should print at + least scrguide. If you don't know l2short and usrguide, read them + also before reading scrguide. + +Have a nice day, even if you don't understand my +`something-like-english'! diff --git a/Master/texmf-dist/source/latex/koma-script/INSTALLD.TXT b/Master/texmf-dist/source/latex/koma-script/INSTALLD.TXT new file mode 100644 index 00000000000..96c7fe25f5f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/INSTALLD.TXT @@ -0,0 +1,149 @@ +Installation +============ + +Vorbemerkung: +------------- + +Diese Anleitung geht davon aus, dass Sie eine TDS-konforme +TeX-Installation verwenden. TDS-konform sind beispielsweise die +Installationen von teTeX bzw. fpTeX und MikTeX. Wenn Sie im Zweifel +sind, ob Ihre Installation TDS-konform ist, suchen Sie bitte nach +einem Verzeichnis "texmf". Moeglicherweise gibt es mehrere +Verzeichnisse diesen Namens. Unter Unix gibt es beispielsweise haeufig +ein "/usr/texmf" (oder "/usr/share/texmf" oder "/usr/TeX" oder +"/usr/share/TeX"), "/usr/local/texmf" (oder "/usr/local/share/texmf" +oder "/usr/TeX/texmf.local" oder ...) und bei mehreren Usern ein +"~/texmf" (also ein Verzeichnis "texmf" im Homeverzeichnis des +Anwenders). Unter Windows mit MikTeX heissen diese Verzeichnisse +haeufig "\texmf" oder "\Miktex" aber auch "\localtexmf". Ausserdem +kann es noch ein texmf-Verzeichnis unter "Eigene Dateien" geben. + +Eines dieser Verzeichnisse ist der sogenannte primaere texmf-Baum des +Paketmanagers ("/usr/texmf" bzw. "/usr/share/texmf" ..., in MikTeX +"\texmf" bzw. "\Miktex"). Dieser wird bei der Installation der +TeX-Distribution erzeugt und ausschliesslich fuer die Pakete der +TeX-Distribution verwendet. Unter Windows ist der Paketmanager das +TeX-Installationsprogramm. + +Eines der Verzeichnisse ist der systemweite texmf-Baum +("/usr/local/texmf" bzw. "/usr/local/share/texmf" ..., in MikTeX +"\localtexmf"). Wenn Sie KOMA-Script als Administrator installieren, +ist dies der texmf-Baum, den Sie verwenden sollten. + +Wenn Sie KOMA-Script als Anwender installieren, muessen Sie Ihren +Administrator fragen, in welchem texmf-Baum dies moeglich ist. Sie +koennen auch die Datei texmf.cnf nach der Fragestellung untersuchen, +ob Sie als Anwender einen texmf-Baum in Ihrem HOME-Verzeichnis +verwenden koennen. + +Zusammenfassung: + +- Installieren Sie KOMA-Script nicht im primaeren texmf-Baum des + Paketmanagers (beispielsweise in MikTex nicht unter "\texmf" oder + "\MikTex" sondern unter "\localtexmf"). +- Als Administrator verwenden Sie optimalerweise den systemweiten + texmf-Baum. +- Als Anwender verwenden Sie den texmf-Baum Ihres HOME-Verzeichnisses + beziehungsweise in "Eigene Dateien" unter Windows oder fragen Ihren + Administrator. + +Im folgenden ersetzen Sie bitte ".../texmf" durch den von Ihnen +verwendeten texmf-Baum (in Miktex "\localtexmf"). Bei Windows muessen +Sie ausserdem bei Verwendung des Explorers oder der +Eingabeaufforderung alle "/" durch "\" ersetzen. In TeX selbst ist +auch unter Windows "/" als Verzeichnistrennzeichen zu verwenden. + + +Installation: +------------- + +Unter Unix ist es am einfachsten, wenn Sie das beiliegende +Makefile.unx mit dem Namen "Makefile" kopieren, die Kopie dann +editieren und dort in die Variable INSTALLTEXMF den von Ihnen +verwendeten texmf-Baum eintragen. Rufen Sie dann das Programm make +auf. Ist make fehlerfrei durchgelaufen, so startet man mit +"make install" anschliessend den eigentlichen Installationsprozess. + +Das Makefile ist allerdings nicht zwingender Bestandteil einer +KOMA-Script Distribution. Ausserdem verlangt es, dass auch (fast) +alle anderen nicht zwingenden Bestandteile von KOMA-Script vorhanden +sind. In der Regel tifft dies auf die KOMA-Script-Distribution auf +CTAN zu. Auf KOMA-Script-Distributionen, die Bestandteil einer +TeX-Installation sind, trifft dies nicht zwingend zu. + +Wenn Sie nicht unter Unix arbeiten oder das Makefile nicht verwenden +wollen oder koennen, gehen Sie wie folgt vor: + +1. Kopieren Sie alle Dateien aus dem KOMA-Script-Paket in ein eigenes + Verzeichnis und wechseln Sie in dieses Verzeichnis. +2. Wenden Sie LaTeX oder TeX auf komascr.ins an. Unter Unix geht dies + beispielweise mit: + latex komascr.ins + Dies ist auch unter Windows in der Eingabeaufforderung moeglich. + Sollten Sie hierbei darauf hingewiesen werden, dass diverse Dateien + bereits existieren, so lassen Sie diese zunaechst NICHT + ueberschreiben. Stellen Sie spaetestens jetzt fest, dass das + bereits installierte KOMA-Script nicht neuer ist, als die Version, + die Sie neu installieren wollen. Ist dies nicht der Fall, wenden + Sie LaTeX erneut auf komascr.ins an und lassen Sie nun auch die + Dateien erzeugen, die bereits auf Ihrem System vorhanden sind. + HINWEIS: Die neuen Dateien ueberschreiben bereits vorhandene nur + dann, wenn die bereits vorhandenen sich im aktuellen + Verzeichnis befinden. Die Warnung, die von TeX ausgegeben + wird ist diesbezueglich nicht sehr deutlich. +3. Kopieren Sie alle Dateien mit der Endung ".cls", alle Dateien mit + der Endung ".sty" und alle Dateien mit der Endung ".lco" in das + Verzeichnis ".../texmf/tex/latex/koma-script". Falls das + Verzeichnis nicht existiert, legen Sie es bitte an. (Wichtig! + Bei Miktex also: "\localtexmf\tex\latex\koma-script") +4. Kopieren Sie alle Dateien mit den Endungen ".dvi", ".ps", ".pdf", + ".txt", ".TXT" und die Dateien "komabug.tex" in das Verzeichnis + ".../texmf/doc/latex/koma-script". Falls das Verzeichnis nicht + existiert, legen Sie es bitte an. + (Bei MikTex: "\localtexmf\doc\latex\koma-script"). + Sobald Sie einen Fehler oder ein Problem mit Hilfe von + "komabug.tex" melden wollen, ist die Datei "komabug.tex" zusammen + mit einer weiteren Datei aus dem KOMA-Script-Paket in ein + gemeinsames Verzeichnis zu kopieren. "komabug.tex" klaert Sie ggf. + darueber auf, um welche Dateien es sich handelt. Beispielsweise + wird die Datei "scrclass.dtx" benoetigt, sobald Sie einen + Fehlerbericht (bug report) erzeugen wollen. Unter Unix koennen Sie + fuer "scrclass.dtx" auch einen Link oder symbolischen Link + verwenden, falls sie die Datei dauerhaft an einem anderen Ort + (beispielsweise ".../texmf/source/latex/koma-script") gespeichert + haben. +5. Falls Sie eine Version von KOMA-Script verwenden, bei der eine von + KOMA-Script getrennte Version von adrconv beispielsweise im + Unterverzeichnis "contrib" existiert, installieren Sie jetzt das + adrconv-Paket gemaess der dem Paket beiliegenden Anleitung. +6. Je nach TeX-Distribution ist es nun noch notwendig, die + Distribution ueber die neu installierten Dateien zu informieren. + Unter Unix rufen Sie hierzu "texhash" auf. Bei Miktex geschieht + dies ueber "Refresh Filename Database". Bei fpTeX existiert ein + entsprechender Aufruf im Start-Menue. + Bei anderen Systemen konsultieren Sie bitte die Anleitung zum + jeweiligen TeX-System oder fragen Sie Ihren Administrator. +7. Wenden Sie nun LaTeX auf folgende Beispieldatei an: + \documentclass{scrartcl} + \begin{document} + dummy + \end{document} + Vergleichen Sie in der erzeugten LOG-Datei das Datum und die + Versionsnummer der geladenen scrartcl-Klasse und des geladenen + Paketes typearea mit den entsprechenden Angaben in den soeben + installierten Dateien scrartcl.cls und typearea.sty. Sollten Sie + Abweichungen zwischen den verwendeten und den installierten Dateien + feststellen, so ist die Installation nicht korrekt erfolgt. + Vergleichen Sie in diesem Fall bitte auch die in der LOG-Datei + angegebenen Verzeichnisnamen. Wenden Sie sich ggf. an Ihren + Administrator. +8. Lesen Sie alle DVI-Dateien, die Sie in Schritt 4 kopiert haben. Am + Besten drucken Sie sich zumindest den scrguide aus. Falls noch + nicht erfolgt, sollten Sie auf Ihrem System auch nach l2kurz und + usrguide suchen und diese beiden Anleitungen noch vor dem scrguide + gruendlich studieren. + +Hinweis: Die KOMA-Script-Anleitung gibt es als Buch bei DANTE e.V. und + Lehmanns Fachbuchhandlung (http://www.lob.de). + +Ich wuensche viel Erfolg! diff --git a/Master/texmf-dist/source/latex/koma-script/LEGAL.TXT b/Master/texmf-dist/source/latex/koma-script/LEGAL.TXT new file mode 100644 index 00000000000..5add61ce29e --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/LEGAL.TXT @@ -0,0 +1,157 @@ + KOMA-Script + Terms And Conditions For Copying, Distribution And Modification + Almost Like LaTeX Project Public License Version 1.0 + + +WARRANTY +======== + +There is no warranty for KOMA-Script, to the extent permitted by +applicable law. Except when otherwise stated in writing, the +Copyright holder provides KOMA-Script `as is' without warranty of any +kind, either expressed or implied, including, but not limited to, the +implied warranties of merchantability and fitness for a particular +purpose. The entire risk as to the quality and performance of the +program is with you. Should KOMA-Script prove defective, you assume +the cost of all necessary servicing, repair or correction. + +In no event unless required by applicable law or agreed to in writing +will the Copyright holder, or any of the individual authors named in +the source for KOMA-Script, be liable to you for damages, including +any general, special, incidental or consequential damages arising out +of any use of KOMA-Script or out of inability to use KOMA-Script +(including but not limited to loss of data or data being rendered +inaccurate or losses sustained by you or by third parties as a result +of a failure of The Program to operate with any other programs), even +if such holder or other party has been advised of the possibility of +such damages. + + +DISTRIBUTION +============ + +Redistribution of unchanged files is allowed provided that all files +that make up the distribution of KOMA-Script are distributed. +In particular this means that KOMA-Script has to be distributed +including its documentation if documentation was part of the original +distribution. If you distribute KOMA-Script together with a +installation programm or installation programms, you have to take +care, that users cannot skip or delete parts of KOMA-Script without +be well informed about this action. + +The distribution of KOMA-Script contain a listing of all the files +covered by this license at readme.txt and liesmich.txt. + +If you receive only some of these files from someone, complain! + +The distribution of changed versions of certain files included in the +KOMA-Script, and the reuse of code from KOMA-Script, are allowed +under the following restrictions: + + * It is allowed only if the legal notice in the file does not + expressly forbid it. + See note below, under "Conditions on individual files". + + * You rename the file before you make any changes to it, unless the + file explicitly says that renaming is not required. Any such changed + files must be distributed under a license that forbids distribution + of those files, and any files derived from them, under the names used + by the original files in the distribution of KOMA-Script. + + * You change any `identification string' in KOMA-Script to clearly + indicate that the file is not part of the standard system. + + * You change the `error report address' in any modified versions of + KOMA-Script, so that reports for files not maintained by the + original program maintainers are directed to the maintainers of the + changed files. + + * You acknowledge the source and authorship of the original version + in the modified file. + + * You also distribute the unmodified version of the file. + + * Then files with the following file extensions which have special + meaning in LaTeX Software, have special modification rules under the + license: + + - Files with extension `.ins' (installation files): these files may + not be modified at all because they contain the legal notices + that are placed in the generated files. + + - Files with extension `.fd' (LaTeX font definitions files): these + files are allowed to be modified without changing the name, but + only to enable use of all available fonts and to prevent attempts + to access unavailable fonts. However, modified files are not + allowed to be distributed in place of original files. + + - Files with extension `.cfg' (configuration files): these files + can be created or modified to enable easy configuration of the + system. The documentation in cfgguide.tex in the base LaTeX + distribution describes when it makes sense to modify or generate + such files. + + +The above restrictions are not intended to prohibit, and hence do +not apply to, the updating, by any method, of a file so that it +becomes identical to the latest version of that file in KOMA-Script. + +======================================================================== + +NOTES +===== + +We believe that these requirements give you the freedom you to make +modifications that conform with whatever technical specifications you +wish, whilst maintaining the availability, integrity and reliability of +The Program. If you do not see how to achieve your goal whilst +adhering to these requirements then read the document cfgguide.tex +in the base LaTeX distribution for suggestions. + +Because of the portability and exchangeability aspects of systems +like LaTeX, The LaTeX3 Project deprecates the distribution of +non-standard versions of components of LaTeX or of generally available +contributed code for them but such distributions are permitted under the +above restrictions. + +The document modguide.tex in the base LaTeX distribution details +the reasons for the legal requirements detailed above. +Even if KOMA-Script would be unrelated to LaTeX, the argument in +modguide.tex may still apply, and should be read before +a modified version of KOMA-Script is distributed. + + +Conditions on individual files +============================== + +The individual files may bear additional conditions which supersede +the general conditions on distribution and modification contained in +this file. + +Typical examples of files with more restrictive modification +conditions would be files that contain the text of copyright notices. + + * The conditions on individual files differ only in the + extent of *modification* that is allowed. + + * The conditions on *distribution* are the same for all the files. + Thus a (re)distributor of a complete, unchanged copy of The Program + need meet only the conditions in this file; it is not necessary to + check the header of every file in the distribution to check that a + distribution meets these requirements. + +Such files are: + + * All files ending `.txt' or `.TXT': + You are not allowed to modify these files containing legal notices. + + * All files starting `scr_new' or `scrnew': + You are not allowed to modify these files containing information + about the versions of KOMA-Script. You are not allowed to add other + files with such a name to the bundle. + + * Alle anderen Dateien mit dem Anfang `scr': + These are original KOMA-Script files. You are not allowed to start + the name of a changed or new file with this letters and place it + nearby KOMA-Script, if it is not part of the original KOMA-Script + bundle. diff --git a/Master/texmf-dist/source/latex/koma-script/LEGALDE.TXT b/Master/texmf-dist/source/latex/koma-script/LEGALDE.TXT new file mode 100644 index 00000000000..1e2c62ac3b1 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/LEGALDE.TXT @@ -0,0 +1,179 @@ + KOMA-Script + Bedingungen fuer das Kopieren, Verteilen und Veraendern + Angelehnt an die LaTeX Project Public License Version 1.0 + + +GARANTIE/GEWAEHRLEISTUNG/HAFTUNG +=============================== + +Es besteht keinerlei Gewaehrleistung fuer `KOMA-Script', soweit dies +gesetzlich zulaessig ist. Sofern nicht anderweitig schriftlich +bestaetigt, stellen Markus Kohm und Axel Kielhorn das Programm so zur +Verfuegung, "wie es ist", ohne irgendeine Gewaehrleistung, weder +ausdruecklich noch implizit, einschliesslich, aber nicht begrenzt auf +die Tauglichkeit und Verwendbarkeit fuer einen bestimmten Zweck. Das +volle Risiko bezueglich Qualitaet und Leistungsfaehigkeit des +Programms liegt bei Ihnen. Sollte das Programm fehlerhaft sein, +uebernehmen Sie die Kosten fuer alle notwendigen Service, Reparatur +oder Korrektur. + +In keinem Fall, ausser durch geltendes Recht gefordert oder +schriftlich zugesichert, ist Markus Kohm oder irgendeiner der +einzelnen Autoren, die im Quellcode von KOMA-Script genannt werden, +fuer irgendwelche Schaeden, die aus irgendeiner Verwendung von +KOMA-Script entstehen, haftbar (einschliesslich aber nicht beschraenkt +auf Datenverlust, fehlerhafte Verarbeitung von Daten oder Verlusten, +die von Ihnen oder Dritten getragen werden muessen in Folge eines +Fehlers von KOMA-Script oder in der Zusammenarbeit von KOMA-Script mit +irgendeinem anderen Programm), selbst wenn ein solcher +Copyright-Inhaber bzw. Autor ueber die Moeglichkeit solcher Schaeden +unterrichtet worden war. + + +VERTEILUNG +========== + +Die Weiterverbreitung unveraenderter Dateien ist unter der Bedingung +erlaubt, dass alle Dateien, die die Distribution von KOMA-Script +beinhaltet, weitergegeben werden. Insbesondere bedeutet dies, dass +KOMA-Script zusammen mit seiner Dokumentation weitergegeben werden +muss. Bei der Weitergabe von KOMA-Script zusammen mit einer oder +mehreren Installationsprogrammen oder -routinen muss sichergestellt +werden, dass der Anwender nicht unwissentlich Teile von KOMA-Script +bei der Installation auslassen oder entfernen kann. + +Die Distribution von KOMA-Script enthaelt in den Dateien liesmich.txt +und readme.txt eine Liste, in der alle Dateien aufgefuehrt werden, auf +die sich diese Lizenz erstreckt. + +Wenn Sie lediglich einige der Dateien von jemandem erhalten, +reklamieren Sie dies! + +Die Verteilung von veraenderten Versionen einiger Dateien aus dem +Umfang von KOMA-Script und die Wiederverwendung von Quellcode aus +KOMA-Script sind unter folgenden Bedingungen erlaubt: + + * Es ist nur dann erlaubt, wenn die rechtlichen Hinweise der + entsprechenden Datei dies nicht explizit untersagen. + Siehe den Hinweis unten, unter "Bedingungen fuer einzelne Dateien" + + * Sie die Datei umbenennen, bevor Sie irgendwelche Aenderungen daran + vornehmen, ausser in der Datei ist explizit erwaehnt, dass eine + Umbenennung nicht notwendig ist. Jede solche veraenderte Datei muss + unter eine Lizenz verbreitet werden, die es untersagt solche + veraenderten Dateien oder daraus hervorgegangene Dateien unter dem + Namen zu verteilen, der fuer die Originaldatei in der Distribution + von KOMA-Script verwendet wird. + + * Sie veraendern jede `Identifizierungszeichenfolge' in KOMA-Script, + um vollstaendig und klar deutlich zu machen, dass die Datei nicht + Teil des Standardsystems ist. + + * Sie aendern die Adresse fuer Fehlermeldungen und andere + Supportleistungen in jeder veraenderten Version von KOMA-Script, + damit Dateien, die nicht von den originaeren Programm-Verwaltern + verwaltet werden, direkt an die Verwalter der geaenderten Dateien + gelangen. + + * Sie geben die Quelle und den Urheber der Original-Version in der + veraenderten Datei bekannt. + + * Sie verteilen ebenfalls die unveraenderte Version der Datei. + + * Fuer Dateien mit den folgenden Datei-Endungen, die bei + LaTeX-Software spezielle Bedeutungen haben, bezueglich + Veraenderungen gemaess dieser Lizenz spezielle Regel: + + - Dateien mit der Endung `.ins' + (Installations-Dateien): Diese Dateien duerfen nicht veraendert + werden, da sie rechtliche Hinweise enthalten, die in alle + erzeugten Dateien uebernommen werden. + + - Dateien mit der Endung `.fd' + (LaTeX-Zeichensatz-Definitions-Dateien): Diese Dateien duerfen + veraendert werden, ohne dass der Name geaendert wird, aber nur, + um die Verwendung aller verfuegbaren Zeichensaetze zu + ermoeglichen und Versuche, auf nicht verfuegbare Zeichensaetze + zuzugreifen, zu vermeiden. Wie dem auch sei, ist es nicht + gestattet veraenderte Dateien anstatt der Originaldateien zu + verteilen. + + - Dateien mit der Endung `.cfg' (Konfiguration-Dateien): Diese + Dateien koennen erzeugt oder modifiziert werden, um einfache + Konfiguration des Systems zu ermoeglichen. Die Dokumentation in + cfgguide.tex in der Basis-LaTeX-Distribution beschreibt, wann es + Sinn macht, solche Dateien zu modifizieren oder zu erzeugen. + +Die oben genannten Einschraenkungen sollen nicht dazu dienen das +Update - egal auf welche Art und Weise - einer Datei, so dass sie +identisch mit mit der neusten Version der Datei in KOMA-Script ist, zu +verhindern und beziehen sich daher auch nicht darauf. + +======================================================================== + +HINWEISE: +========= + +Wir vertrauen darauf, dass diese Uebereinkunft Ihnen die Freiheit +gibt, Veraenderungen vorzunehmen, die mit allen technischen +Spezifikationen uebereinstimmen, die Sie vornehmen wollen, waehrend +Sie fuer die Verfuegbarkeit, Integritaet und Zuverlaessigkeit von +KOMA-Script Sorge tragen. Wenn Sie nicht sehen, wie Sie Ihre Ziele +erreichen koennen, waehrend Sie an dieser Uebereinkuenften festhalten, +so lesen Sie das Dokument cfgguide.tex in der +Basis-LaTeX-Distribution, um Ideen zu erhalten. + +Aufgrund der Portierbarkeits- und Austauschbarkeits-Gesichtspunkte von +Systemen wie LaTeX, lehnt `The LaTeX3 Project' die Verteilung von +Nicht-Standard-Versionen von Komponenten von LaTeX oder von generell +verfuegbarem, beigefuegtem Code fuer solche ab. Aber solche +Distributionen sind unter obigen Bedingungen gestattet. + +Das Dokument modguide.tex in der Basis-LaTeX-Distribution schildert +die Einzelheiten der Gruende fuer rechtliche Uebereinkuenfte, wie sie +oben im Einzelnen aufgefuehrt sind. + +Selbst wenn KOMA-Script in keiner Beziehung zu LaTeX stuende, behalten +die Argumente in modguide.tex weiterhin ihre Gueltigkeit und sollten +gelesen werden, bevor eine veraenderte Version von KOMA-Script +weitergegeben wird. + + +Bedingungen in einzelnen Dateien +================================ + +Einzelne Dateien koennen zusaetzliche Bedingungen enthalten, welche +die generellen Bedingungen fuer die Weitergabe und Veraenderung, wie +sie in dieser Datei einhalten sind, ersetzen. + +Typische Beispiele fuer solche Dateien mit strengeren Regeln +bezueglich Veraenderungen waeren Dateien, die den Text mit den +Copyright-Hinweisen enthalten. + + * Die Bedingungen einzelner Dateien unterscheiden sich lediglich im + Umfang der Aenderungen, die erlaubt sind. + + * Die Bedingungen der Verbreitung sind dieselben wie fuer alle + anderen Dateien. Daher muss der (Weiter-)Verteiler einer + kompletten, unveraenderten Kopie von KOMA-Script lediglich die + Bedingungen in dieser Datei beachten. Es ist nicht notwendig die + Koepfe aller Dateien einer Distribution zu ueberpruefen um die + Uebereinkunft einzuhalten. + +Bei KOMA-Script gelten strenge Regeln fuer folgende Dateien +bzw. Dateiarten: + + * Alle Dateien mit der Endung `.txt' oder `.TXT': + Diese Dateien enthalten rechtliche Hinweise und duerfen auf keinen + Fall geaendert werden. + + * Alle Dateien mit dem Anfang `scr_new' oder `scrnew': + Diese Dateien enthalten Informationen zu den einzelnen Versionen + von KOMA-Script. Sie duerfen weder veraendert noch duerfen andere + Dateien mit diesem Anfang zugefuegt werden. + + * Alle anderen Dateien mit dem Anfang `scr': + Dies sind Dateien der Original KOMA-Script-Distribution. Keine + veraenderte oder neu hinzugefuegte Datei, die nicht Bestandteil der + Original-Distribution von KOMA-Script ist, darf mit dieser + Buchstabenfolge beginnen. diff --git a/Master/texmf-dist/source/latex/koma-script/Makefile.unx b/Master/texmf-dist/source/latex/koma-script/Makefile.unx new file mode 100644 index 00000000000..2a11523889b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/Makefile.unx @@ -0,0 +1,708 @@ +######################################################################## +# Creating a installed version of KOMA-Script +# Copyright (c) Markus Kohm, 1999-2004 +# +#>>>> USE THIS ONLY, IF THERE IS A TDS-COMPATIBLE TEX-INSTALLATION! <<<< +#>>>> DO NOT CHANGE ANYTHING BUT THE CUSTOMIZATION SECTION! <<<< +#>>>> YOU NEED GNU-MAKE TO RUN THIS! <<<< +# +# Defined rules for users: +# +# all default rule if make is called without parameter, +# generates all KOMA-Script-files but not the guides +# install installs all files in a TDS-tree +# +# guides makes all the guides but ps-files +# optionalguides +# like guides but does also make the ps-files +# +# scrguide2p +# generates a scrguide2p.ps, a postscript file with two +# A5 pages together at A5 pages +# (doesn't need installation with unmodified maintainer +# distribution) +# scrguide4p +# generates a scrguide4p.ps, a postscript file with four +# A5 pages aranged at A4 page for book printing +# (doesn't need installation with unmodified maintainer +# distribution) +# scrguide4p16 +# generates a scrguide4p16.ps, a postscript file like +# scrguide4p.ps but with signature=16 (see psbook) +# (doesn't need installation with unmodified maintainer +# distribution) +# +# srcclean deletes all generated files (but *tar.gz) +# distclean deletes all generated files (but *tar.gz) not part of +# the distribution +# clean deletes all temporary files +# +# dist generates a tar file koma-script-.tar.gz with all +# files of the distribution +# (needs unmodified maintainer distribution) +# +# texlive generates a directory structure, which may be copied to +# TeXLive +######################################################################## + +######################################################################## +# Start of customization section +######################################################################## + +# The texmf-directory, where to install new stuff (see texmf.cnf) +# If you don't know what to do, search for directory texmf at /usr. +# With teTeX and linux often one of following is used: +#INSTALLTEXMF ?= /usr/TeX/texmf +#INSTALLTEXMF ?= /usr/local/TeX/texmf +#INSTALLTEXMF ?= /usr/share/texmf +#INSTALLTEXMF ?= /usr/local/share/texmf +# user tree: +#INSTALLTEXMF ?= $(HOME)/texmf +# Try to use user's tree known by kpsewhich: +#INSTALLTEXMF ?= `kpsewhich --expand-var '$$HOMETEXMF'` +# Try to use the local tree known by kpsewhich: +INSTALLTEXMF ?= `kpsewhich --expand-var '$$TEXMFLOCAL'` +# But you may set INSTALLTEXMF to every directory you want. +# Use following, if you only want to test the installation: +#INSTALLTEXMF ?= /tmp/texmf + +# If texhash must run after installation, you can invoke this: +TEXHASH ?= texhash + +# You should change following only, if you want to change defaults! + +# The directory, where to install *.cls and *.sty +CLSDIR=$(INSTALLTEXMF)/tex/latex/koma-script + +# The directory, where to install documentation +DOCDIR=$(INSTALLTEXMF)/doc/latex/koma-script + +# The directory, where to install the sources +SRCDIR=$(INSTALLTEXMF)/source/latex/koma-script + +# The directory, where to install demo-files +# If we have some, we have to add following 2 lines to install rule: +# $(MKDIR) $(DEMODIR); \ +# $(INSTALL) $(DEMO_FILES) $(DEMODIR); \ +DEMODIR=$(DOCDIR)/demo + +# We need this, because the documentation needs the classes and packages +# It's not realy a good solution, but it's a working solution, if no +# KOMA-Script was installed. +TEXINPUTS := $(PWD):$(TEXINPUTS) + +######################################################################## +# End of customization section +######################################################################## + +# Used command: +LATEX = latex +PDFLATEX = pdflatex +NONSTOPMODE = \\nonstopmode\\input +BATCHMODE = \\batchmode\\input +RM = rm -f +RMDIR = rm -fr +CP = cp -f +CPALL = cp -Rpf +CD = cd +MV = mv -f +SYMLINK = ln -sf +INSTALL = install -m 644 +MKDIR = install -m 755 -d +MAKEINDEX = makeindex -g -r -s scrguide.ist +MAKECHANGE = makeindex -g -r -s scrguide.gst -o +MAKEIDX = makeindex -g +GENINDEX = $(PWD)/genindex.pl +BIBTEX = bibtex +DVIPS = dvips -Pwww +ECHO = echo +ECHONONL = echo -n +TARCREATE = tar -zcvf +TARCREATEBZ = tar -jcvf +ZIPCREATE = zip -9o +DIRNAME = dirname +LL = ls -l +LLL = ls -sh1 +SED = sed +CUT = cut +GREP = grep +PSSELECT = psselect +PSBOOK = psbook +PSTOPS = pstops +EVAL = eval + +LOGMESSAGE = 'KOMA-Script was made at '`date`'.' +GERMREADME = 'Wenn Sie Deutsch verstehen, lesen Sie bitte liesmich.txt.' +ENGREADME = 'If you do not understand german, read readme.txt.' + +######################################################################## + +# files needed only for generation of documentation files +RMEXT = *.log *.aux *.toc *.lot *.lof *.out *.ilg *.idx *.ind \ + *.blg *.bbl *.glg *.glx *.glo *.gls + +# documentation files +RMOUT = *.pdf *.dvi *.ps + +# class and package files +RMCLS = *.cls *.sty + +# sources of KOMA-Script News +NEWS_SRC = scr_new1.tex \ + scr_new2.tex \ + scr_new3.tex \ + scr_new4.tex \ + scr_new5.tex \ + scr_new6.tex \ + scr_new7.tex \ + scr_new8.tex \ + scr_new9.tex \ + scrnew10.tex \ + scrnew11.tex \ + scrnew12.tex \ + scrnew13.tex \ + scrnew14.tex \ + scrnew15.tex \ + scrnew16.tex \ + scrnew17.tex \ + scrnew18.tex \ + scrnew19.tex \ + scrnew20.tex \ + scrnew21.tex + +# folder with german manual +DE_GUIDE_DIR = scrguide + +# source of german manual +DE_GUIDE_SRC = $(DE_GUIDE_DIR)/scrguide2.tex \ + $(DE_GUIDE_DIR)/einleit.tex \ + $(DE_GUIDE_DIR)/satzspgl.tex \ + $(DE_GUIDE_DIR)/hauptcls.tex \ + $(DE_GUIDE_DIR)/layout.tex \ + $(DE_GUIDE_DIR)/datmzeit.tex \ + $(DE_GUIDE_DIR)/brief.tex \ + $(DE_GUIDE_DIR)/adressen.tex \ + $(DE_GUIDE_DIR)/adrkonv.tex \ + $(DE_GUIDE_DIR)/datladen.tex \ + $(DE_GUIDE_DIR)/scrguide.bib \ + $(DE_GUIDE_DIR)/scrguide.bst \ + $(DE_GUIDE_DIR)/scrguide.dbj \ + $(DE_GUIDE_DIR)/scrguide.mbs \ + $(DE_GUIDE_DIR)/scrguide.ist \ + $(DE_GUIDE_DIR)/scrguide.gst + +# folder with english manual +EN_GUIDE_DIR = scrguide/english +EN_GUIDE_RELTO_BASE = ../.. + +# source of english manual +EN_GUIDE_SRC = $(EN_GUIDE_DIR)/main.tex \ + $(EN_GUIDE_DIR)/scrguide2.tex \ + $(EN_GUIDE_DIR)/introduc.tex \ + $(EN_GUIDE_DIR)/pglayout.tex \ + $(EN_GUIDE_DIR)/maincls.tex \ + $(EN_GUIDE_DIR)/headfoot.tex \ + $(EN_GUIDE_DIR)/datetime.tex \ + $(EN_GUIDE_DIR)/letter.tex \ + $(EN_GUIDE_DIR)/addressf.tex \ + $(EN_GUIDE_DIR)/addrconv.tex \ + $(EN_GUIDE_DIR)/loadfile.tex \ + $(EN_GUIDE_DIR)/scrguide.bib \ + $(EN_GUIDE_DIR)/scrguide-en.bst \ + $(EN_GUIDE_DIR)/scrguide-en.dbj \ + $(EN_GUIDE_DIR)/scrguide.mbs \ + $(EN_GUIDE_DIR)/scrguide.ist \ + $(EN_GUIDE_DIR)/scrguide.gst + +# other source files (unused) +MISC_SRC = Makefile.unx \ + genindex.pl + +# source of all manuals +GUIDE_SRC = koma-script.tex \ + $(DE_GUIDE_SRC) $(EN_GUIDE_SRC) + +# ready made KOMA-Script News +NEWS = ${NEWS_SRC:.tex=.dvi} + +# ready made german guides +DE_GUIDES = scrguide.dvi \ + scrguide.pdf +# ready made german guides (optional) +O_DE_GUIDES = scrguide.ps + +# ready made english guides +EN_GUIDES = scrguien.dvi \ + scrguien.pdf +# ready made english guide (optional) +O_EN_GUIDES = scrguien.ps + +# ready made guides +GUIDES = koma-script.pdf \ + komascript.pdf \ + komascr.pdf \ + $(DE_GUIDES) $(EN_GUIDES) +# ready made guide (optional) +OGUIDES = $(O_DE_GUIDES) $(O_EN_GUIDES) + +# primary dtx files +DTX_FILES = scrclass.dtx \ + scraddr.dtx \ + scrlettr.dtx \ + scrtime.dtx \ + scrpage.dtx +# script20.dtx \ + +# dtx includes +DTX_INCLUDE = scrlogo.dtx + +# batch files +INS_FILES = komascr.ins \ + scrclass.ins \ + scrtime.ins \ + scrpage.ins + +# all sourced need to made classes and packages +CLS_SRC = $(DTX_FILES) \ + $(DTX_INCLUDE) \ + $(INS_FILES) \ + $(MISC_SRC) + +# all files needed by generations +SRC_FILES = $(CLS_SRC) \ + $(GUIDE_SRC) \ + $(NEWS_SRC) + +# text files +TEXT_FILES = ChangeLog \ + liesmich.txt \ + readme.txt \ + LEGAL.TXT \ + LEGALDE.TXT \ + INSTALL.TXT \ + INSTALLD.TXT + +# misc installation files +MISC_FILES = komabug.tex + +# files at distribution source +DIST_SRC = $(TEXT_FILES) \ + $(SRC_FILES) \ + $(MISC_FILES) + +# files at distribution contents file +XDIST_FILES = 00README \ + $(GUIDES) \ + $(DIST_SRC) + +# files at distribution +DIST_FILES = 00CONTEN \ + komascript.md5 \ + $(XDIST_FILES) + +# files to be installed at CLSDIR +CLS_FILES = scrartcl.cls \ + scrreprt.cls \ + scrbook.cls \ + typearea.sty \ + scrlfile.sty \ + scrlettr.cls \ + scrlttr2.cls \ + scraddr.sty \ + DIN.lco \ + DINmtext.lco \ + SNleft.lco \ + SN.lco \ + KOMAold.lco \ + scrtime.sty \ + scrdate.sty \ + scrpage.sty \ + scrpage2.sty + +# files to be installed at DOCDIR +DOC_FILES = $(GUIDES) \ + $(TEXT_FILES) \ + $(NEWS) \ + komabug.tex + +# optional files to be installed at DOCDIR +ODOC_FILES = $(OGUIDES) + +# installation documentation files +IDOC_FILES = ${DTX_FILES:.dtx=.dvi} + +# installation documentation log files +ILOG_FILES = ${DTX_FILES:.dtx=.log} + +######################################################################## + +all: komascript.log #guides + +guides: $(GUIDES) + +optionalguides: guides $(OGUIDES) + +komascript.log: Makefile $(CLS_SRC) $(NEWS) + $(LATEX) komascr.ins + $(ECHO) $(LOGMESSAGE) > komascript.log + +Makefile: Makefile.unx + @if test -r Makefile && test Makefile.unx -nt Makefile; then\ + $(ECHO) "Makefile.unx is newer than Makefile!";\ + $(ECHO) "Delete or Re-edit it!";\ + exit 1;\ + fi + $(SYMLINK) Makefile.unx Makefile + +scr_new%.dvi: scr_new%.tex + $(LATEX) $(NONSTOPMODE) $< + $(LATEX) $(BATCHMODE) $< + +scrnew%.dvi: scrnew%.tex + $(LATEX) $(NONSTOPMODE) $< + $(LATEX) $(BATCHMODE) $< + +scrguide: $(DE_GUIDES) + +scrguide2p: scrguide2p.ps + +scrguide4p16: scrguide4p16.ps + +scrguide4p: scrguide4p.ps + +screnggu: scrguide-english + +scrguien: scrguide-english + +scrguide-english: $(EN_GUIDES) + +scrguide.dvi: $(DE_GUIDE_DIR)/scrguide2.dvi + $(CP) $(DE_GUIDE_DIR)/scrguide2.dvi scrguide.dvi + +scrguide.ps: scrguide.dvi + $(DVIPS) scrguide.dvi -oscrguide.ps + +scrguide2p.ps: scrguide.ps + $(PSSELECT) -p1,2,_,3- scrguide.ps tmp.ps + $(PSTOPS) -w29.7cm -h21cm '2:0L(21cm,0)+1L(21cm,14.85cm)' \ + tmp.ps tmp2.ps + $(SED) 's/%%BoundingBox: 0 0 420 596/%%BoundingBox: 0 0 596 842/' \ + tmp2.ps > scrguide2p.ps + $(RM) tmp.ps tmp2.ps + +scrguide4p16.ps: scrguide.ps + $(PSBOOK) -s16 scrguide.ps tmp.ps + $(PSTOPS) '4:0L(21cm,0)+1L(21cm,14.85cm),2R(0,29.7cm)+3R(0,14.85cm)' \ + tmp.ps tmp2.ps + $(SED) 's/%%BoundingBox: 0 0 420 596/%%BoundingBox: 0 0 596 842/' \ + tmp2.ps > scrguide4p16.ps + $(RM) tmp.ps tmp2.ps + +scrguide4p.ps: scrguide.ps + $(PSBOOK) scrguide.ps tmp.ps + $(PSTOPS) '4:0L(21cm,0)+1L(21cm,14.85cm),2R(0,29.7cm)+3R(0,14.85cm)' \ + tmp.ps tmp2.ps + $(SED) 's/%%BoundingBox: 0 0 420 596/%%BoundingBox: 0 0 596 842/' \ + tmp2.ps > scrguide4p.ps + $(RM) tmp.ps tmp2.ps + +scrguide.pdf: $(DE_GUIDE_DIR)/scrguide2.pdf + $(CP) $(DE_GUIDE_DIR)/scrguide2.pdf scrguide.pdf + +scrguien.dvi: $(EN_GUIDE_DIR)/main.dvi + $(CP) $(EN_GUIDE_DIR)/main.dvi scrguien.dvi + +scrguien.ps: scrguien.dvi + $(DVIPS) scrguien.dvi -oscrguien.ps + +scrguien.pdf: $(EN_GUIDE_DIR)/main.pdf + $(CP) $(EN_GUIDE_DIR)/main.pdf scrguien.pdf + +screnggu.dvi: $(EN_GUIDE_DIR)/screnggu.dvi + $(CP) $(EN_GUIDE_DIR)/screnggu.dvi . + +screnggu.ps: screnggu.dvi + $(DVIPS) screnggu.dvi -oscrenggu.ps + +screnggu.pdf: $(EN_GUIDE_DIR)/screnggu.pdf + $(CP) $(EN_GUIDE_DIR)/screnggu.pdf . + +koma-script.pdf: koma-script.tex + $(PDFLATEX) $(NONSTOPMODE) koma-script.tex + +komascript.pdf: koma-script.pdf + $(SYMLINK) koma-script.pdf komascript.pdf + +komascr.pdf: koma-script.pdf + $(SYMLINK) koma-script.pdf komascr.pdf + + +ifneq ($(USEMULTIINDEX),false) +USEMULTIINDEX = test -x $(GENINDEX) +endif + +$(DE_GUIDE_DIR)/scrguide2.dvi: komascript.log $(DE_GUIDE_SRC) + $(CD) $(DE_GUIDE_DIR) && \ + $(RM) $(RMEXT) && \ + ( oncemore=true; \ + while $$oncemore; do \ + $(LATEX) $(NONSTOPMODE) scrguide2.tex && \ + $(BIBTEX) scrguide2 && \ + $(MAKECHANGE) scrguide2.chn scrguide2.glo && \ + $(MAKEINDEX) scrguide2 && \ + ( ! $(USEMULTIINDEX) || $(GENINDEX) scrguide2 ); \ + if test $$? != 0; then rm scrguide2.dvi; exit 1; fi;\ + if $(GREP) Rerun scrguide2.log;\ + then oncemore=true; else oncemore=false; fi;\ + done;\ + ) + +$(DE_GUIDE_DIR)/scrguide2.pdf: komascript.log $(DE_GUIDE_SRC) + $(CD) $(DE_GUIDE_DIR) && \ + $(RM) $(RMEXT) && \ + ( oncemore=true; \ + while $$oncemore; do \ + $(PDFLATEX) $(NONSTOPMODE) scrguide2.tex && \ + $(BIBTEX) scrguide2 && \ + $(MAKECHANGE) scrguide2.chn scrguide2.glo && \ + $(MAKEINDEX) scrguide2 && \ + ( ! $(USEMULTIINDEX) || $(GENINDEX) scrguide2 ); \ + if test $$? != 0; then rm scrguide2.pdf; exit 1; fi;\ + if $(GREP) Rerun scrguide2.log;\ + then oncemore=true; else oncemore=false; fi;\ + done;\ + ) + +$(EN_GUIDE_DIR)/main.dvi: komascript.log $(EN_GUIDE_SRC) + $(CD) $(EN_GUIDE_DIR) && \ + $(RM) $(RMEXT) && \ + ( oncemore=true; \ + while $$oncemore; do \ + $(LATEX) $(NONSTOPMODE) main.tex && \ + $(BIBTEX) main && \ + $(MAKECHANGE) main.chn main.glo && \ + $(MAKEINDEX) main && \ + ( ! $(USEMULTIINDEX) || $(GENINDEX) main ); \ + if test $$? != 0; then rm main.dvi; exit 1; fi;\ + if $(GREP) Rerun main.log;\ + then oncemore=true; else oncemore=false; fi;\ + done;\ + ) + +$(EN_GUIDE_DIR)/main.pdf: komascript.log $(EN_GUIDE_SRC) + $(CD) $(EN_GUIDE_DIR) && \ + $(RM) $(RMEXT) && \ + ( oncemore=true; \ + while $$oncemore; do \ + $(PDFLATEX) $(NONSTOPMODE) main.tex && \ + $(BIBTEX) main && \ + $(MAKECHANGE) main.chn main.glo && \ + $(MAKEINDEX) main && \ + ( ! $(USEMULTIINDEX) || $(GENINDEX) main ); \ + if test $$? != 0; then rm main.pdf; exit 1; fi;\ + if $(GREP) Rerun main.log;\ + then oncemore=true; else oncemore=false; fi;\ + done;\ + ) + +$(EN_GUIDE_DIR)/scrguide2.tex: $(DE_GUIDE_DIR)/scrguide2.tex + $(SYMLINK) $(EN_GUIDE_RELTO_BASE)/$(DE_GUIDE_DIR)/scrguide2.tex \ + $(EN_GUIDE_DIR)/scrguide2.tex + +$(EN_GUIDE_DIR)/scrguide.bib: $(DE_GUIDE_DIR)/scrguide.bib + $(SYMLINK) $(EN_GUIDE_RELTO_BASE)/$(DE_GUIDE_DIR)/scrguide.bib \ + $(EN_GUIDE_DIR)/scrguide.bib + +$(EN_GUIDE_DIR)/scrguide.ist: $(DE_GUIDE_DIR)/scrguide.ist + $(SYMLINK) $(EN_GUIDE_RELTO_BASE)/$(DE_GUIDE_DIR)/scrguide.ist \ + $(EN_GUIDE_DIR)/scrguide.ist + +$(EN_GUIDE_DIR)/scrguide.mbs: $(DE_GUIDE_DIR)/scrguide.mbs + $(SYMLINK) $(EN_GUIDE_RELTO_BASE)/$(DE_GUIDE_DIR)/scrguide.mbs \ + $(EN_GUIDE_DIR)/scrguide.mbs + +$(EN_GUIDE_DIR)/scrguide.gst: $(DE_GUIDE_DIR)/scrguide.gst + $(SYMLINK) $(EN_GUIDE_RELTO_BASE)/$(DE_GUIDE_DIR)/scrguide.gst \ + $(EN_GUIDE_DIR)/scrguide.gst + + +######################################################################## + +install: clean komascript.log + @if test "x" = "x$(INSTALLTEXMF)" || ! $(MKDIR) $(INSTALLTEXMF) \ + || ! test -w "$(INSTALLTEXMF)"; then \ + $(ECHO) "Not able to write to install directory \"$(INSTALLTEXMF)\"";\ + $(ECHO) "Please edit INSTALLTEXMF at the Makefile first!"; \ + exit 1 ; \ + fi + @if test `pwd` = $(CLSDIR) -o `pwd` = $(SRCDIR) -o `pwd` = $(DOCDIR); \ + then \ + $(CPALL) ./ /tmp/koma-script.tmp; \ + $(CD) /tmp/koma-script.tmp; \ + $(MAKE) install; \ + $(RMDIR) /tmp/koma-script.tmp; \ + else \ + $(ECHO) "Installation at $(INSTALLTEXMF):"; \ + $(MKDIR) $(CLSDIR); \ + $(ECHONONL) " at $(CLSDIR): "; \ + $(INSTALL) $(CLS_FILES) $(CLSDIR); \ + $(ECHO) "."; \ + $(MKDIR) $(DOCDIR); \ + $(ECHONONL) " at $(DOCDIR): "; \ + $(INSTALL) $(DOC_FILES) $(DOCDIR); \ + $(ECHONONL) "."; \ + for file in "$(ODOC_FILES)"; do \ + if test -r "$$file"; then \ + $(ECHONONL) "."; \ + $(INSTALL) $$file $(DOCDIR); \ + fi; \ + done; \ + $(ECHO) "."; \ + $(ECHONONL) " at $(SRCDIR): "; \ + for file in $(DIST_FILES); do \ + dir=`dirname $$file`; \ + if test "x$$dir" = "x"; \ + then $(INSTALL) $$file $(SRCDIR); \ + else $(ECHONONL) "."; \ + $(MKDIR) $(SRCDIR)/$$dir; \ + $(INSTALL) $$file $(SRCDIR)/$$dir; \ + fi; \ + done; \ + $(ECHO) "."; \ + $(INSTALL) komascript.log $(DOCDIR); \ + $(ECHO) "done"; \ + fi + @if test -z "$(TEXHASH)" ; then \ + $(ECHO) ;\ + $(ECHO) '>>> Maybe you have to run texhash or something else, now. <<<';\ + $(ECHO) ;\ + else \ + $(EVAL) $(TEXHASH); \ + fi + +######################################################################## + +srcclean: distclean + $(RM) $(RMOUT) 00* + +distclean: clean + $(RM) $(RMCLS) $(IDOC_FILES) + $(CD) $(DE_GUIDE_DIR) && $(RM) $(RMOUT) + $(CD) $(EN_GUIDE_DIR) && $(RM) $(RMOUT) + +clean: + $(RM) $(RMEXT) + $(CD) $(DE_GUIDE_DIR) && $(RM) $(RMEXT) + $(CD) $(EN_GUIDE_DIR) && $(RM) $(RMEXT) + +######################################################################## + +.SUFFIXES: .dtx .dvi .log + +.dtx.dvi: + $(LATEX) $(NONSTOPMODE) $< + $(LATEX) $(BATCHMODE) $< + $(MAKEIDX) -r -s gind.ist $(<:.dtx=.idx) + $(MAKEIDX) -r -s gglo.ist $(<:.dtx=.glo) -o $(<:.dtx=.gls) + $(LATEX) $(BATCHMODE) $< + +.dtx.log: + $(LATEX) $(NONSTOPMODE) $< + $(LATEX) $(BATCHMODE) $< + $(MAKEIDX) -r -s gind.ist $(<:.dtx=.idx) + $(MAKEIDX) -r -s gglo.ist $(<:.dtx=.glo) -o $(<:.dtx=.gls) + $(LATEX) $(BATCHMODE) $< + +ifeq ($(USER),mjk) +release: + @for src in $(INS_FILES);do \ + $(CP) $${src} $${src}.bak; \ + $(SED) 's/\\let\\ifbeta\\iftrue/\\let\\ifbeta\\iffalse/1' \ + <$${src}.bak >$${src}; \ + done + @$(RM) Makefile + $(SED) -e "s/^\(INSTALLTEXMF \?= \`kpsewhich .*HOME\)/#\1/" \ + -e "s/^#\(INSTALLTEXMF \?= \`kpsewhich .*TEXMFLOCAL\)/\1/" \ + Makefile + +beta: + @for src in $(INS_FILES);do \ + $(CP) $${src} $${src}.bak; \ + $(SED) 's/\\let\\ifbeta\\iffalse/\\let\\ifbeta\\iftrue/1' \ + <$${src}.bak >$${src}; \ + done + @$(RM) Makefile + $(SED) -e "s/^#\(INSTALLTEXMF \?= \`kpsewhich .*HOME\)/\1/" \ + -e "s/^\(INSTALLTEXMF \?= \`kpsewhich .*TEXMFLOCAL\)/#\1/" \ + Makefile +endif + +dist: komascript.log $(DIST_FILES) $(ILOG_FILES) $(IDOC_FILES) + @if $(GREP) "Checksum not passed" *.log; then \ + $(ECHO) "Cannot create tar because of checksum error" >&2; \ + else \ + $(RM) koma-script-`date -I`.tar.gz; \ + $(TARCREATE) koma-script-`date -I`.tar.gz $(DIST_FILES); \ + fi + +check: dist-bzip + $(RMDIR) /tmp/texmf/ + $(MKDIR) /tmp/texmf/source/latex/komascript + $(CP) koma-script-`date -I`.tar.bz2 /tmp/texmf/source/latex/komascript + cd /tmp/texmf/source/latex/komascript + tar -xjf koma-script-`date -I`.tar.bz2 + $(RM) koma-script-`date -I`.tar.bz2 + $(eval export INSTALLTEXMF=/tmp/texmf) + $(eval export TEXHASH=) + $(MAKE) install 2>&1 | tee make.log + echo "Test installation to /tmp/texmf was successfull." + $(RMDIR) /tmp/texmf/source/latex/komascript + tree /tmp/texmf + +texlive: Makefile + @if [ -z "$(TEXLIVE)" ]; then \ + $(ECHO) "Error: You have to set up variable TEXLIVE!" >&2; \ + exit 1; \ + fi + $(eval export INSTALLTEXMF=$(TEXLIVE)) + $(eval export TEXHASH=) + $(MAKE) install + +dist-bzip: komascript.log $(DIST_FILES) $(ILOG_FILES) $(IDOC_FILES) + @if $(GREP) "Checksum not passed" *.log; then \ + $(ECHO) "Cannot create tar because of checksum error" >&2; \ + else \ + $(RM) koma-script-`date -I`.tar.bz2; \ + $(TARCREATEBZ) koma-script-`date -I`.tar.bz2 $(DIST_FILES); \ + fi + +dist-zip: komascript.log $(DIST_FILES) $(ILOG_FILES) $(IDOC_FILES) + @if $(GREP) "Checksum not passed" *.log; then \ + $(ECHO) "Cannot create zip because of checksum error" >&2; \ + else \ + $(RM) koma-script-`date -I`.zip; \ + $(ZIPCREATE) koma-script-`date -I`.zip $(DIST_FILES); \ + fi + +distsrc: komascript.log $(DIST_SRC) $(ILOG_FILES) $(IDOC_FILES) + @if $(GREP) "Checksum not passed" *.log; then \ + $(ECHO) "Cannot create tar because of checksum error" >&2; \ + else \ + $(TARCREATE) koma-script-src-`date -I`.tar.gz $(DIST_SRC); \ + fi + +komascript.md5: $(XDIST_FILES) + $(MV) komascript.md5 komascript.md5.bak + md5sum $(XDIST_FILES) > komascript.md5 + +00CONTEN: $(XDIST_FILES) komascript.md5 + $(LLL) $(XDIST_FILES) > 00CONTEN + $(LLL) 00CONTEN >> 00CONTEN + $(LLL) $(DIST_FILES) > 00CONTEN.TMP + $(MV) 00CONTEN.TMP 00CONTEN + +00README: + $(ECHO) $(GERMREADME) > 00README + $(ECHO) $(ENGREADME) >> 00README + +######################################################################## diff --git a/Master/texmf-dist/source/latex/koma-script/genindex.pl b/Master/texmf-dist/source/latex/koma-script/genindex.pl new file mode 100644 index 00000000000..dc17a23bb72 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/genindex.pl @@ -0,0 +1,197 @@ +#! /usr/bin/perl -w +eval 'exec perl -S $0 ${1+"$@"}' + if 0; #$running_under_some_shell + +# ====================================================================== +# genindex.pl +# Copyright (c) Markus Kohm, 2002 +# +# This file is part of the LaTeX2e KOMA-Script-Bundle +# +# This file can be redistributed and/or modified under the terms +# of the LaTeX Project Public License Version 1.0 distributed +# together with this file. See LEGAL.TXT or LEGALDE.TXT. +# +# This bundle is written specialy for use at german-language. So the +# main documentation is german. There is also a english documentation, +# but this is NOT up-to-date. +# ---------------------------------------------------------------------- +# genindex.pl +# Copyright (c) Markus Kohm, 2002 +# +# Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +# +# Diese Datei kann nach den Regeln der LaTeX Project Public +# Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +# wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +# auch LEGAL.TXT oder LEGALDE.TXT. +# +# Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist +# auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +# englische Version der Anleitung, diese hinkt der deutschen Anleitung +# jedoch fast immer hinterher. +# ====================================================================== +# This perl scripts splits the index of scrguide or scrguien into +# several files, each with one index section. +# +# Usage: genindex.pl +# +# If has no extension ``.ind'', this extension will be added. +# ---------------------------------------------------------------------- +# Dieses perl Script spaltet den Index des scrguide in mehrere getrennte +# Dateien auf, von denen jede jeweils einen Index-Abschnitt enthält. +# +# Verwendung: genindex.pl +# +# Wenn die ohne Endung ".ind" angegeben wird, so wird diese +# Endung automatisch angehängt. +# ====================================================================== + +use strict; +use Fcntl; + +my $indexinput = $ARGV[0]; +my $indexbase; +my $line; +my $entry = ""; +my %indfile; + +$indexinput = "$indexinput.ind" if ( ! ( $indexinput =~ /^.*\.ind\z/ ) ); +$indexbase = $1 if $indexinput =~ /^(.*)\.ind/; + +print "Generate multiindex for $indexinput\n"; + +# pass 1: search for and open destination index files +open (IDX, "<$indexinput") || + die "Cannot open $indexinput for reading\n"; +print "Search for index:\n"; +while ( ) { + if ( /\\UseIndex *\{([^\}]*)\}/ ) { + my $file; + if ( !$indfile{"$1"} ) { + print " Open new index $indexbase-$1.ind\n"; + open ( $file, ">$indexbase-$1.ind" ) || + die "Cannot open $indexbase-$1.ind for writing\n"; + $indfile{"$1"} = $file; + } + } +} +# we must have a general index +if ( !$indfile{"gen"} ) { + print " Open new index $indexbase-gen.ind\n" ; + open ( $indfile{"gen"}, ">indexbase-gen.ind" ) || + die "Cannot open $indexbase-gen.ind for writing\n"; +} + +# pass 2: copy to destination index files +seek (IDX, 0, 0) || + die "Cannot rewind $indexinput\n"; +print "Copy entries:\n"; +# step 1: copy to every index file until first \indexsectione +while ( defined( ( $line = ) ) + && ( ! ( $line =~ /^( *\\indexsection *\{)/ ) ) ) { + printtoallind( "$line" ); + $line = ""; +} +# copy also \indexsection-line +printtoallind( "$line" ); + +# step 2: read complete \indexsection, \indexspace, \item, \subitem or +# \subsubitem and process it (= copy it to destination index files) +while ( $line = ) { + if ( $line =~ /^ *((\\indexsection|\\end) *\{|\\indexspace)/ ) { + processentry( "$entry" ); + $entry = ""; + printtoallind( "$line" ); + } elsif ( $line =~ /^ *\\(sub(sub)?)?item +/ ) { + processentry( "$entry" ); + $entry = $line; + } else { + $entry = "$entry$line"; + } +} + +close (IDX); +closeallind (); + +# post optimization of all destination index files +print "Optimize every index:\n"; +optimizeallind (); + +exit; + +# close all destination index files +sub closeallind { + my $name; + my $file; + while (($name,$file) = each %indfile) { + print " Close $indexbase-$name.ind\n" ; + close ($file); + $indfile{"$name"}=0; + } +} + +# optimize all destination index files +sub optimizeallind { + my $name; + my $file; + while (($name,$file) = each %indfile) { + print " $indexbase-$name.ind\n"; + optimizeind( "$name" ); + } +} + +# print arg 1 to all destination index files +sub printtoallind { + my $line = shift; + my $name; + my $file; + while (($name,$file) = each %indfile) { + print ($file $line); + } +} + +# process an index entry (copy it to valid destination index files) +sub processentry { + my $line = shift; + my $file = $indfile{"gen"}; + if ( $line =~ /\\UseIndex *\{([^\}]*)\} *(.*)/ ) { + $file = $indfile{"$1"}; + print ($file $line); + } else { + print ($file $line); + } +} + +# optimize an index files (remove \indexsection without \item) +sub optimizeind { + my $idx = shift; + my $interstuff = ""; + my $line; + + open (IN, "<$indexbase-$idx.ind" ) || + die "Cannot open $indexbase-$idx.ind for reading"; + open (OUT, ">$indexbase-$idx.new" ) || + die "Cannot open $indexbase-$idx.new for writing"; + + while ( $line= ) { + if ( $line =~ /^ *\\indexspace/ ) { + $interstuff = "\n$line"; + } elsif ( ( $line =~ /^ *\\indexsection *\{/ ) || + ( $line =~ /^$/ ) ) { + $interstuff = "$interstuff$line"; + } else { + print (OUT $interstuff) if ( !( $interstuff =~ /^$/ ) + && !( $line =~ /^ *\\end\{theindex\}/ ) ); + $interstuff = ""; + print (OUT $line); + } + } + + close (OUT); + close (IN); + unlink "$indexbase-$idx.ind" || + die "Cannot delete $indexbase-$idx.ind"; + rename "$indexbase-$idx.new", "$indexbase-$idx.ind" || + die "Cannot rename $indexbase-$idx.new to §indexbase-$idx.ind"; +} diff --git a/Master/texmf-dist/source/latex/koma-script/koma-script.tex b/Master/texmf-dist/source/latex/koma-script/koma-script.tex new file mode 100644 index 00000000000..05e02001557 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/koma-script.tex @@ -0,0 +1,26 @@ +\documentclass{scrartcl} +\usepackage{hyperref} +\begin{document} +\section*{Hello} +I think you are searching for the \KOMAScript{} documentation. You may +find the englisch documentation at +\ifpdfoutput{% + \href{scrguien.pdf}{\texttt{scrguien.(dvi|ps|pdf)}}% +}{% + \href{scrguien.ps}{\texttt{scrguien.(dvi|ps|pdf)}}% +}. + +\section*{Hallo} +Ich nehme an, dass Sie nach der Dokumentation zu \KOMAScript{} +suchen. Sie k\"onnen die deutsche Dokumentation in +\ifpdfoutput{% + \href{scrguide.pdf}{\texttt{scrguide.(dvi|ps|pdf)}}% +}{% + \href{scrguide.ps}{\texttt{scrguide.(dvi|ps|pdf)}}% +} finden. +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/komabug.tex b/Master/texmf-dist/source/latex/koma-script/komabug.tex new file mode 100644 index 00000000000..e17d4770fdd --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/komabug.tex @@ -0,0 +1,991 @@ +%% ====================================================================== +%% komabug.tex +%% Copyright (C) 1995-2004 Markus Kohm +%% Version 2004-02-09 +%% +%% This file is part of the LaTeX2e KOMA-Script-Bundle +%% +%% This file can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Version 1.0 distributed +%% together with this file. See LEGAL.TXT or LEGALDE.TXT. +%% +%% This bundle is written specialy for use at german-language. So the +%% main documentation is german. There is also a english documentation, +%% but this is NOT up-to-date. +%% ---------------------------------------------------------------------- + +%% +%% @ is a letter +%% +\catcode`\@=11 + +%% +%% Grab the initex file list +%% +%% If this file is called via +%% latex "\input{latexbug}" or some +%% similar command sequence rather than +%% latex latexbug +%% then the debugging info in \reserved@a will already have been lost. +%% This might not matter, but if it does we may ask the user to resubmit +%% the report. +\ifx\reserved@b\@undefined + \ifx\reserved@a\@gobble + \def\@inputfiles{NONE} + \else + \let\@inputfiles\reserved@a + \fi +\else + \def\@inputfiles{LOST} +\fi + +%% +%% Output stream to produce the bug report template. +%% +\newif\ifinteractive\interactivetrue +\newwrite\@msg +\immediate\openout\@msg=\jobname.msg +\immediate\write\@msg{% +An fatal error occured before writing anything to the message file.^^J% +You should have a look at \jobname.log to see the reason of the error.^^J% +^^J% +Maybe you didn't use an interactive terminal to run ``latex komabug''.^^J% +At this case you should try an interactive terminal or add^^J% +\space\space\space\space\string\interactivefalse^^J% +to your local ``komabug.cnf'' to create an empty message.^^J% +You have to edit that message file after creating the empty message.^^J% +} +\immediate\closeout\@msg\let\msg\m@ne + +%% +%% We have no end line char (so we have no paragraphs) +%% +\endlinechar=-1 + +%% +%% Check that LaTeX2e is being used. +%% +\ifx\undefined\newcommand + \newlinechar`\^^J% + \immediate\write17{^^J% + You must use LaTeX2e to generate the bug report!^^J^^J% + Sie muessen LaTeX2e verwenden, um die Fehlermeldung zu erzeugen!}% + + \let\relax\end +\else + \def\@tempa{LaTeX2e}\ifx\@tempa\fmtname\else + \immediate\write17{^^J% + You must use LaTeX2e to generate the bug report!^^J^^J% + Aeltere Versionen von LaTeX werden nicht unterstuetzt.^^J% + Sie muessen LaTeX2e verwenden, um die Fehlermeldung zu erzeugen!}% + \let\relax\@@end +\fi\fi + +%% +%% \wmsg writes to the terminal, and the .msg file +%% \wmsg* just writes to the .msg file +%% \typeout just writes to the terminal +%% + +\def\wmsg{% + \ifnum\msg<0\relax\let\msg\@msg\immediate\openout\msg=\jobname.msg\fi + \begingroup + \@ifstar {\interactivefalse\@wmsg}{\@wmsg} +} + +\def\@wmsg#1{% + \ifinteractive\immediate\write17{#1}\fi% + \immediate\write\msg{#1}% + \endgroup +} + +%% +%% Prompt for an answer from the user, if the answer is not +%% provided by the cfg file. +%% + +\def\readifnotknown#1{% + \@ifundefined{#1}% + {{\message{#1> }% + \catcode`\^^I=12 \let\do\@makeother\dospecials + \global\read\m@ne t\expandafter o\csname#1\endcsname}}% + {\message{\csname#1\endcsname}}} + +%% +%% Get number +%% #1 = message +%% #2 = max value +%% --> \answer +%% +\def\scannumber#1{\@tempswatrue + \typeout{`#1'}% + \def\@tempa{\expandafter\@scannumber\expandafter0#1\@nil}% + \edef\@tempa{\@tempa}% + \count@\@tempa\relax + \if@tempswa\else\count@\z@\relax\fi +}% +\def\@scannumber#1{% + \ifx\@nil#1\else + \if 0#1#1\else + \ifnum 0<0#1 #1\else + \noexpand\@tempswafalse% + \fi + \fi + \expandafter\@scannumber + \fi +}% +\def\ReadNumber#1#2{% + \typeout{#1}% + \ifenglish + \message{Input the corresponding number between 1 and #2: }% + \else + \message{Geben Sie die betreffende Zahl zwischen 1 und #2 ein: }% + \fi + \count@=\z@\relax + \read\m@ne to \answer + \scannumber{\answer}% + \ifnum\count@>\number#2\relax + \count@=\z@\relax + \fi +% \typeout{\the\count@ > 0?}% + \ifnum\count@>\z@\relax +% \typeout{YES}% + \advance\count@ by \m@ne + \edef\answer{\the\count@}% + \message{^^J}% + \else +% \typeout{NO}% + \ifenglish + \typeout{Value not valid!}% + \else + \typeout{Wert nicht im erlaubten Bereich!}% + \fi + \pause + \def\@tempa{\ReadNumber{#1}{#2}}% + \expandafter\@tempa + \fi +} + +%% +%% Get Yes or No +%% #1 Question +%% --> \if@tempswa (yes is true, no is false) +%% +\def\ReadYesNo#1{% + \typeout{#1}% + \ifenglish + \message{Answer `yes' or `no': }% + \read\m@ne to \answer + \else + \message{Antworten Sie bitte mit `ja' oder `nein': }% + \read\m@ne to \answer + \edef\answer{\uccode`\expandafter\@car\answer\@nil} + \ifnum \answer=`J \def\answer{\uccode`Y}\fi + \fi + \def\@tempa{\message{^^J}}% + \ifnum \answer=`Y \@tempswatrue + \else + \ifnum \answer=`N \@tempswafalse + \else + \ifenglish + \typeout{Answer not valid!}% + \else + \typeout{Antwort unverstaendlich!}% + \fi + \def\@tempa{\ReadYesNo{#1}}% + \fi + \fi + \@tempa +} + +%% +%% Pause so messages do not scroll off screen. +%% +\def\pause{% + \ifinteractive + \ifenglish + \message{Press to continue. }% + \else + \message{Mit der -Taste geht es weiter. }% + \fi + \read\m@ne to \@tempa + \message{^^J}% + \fi +} + +%% +%% german or english report generator +%% +\newif\ifenglish\englishfalse + +%% +%% Opening Banner. +%% + +\InputIfFileExists{komabug.cfg}{% + \ifenglish + \typeout{** using komabug.cfg **}% + \else + \typeout{** komabug.cfg wird verwendet **}% + \fi +}{} + +\ifenglish + \typeout{^^J% + ============================================================^^J% + ^^J% + KOMA bug report generator^^J% + =========================^^J% + Running this file through LaTeX generates a formular ``\jobname.msg''^^J% + containing a bug report to KOMA-Script bundle.^^J^^J% + * Please use german, if possible.^^J \space + If you're not able to use german, write the report in english.^^J% + * Please write a short report not a large one.^^J% + * Please tell me everything, which may be important.^^J} + \pause +\else + \typeout{^^J% + ============================================================^^J% + ^^J% + KOMA-Script Fehlermeldungsgenerator^^J% + ===================================^^J% + Die Bearbeitung dieser Datei mit LaTeX erzeugt das Formular \jobname.msg,^^J% + um Fehlermeldungen zum KOMA-Script-Paket zu melden.^^J^^J% + * Schreiben Sie Ihre Meldung nach Moeglichkeit in Deutsch.^^J \space + Notfalls ist auch Englisch moeglich.^^J% + * Bitte fassen Sie sich kurz.^^J% + * Bitte halten Sie keine Information zurueck, die moeglicherweise^^J \space + wichtig sein koennte.^^J}% + \typeout{% + If you prefere english, you may write a file ``komabug.cfg'' with\space + contents:^^J\space + \string\englishtrue^^J% + at same folder as ``komabug.tex'' and restart ``latex komabug.tex''.^^J}% + \englishtrue\pause\englishfalse +\fi + +%% +%% if \interactivefalse just make a blank template. +%% + +\ifinteractive + \ifenglish + \ReadYesNo{% + There are two kinds of using this generator.^^J% + At the interactive mode, you have to answer questions. At the other^^J% + mode an empty formular will be generated, you have to fill using^^J% + an editor.^^J^^J% + Do you want an interactive session? + }% + \else + \ReadYesNo{% + Dieser Generator kann auf zwei Arten verwendet werden.^^J% + Im interaktiven Betrieb, werden Ihnen Fragen zur direkten + Beantwortung^^J% + gestellt. Ansonsten wird ein leeres Formular erzeugt, das Sie dann + mit^^J% + einem Editor ausfuellen muessen.^^J^^J% + Wollen Sie eine interaktive Sitzung? + }% + \fi + \if@tempswa\interactivetrue\else\interactivefalse\fi +\fi + +%% +%% Fatal error +%% +\def\fatalerror#1{% + \ifenglish + \errhelp{This error is fatal! You cannot continue.^^J% + You should terminate using `x' and restart ``latex komabug''.}% + \errmessage{#1}% + \else + \errhelp{Dieser Fehler erlaubt keine Fortsetzung der Bearbeitung.^^J% + Sie sollten mit `x' abbrechen und ``latex komabug'' neu starten.}% + \errmessage{#1}% + \fi + \batchmode\csname @@end\endcsname + \fatalerror{#1}% +} + +%% +%% Try to get Version +%% +\def\GetFileVersionWithExtend#1#2{% + \def\ProvidesFile##1{\@ifnextchar [{\@P@F}{\@P@F[1996/10/31 ]}}% + \def\@P@F[##1 ##2]{\xdef\komaversion{##1}\csname endinput\endcsname}% + \let\ProvidesClass\ProvidesFile + \let\ProvidesPackage\ProvidesFile + \InputIfFileExists{#1#2}{}{% + \ifenglish + \def\noscrclass{% + ! File ``#1#2'' not found!^^J% + ! The file must be at the same folder like ``komabug.tex''^^J% + ! or must be readable by LaTeX to get the version information!}% + \else + \def\noscrclass{% + ! Die Datei ``#1#2'' konnte nicht gefunden werden!^^J% + ! Zur Bestimmung der aktuellen Version ist es unbedingt^^J% + ! erforderlich, dass diese Datei sich im selben Verzeichnis^^J% + ! wie ``komabug.tex'' befindet oder zumindest von LaTeX^^J% + ! gefunden werden kann!}% + \fi + \errmessage{\noscrclass} + \ifenglish + \errhelp{Terminate TeX using `x' and restart komabug} + \else + \errhelp{Beenden Sie TeX mit `x' und starten Sie komabug neu} + \fi + }% +} +\def\GetVersion#1{% + \GetFileVersionWithExtend{#1}\@empty +} + +\ifinteractive + \ifenglish + \ReadNumber{% + There are several categories, related to several parts and files^^J% + of the KOMA-Script bundle:^^J^^J + 1) Installation of KOMA-Script^^J + 2) KOMA-Script manual^^J + 3) Basics (scrbook, scrreprt, scrartcl, scrlttr2, typearea, scrlfile)^^J + 4) Pagestyle definition (scrpage2)^^J + 5) Time or date (scrtime, scrdate)^^J + 6) Address file handling (scraddr)^^J + 7) Obsolete (scrlettr, scrpage)^^J% + }{7}% + \else + \ReadNumber{% + Verschiedene Bereiche werden von diesem Generator unterstuetzt, die^^J% + sich auf verschiedene Dateien im KOMA-Script-Paket beziehen:^^J^^J + 1) Auspacken und Installieren von KOMA-Script^^J + 2) KOMA-Script-Anleitung^^J + 3) Grundfunktion (scrbook, scrreprt, scrartcl, scrlttr2, typearea, + scrlfile)^^J + 4) Definition von Seitenstilen (scrpage2)^^J + 5) Zeit oder Datum (scrtime, scrdate)^^J + 6) Umgang mit Adressdateien (scraddr)^^J + 7) Obsoletes (scrlettr, scrpage)^^J% + }{7}% + \fi + + \ifcase\expandafter\number\answer + % 1 + \def\category{Installation}\GetVersion{scrclass.dtx} + \let\categoryversion\komaversion + \or + % 2 + \def\category{Manual}\GetVersion{scrartcl.cls} + \let\categoryversion\komaversion + \or + % 3 + \def\category{Basics}\GetVersion{scrartcl.cls} + \let\categoryversion\komaversion + \or + % 4 + \def\category{Addons, scrpage2}\GetVersion{scrpage2.sty}% + \let\categoryversion\komaversion\GetVersion{scrartcl.cls} + \or + % 5 + \def\category{Addons, scrtime/date}\GetVersion{scrtime.sty}% + \let\categoryversion\komaversion\GetVersion{scrartcl.cls} + \or + % 6 + \def\category{Addons, scraddr}\GetVersion{scraddr.sty}% + \let\categoryversion\komaversion\GetVersion{scrartcl.cls} + \or + % 7 + \ifenglish + \typeout{These obsolete parts of KOMA-Script are unsupported!^^J% + You should use scrlttr2 instead of scrlettr and scrpage2 instead of + scrpage.} + \else + \typeout{Fuer diese obsoleten Teile von KOMA-Script gibt es keinen + Support mehr!^^J% + Sie sollten scrlttr2 an Stelle von scrlettr bzw. scrpage2 an Stelle + von^^J% + scrpage verwenden.} + \fi + \batchmode\csname @@end\endcsname + \fi +\else% \ifinteractive + \ifenglish + \def\category{} + \def\categoryversion{} + \else + \def\category{} + \def\categoryversion{} + \fi + \GetVersion{scrartcl.cls} +\fi + +\ifinteractive + \ifenglish + \typeout{^^J% + ===========================================================^^J% + ^^J% + Please give a one line description (< 50 chars) of your problem.% + ^^J^^J% + If your using email for sending the report, please use this^^J% + description as subject, too:% + ^^J \@spaces\@spaces\space + |<------------------------------------------------>|} + \else + \typeout{^^J% + ============================================================^^J% + ^^J% + Bitte eine einzeilige (< 50 Zeichen) Beschreibung des Problems.% + ^^J^^J% + Wenn Sie fuer die Meldung eMail verwenden, setzen Sie diese + Beschreibung^^J% + bitte auch als Betreff (`Subject') der eMail ein:% + ^^J \@spaces\@spaces\space + |<------------------------------------------------>|} + \fi + \loop + \let\synopsis\relax + \readifnotknown{synopsis} + \ifx\synopsis\@empty + \repeat +\else%\ifinteractive + \ifenglish + \def\synopsis{} + \else + \def\synopsis{} + \fi +\fi + +%% +%% Header in the msg file. +%% +\ifenglish + \wmsg*{^^J% + KOMA bug report.^^J% + \ifinteractive Interactive \else Formular \fi + generated using komabug.tex at + \space\number\year-\two@digits\month-\two@digits\day.^^J% + ^^J + You may send this message to komascript@gmx.info.^^J% + If you do so, please use subject:^^J% + \space KOMA-BUG:\space\synopsis^^J% + ============================================================^^J + } +\else + \wmsg*{^^J% + KOMA-Fehlermeldung.^^J% + \ifinteractive Interaktiv \else Formular \fi + erzeugt mit komabug.tex am + \space\number\year-\two@digits\month-\two@digits\day.^^J% + ^^J% + Die Meldung kann per E-Mail an komascript@gmx.info^^J% + verschickt werden.^^J% + Bitte verwenden Sie dabei als Betreff:^^J% + \space KOMA-BUG:\space\synopsis^^J% + ============================================================^^J + } +\fi + +%% +%% Category of bug, obtained earlier but put out now, after the header. +%% +\wmsg{>Bereich: \category} +\wmsg{>Version: \categoryversion} + +%% +%% synopsis of bug, obtained earlier but put out now, after the header. +%% +\wmsg{>Betreff: \synopsis} + +\begingroup + \global\let\format\@empty + \gdef\hyphenation{standard} + \def\immediate#1#{\xdef\hyphenation} + \def\typeout#1{\xdef\format{\format#1}} + \the\everyjob +\endgroup + +\wmsg{>Format: \format} + +\wmsg{>KOMA-Script: \komaversion} + +\ifinteractive +%% +%% if interactive, \wread reads a line (verbatim) and write it to the +%% .msg file, until a blank line is entered. +%% + \def\wread{{% + \catcode`\^^I=12 + \let\do\@makeother\dospecials + \let\lastanswer\answer + \message{=> }\read\m@ne to \answer + \ifx\lastanswer\@empty + \let\lastanswer\answer + \fi + \ifx\lastanswer\@empty + \else + \immediate\write\msg{\answer} + \expandafter\wread + \fi + }% + } +\else +%% +%% If non-interactive, \wread just writes a blank line to the .msg file, +%% and \wmsg does not write to the terminal. +%% + \def\wread{\wmsg{}} +\fi + +%% +%% \copytomsg copies the contents of a file into the .msg file. +%% (at least it does it as well as TeX can, so there may be +%% transcription problems with 8-bit characters). +%% +%% It does a line count, and complains if the test file is +%% too large. + +\chardef\inputfile=15 + +\newcount\linecount + +\def\copytomsg#1{{% + \endlinechar=-1 + \def\do##1{\catcode`##1=11}% + \dospecials + \global\linecount\z@ + \openin\inputfile#1\relax + \def\thefile{#1}% + \@copytomsg + \closein\inputfile}} + +\def\@copytomsg{% + \ifeof\inputfile + \typeout{*** \thefile\space Zeilen = \the\linecount} + \else + \global\advance\linecount\@ne + \read\inputfile to \inputline + \ifx\inputline\@empty + \wmsg*{} + \else + \wmsg*{\inputline} + \fi + \expandafter\@copytomsg + \fi} + + +%% +%% Test the age of the current format. +%% +\def\getage#1/#2/#3\@nil{% + \count@\year + \advance\count@-#1\relax + \multiply\count@ by 12\relax + \advance\count@\month + \advance\count@-#2\relax} +% +\expandafter\getage\fmtversion\@nil +%% +%% \count@ should now be the age of the format in months. +%% +\ifnum\count@>24 + \ifenglish + \def\oldformat{^^J% + ! Your LaTeX installation is older than two years.^^J% + ! Updating woul dbe a good idea before sending this report.^^J% + ! You should compare the date of the package with the date of^^J + ! the used LaTeX version. If LaTeX is more than two years older^^J + ! than KOMA-Script, this could be the reason of the problem.} + \errhelp{If you want to continue, press .} + \else + \def\oldformat{^^J% + ! Ihre LaTeX-Installation ist ueber zwei Jahre alt.^^J% + ! Bitte denken Sie ueber ein Update nach, ehe Sie diese Meldung^^J% + ! abschicken.^^J% + ! Vergleichen Sie wenigstens das Datum des Paketes mit dem Datum^^J% + ! der LaTeX-Version. LaTeX sollte nicht mehr als zwei Jahre aelter^^J% + ! als KOMA-Script sein. Ansonsten koennte der Fehler in einer^^J% + ! Unvertraeglichkeit zwischen Format- und Paketversion liegen.} +%% +%% Put the message in a macro to improve the look of the error mesage. +%% +% + \errhelp{Wenn Sie dennoch fortfahren wollen, druecken Sie einfach .} + \fi + \errmessage{\oldformat} +\fi +% +\expandafter\getage\komaversion\@nil +\ifnum\count@>18 + \ifenglish + \def\oldversion{^^J% + ! Your KOMA-Script installation is older than one year.^^J% + ! You should check for an update, bevor you're sending this message.^^J + ! You should compare the date of the package with the date of^^J + ! the used LaTeX version. If LaTeX is years younger than KOMA-Script,^^J + ! this could be the reason of the problem.} + \errhelp{If you want to continue, press .} + \else + \def\oldversion{^^J% + ! Ihre KOMA-Script-Version ist ueber ein Jahr alt.^^J% + ! Bitte denken Sie ueber ein Update nach, ehe Sie diese Meldung^^J% + ! abschicken.^^J% + ! Vergleichen Sie wenigstens das Datum des Paketes mit dem Datum^^J% + ! der LaTeX-Version. LaTeX sollte nicht Jahre juenger als KOMA-Script sein.^^J% + ! Ansonsten koennte der Fehler in einer Unvertraeglichkeit zwischen^^J% + ! Format- und Paketversion liegen.} + \errhelp{Wenn Sie dennoch fortfahren wollen, druecken Sie einfach .} + \fi + \errmessage{\oldversion} +\fi + + +%% +%% Now use \wmsg and \wread for each of the multi-line fields +%% in the form. Currently one-line fields use \read directly. +%% +\ifinteractive + \ifenglish + \typeout{^^JYour name:} + \else + \typeout{^^JIhr Name:} + \fi + \readifnotknown{name} +\else + \ifx\name\undefined + \ifenglish + \def\name{} + \else + \def\name{} + \fi + \fi +\fi + + +\ifinteractive + \ifenglish + \typeout{^^JYour address (email if possible):} + \else + \typeout{^^JIhre Adresse (eMail bevorzugt):} + \fi + \readifnotknown{address} +\else + \ifx\address\undefined + \ifenglish + \def\address{} + \else + \def\address{} + \fi + \fi +\fi + + +\ifinteractive + \ifenglish + \typeout{^^JYour computer system (z. B. Atari, Linux, Mac, Win98SE):} + \else + \typeout{^^JDas verwendete Computersystem (z. B. Atari, Linux, Mac, Win98SE):} + \fi + \readifnotknown{computersystem} +\else + \ifx\computersystem\undefined + \ifenglish + \def\computersystem{} + \else + \def\computersystem{} + \fi + \fi +\fi + + +\wmsg*{>Adresse: \name\space<\address>} + +%% +%% >Organisation: is really a GNATS multiline field +%% but we treat it as a one-line field. +%% +\wmsg*{>Organisation: \ifx\organisation\undefined + \ifx\organization\undefined\else + \organization + \fi + \else + \organisation + \fi} + + +%% +%% Test which format is being used. These fields are completed +%% automatically even if the blank template is being produced. +%% + +\wmsg*{>Voraussetzungen:} +\wmsg*{ \string\@TeXversion: \meaning\@TeXversion + \ifx\@TeXversion\@@undefined + \space (Standardeinstellung fuer TeX3.141 und spaeter)\fi} +\wmsg*{ \string\@currdir: \meaning\@currdir} +\wmsg*{ \string\input@path: \meaning\input@path + \ifx\input@path\@@undefined + \space (Standardeinstellung)\fi} +\wmsg*{ System: \computersystem} + +\wmsg*{>Beschreibung:} +\ifinteractive + \ifenglish + \typeout{% + Description of your problem:^^J^^J% + \@spaces You can use multiple lines (each is askes by the prompt^^J% + \@spaces ``=>'').^^J% + \@spaces Use two blank lines to finish your answer.} + \else + \typeout{% + Beschreibung des Problems:^^J^^J% + \@spaces Die Beantwortung dieser Frage kann mehrere Zeilen^^J% + \@spaces einnehmen (jede wird durch die Eingabeaufforderung^^J% + \@spaces ``=>'' eingeleitet).^^J% + \@spaces Durch zwei aufeinanderfolgende Leerzeilen wird die^^J% + \@spaces Antwort beenden.} + \fi +\else + \ifenglish + \wmsg{} + \else + \wmsg{} + \fi +\fi +\wread + + +%% +%% insertion of the test file +%% +\ifinteractive + \ifenglish + \typeout{^^J% + Name of a short self describing file, which shows the problem^^J% + (file should be as short as possible, not more than 60 lines):^^J^^J% + If the file is not at current directory please enter the hole^^J% + name (directory inclusive), so LaTeX may load it.^^J^^J% + If no testfile exists, because your not reporting a bug at a class^^J% + or package, simply press .} + \else + \typeout{^^J% + Name einer KURZEN, SELBSTERKLAERENDEN Datei, bei der das Problem^^J% + auftritt (die Datei sollte wirklich so kurz wie moeglich sein,^^J% + nicht mehr als 60 Zeilen):^^J^^J% + Damit LaTeX diese Datei einlesen kann, geben Sie bitte den kompletten^^J% + Namen einschliesslich des Verzeichnisses an, falls die Datei nicht im^^J% + aktuellen Verzeichnis zu finden ist.^^J^^J% + Falls Sie keinen Fehler in einer der Klassen oder Pakete melden und^^J% + daher keine Testdatei existiert, druecken Sie einfach .} + \fi + \message{filename> }\read\m@ne to \filename +\else + \let\filename\@empty +\fi + +%% +%% Try to find the .tex file and .log file +%% + + +\ifx\filename\@empty + \ifinteractive + \ifenglish + \ReadNumber{^^J^^JNo Testfile.^^J^^J% + Three kinds of reports are possible:^^J^^J% + 1) SW bug:^^J\@spaces + Software bug, you have to add a test file!^^J + 2) DOC bug:^^J\@spaces + Bug at manual or you do not understand the manual.^^J + 3) Ask for change:^^J\@spaces + Not a bug, but you'd like a change or simply help.^^J}{3} + \else + \ReadNumber{^^J^^JKeine Testdatei.^^J^^J% + Drei Arten von Meldungen werden unterstuetzt:^^J^^J% + 1) SW-Fehler:^^J\@spaces + Software-Fehler, unbedingt eine Testdatei beilegen!^^J + 2) DOC-Fehler:^^J\@spaces + Fehler in oder unverstaendliche Anleitung.^^J + 3) Aenderungswunsch:^^J\@spaces + Kein Fehler sondern eine Frage nach Aenderung oder Hilfe.^^J}{3} + \fi + \else + \def\answer{0}% + \fi +\else + \def\answer{0}% + \filename@parse\filename + + \IfFileExists{\filename}{\edef\samplefile{\filename}% + \IfFileExists{\filename@area\filename@base.log}{% + \edef\logfile{\filename@area\filename@base.log}% + }{% + \IfFileExists{\filename@area\filename@base.lis}{% + \edef\logfile{\filename@area\filename@base.lis}% + }{% + \ifenglish + \typeout{^^J% + Log file ``\filename@area\filename@base.log'' not found.^^J% + Please add the log file at ``\jobname.msg''.}% + \else + \typeout{^^J% + Logdatei ``\filename@area\filename@base.log'' nicht gefunden.^^J% + Bitte ergaenzen Sie das Beispiel in ``\jobname.msg''.}% + \fi + \pause + }% + }% + }{% + \ifenglish + \typeout{^^J% + Test file ``\filename'' not found.^^J% + Please add the test file at ``\jobname.msg''.} + \else + \typeout{^^J% + Beispieldatei ``\filename'' nicht gefunden.^^J% + Bitte ergaenzen Sie das Beispiel in ``\jobname.msg''.} + \fi + \pause + }% +\fi + +\ifcase\expandafter\number\answer + \ifinteractive\wmsg{>Unterbereich: SW-Fehler}\fi + \wmsg*{% + Beispieldatei, die das Problem verdeutlicht:^^J% + ============================================} + \ifx\samplefile\undefinedcommand + \ifenglish + \typeout{^^J! + Please add test file and log file at your report message!}% + \else + \typeout{^^J! + Bitte ergaenzen Sie Beispiel- und LOG-Datei in der Meldung!}% + \fi + \pause + \ifenglish + \wmsg*{} + \else + \wmsg*{} + \fi + \else + %% + %% The example file goes here: + %% + \copytomsg{\samplefile} + \ifnum\linecount>60 + \ifenglish + \typeout{% + ^^J% + !!! Your test file has \the\linecount\space lines.^^J% + !!! Large test files make it difficult to find the cause of the + problem:^^J% + !!! ^^J% + !!! Please decrease your test file as much as possible.^^J} + \else + \typeout{% + ^^J% + !!! Ihre Testdatei ist \the\linecount\space Zeilen lang.^^J% + !!! So grosse Testdateien erschweren die Ursachenfindung:^^J% + !!! ^^J% + !!! Bitte verkleinern Sie Ihre Testdatei, soweit das ueberhaupt^^J% + !!! moeglich ist, so dass das Problem gerade noch auftritt.^^J} + \fi + \pause + \fi + \fi + \wmsg*{^^J% + LOG-Datei vom LaTeX-Lauf der Beispieldatei:^^J% + ===========================================} + \ifx\logfile\undefinedcommand + \ifenglish + \typeout{^^J% + Log file of your test file not found.^^J% + Please add the log file of your test file at ``\jobname.msg''.} + \wmsg*{} + \else + \typeout{^^J% + Log-Datei zur Testdatei nicht gefunden.^^J% + Bitte ergaenzen Sie die LOG-Datei in ``\jobname.msg''.} + \wmsg*{} + \fi + \pause + \else + \copytomsg{\logfile} + \fi +\or + \wmsg{>Unterbereich: DOC-Fehler} + \or + \wmsg{>Unterbereich: Aenderungswunsch} +\fi + +%% +%% Closing Banner. +%% +\typeout{^^J% +============================================================} + +\ifinteractive + \ifenglish + \typeout{^^J% + You may edit file ``\jobname.msg'' for additional changes.} + \else + \typeout{^^J% + Weiteren Aenderungen koennen sie direkt in der Datei^^J% + ``\jobname.msg'' mit Hilfe eines Editors vornehmen.} + \fi +\else + \ifenglish + \typeout{^^J% + The formular of the report will be saved to ``\jobname.msg''.^^J% + Please use an editor to replace all information fields, before^^J% + sending it.} + \else + \typeout{^^J% + Das Formular fuer die Erstellung der Meldung wurde in die^^J% + Datei ``\jobname.msg'' geschrieben, die Sie bitte mit Hilfe^^J% + eines Editors ergaenzen, bevor Sie sie abschicken.} + \fi +\fi + +\let\ifinteractivetrue\iftrue +\ifenglish + \typeout{^^J% + Please send ``\jobname.msg'' to komascript@gmx.info using subject:^^J% + \@spaces ``KOMA-BUG:\space\synopsis''^^J% + ^^J% + Thank you for spending time for a bug report.} +\else + \typeout{^^J% + Wenn Sie ueber eMail verfuegen, so senden Sie ``\jobname.msg''^^J% + bitte an komascript@gmx.info.^^J% + Verwenden Sie dabei bitte als Betreff (Subject):^^J% + \@spaces ``KOMA-BUG:\space\synopsis''^^J% + ^^J% + Danke, dass Sie sich die Zeit genommen haben.} +\fi +\wmsg*{^^J% + ============================================================^^J + Ende der KOMA-Fehlermeldung.^^J% + ============================================================} + +%% +%% Close the .msg output stream. +%% +\immediate\closeout\msg + +%% +%% This is the TeX primitive \end command. +%% +\@@end + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/komascr.ins b/Master/texmf-dist/source/latex/koma-script/komascr.ins new file mode 100644 index 00000000000..9552e81c901 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/komascr.ins @@ -0,0 +1,89 @@ +\let\ifbeta\iffalse +%% +%% This file will generate fast loadable files from the dtx files in this +%% bundle when run through LaTeX or TeX. +%% +%% This file is part of the LaTeX2e KOMA-Script bundle +%% --------------------------------------------------- +%% +%% 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: +%% +%% Copyright 1994-2004 Markus Kohm, Frank Neukam and the individual authors. +%% All rights reserved. For further copyright information see the file +%% readme.txt or liesmich.txt, and any other copyright indicated in this +%% file. +%% +%% Permission is granted to distributed verbatim copies of this file +%% together with all other files of the KOMA-script bundle (as mentioned +%% in readme.txt and liesmich.txt). +%% +%% No other permissions to copy or distribute this file in any form +%% are granted and in particular no permission to modify its contents. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{komascr.ins} +\input docstrip.tex + +\ifToplevel{\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.3c or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname + \fi + \ifx\askonceonly\undefined\else\askonceonly\fi +} + +\preamble +\endpreamble + +\keepsilent + +\askforoverwritetrue + +\batchinput{scrclass.ins} +\batchinput{scrpage.ins} +\batchinput{scrtime.ins} + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\ifbeta +\Msg{* THIS IS A BETA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} +\Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!} +\Msg{* PLEASE INSTALL THE RELEASE YOU CAN FIND AT CTAN!} +\Msg{*} +\else +\Msg{* To finish the installation you have to move some} +\Msg{* files into a directory searched by TeX.} +\Msg{* See INSTALL.TXT (english) or INSTALLD.TXT (german)} +\Msg{* for more information.} +\Msg{*} +\Msg{* You may also produce the implementation-documentation,} +\Msg{* but you don't need. To produce it, run the files} +\Msg{* ending with `.dtx' through LaTeX after finishing the} +\Msg{* installation.} +\Msg{*} +\Msg{* To find the manual read readme.txt (english) or} +\Msg{* liesmich.txt (german).} +\Msg{*} +\Msg{* Happy TeXing} +\fi +\Msg{***********************************************************} +} + +\endinput +%% +%% end of file `komascr.ins' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/komascript.md5 b/Master/texmf-dist/source/latex/koma-script/komascript.md5 new file mode 100644 index 00000000000..fefa398a48c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/komascript.md5 @@ -0,0 +1,83 @@ +06b405d43cb62c6914b0d74ab624733b 00README +28e75245471122c7b7821a933657ab96 koma-script.pdf +28e75245471122c7b7821a933657ab96 komascript.pdf +28e75245471122c7b7821a933657ab96 komascr.pdf +00cff4fd40391e8003e81501c09ae47a scrguide.dvi +5671309a17f0687a1416660bac760dd4 scrguide.pdf +9b5d8f78e95fd22055294c684389a835 scrguien.dvi +622e9df86066f7f7aab9c69638fe5478 scrguien.pdf +ae18234c4212615498c7892512018d75 ChangeLog +3b8f6b6a5c34b88526d15f0abf8222c7 liesmich.txt +01a0a08a42e565f5e7713b49ffd1f0c5 readme.txt +a41ce442e2b223bf53c236f0a4443e47 LEGAL.TXT +1ce1eb2821673716e530d8263122c70f LEGALDE.TXT +ce73f6098ad7c430eb0490bda4932dc7 INSTALL.TXT +d70b7cc04582e4ef975740831b4b7ab0 INSTALLD.TXT +ba868669558acdee18f56471d28b3e17 scrclass.dtx +e2f955fe9111ab864f62083178b16863 scraddr.dtx +b9d8a7e86eae949f14c34ca99994268a scrlettr.dtx +131b28ba9cc9541f443f4344adf746f7 scrtime.dtx +43fbd9142dd3cc11c7cc6e09511e0ad1 scrpage.dtx +307cf346e44556e41c6032f6d142c7b6 scrlogo.dtx +70a7a3a01ee4311716767c30083c5833 komascr.ins +fef3e97cd91ce61920c8a1025d6dfc06 scrclass.ins +ab325b8831e09a1367afe7de399a8a47 scrtime.ins +aabf760e32188b2db83c3626e884d017 scrpage.ins +bc67e4bc8547887d68703a9246aa121b Makefile.unx +ccd7ced5e4e1480c9e6388f12b93b87c genindex.pl +ec56c213d0484c2a568e703b797128f2 koma-script.tex +90f873d63ee53d9644e2e1a3239b405d scrguide/scrguide2.tex +ace1881d2607b834108d8d3b0ebb7908 scrguide/einleit.tex +6264ee56e5016e0610099b242079df73 scrguide/satzspgl.tex +23d23defe6f41153a6917bfdbe23b540 scrguide/hauptcls.tex +b0be83196b78072bfac95db3480d9183 scrguide/layout.tex +3e0f436be94af4058d953697ac6bf42e scrguide/datmzeit.tex +f542a818239adddc8c0c4036b9b6306c scrguide/brief.tex +c8ac3fc94f59f8b78fc3003ad7a53d47 scrguide/adressen.tex +a9769b99d37a7743352245b3fd077540 scrguide/adrkonv.tex +88793695419a274261717ba9af7566f4 scrguide/datladen.tex +fcc400c51cda37578f9e1b7f021635b0 scrguide/scrguide.bib +e4d48819f651bea57c50b5f47e336fa8 scrguide/scrguide.bst +64fb807c7eb6541fd66762b9ad7e1254 scrguide/scrguide.dbj +47f74404ac4da6c8b08cd7f182054c4c scrguide/scrguide.mbs +8f6fdc1fb6aa001e3edbf1b292771f29 scrguide/scrguide.ist +985aebb1b92462b767a0f0f27569cea9 scrguide/scrguide.gst +c84a3e8c8644de7262dd2aa5e9d2283b scrguide/english/main.tex +90f873d63ee53d9644e2e1a3239b405d scrguide/english/scrguide2.tex +2378f6a740fb67c3fad024b04391b7e5 scrguide/english/introduc.tex +793bea73342c973d046c55113d527454 scrguide/english/pglayout.tex +d2836620361fb0028d88124e28f993d9 scrguide/english/maincls.tex +1b8bd1e6498a59e7bbdfc9bc09502c75 scrguide/english/headfoot.tex +4f0009a606d96f62b37ce22e1efe8060 scrguide/english/datetime.tex +57a711dbc94db77b6727c70221c987c1 scrguide/english/letter.tex +c746d95a26f3c6917601d2e7a254d584 scrguide/english/addressf.tex +263bc1d583424ab970812bd59c2b2fc4 scrguide/english/addrconv.tex +4cd46472127a888e9f31354b9f020544 scrguide/english/loadfile.tex +fcc400c51cda37578f9e1b7f021635b0 scrguide/english/scrguide.bib +2e4682e160598e1b9aab323a01fc69ee scrguide/english/scrguide-en.bst +335a685ef78b5fb3989f0cf523cf3e70 scrguide/english/scrguide-en.dbj +47f74404ac4da6c8b08cd7f182054c4c scrguide/english/scrguide.mbs +8f6fdc1fb6aa001e3edbf1b292771f29 scrguide/english/scrguide.ist +985aebb1b92462b767a0f0f27569cea9 scrguide/english/scrguide.gst +556e68f256ad0673e145cbc41a0685b3 scr_new1.tex +f7b6036334ee6c78f59352df0f49bfd2 scr_new2.tex +296c935559eb100201037560881bd0c7 scr_new3.tex +850a488c78d2d054970877195ae2e591 scr_new4.tex +7a0c6aa9c89ff7210f2184700492c822 scr_new5.tex +f53b35c63582e2fe64add882e51727e5 scr_new6.tex +457d766263a96521d6ec46935bd8a5eb scr_new7.tex +ff31caa0e1a55b07047f11b715f2f53d scr_new8.tex +d4bac24b73c28db3d4dca038a762ed46 scr_new9.tex +fe0ea8171d4f61ab08027255bdbd4e38 scrnew10.tex +60f42e0520c529e2b55b15ad54067119 scrnew11.tex +6f837765cdc31f1261ad2a62ecbc4d75 scrnew12.tex +42d47434e40192949a3d66d0a6f933b0 scrnew13.tex +a3ecd8cf3dc64d2397292cdb6df906cb scrnew14.tex +faf566ac9ce6e794f69be2b9ab065804 scrnew15.tex +8b51e2aaffa90a4faf6c078a79c6c1fa scrnew16.tex +65430a2ff29cdb23e22ccf061844ce8d scrnew17.tex +4aadcfa65c47dc6d93d6d8ae59050eaf scrnew18.tex +765fab301bcb53b08734d0a62ef0133d scrnew19.tex +7d2b8d2a0b47ac7f7e6b090297b0e012 scrnew20.tex +1383d5e92474a26f5e528f59d3b6e34a scrnew21.tex +e009d3261d3821c1ea512dce87c9969e komabug.tex diff --git a/Master/texmf-dist/source/latex/koma-script/liesmich.txt b/Master/texmf-dist/source/latex/koma-script/liesmich.txt new file mode 100644 index 00000000000..5004191c7c8 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/liesmich.txt @@ -0,0 +1,236 @@ +You'll find a english version of this text at readme.txt! + +KOMA-Script-Paket +================= + +Dieses Paket darf nur vollstaendig weitergegeben werden. Was +zwingender Bestandteil eines vollstaendigen Paketes ist, ist weiter +unten angegeben. + +Das Paket ist fuer den Gebrauch mit LaTeX2e konzipiert. Ich habe mir +groesste Muehe gegeben, es fehlerfrei und funktionsfaehig zu +bekommen. Dennoch garantiere ich fuer keinerlei Funktion oder +Fehlerfreiheit. + +Bezueglich Aenderungen, Haftung und weiteren rechtlichen Bedingungen +verweise ich auf die Datei LEGALDE.TXT, die zwingender Bestandteil des +Paketes ist. + +Die Dateien +----------- + +Alle mit Ausrufezeichen (!) markierten Dateien sind zwingender +Bestandteil des Gesamtpaketes. So markierte Dateien duerfen nur +zusammen und in gleicher Form weiterverbreitet werden. Dies bedeutet +insbesondere, dass nicht einige dieser Dateien ungepackt, andere jedoch in +Archiven (egal ob zip, tar, tar gepackt, cab oder andere) verpackt sein +duerfen. Davon abweichend duerfen alle zusaetzlich mit Kleinerzeichen (<) +markierte Dateien stattdessen auch in ein eigenes Archiv verpackt werden. +Alle nicht markierten Dateien sind optionale Bestandteile. Auf sie +darf auch verzichtet werden. Sie duerfen jedoch ebenfalls nicht ohne die mit +Ausrufezeichen markierten Dateien weiterverbreitet werden. Sie duerfen jedoch +wie die mit Kleinerzeichen markierte Dateien in getrennte Archive verpackt +werden. + + ChangeLog - Liste der Aenderungen seit dem 03.01.2001. + Makefile.unx - Makefile fuer die einfache Installation mit make. + ! komabug.tex - LaTeX-Datei zur Erzeugung eines Fehlereports. + VERWENDEN SIE UNBEDINGT DIESES DOKUMENT ZUR + ERZEUGUNG IHRER FEHLERMELDUNGEN! + ! komascr.ins - Installationstreiber fuer das Gesamtpaket, bindet + scrclass.ins, scrtime.ins und scrpage.ins + automatisch ein. + ! scrclass.ins - Installationstreiber fuer scrclass.dtx, + scrlettr.dtx und script20.dtx. + Wird von komascr.ins automatisch aufgerufen. + ! scrclass.dtx - Beinhaltet: + scrartcl.cls - KOMA-Script-Klasse als Ersatz fuer article.cls, + scrreprt.cls - KOMA-Script-Klasse als Ersatz fuer report.cls, + scrbook.cls - KOMA-Script-Klasse als Ersatz fuer book.cls, + scrlttr2.cls - KOMA-Script-Klasse als Ersatz fuer letter.cls, + typearea.sty - KOMA-Script-Paket zur Berechnung des + Satzspiegels, + scrlfile.sty - KOMA-Script-Paket mit Hooks fuer das Laden von + Dateien, Paketen und Klassen. + ! scrlettr.dtx - Beinhaltet: + scrlettr.cls - obsolete KOMA-Script-Klasse. + ! scrtime.ins - Installationstreiber fuer scrtime.dtx + (wird von komascr.ins automatisch aufgerufen). + ! scrtime.dtx - Beinhaltet: + scrtime.sty - KOMA-Script-Paket zur Ausgabe der Zeit, + scrdate.sty - KOMA-Script-Paket zur Ausgabe des Wochentags. + ! scrpage.ins - Installationstreiber fuer scrpage.dtx + (wird von komascr.ins automatisch aufgerufen). + ! scrpage.dtx - Beinhaltet: + scrpage.sty - obsoletes KOMA-Script-Paket, + scrpage2.sty - KOMA-Script-Paket zur Gestaltung von Kopf- und + Fussbereich der Seiten. + !< scrguide/ - Verzeichnis mit der deutschen Anwenderdokumentation, + enthaelt: + !< adressen.tex - Kapitel der Anleitung, + !< adrkonv.tex - Kapitel der Anleitung, + !< brief.tex - Kapitel der Anleitung, + !< datladen.tex - Kapitel der Anleitung, + !< datmzeit.tex - Kapitel der Anleitung, + !< einleit.tex - Kapitel der Anleitung, + !< hauptcls.tex - Kapitel der Anleitung, + !< layout.tex - Kapitel der Anleitung, + !< satzspgl.tex - Kapitel der Anleitung, + !< scrguide.bib - Literaturdatenbank, + !< scrguide.bst - Literaturstil, + !< scrguide.dbj - Treiber von custombib, + !< scrguide.ist - Indexstil, + !< scrguide.mbs - Modul fuer custombib, + !< scrguide2.tex - Hauptdatei der Anleitung (fuer die Uebersetzung + der Anleitung wird KOMA-Script benoetigt), + !< english/ - Verzeichnis mit der englischen + Anwenderdokumentation, enthaelt: + !< addrconv.tex - Kapitel der englischen Anleitung, + !< addressf.tex - Kapitel der englischen Anleitung, + !< datetime.tex - Kapitel der englischen Anleitung, + !< headfoot.tex - Kapitel der englischen Anleitung, + !< introduc.tex - Kapitel der englischen Anleitung, + !< letter.tex - Kapitel der englischen Anleitung, + !< loadfile.tex - Kapitel der englischen Anleitung, + !< main.tex - Sprachumschaltung fuer die englische Anleitung, + !< maincls.tex - Kapitel der englischen Anleitung, + !< pglayout.tex - Kapitel der englischen Anleitung, + !< scrguide-en.bst - Literaturstil, + !< scrguide-en.dbj - Treiber von custombib. + scrguide.dvi - Die fertige Anwenderdokumentation im DVI Format. + scrguide.ps - Die fertige Anwenderdokumentation im PS Format. + ! scrguide.pdf - Die fertige Anwenderdokumentation im PDF Format. + scrguien.dvi - Die fertige, englische Anwenderdokumentation im DVI + Format. + scrguien.ps - Die fertige, englische Anwenderdokumentation im PS + Format. + ! scrguien.pdf - Die fertige, englische Anwenderdokumentation im PDF + Format. + !< genindex.pl - Perl Skript zur Erzeugung des aufgeteilen Index in + der Anwenderdokumentation. + !< koma-script.tex - Wrapper fuer scrguide und scrguien. + ! koma-script.pdf - Fertiges Dokument von koma-script.tex. + ! komascript.pdf - Identisch mit koma-script.pdf. + ! komascr.pdf - Identisch mit koma-script.pdf. + !< scr_new1.tex - Informationen zur ersten Version von KOMA-Script. + !< scr_new2.tex - Weitere Informationen. + !< scr_new3.tex - Weitere Informationen. + !< scr_new4.tex - Weitere Informationen. + !< scr_new5.tex - Weitere Informationen. + !< scr_new6.tex - Weitere Informationen. + !< scr_new7.tex - Weitere Informationen. + !< scr_new8.tex - Weitere Informationen. + !< scr_new9.tex - Weitere Informationen. + !< scrnew10.tex - Weitere Informationen. + !< scrnew11.tex - Weitere Informationen. + !< scrnew12.tex - Weitere Informationen. + !< scrnew13.tex - Weitere Informationen. + !< scrnew14.tex - Weitere Informationen. + !< scrnew15.tex - Weitere Informationen. + !< scrnew16.tex - Weitere Informationen. + !< scrnew17.tex - Weitere Informationen. + !< scrnew18.tex - Weitere Informationen. + !< scrnew19.tex - Weitere Informationen. + !< scrnew20.tex - Weitere Informationen. + !< scrnew21.tex - Aktuelle Informationen. + scr_new1.dvi \ Obige bis auf die Endung (.tex statt .dvi) + ... > gleichnamigen Dateien im DVI-Format. + scrnew21.dvi / scrnew21.dvi UNBEDINGT lesen! + ! liesmich.txt - Das lesen Sie gerade. + ! readme.txt - Falls Ihnen Englisch lieber ist. + ! INSTALL.TXT - Die englische Installationsanleitung. + ! INSTALLD.TXT - Die deutsche Installationsanleitung. + ! LEGAL.TXT - Der englische Text mit den rechtlichen Bestimmungen. + ! LEGALDE.TXT - Der deutsche Text mit den rechtlichen Bestimmungen. + + Sollte eine oder mehrere der angegeben und mit Ausrufezeichen + markierten Dateien fehlen, so informieren Sie mich bitte umgehend + (auch darueber, woher Sie das Paket haben): + InterNet: komascript@gmx.info + Briefpost: Markus Kohm + Fichtenstrasse 63 + 68535 Edingen-Neckarhausen + + Sollten Sie mich unter keiner der angegebenen Adressen erreichen, + fragen Sie bitte in einer der folgenden Mailbox/News-Gruppen oder + bei dante@dante.de nach mir: + MausNet, Fido, Usenet: de.comp.text.tex + oder probieren Sie es einmal mit: + http://koma-script.net.tf + ++ HINWEIS: Das CVS des "KOMA-Script documentation project" gilt nicht ++ als Verbreitung im eigentlichen Sinne. Diesem und nur ++ diesem ist es gestattet, auf die generierten Dateien ++ (namentlich: scrguide.pdf) zu verzichten oder ++ BETA-Versionen weiter zu geben. + + + +Installation: +------------- + +Die folgende Installationsanleitung beschreibt den allgemeinen +Installationsvorgang. Wenn Sie ueber ein TDS-konformes TeX-System +verfuegen (das sollten alle neueren TeX-Systeme sein, beispielsweise +teTeX, MikTeX, emTeX-TDS), so lesen Sie bitte INSTALLD.TXT. + +* ACHTUNG: Fuer die Installation wird ein komplettes LaTeX2e +* benoetigt! + + Kopieren Sie zunaechst alle Dateien an einen Ort, an dem TeX/LaTeX + sie findet. Das aktuelle Verzeichnis ist in der Regel aber nicht + immer so ein Ort. + Bearbeiten Sie dann komascr.ins mit LaTeX. Unter UNIX beispielsweise + mit: + tex "&latex" komascr.ins + oder: + latex komascr.ins + Sie erhalten eine Reihe neuer cls-, sty- und tex-Dateien. Kopieren + Sie diese in ein entsprechendes LaTeX-Verzeichnis, damit LaTeX sie + findet. Siehe hierzu auch INSTALL.TXT bzw. INSTALLD.TXT. + Fuehren Sie anschlie"send ggf. zusaetzliche Installationsschritte + in Abhaengigkeit Ihres TeX-Paketes durch. Bei Verwendung von teTeX + waere dies beispielsweise der Aufruf von texhash. + +* ACHTUNG: Sie muessen und sollten die Anleitung nicht selbst mit +* LaTeX neu erstellen, da sie bereits fix und fertig +* enthalten ist. + + Wenn Sie die Implementierungsdokumentation wuenschen, so + bearbeiten Sie die dtx-Dateien mit LaTeX. Unter UNIX + beispielsweise mit: + tex "&latex" scrclass.dtx + oder + latex scrclass.dtx + In der Regel wird Ihnen die Hauptdokumentation jedoch voellig + ausreichen. + ++ WICHTIG: Mit scrguide.tex und jeder dtx-Dateien sollten mindestens ++ drei LaTeX-Durchlaeufe durchgefuehrt werden, damit alle ++ Referenzen und Inhaltsverzeichnisse korrekt sind! + + Zum Schluss fuehren Sie bitte noch LaTeX-Durchlaeufe fuer die + scr_news- bzw. scrnew-Dateien durch. Lesen Sie die gesamte + Dokumentation gruendlich durch. Das erspart Ihnen und mir viele + Fragen. + + +Fehlermeldungen: +---------------- + Fuer Fehlermeldungen existiert das Dokument komabug.tex. Wenn Sie + dieses mit LaTeX bearbeiten, so erhalten sie ein Formular, das Sie + mir ausgefuellt zusenden koennen. + +* ACHTUNG: BITTE VERWENDEN SIE FUER IHRE FEHLERMELDUNGEN NACH +* MOEGLICHKEIT KOMABUG.TEX! + + +Aenderungen seit der ersten Version 1994/07/07: +---------------------------------------------- + Die Aenderungen sind in den dtx-Dateien vermerkt und werden im + Glossary der Implementierungsdokumentation angezeigt. + + +ISO-Dateidatum: +--------------- + 2004-04-26 diff --git a/Master/texmf-dist/source/latex/koma-script/readme.txt b/Master/texmf-dist/source/latex/koma-script/readme.txt new file mode 100644 index 00000000000..c6f1d84f766 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/readme.txt @@ -0,0 +1,226 @@ +Sie finden eine deutsche Version dieses Textes in liesmich.txt! + +KOMA-Script bundle +================== + +Redistribution of this bundle is allowed provided that all files that +make up the KOMA-Script bundle are contained. The list of all files +making up this bundle is given below. + +This bundle has been created for the use with LaTeX2e. Although a +great effort has been made to eliminate all bugs, this bundle is +provided `as is' without warranty of any kind, either expressed or +implied, including, but not limited to, the implied warranties of +merchantability and fitness for a particular purpose. The entire risk +as to the quality and performance of the program is with you. + + +The files: +---------- + +All files marked with an exclamation mark (!) are REQUIRED as a part +of the distribution. You are NOT ALLOWED to distribute them +separately, any distribution MUST contain ALL of the required +files in the same fashion. This means especially that you are not allowed to +distribute some files unpacked but others packed to archives (zip, tar, +compressed tar, cab or others). Depart from this rule all with a less sign (<) +marked files may be packed to an archive alltogether. All unmarked files are +OPTIONAL parts of the distribution. You may leave them out but you MUST NOT +redistribute them without including the REQUIRED files. + + ChangeLog - List of changes since January 1st, 2001. + Makefile.unx - File for easy installing KOMA-Script using make. + ! komabug.tex - LaTeX-file for creating a bug report. + USE THIS FILE FOR REPORTING BUGS! + ! komascr.ins - Install file for the KOMA-Script bundle. Calls + (and requires!) scrclass.ins, scrtime.ins and + scrpage.ins. + ! scrclass.ins - Install file for scrclass.dtx, scrlettr.dtx and + script20.dtx. Required by komascr.ins. + ! scrclass.dtx - contains: + scrartcl.cls - KOMA-Script class as a replacement for article.cls, + scrreprt.cls - KOMA-Script class as a replacement for report.cls, + scrbook.cls - KOMA-Script class as a replacement for book.cls, + scrlttr2.cls - KOMA-Script class as a replacement for letter.cls, + typearea.sty - KOMA-Script package for the calculation of the type + area, + scrlfile.sty - KOMA-Script package with hooks for loading files, + packages or classes. + ! scrlettr.dtx - contains: + scrlettr.cls - obsolete KOMA-Script class. + ! script20.dtx - contains: + script.sty - style provided for compatibility, + script_s.sty - style provided for compatibility, + script_l.sty - style provided for compatibility. + ! scrtime.ins - Install file for scrtime.dtx. + Required by komascr.ins. + ! scrtime.dtx - contains: + scrtime.sty - KOMA-Script package for formatting a time, + scrdate.sty - KOMA-Script package for formatting the day of the week. + ! scrpage.ins - Install file for scrpage.dtx. + Required by komascr.ins. + ! scrpage.dtx - contains: + scrpage.sty - obsolete KOMA-Script package, + scrpage2.sty - KOMA-Script package for designing your own page + headers and footers. + !< scrguide/ - Directory (folder) with the german manual, + containing: + !< adressen.tex - chapter of the manual, + !< adrkonv.tex - chapter of the manual, + !< brief.tex - chapter of the manual, + !< datladen.tex - chapter of the manual, + !< datmzeit.tex - chapter of the manual, + !< einleit.tex - chapter of the manual, + !< hauptcls.tex - chapter of the manual, + !< layout.tex - chapter of the manual, + !< satzspgl.tex - chapter of the manual, + !< scrguide.bib - bibliography, + !< scrguide.bst - style for BibTeX, + !< scrguide.dbj - driver for custombib, + !< scrguide.ist - style for MakeIndex, + !< scrguide.mbs - modul for custombib, + !< scrguide2.tex - mainfile of the manual (you need KOMA-Script to + run the manual through LaTeX). + !< english/ - Directory (folder) with the german manual, + containing: + !< addrconv.tex - chapter of the english manual, + !< addressf.tex - chapter of the english manual, + !< datetime.tex - chapter of the english manual, + !< headfoot.tex - chapter of the english manual, + !< introduc.tex - chapter of the english manual, + !< letter.tex - chapter of the english manual, + !< loadfile.tex - chapter of the english manual, + !< main.tex - language definitions for the english manual, + !< maincls.tex - chapter of the english manual, + !< pglayout.tex - chapter of the english manual, + !< scrguide-en.bst - style for BibTeX, + !< scrguide-en.dbj - driver for custombib, + scrguide.dvi - A ready-to-use version of german manual (DVI). + scrguide.ps - A ready-to-use version of german manual + (PostScript). + ! scrguide.pdf - A ready-to-use version of german manual (Adobe's + PDF). + scrguien.dvi - A ready-to-use version of english manual (DVI). + scrguien.ps - A ready-to-use version of english manual + (PostScript). + ! scrguien.pdf - A ready-to-use version of english manual (Adobe's + PDF). + ! genindex.pl - Perl script which generates the spitted index of + the manual. + !< koma-script.tex - Wrapper to scrguide and scrguien. + ! koma-script.pdf - Ready-to-use version of koma-script.tex. + ! komascript.pdf - Same like koma-script.pdf. + ! komascr.pdf - Same like koma-script.pdf. + !< scr_new1.tex - Information concerning the first version of + KOMA-Script (German). + !< scr_new2.tex - Additional information (German). + !< scr_new3.tex - Additional information (German). + !< scr_new4.tex - Additional information (German). + !< scr_new5.tex - Additional information (German). + !< scr_new6.tex - Additional information (German). + !< scr_new7.tex - Additional information (German). + !< scr_new8.tex - Additional information (German). + !< scr_new9.tex - Additional information (German). + !< scrnew10.tex - Additional information (German). + !< scrnew11.tex - Additional information (German). + !< scrnew12.tex - Additional information (German). + !< scrnew13.tex - Additional information (German). + !< scrnew14.tex - Additional information (German). + !< scrnew15.tex - Additional information (German). + !< scrnew16.tex - Additional information (German). + !< scrnew17.tex - Additional information (German). + !< scrnew18.tex - Additional information (German). + !< scrnew19.tex - Additional information (German). + !< scrnew20.tex - Additional information (German). + !< scrnew21.tex - Most recent information (German and English). + scr_new1.dvi \ + ... > Ready-to-use versions of the above. + scrnew21.dvi / + ! liesmich.txt - Read this, if you prefer German. + ! readme.txt - You are just reading it. + ! INSTALL.TXT - The installation manual (English) + ! INSTALLD.TXT - The installation manual (German). + ! LEGAL.TXT - The dry part: legal stuff, warranty, license (English) + ! LEGALDE.TXT - The dry part: legal stuff, warranty, license (German) + + If one or more of the above files marked with an exclamation mark (!) + is missing, please inform the author about the missing files and + where you have gotten the bundle from. + + InterNet: komascript@gmx.info + Post: Markus Kohm + Fichtenstrasse 63 + 68535 Edingen-Neckarhausen + Germany + + If you cannot reach me at one of the addresses above, ask at one of + the following groups: + MausNet, Fido, Usenet: de.comp.text.tex + or try: + http://koma-script.net.tf + ++ NOTE: The CVS of the "KOMA-Script documentation project" is not a ++ distribution. Only this CVS is allowed to dispense with the ++ generated files (this means scrguien.pdf). + + +Installation: +------------- + +The following describes the general procedure for installing this +bundle. If you have a TeX system compatible to TDS (most of the newer +TeX systems are), please read INSTALL.TXT. + +* ATTENTION: You need a complete LaTeX2e! + + Copy all files to a directory, where TeX/LaTeX can find them. + Run komascr.ins through LaTeX, e.g. at UNIX type: + tex "&latex" komascr.ins + or + latex komascr.ins + You'll get a couple of new cls-, sty- and tex-files. Copy them to + the corresponding LaTeX-directory. See INSTALL.TXT for further + information. + Do not forget to run the initialization procedures specific to your + TeX distribution, e.g. if you use teTeX, run 'texhash' + +* ATTENTION: You needn't and you shouldn't create the complete +* documentation (it's in German!) or the english short +* manual by your own, because there are ready-to-use dvi +* files available. + + If you want the documentation specific to the implementation, you + have to run the dtx-files through LaTeX. Again, using a UNIX system + type: + tex "&latex" scrclass.dtx + or + latex scrclass.dtx + + Most likely you won't need those as, the user manual should be + sufficient. + ++ IMPORTANT: Do not forget to run scrguide.tex and each dtx-file ++ through LaTeX three times, if you like to have correct ++ references and table of contents. + + Last but not least, you should run all scr_news-files through LaTeX + and read all the documentation. + + +Bug-reports: +------------ + To report a bug, run 'komabug.tex' through LaTeX and fill in the + fields as concise as possible and send the form upon completion to + the author at one of the addresses above. + +* ATTENTION: IT IS HIGHLY RECOMMENDED TO USE KOMABUG.TEX FOR BUG +* REPORTS. + +Changes since first Version at 1994/07/07: +------------------------------------------ + You'll find all changes at the dtx-files and the glossaries. + + +ISO-Date of file: +----------------- + 2004-04-26 diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new1.tex b/Master/texmf-dist/source/latex/koma-script/scr_new1.tex new file mode 100644 index 00000000000..297552f327c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new1.tex @@ -0,0 +1,133 @@ +% Ausgabe 1 der KOMA-Script-News +% Copyright (C) Markus Kohm, Juli 1994 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{July} +\publicationyear{1994} +\publicationissue{1} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1994} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. Da ich leider wenig Zeit habe, eine +ausf"uhrliche Anleitung oder eine \verb|\doc|- bzw. \verb|\docstrip|-Einbindung +zu erstellen, ist dies die einzige Information zum +\KomaScript-Paket\footnotemark[0]. + +\section{Das \KomaScript-Paket\protect\footnotemark[0]} + +Das \KomaScript-Paket besteht aus drei \emph{classes} und einem +\emph{package}: + +\begin{citations} +\item[scrartcl] das \Script-"Aquivalent zu \texttt{article.cls}. +\item[scrreprt] das \Script-"Aquivalent zu \texttt{report.cls}. +\item[scrbook] das \Script-"Aquivalent zu \texttt{book.cls}. +\item[typearea] das \emph{package} zur Einstellung der Seitengr"o"se und +Berechnung der Seitenaufteilung. +\end{citations} +Die \emph{classes} verwenden die Schriftgr"o"seneinstellungen aus den +\emph{\LaTeX-Standard-classes}, deren Seitenaufteilung (Seitenspiegel) wird +jedoch von dem \emph{package} \texttt{typearea} "uberladen, das von allen drei +\emph{classes} automatisch nachgeladen wird. + +Der Unterschied zwischen den \Koma-\emph{classes} und den +Standard-\emph{classes} besteht in erster Linie in der Darstellung. Es sind nur +wenige Befehle hinzugekommen, aber alle Befehle der Standard-\emph{Classes} +sind ebenfalls vorhanden. In einigen F"allen bringen sie jedoch optisch andere +Ergebnisse. + +Genauere Informationen hierzu sind der Anleitung zu Frank Neukams \Script-Paket +zu entnehmen. Das \KomaScript-Paket ist nach seinem Vorbild entstanden. + +\section{Unterschiede zu Frank Neukams \Script-Paket} + +Der Hauptunterschied liegt darin, da"s Frank Neukams \Script-Paket derzeit +eigentlich nur in einer Implementierung f"ur \LaTeX~2.09 und einem Hack f"ur +\LaTeXe\ vorliegt. Das \KomaScript-Paket hingegen wurde speziell f"ur \LaTeXe\ +geschrieben. Daraus ist auch der Umstand zu erkl"aren, da"s es f"ur +\emph{book}, \emph{report} und \emph{article} wieder drei unterschiedliche +\emph{classes} gibt. Begr"undet ist dies durch die Tatsache, da"s sich +\texttt{book.cls} gegen"uber \texttt{report.cls} mehr unterscheidet als +\texttt{book.sty} gegen"uber \texttt{report.sty}. + +F"ur den Anwender entscheidend ist die Tatsache, da"s ich bei \KomaScript\ aus +einigen Befehlen Optionen gemacht habe. In Tabelle \ref{Tab1} werden die neuen +Optionen den alten Befehlen gegen"ubergestellt. Die ersetzten Befehle sind +nicht mehr implementiert. + +\begin{table} +\begin{center} +\begin{tabular}{|l|l|}\hline +\multicolumn{1}{|c|}{\KomaScript-Option}& + \multicolumn{1}{c|}{\Script~2.0-Befehl}\\ +\hline +\textsl{headsepline} & \verb|\headseplineon|\\ +\textsl{headnosepline} & \verb|\headseplineoff|\\ +\textsl{headinclude} & \verb|\headincludeon|\\ +\textsl{headexclude} & \verb|\headincludeoff|\\ +\textsl{footsepline} & \verb|\footseplineon|\\ +\textsl{footnosepline} & \verb|\footseplineoff|\\ +\textsl{footinclude} & \verb|\footincludeon|\\ +\textsl{footexclude} & \verb|\footincludeoff|\\ +\hline +\end{tabular} +\caption{\label{Tab1}Vergleich neuer Optionen mit alten Befehlen} +\end{center} +\end{table} + +Die \textsl{*include}- bzw. \textsl{*exclude}-Optionen sind in \emph{typearea} +implementiert. Die Standardeinstellungen sind dieselben wie bei \Script~2.0 +geblieben. + +\footnotetext[0]{Hier hat sich etwas ge"andert! Bitte \texttt{scr\_new5.tex} + beachten! [MJK 1995/01/05]} + +Neben dieser "Anderung werden die alten \emph{DIN}x-Optionen\footnote{Die +DIN-Angaben bei \Script~2.0 waren ohnehin teilweise falsch, da nach ISO bzw. +DIN die abgeleiteten Seitengr"o"sen jeweils auf Millimeter abgerundet werden.} +nicht mehr unterst"utzt. Statt dessen werden die seit \LaTeXe\ "ublichen +\emph{*paper}-Optionen\footnote{Bei diesen stimmen die Werte f"ur L"ange und +Breite mit ISO bzw. DIN "uberein.} und \emph{landscape} verwendet. Auch +diese sind in \emph{typearea} implementiert. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollten jemand Fehler finden, die +er eindeutig auf das \KomaScript-Paket zur"uckf"uhren kann, so m"oge er mir +diese m"oglichst kurz und genau schildern. Ich bin derzeit folgenderma"sen zu +erreichen: + +\begin{description} +\item[e-mail:] \texttt{kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA} +\item[Briefpost:] \begin{minipage}[t]{20em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 16KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\end{document} +% +% Ende der Datei `scr_new1.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new2.tex b/Master/texmf-dist/source/latex/koma-script/scr_new2.tex new file mode 100644 index 00000000000..fe2c6fb8719 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new2.tex @@ -0,0 +1,106 @@ +% Ausgabe 2 der KOMA-Script-News +% Copyright (C) Markus Kohm, August 1994 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{August} +\publicationyear{1994} +\publicationissue{2} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1994} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. Da ich leider wenig Zeit habe, eine +ausf"uhrliche Anleitung oder eine \verb|\doc|- bzw. \verb|\docstrip|-Einbindung +zu erstellen, ist dies die einzige Information zum +\KomaScript-Paket\footnotemark[0]. + +\section{Das \KomaScript-Paket\protect\footnotemark[0]} + +Das \KomaScript-Paket besteht aus drei \emph{classes} und einem +\emph{package}: + +\begin{citations} +\item[scrartcl] das \Script-"Aquivalent zu \texttt{article.cls}. +\item[scrreprt] das \Script-"Aquivalent zu \texttt{report.cls}. +\item[scrbook] das \Script-"Aquivalent zu \texttt{book.cls}. +\item[typearea] das \emph{package} zur Einstellung der Seitengr"o"se und +Berechnung der Seitenaufteilung. +\end{citations} +Die \emph{classes} verwenden die Schriftgr"o"seneinstellungen aus den +\emph{\LaTeX-Standard-classes}, deren Seitenaufteilung (Seitenspiegel) wird +jedoch von dem \emph{package} \texttt{typearea} "uberladen, das von allen drei +\emph{classes} automatisch nachgeladen wird. + +Der Unterschied zwischen den \Koma-\emph{classes} und den +Standard-\emph{classes} besteht in erster Linie in der Darstellung. Es sind nur +wenige Befehle hinzugekommen, aber alle Befehle der Standard-\emph{classes} +sind ebenfalls vorhanden. In einigen F"allen bringen sie jedoch optisch andere +Ergebnisse. + +Genauere Informationen hierzu sind der Anleitung zu Frank Neukams \Script-Paket +zu entnehmen. Das \KomaScript-Paket ist nach seinem Vorbild entstanden. + +\section{Neuerungen der Version vom 10.~August~1994 gegen"uber der Version vom +7.~Juli~1994} + +Leider waren in der ersten Version vom 7.~Juli~1994 noch diverse Fehler in den +\emph{classes} \texttt{scrbook.cls} und \texttt{scrreprt.cls}. Zum einen +funktionierte der Befehl \verb|\addchap| bzw. \verb|\addchap*| "uberhaupt +nicht, zum anderen stimmten die Kopfzeilen teilweise nicht, und in +\texttt{scrbook.cls} waren entgegen der Gepflogenheiten von \texttt{book.cls} +\emph{pagestyles} sowohl f"ur ein- als auch zweiseitiges Layout definiert. + +Diese Fehler sind in der neuen Version vom 10.~August~1994 behoben. Ein paar +Tests mehr habe ich nun auch gemacht, soda"s jetzt alle \emph{classes} +funktionieren sollten. + +In \texttt{scrartcl.cls} konnte kein Fehler entdeckt werden\footnotemark[0]. + +\section{Fehler} + +\footnotetext[0]{Hier hat sich etwas ge"andert! Bitte \texttt{scr\_new5.tex} + beachten! [MJK 1995/01/05]} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollten jemand Fehler finden, die +er eindeutig auf das \KomaScript-Paket zur"uckf"uhren kann, so m"oge er mir +diese m"oglichst kurz und genau schildern. Ich bin derzeit folgenderma"sen zu +erreichen: + +\begin{description} +\item[e-mail:] \texttt{kohm@ira.uka.de} oder \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA} +\item[Briefpost:] \begin{minipage}[t]{20em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 16KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Dank} + +Mein Dank gilt Axel Sommerfeldt, der mich auf die meisten Fehler aufmerksam +gemacht hat. + +\end{document} +% +% Ende der Datei `scr_new2.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new3.tex b/Master/texmf-dist/source/latex/koma-script/scr_new3.tex new file mode 100644 index 00000000000..0f0f7909d6a --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new3.tex @@ -0,0 +1,128 @@ +% Ausgabe 3 der KOMA-Script-News +% Copyright (C) Markus Kohm, August 1994 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{August} +\publicationyear{1994} +\publicationissue{3} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1994} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. Da ich leider wenig Zeit habe, eine +ausf"uhrliche Anleitung oder eine \verb|\doc|- bzw. +\verb|\docstrip|-Einbindung zu erstellen, ist dies die einzige Information +zum \KomaScript-Paket\footnotemark[0]. + +\section{Das \KomaScript-Paket\protect\footnotemark[0]} + +Das \KomaScript-Paket besteht aus drei \emph{classes} und einem +\emph{package}: + +\begin{citations} +\item[scrartcl] das \Script-"Aquivalent zu \texttt{article.cls}. +\item[scrreprt] das \Script-"Aquivalent zu \texttt{report.cls}. +\item[scrbook] das \Script-"Aquivalent zu \texttt{book.cls}. +\item[typearea] das \emph{package} zur Einstellung der Seitengr"o"se und +Berechnung der Seitenaufteilung. +\end{citations} + +Genauere Informationen hierzu sind den vorhergehenden \ScriptNews\ und der +Anleitung zu Frank Neukams \Script-Paket zu entnehmen. + +Zus"atzlich zu diesem Grundpaket existieren zwei weitere \emph{packages}: + +\begin{citations} +\item[topnum] ein zus"atzlicher \emph{pagestyle}. +\item[rightnum] zur "Anderung der Standard-\emph{pagestyles}. +\end{citations} + +\section{Neuerungen der aktuellen Version gegen"uber der Version vom +7.~Juli~1994} + +Leider waren in der ersten Version vom 7.~Juli~1994 noch diverse Fehler in +allen drei \emph{classes}. Teilweise waren die Fehler derart gravierend, da"s +an eine korrekte Funktion "uberhaupt nicht zu denken war. + +In der aktuellen Version sollten nun die meisten Fehler endlich beseitigt +sein. Zumindest wurden jetzt einige Tests mehr gemacht und ein Anwender, der +unfreiwillig zum Beta-Tester wurde, ist zufriedengestellt. + +Eine Zusammenfassung aller "Anderungen ist in der Datei \texttt{readme.1st} +zu finden\footnotemark[0]. Dar"uber hinaus sind alle "Anderungen in den +\emph{classes} dokumentiert. + +\section{Das \emph{package} \texttt{topnum}\protect\footnotemark[0]} + +Dieses \emph{package} ist in der neusten Version im \KomaScript-Paket +enthalten. Es enth"alt einen weiteren \emph{pagestyle} \texttt{topnum}. In +diesem \emph{pagestyle} werden die Seitenzahlen in der Kopfzeile ausgegeben. + +Da \texttt{mainmatter} in diesem \emph{package} nicht ber"ucksichtigt wird, +ist bei Verwendung mit \texttt{scrbook} Vorsicht geboten, da das Ergebnis +sonst u.U. nicht dem gew"unschten entspricht. + +Es werden \KomaScript-typische Befehle verwendet, soda"s die Verwendung nur +mit den \emph{classes} des \KomaScript-Paketes zu empfehlen ist. + +\section{Das \emph{package} \texttt{rightnum}\protect\footnotemark[0]} + +Dieses \emph{package} ist in der neusten Version im \KomaScript-Paket +enthalten. Es definiert die \emph{pagestyles} \texttt{plain}, +\texttt{headings}, \texttt{myheadings} so um, da"s die Seitenzahl immer unten +rechts in der Fu"szeile erscheint. Obwohl dies eigentlich nur bei einseitigem +Layout einen Sinn ergibt, ist dies sowohl f"ur einseitiges als auch +zweiseitiges Layout definiert. + +Bez"uglich der Verwendung von \texttt{scrbook} oder von \emph{classes}, die +nicht aus dem \KomaScript-Paket stammen, gilt dasselbe wie f"ur +\texttt{topnum}. + +\section{Fehler} + +\footnotetext[0]{Hier hat sich etwas ge"andert! Bitte \texttt{scr\_new5.tex} + beachten! [MJK 1995/01/05]} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu +erstellen, aber ich konnte auch nicht alles austesten. Sollten jemand Fehler +finden, die er eindeutig auf das \KomaScript-Paket zur"uckf"uhren kann, so +m"oge er mir diese m"oglichst kurz und genau schildern. Ich bin derzeit +folgenderma"sen zu erreichen: + +\begin{description} +\item[e-mail:] \texttt{kohm@ira.uka.de} oder \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 16KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Dank} + +Mein Dank gilt Harald Sommerfeldt, der mich auf die meisten Fehler aufmerksam +gemacht hat. + +\end{document} +% +% Ende der Datei `scr_new3.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new4.tex b/Master/texmf-dist/source/latex/koma-script/scr_new4.tex new file mode 100644 index 00000000000..be47396cc5f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new4.tex @@ -0,0 +1,124 @@ +% Ausgabe 4 der KOMA-Script-News +% Copyright (C) Markus Kohm, Oktober 1994 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Oktober} +\publicationyear{1994} +\publicationissue{4} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1994} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. Da ich leider wenig Zeit habe, eine +ausf"uhrliche Anleitung oder eine \verb|\doc|- bzw. \verb|\docstrip|-Einbindung +zu erstellen, ist dies die einzige Information zum +\KomaScript-Paket\footnotemark[0]. + +\section{Das \KomaScript-Paket\protect\footnotemark[0]} + +Das \KomaScript-Paket besteht aus vier \emph{classes} und einem +\emph{package}: + +\begin{citations} +\item[scrartcl] das \Script-"Aquivalent zu \texttt{article.cls}. +\item[scrreprt] das \Script-"Aquivalent zu \texttt{report.cls}. +\item[scrbook] das \Script-"Aquivalent zu \texttt{book.cls}. +\item[scrlettr] das \Script-"Aquivalent zu \texttt{letter.cls}. +\item[typearea] das \emph{package} zur Einstellung der Seitengr"o"se und +Berechnung der Seitenaufteilung. +\end{citations} + +Genauere Informationen hierzu sind den vorhergehenden \ScriptNews\ und der +Anleitung zu Frank Neukams \Script-Paket zu entnehmen. + +\texttt{scrlettr.cls} wurde von Axel Kielhorn erarbeitet und mir +freundlicherweise f"ur das \KomaScript-Paket zur Verf"ugung gestellt. + +Dar"uber hinaus sind nun auch \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden. + +Zus"atzlich zu diesem Grundpaket existieren zwei weitere \emph{packages}: + +\begin{citations} +\item[topnum] ein zus"atzlicher \emph{pagestyle}. +\item[rightnum] zur "Anderung der Standard-\emph{pagestyles}. +\item[outnum] zur "Anderung der Standard-\emph{pagestyles}. +\end{citations} + +\section{Neuerungen der aktuellen Version gegen"uber der Version vom +7.~Juli~1994} + +Leider waren in der ersten Version vom 7.~Juli~1994 noch diverse Fehler in +allen drei \emph{classes}. Teilweise waren die Fehler derart gravierend, da"s +an eine korrekte Funktion "uberhaupt nicht zu denken war. + +In der aktuellen Version sollten nun die meisten Fehler endlich beseitigt sein. +Zumindest wurden jetzt einige Tests mehr gemacht und ein Anwender, der +unfreiwillig zum Beta-Tester wurde, ist zufriedengestellt. + +Eine Zusammenfassung aller "Anderungen ist in der Datei \texttt{readme.1st} zu +finden\footnotemark[0]. Dar"uber hinaus sind alle "Anderungen in den +\emph{classes} dokumentiert. + +\section{Das \emph{package} \texttt{outnum}\protect\footnotemark[0]} + +Dieses \emph{package} ist in der neusten Version im \KomaScript-Paket +enthalten. Es "ahnelt sehr dem \emph{package} \texttt{rightnum}, schreibt aber +im doppelseitigen Layout die Seitennummer auf geraden Seiten in das linke +untere Eck. + +Eigentlich ist das ziemlich genau das, was bei den \KomaScript-\emph{classes} +ohnehin gemacht wird. Also ist es haupts"achlich f"ur die +Standard-\emph{classes} gedacht. + +Bez"uglich der Verwendung von \texttt{scrbook} oder von \emph{classes}, die +nicht aus dem \KomaScript-Paket stammen, gilt dasselbe wie f"ur \texttt{topnum}. + +\section{Fehler} + +\footnotetext[0]{Hier hat sich etwas ge"andert! Bitte \texttt{scr\_new5.tex} + beachten! [MJK 1995/01/05]} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollten jemand Fehler finden, die +er eindeutig auf das \KomaScript-Paket zur"uckf"uhren kann, so m"oge er mir +diese m"oglichst kurz und genau schildern. Ich bin derzeit folgenderma"sen zu +erreichen: + +\begin{description} +\item[e-mail:] \texttt{kohm@ira.uka.de} oder \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 16KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Dank} + +Mein Dank gilt Harald Sommerfeldt, der mich auf die meisten Fehler aufmerksam +gemacht hat, und Axel Kielhorn f"ur die \emph{letter-class}. + +\end{document} +% +% Ende der Datei `scr_new4.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new5.tex b/Master/texmf-dist/source/latex/koma-script/scr_new5.tex new file mode 100644 index 00000000000..c4165a637ad --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new5.tex @@ -0,0 +1,151 @@ +% Ausgabe 5 der KOMA-Script-News +% Copyright (C) Markus Kohm, Oktober 1994 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Dezember} +\publicationyear{1994} +\publicationissue{5} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1994} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus f"unf \emph{classes} und vier +\emph{packages}: + +\begin{citations} +\item[scrdoc] Hilfs-class f"ur die Dokumentation. +\item[scrartcl] das \Script-"Aquivalent zu \texttt{article.cls}. +\item[scrreprt] das \Script-"Aquivalent zu \texttt{report.cls}. +\item[scrbook] das \Script-"Aquivalent zu \texttt{book.cls}. +\item[scrlettr] das \Script-"Aquivalent zu \texttt{letter.cls}. +\item[typearea] das \emph{package} zur Einstellung der Seitengr"o"se und +Berechnung der Seitenaufteilung. +\item[scrtime] das \emph{package} zur Ausgabe der Uhrzeit. +\item[scrdate] das \emph{package} zur Ausgabe des Wochentags. +\item[scrpage] das \emph{package} zur Gestalltung von Kopf- und Fu"szeilen. +\end{citations} + +\texttt{scrlettr.cls} wurde von Axel Kielhorn erarbeitet und mir +freundlicherweise f"ur das \KomaScript-Paket zur Verf"ugung gestellt. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden: +\begin{citations} +\item[script] der \Script-Haupt-\emph{style} +\item[script\_s] der \Script-\emph{article}-\emph{style} +\item[script\_l] der \Script-\emph{letter}-\emph{style}. +\end{citations} +Diese sind allerdings nicht vollkompatibel zu den \Script~2.0-\emph{styles} und +sollen es auch nicht sein. Es sollte jedoch in der Regel m"oglich sein, damit +alle \LaTeX~2.09-\Script-Dokumente zu bearbeiten. + +Das Package \texttt{scrtime} ist nicht viel mehr als eine Neuimplementierung +des altbekannten \texttt{time.sty}. Das Package \texttt{scrpage} "ahnelt +\texttt{fancyheadings} beschreitet aber einen etwas anderen Weg. Beide Packages +sollten sowohl mit den \Script-Classes als auch mit den Standard-Classes +zusammenarbeiten. + +Beide Packages liegen derzeit erst in einer Beta-Version vor. + +\section{Installation\protect\footnotemark[0]} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind genauso +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. + +F"ur das Hauptpaket (\texttt{komascr.ins/dtx}): +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{komascr.dtx} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +F"ur alle weiteren Pakete analog vorgehen. + +\section{Neuerungen der aktuellen Version} + +Gleichzeitig mit der Verwendung von \texttt{doc} und \texttt{docstrip} wurde +auch die Anleitung zu \KomaScript\ mit eingebaut. Es handelt sich dabei im +Wesentlichen um die Anleitung zu \Script~2.0, die lediglich an \KomaScript\ +angepa"st wurde. Da es mir noch immer nicht gelungen ist, mit Frank Neukam +Verbindung aufzunehmen, kann ich nur hoffen, da"s dieser damit einverstanden +ist. + +Alle "Anderungen sind nur noch in den \texttt{dtx}-Dateien dokumentiert (sie +werden im Glossary aufgef"uhrt). Auf eine getrennte Dokumentation wird +zuk"unftig verzichtet. + +Die Datei \texttt{readme.1st} wurde durch die Dateien \texttt{readme.txt} und +\texttt{liesmich.txt} ersetzt. + +\subsection{Das Package \texttt{typearea}} + +Im Package \texttt{typearea} hat sich eine "Anderung ergeben. Bisher wurde der +Kopf unabh"angig von der Schriftgr"o"se immer auf 15pt festgeschrieben. Nun wird +hierzu die letzte Stelle der Schriftgr"o"se addiert. Dies war notwendig, damit +das Zusatzpaket \texttt{scrpage} gen"ugend Spielraum f"ur den Kopf hat. +Au"serdem erschien es mir sinnvoll. + +\subsection{Die Packages \texttt{topnum}, \texttt{rightnum}, \texttt{outnum}} + +Da es mit Hilfe von \texttt{scrpage} einfach m"oglich ist, eigene Seitenformate +(\emph{pagestyles}) zu definieren, sind die drei Packages \texttt{topnum}, +\texttt{rightnum} und \texttt{outnum} nicht mehr im Hauptpaket enthalten. + +\section{Fehler} + +\footnotetext[0]{Hier hat sich etwas ge"andert! Bitte \texttt{scr\_new6.tex} + beachten! [MJK 1995/02/16]} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Insbesondere k"onnten sich Fehler +bei der Umsetzung als \texttt{docstrip}-Paket eingeschlichen haben. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[e-mail:] \texttt{kohm@ira.uka.de} oder \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 16KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Dank} + +Mein Dank gilt Harald Sommerfeldt, der mich auf die meisten Fehler aufmerksam +gemacht hat, und Axel Kielhorn f"ur die \emph{letter-class}. + +\end{document} +% +% Ende der Datei `scr_new5.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new6.tex b/Master/texmf-dist/source/latex/koma-script/scr_new6.tex new file mode 100644 index 00000000000..15fdf0d7894 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new6.tex @@ -0,0 +1,119 @@ +% Ausgabe 6 der KOMA-Script-News +% Copyright (C) Markus Kohm, Februar 1995 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Februar} +\publicationyear{1995} +\publicationissue{6} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1995} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Au"ser dem \emph{package} \texttt{typearea}, das von \KomaScript\ zwingend +ben"otigt wird, sind alle anderen \emph{packages} mehr oder weniger n"utzliche +Beigaben. Enstanden sind sie haupts"achlich aufgrund von Nachfragen. Alle +\emph{packages} sollten auch mit den Standard-\emph{classes} verwendet werden +k"onnen. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden (siehe \texttt{scr\_new5.tex}). + +\section{Installation} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind "ahnlich +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. In der Version 2.2 wurde die Installation mit +Hilfe eines zus"atzlichen Installationstreibers noch einmal vereinfacht: + +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{scrguide.tex} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +Das ist bereits alles. Alle anderen \texttt{ins}-Dateien werden automatisch von +\texttt{komascr.ins} aufgerufen. Eine detailiertere Installationsanleitung +finden Sie in \texttt{liesmich.txt} bzw.\ \texttt{readme.txt}. + +\section{Neuerungen der aktuellen Version} + +Die Riesendatei \texttt{komascr.dtx} wurde in einzelne, kleinere Dateien +aufgespaltet. Dadurch wird die Installation auf langsamen Rechnern +wesentlich schneller. Dar"uber hinaus ist es praktischer, zumal die Anleitung nun +eine eigene Datei ist. + +Die wichtigste Neuerung d"urfte die Anleitung sein. Harald Sommerfeldt war so +freundlich, die alte Anleitung zu "uberarbeiten, zu erg"anzen, optisch +aufzuwerten und mit einem Index zu versehen. Die Anleitung ben"otigt +fast alle Teile des \KomaScript-Pakets. Sie kann deshalb erst nach erfolgreicher +Installation mit \LaTeX\ bearbeitet werden. + +Eine gro"se Anzahl haupts"achlich kleinerer Fehler wurden behoben. Ausnahme +sind \texttt{scrtime} und \texttt{scrdate}, die erheblich ge"andert wurden, und +\texttt{scrpage.dtx}, an dem nichts ge"andert werden mu"ste. +Alle "Anderungen sind in den \texttt{dtx}-Dateien dokumentiert (sie +werden im Glossary aufgef"uhrt). + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[e-mail:] \texttt{kohm@ira.uka.de} oder \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} +wobei zu beachten ist, da"s die InterNet-Adressen nur noch begrenzte Zeit zur +Ver"ugung stehen (siehe \texttt{liesmich.txt} bzw. \texttt{readme.txt}). + +\section{Dank} + +Mein Dank gilt Harald Sommerfeldt, der mich nicht nur auf die meisten Fehler +aufmerksam gemacht, sondern auch bei der neuen Anleitung mitgeholfen hat, und +Axel Kielhorn f"ur die \emph{letter-class}. + +Dar"uber hinaus bedanke ich mich f"ur das rege Interesse, das sich in vielen +Mitteilungen und zahlreichen Fehlerhinweisen zeigt. + +\end{document} +% +% Ende der Datei `scr_new6.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new7.tex b/Master/texmf-dist/source/latex/koma-script/scr_new7.tex new file mode 100644 index 00000000000..f34cb7ad19b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new7.tex @@ -0,0 +1,118 @@ +% Ausgabe 7 der KOMA-Script-News +% Copyright (C) Markus Kohm, Mai 1995 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Mai} +\publicationyear{1995} +\publicationissue{7} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1995} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Au"ser dem \emph{package} \texttt{typearea}, das von \KomaScript\ zwingend +ben"otigt wird, sind alle anderen \emph{packages} mehr oder weniger n"utzliche +Beigaben. Enstanden sind sie haupts"achlich aufgrund von Nachfragen. Alle +\emph{packages} sollten auch mit den Standard-\emph{classes} verwendet werden +k"onnen. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden (siehe \texttt{scr\_new5.tex}). + +\section{Installation} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind "ahnlich +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. In der Version 2.2 wurde die Installation mit +Hilfe eines zus"atzlichen Installationstreibers noch einmal vereinfacht: + +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{scrguide.tex} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +Das ist bereits alles. Alle anderen \texttt{ins}-Dateien werden automatisch von +\texttt{komascr.ins} aufgerufen. Eine detailiertere Installationsanleitung +finden Sie in \texttt{liesmich.txt} bzw.\ \texttt{readme.txt}. + +\section{Neuerungen der aktuellen Version} + +Im Kompatibilit"atsmodus gab es neuerdings Probleme mit dem Nachladen von +Optionen-Styles. Ich habe deshalb die Optionenbearbeitung in diesem Modus +leicht ge"andert. Ich hoffe, da"s die Probleme damit behoben sind. + +In \texttt{scrlettr.cls} war die Anpassung an \texttt{german.sty} +Version~2.5 von einem Fehler "uberschattet. Inzwischen ist die Class +erprobt. Dar"uber hinaus wurde der Seitenspiegel in \texttt{scrlettr.cls} +nochmals leicht ver"andert, wodurch mehr Platz f"ur Text zur Ver"ugung steht +und weniger unterer Rand "`verschwendet"' wird. + +Die wichtigste "Anderung betrifft \texttt{scrartcl}, \texttt{scrreprt} und +\texttt{scrbook}. Es handelt sich um eine Vorbereitung f"ur das CJK-Paket von +Werner Lemberg. Damit ist es einfach m"oglich \KomaScript\ auch f"ur +Chinesisch, Japanisch, Koreanisch oder andere Sprachen zu verwendet. Von +diesen "Anderungen ist auch das Zusatzpaket \texttt{scrpage} betroffen. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[e-mail:] \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} +wobei zu beachten ist, da"s die InterNet-Adresse nur noch begrenzte Zeit zur +Ver"ugung stehen (siehe \texttt{liesmich.txt} bzw. \texttt{readme.txt}). + +\section{Dank} + +Mein Dank gilt Harald Sommerfeldt, der mich nicht nur auf die meisten Fehler +aufmerksam gemacht, sondern auch bei der neuen Anleitung mitgeholfen hat, und +Axel Kielhorn f"ur die \emph{letter-class}. + +Dar"uber hinaus bedanke ich mich f"ur das rege Interesse, das sich in vielen +Mitteilungen und zahlreichen Fehlerhinweisen zeigt. + +\end{document} +% +% Ende der Datei `scr_new7.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new8.tex b/Master/texmf-dist/source/latex/koma-script/scr_new8.tex new file mode 100644 index 00000000000..83f9e05937e --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new8.tex @@ -0,0 +1,116 @@ +% Ausgabe 8 der KOMA-Script-News +% Copyright (C) Markus Kohm, Juni 1995 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Juni} +\publicationyear{1995} +\publicationissue{8} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1995} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Au"ser dem \emph{package} \texttt{typearea}, das von \KomaScript\ zwingend +ben"otigt wird, sind alle anderen \emph{packages} mehr oder weniger n"utzliche +Beigaben. Enstanden sind sie haupts"achlich aufgrund von Nachfragen. Alle +\emph{packages} sollten auch mit den Standard-\emph{classes} verwendet werden +k"onnen. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden (siehe \texttt{scr\_new5.tex}). + +\section{Installation} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind "ahnlich +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. In der Version 2.2 wurde die Installation mit +Hilfe eines zus"atzlichen Installationstreibers noch einmal vereinfacht: + +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{scrguide.tex} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +Das ist bereits alles. Alle anderen \texttt{ins}-Dateien werden automatisch von +\texttt{komascr.ins} aufgerufen. Eine detailiertere Installationsanleitung +finden Sie in \texttt{liesmich.txt} bzw.\ \texttt{readme.txt}. + +\section{Neuerungen der aktuellen Version} + +Nicht verwendete \emph{class options} werden nun wieder in die entsprechende Liste +zur"uckgeschrieben und damit gemeldet. + +In der neuen Version von \LaTeX\ ([1995/06/01]) sind die Befehle \verb|\cal| +und \verb|\mit| nicht mehr vordefiniert, sondern werden den \emph{classes} +"uberlassen. Die entsprechende Definition wurde aus den Standard +\emph{classes} "ubernommen. "Altere Versionen von {\KomaScript} erzeugen mit +der neuen Version von \LaTeX\ leider Fehlermeldungen. + +In der letzten Version von \texttt{scrlettr.dtx} waren die Beispieldokumente +\texttt{dir.tex} und \texttt{phone.tex} leider wieder fehlerhaft. Ich hoffe, +da"s das nun endlich behoben ist. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[e-mail:] \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} +wobei zu beachten ist, da"s die InterNet-Adresse nur noch begrenzte Zeit zur +Ver"ugung stehen (siehe \texttt{liesmich.txt} bzw. \texttt{readme.txt}). + +\section{Dank} + +Nachdem ich an dieser Stelle zwei schon mehrfach erw"ahnt habe, gilt mein +Dank diesmal dem \LaTeX3-Team, insbesondere David Carlisle, und +ftpmaint.dante.de f"ur Geduld und rasches Handeln. + +Dar"uber hinaus bedanke ich mich f"ur das rege Interesse, das sich in vielen +Mitteilungen und zahlreichen Fehlerhinweisen zeigt. + +\end{document} +% +% Ende der Datei `scr_new7.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scr_new9.tex b/Master/texmf-dist/source/latex/koma-script/scr_new9.tex new file mode 100644 index 00000000000..c1b20d01e28 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scr_new9.tex @@ -0,0 +1,122 @@ +% Ausgabe 9 der KOMA-Script-News +% Copyright (C) Markus Kohm, Juli 1995 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{August} +\publicationyear{1995} +\publicationissue{9} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1995} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Au"ser dem \emph{package} \texttt{typearea}, das von \KomaScript\ zwingend +ben"otigt wird, sind alle anderen \emph{packages} mehr oder weniger n"utzliche +Beigaben. Enstanden sind sie haupts"achlich aufgrund von Nachfragen. Alle +\emph{packages} sollten auch mit den Standard-\emph{classes} verwendet werden +k"onnen. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden (siehe \texttt{scr\_new5.tex}). + +\section{Installation} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind "ahnlich +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. In der Version 2.2 wurde die Installation mit +Hilfe eines zus"atzlichen Installationstreibers noch einmal vereinfacht: + +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{scrguide.tex} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +Das ist bereits alles. Alle anderen \texttt{ins}-Dateien werden automatisch von +\texttt{komascr.ins} aufgerufen. Eine detailiertere Installationsanleitung +finden Sie in \texttt{liesmich.txt} bzw.\ \texttt{readme.txt}. + +\section{Neuerungen der aktuellen Version} + +In der letzten Version von \texttt{scrlettr.dtx} waren die Beispieldokumente +\texttt{dir.tex} und \texttt{phone.tex} leider schon wieder fehlerhaft. So +langsam dr"angt sich der Eindruck auf, da"s ich zwar \emph{classes} und +\emph{packages} aber keine Dokumente erstellen kann. Ich hoffe, da"s die +Fehler in \texttt{dir.tex} und \texttt{phone.tex} nun endlich, endg"ultig +behoben sind. + +In allen \emph{classes} gab es diverse "Anderungen, die haupts"achlichen +eine Anpassung an \texttt{classes.dtx} Version 1.3g bedeuten. Damit d"urfte +auch wieder volle Kompatibilit"at zur \LaTeX-Release vom 1. Juni 1995 +erreicht sein. + +Eine interessante Neuerung ist vielleicht noch die Numerierung der +Abschnitte. Solange weder \verb|\part| noch Anhang verwendet werden, bleibt +alles beim Alten. Da \verb|\part| mit r"omischen Zahlen und der Anhang mit +Buchstaben numeriert werden, mu"s laut Duden die Nummer mit einem Punkt +abgeschlossen werden. Ab dem zweiten \TeX-Lauf funktioniert das jetzt +automatisch. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[e-mail:] \texttt{s\_kohm@ira.uka.de} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} +wobei zu beachten ist, da"s die InterNet-Adresse nur noch begrenzte Zeit zur +Ver"ugung steht (siehe \texttt{liesmich.txt} bzw. \texttt{readme.txt}). + +\section{Dank} + +Nachdem ich an dieser Stelle zwei schon mehrfach erw"ahnt habe, gilt mein +Dank auch diesmal dem \LaTeX3-Team, insbesondere David Carlisle, und +ftpmaint.dante.de f"ur Geduld und rasches Handeln. + +Dar"uber hinaus bedanke ich mich f"ur das rege Interesse, das sich in vielen +Mitteilungen und zahlreichen Fehlerhinweisen zeigt. + +\end{document} +% +% Ende der Datei `scr_new9.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scraddr.dtx b/Master/texmf-dist/source/latex/koma-script/scraddr.dtx new file mode 100644 index 00000000000..528f12e97ba --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scraddr.dtx @@ -0,0 +1,510 @@ +% \CheckSum{155} +% \iffalse +% ====================================================================== +% scraddr.dtx +% Copyright (C) 2004 Markus Kohm and Jens-Uwe Morawski +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the +% main documentation is german. There is also a english documentation, +% but this is NOT up-to-date. +% ---------------------------------------------------------------------- +% scraddr.dtx +% Copyright (C) 2004 Markus Kohm und Jens-Uwe Morawski +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +% englische Version der Anleitung, diese hinkt der deutschen Anleitung +% jedoch fast immer hinterher. +% ====================================================================== +% +% \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 \~} +% +%<*dtx> + \ProvidesFile{scraddr.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesFile{scraddr.drv} +%\ProvidesPackage{scraddr} +%<*dtx|scraddr|driver> + [2002/06/02 v1.1b LaTeX2e KOMA +% +% package] +% interactive address-directory generation] +% interactive phone-number-directory generation] +% +%<*dtx|driver> + Script bundle] +% +%<*driver> +\documentclass{ltxdoc} +\usepackage[a4paper,BCOR15mm,DIV12]{typearea} +\usepackage{german} +\DoNotIndex{\.,\@@par,\@M,\@abstrtfalse,\@abstrttrue,\@addtoreset} +\DoNotIndex{\@afieldfalse,\@afieldtrue,\@afterheading} +\DoNotIndex{\@afterindentfalse,\@arabic,\@badmath,\@beginparpenalty} +\DoNotIndex{\@biglocfalse,\@bigloctrue,\@bsphack} +\DoNotIndex{\@car,\@cdr,\@centercr,\@cite,\@dblfloat,\@dotsep} +\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty,\@endpart,\@esphack} +\DoNotIndex{\@finclfalse,\@fincltrue,\@float,\@fontswitch,\@foldfalse} +\DoNotIndex{\@foldtrue,\@fslfalse,\@fsltrue,\@gobbletwo} +\DoNotIndex{\@hangfrom,\@highpenalty,\@hinclfalse,\@hincltrue,\@hslfalse} +\DoNotIndex{\@hsltrue,\@idxitem,\@ifnextchar,\@ifundefined,\@ifstar} +\DoNotIndex{\@itempenalty} +\DoNotIndex{\@latex@warning,\@m,\@mainmatterfalse,\@mainmattertrue} +\DoNotIndex{\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse,\@mparswitchtrue} +\DoNotIndex{\@ne,\@nil,\@nobreakcr,\@nobreakfalse,\@nobreaktrue} +\DoNotIndex{\@nobreakvspace,\@nobreakvspacex,\@noitemerr,\@nomath,\@normalcr} +\DoNotIndex{\@openbibfalse,\@openbibtrue,\@openrightfalse,\@openrighttrue} +\DoNotIndex{\@plus,\@processto,\@reffalse,\@reftrue,\@restonecolfalse} +\DoNotIndex{\@restonecoltrue} +\DoNotIndex{\@subjfalse,\@subjtrue} +\DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempswafalse,\@tempswatrue} +\DoNotIndex{\@titlepagefalse,\@titlepagetrue,\@tocrmarg,\@topnewpage} +\DoNotIndex{\@topnum,\@twocolumnfalse,\@twocolumntrue,\@twosidefalse} +\DoNotIndex{\@twosidetrue} +\DoNotIndex{\@whiledim,\@whilenum,\@xnewline,\@xproc,\\,\ } +\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength} +\DoNotIndex{\addvspace,\advance,\Alph,\alph,\arabic,\Ask,\AtBeginDocument} +\DoNotIndex{\begin,\begingroup,\bfseries,\bgroup,\box,\bullet} +\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth} +\DoNotIndex{\cal,\cdot,\centering,\changes,\ClassWarningNoLine} +\DoNotIndex{\cleardoublepage,\clearpage} +\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\csname} +\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction,\Decisionfalse} +\DoNotIndex{\Decisiontrue,\DeclareOldFontCommand} +\DoNotIndex{\DeclareOption,\def,\defpar,\DisableCrossrefs} +\DoNotIndex{\divide,\documentclass,\DoNotIndex,\dotfill} +\DoNotIndex{\iden,\ifdim,\else,\fi,\egroup,\empty,\em,\EnableCrossrefs,\end} +\DoNotIndex{\end@dblfloat,\endcsname,\endletter} +\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage} +\DoNotIndex{\everypar,\ExecuteOptions,\expandafter} +\DoNotIndex{\fboxrule,\fboxsep,\fontsize,\frenchspacing} +\DoNotIndex{\gdef,\global} +\DoNotIndex{\hangindent,\hbox,\hfil,\hfill,\hrule,\hsize,\hskip,\hspace,\hss} +\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi} +\DoNotIndex{\ifnum,\ifodd,\ifvmode,\ifx,\fi,\fi,\fi,\fi} +\DoNotIndex{\ignorespaces,\input,\InputIfFileExists,\item,\itshape,\j,\ja} +\DoNotIndex{\kern,\LARGE,\Large,\leavevmode,\leftmark,\leftskip,\let} +\DoNotIndex{\lineskip,\list,\long} +\DoNotIndex{\m@ne,\m@th,\marginpar,\marginparpush,\markboth,\markright} +\DoNotIndex{\mathbf,\mathcal} +\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak,\month} +\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen} +\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent} +\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number} +\DoNotIndex{\numberline} +\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule} +\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine} +\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox} +\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges} +\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand} +\DoNotIndex{\ProvidesClass} +\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax} +\DoNotIndex{\renewcommand,\RequirePackage,\reset@font,\reversemarginpar} +\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\Roman,\roman,\rule} +\DoNotIndex{\sc@septext,\sc@temp,\sc@@temp,\scshape,\secdef,\setbox} +\DoNotIndex{\setcounter,\setlength} +\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space} +\DoNotIndex{\string,\strip,\strut,\subjectoff,\subjecton} +\DoNotIndex{\ta@temp,\the,\thispagestyle,\triangleright,\ttfamily,\twocolumn} +\DoNotIndex{\typein,\typeout} +\DoNotIndex{\undefined,\underline,\unhbox,\usecounter,\usepackage} +\DoNotIndex{\vadjust,\vfil,\vfill,\vspace} +\DoNotIndex{\wd,\xdef,\y,\year,\yes,\z@} +\CodelineIndex +\begin{document} + \DocInput{scraddr.dtx} +\end{document} +% +% \fi +% +% \GetFileInfo{scraddr.dtx} +% \RecordChanges +% +% \makeatletter +% \def\macro{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 0} +% \def\environment{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 1} +% \def\option{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 2} +% \long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist +% \edef\saved@macroname{\string#2}% +% \ifcase #1% +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \or +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \else +% \let\saved@@macroname\saved@macroname +% \fi +% \def\makelabel##1{\llap{##1}}% +% \if@inlabel +% \let\@tempa\@empty \count@\macro@cnt +% \loop \ifnum\count@>\z@ +% \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat +% \edef\makelabel##1{\llap{\vtop to\baselineskip +% {\@tempa\hbox{##1}\vss}}}% +% \advance \macro@cnt \@ne +% \else \macro@cnt\@ne \fi +% \edef\@tempa{\noexpand\item[% +% \ifcase #1% +% \noexpand\PrintMacroName +% \or +% \noexpand\PrintEnvName +% \else +% \noexpand\PrintOptionName +% \fi +% {\string#2}]}% +% \@tempa +% {\advance\c@CodelineNo\@ne +% \ifcase #1% +% \SpecialMainIndex{#2}\nobreak +% \DoNotIndex{#2}% +% \or +% \SpecialMainEnvIndex{#2}\nobreak +% \else +% \SpecialMainOptionIndex{#2}\nobreak +% \fi +% }% +% \ignorespaces} +% \let\endoption\endtrivlist +% \@ifundefined{PrintOptionName} +% {\def\PrintOptionName#1{\strut \MacroFont #1\ }}{} +% \def\SpecialMainOptionIndex#1{\@bsphack +% \special@index{#1\actualchar{\string\ttfamily\space#1} +% (option)\encapchar main}% +% \special@index{options:\levelchar{\string\ttfamily\space#1}\encapchar +% main}\@esphack} +% \def\changes@#1#2#3{% +% \protected@edef\@tempa{\noexpand\glossary{#1\levelchar +% \ifx\saved@macroname\@empty +% \space +% \actualchar +% \generalname +% \else +% \saved@@macroname +% \actualchar +% \string\verb\quotechar*\verbatimchar% +% \saved@macroname +% \verbatimchar +% \fi +% :\levelchar #3}}% +% \@tempa\endgroup\@esphack} +% \makeatother +% +% \title{Das scraddr\thanks{Diese Datei hat die Versionsnummer +% \fileversion, letzte "Anderung vom \filedate.}-Paket zur +% Auswertung von Adre"sdateien} +% \author{Markus Kohm \and Jens-Uwe Morawski} +% \date{\filedate} +% \maketitle +% +% \tableofcontents +% +% \changes{v1.1a}{2002/05/19}{Erste Version, die von \texttt{scrlettr} +% losgel"ost ist.} +% +% \section{Anleitung} +% +% \subsection{Rechtliches} +% Es wird keinerlei Haftung "ubernommen f"ur irgendwelche Sch"aden, +% die aus der Benutzung der Programme und Dateien des hier +% beschriebenen Paketes folgen. +% +% \subsection{Das \textsf{KOMA-Script} Paket} +% +% Das gesamte \textsf{KOMA-Script} Paket besteht aus mehreren Teilen. +% Der Teil |scrclass.dtx| beinhaltet die Haupt-classes |scrartcl.cls|, +% |scrreprt.cls| und |scrbook.cls| und |scrlttr2.cls| sowie das von +% diesen ben"otigte package |typearea.sty|. +% +% Das urspr"unglich in |scrlettr.dtx| enthaltene +% \texttt{scraddr}-Paket liegt nun hier als |scraddr.dtx| separat +% vor. Dies wurde erforderlich, das ansonsten in |scrlettr.dtx| nur +% noch obsolete Teile enthalten sind. +% +% Die Anleitung zu diesem Paket ist in der Anleitung zu +% \textsf{KOMA-Script} zu finden. Diese liegt in Deutsch und in +% Englisch vor. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Implementierung} +% +%\iffalse +% \begin{macrocode} +%<*scraddr> +%<*beta> +\PackageWarningNoLine{scraddr} + {THIS IS A BETA VERSION!\MessageBreak + YOU SHOULD NOT USE THIS VERSION!\MessageBreak + YOU SHOULD INSTALL THE RELEASE FROM CTAN\MessageBreak + AND USE THAT INSTEAD OF THIS BETA VERSION} +% +% +%\fi +% +% +% \changes{v1.0}{1996/01/22}{Neues Package scraddr.} +% \begin{macrocode} +%<*scraddr> +% \end{macrocode} +% Dieses Paket liest beliebige - auch mehrere - Adre"sdateien im oben +% beschriebenen Format ein und legt f"ur jeden Eintrag eine Reihe von +% Markos an. Bedingung daf"ur ist, da"s das achte Element jedes +% |\adrentry|-Eintrags - der K"urzeleintrag - nichtleer ist. +% Dies gilt in gleicher Weise auch f"ur das neunte Element neuerer +% |\addrentry|-Eintr"age. +% Im Falle von +% identischen K"urzeleintr"agen "uberschreiben sp"atere Eintr"age +% fr"uhere. Die Inhalte k"onnen dann "uber spezielle Befehle ermittelt +% werden. +% +% \subsection{Optionen} +% +% \begin{option}{adrFreeIVempty} +% \changes{v1.1a}{2002/05/19}{Neue Option} +% \begin{option}{adrFreeIVshow} +% \changes{v1.1a}{2002/05/19}{Neue Option} +% \begin{option}{adrFreeIVwarn} +% \changes{v1.1a}{2002/05/19}{Neue Option} +% \begin{option}{adrFreeIVstop} +% \changes{v1.1a}{2002/05/19}{Neue Option} +% \begin{macro}{\@adrFIVerror} +% \changes{v1.1a}{2002/05/19}{Neue (intern)} +% Die neuen Optionen dienen der Wahl, ob die Verwendung von +% \verb|\FreeIV| f"ur einen Eintrag, der mit \verb|\adrentry| +% definiert wurde, ignoriert wird, durch eine Ausgabe im Text +% angezeigt wird, zu einer Warnung oder einem Fehler f"uhrt. Im Makro +% wird die Einstellung gespeichert. Voreingestellt ist +% \texttt{adrFreeIVshow}. +% \begin{macrocode} +\newcommand*{\@adrFIVerror}{} +\DeclareOption{adrFreeIVempty}{\renewcommand*{\@adrFIVerror}{0}} +\DeclareOption{adrFreeIVshow}{\renewcommand*{\@adrFIVerror}{1}} +\DeclareOption{adrFreeIVwarn}{\renewcommand*{\@adrFIVerror}{2}} +\DeclareOption{adrFreeIVstop}{\renewcommand*{\@adrFIVerror}{3}} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \changes{v1.0a}{2001/08/07}{\cs{ExecuteOption}\cs{relax} korrigiert} +% \changes{v1.1a}{2002/05/19}{Option \texttt{adrFreeIVshow} ist +% Voreinstellung} +% \begin{macrocode} +\ExecuteOptions{adrFreeIVshow} +\ProcessOptions\relax +% \end{macrocode} +% +% \subsection{Adre"sdatei einlesen} +% \begin{macro}{\InputAdressFile} +% Mit Hilfe des Befehls |\InputAddressFile| wird die angegebene +% Adre"sdatei eingelesen und in Adre"smakros gewandelt, die dann beliebig +% verwendet werden k"onnen. Die Adre"smakros werden global generiert. +% Andere Makros insbesondere die Definitionen von |\adrentry| und +% |\addrentry| bleiben erhalten. +% \changes{v1.1}{2002/05/18}{Erweitert auf \cs{addrentry} +% Eintr"age} +% \changes{v1.1b}{2002/06/02}{Falls erforderlich werden auch +% \cs{addrchar} und \cs{adrchar} definiert} +% \begin{macrocode} +\newcommand{\InputAddressFile}[1]{\begingroup + \ifcase\@adrFIVerror + \def\adrentry##1##2##3##4##5##6##7{% + \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{}}% + \or + \def\adrentry##1##2##3##4##5##6##7##8{% + \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{% + (entry FreeIV undefined at `##8')}{##8}}% + \or + \def\adrentry##1##2##3##4##5##6##7##8{% + \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{% + \PackageWarning{scraddr}{% + `##8' was defined using \string\adrentry\MessageBreak + so \string\FreeIV-entry is not defined}}{##8}}% + \else + \def\adrentry##1##2##3##4##5##6##7##8{% + \addrentry{##1}{##2}{##3}{##4}{##5}{##6}{##7}{% + \PackageError{scraddr}{% + \string\FreeIV\space undefined at `##8'}{% + `##8' was defined using \string\adrentry\MessageBreak + so \string\FreeIV-entry is not defined.\MessageBreak + You may continue but you should check output}}{##8}}% + \fi + \providecommand*{\addrchar}[1]{}% + \providecommand*{\adrchar}{\addrchar}% + \def\addrentry##1##2##3##4##5##6##7##8##9{% + \def\@tempa{##9}\ifx\@tempa\@empty\else + \expandafter\gdef\csname ##9.LN\endcsname{##1} + \expandafter\gdef\csname ##9.FN\endcsname{##2} + \expandafter\gdef\csname ##9.A\endcsname{##3} + \expandafter\gdef\csname ##9.P\endcsname{##4} + \expandafter\gdef\csname ##9.FI\endcsname{##5} + \expandafter\gdef\csname ##9.FII\endcsname{##6} + \expandafter\gdef\csname ##9.FIII\endcsname{##7} + \expandafter\gdef\csname ##9.FIV\endcsname{##8} + \fi} +% \end{macrocode} +% Existiert die Datei nicht, so wird ein Fehler ausgegeben, ansonsten +% wird die Ladeaktion angezeigt. +% \begin{macrocode} + \InputIfFileExists{#1.adr} + {\typeout{Load addressfile: #1.adr.}} + {\PackageError{scraddr} + {File #1.adr not found} + {The addressfile you wanted is not + available}} + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \subsection{Zugriff auf die Elemente der eingelesenen Adre"sdatei} +% +% Da keine Vorschriften existieren, wie genau das K"urzel aufgebaut sein +% mu"s, k"onnen innerhalb des K"urzels theoretisch auch solche Zeichen +% enthalten sein, die f"ur Makronamen normalerweise ungeeignet sind. +% Deshalb existiert ein Satz von Befehlen, "uber den auf die zu einem +% K"urzel geh"orenden Elemente zugegriffen werden kann. Dabei wird davon +% ausgegangen, da"s die Adre"sdatei dem zuvor vorgeschlagenen Aufbau +% entspricht. +% +% \begin{macro}{\Name} +% Der Name wird aus dem Vornamen (Firstname) und Nachnamen (Lastname) +% zusammengesetzt, wobei einfach ein Leerzeichen dazwischen geklemmt +% wird. +% \begin{macrocode} +\newcommand*{\Name}[1]{\FirstName{#1}\ \LastName{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\FirstName} +% Der Vorname (Firstname) ist mit \emph{K"urzel}|.FN| codiert. +% \begin{macrocode} +\newcommand*{\FirstName}[1]{\csname #1.FN\endcsname} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\LastName} +% Der Nachname (Lastname) ist mit \emph{K"urzel}|.LN| codiert. +% \begin{macrocode} +\newcommand*{\LastName}[1]{\csname #1.LN\endcsname} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Address} +% Die Adresse (Address) ist mit \emph{K"urzel}|.A| codiert. +% \begin{macrocode} +\newcommand*{\Address}[1]{\csname #1.A\endcsname} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Telephone} +% Die Telephonnummer (Telephone/Phone) ist mit \emph{K"urzel}|.P| +% codiert. +% \begin{macrocode} +\newcommand*{\Telephone}[1]{\csname #1.P\endcsname} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\FreeI} +% \begin{macro}{\FreeII} +% Es existieren zwei freie Eintr"age, die mit \emph{K"urzel}|.FI| und +% \emph{K"urzel}.|FII| codiert sind. +% \begin{macrocode} +\newcommand*{\FreeI}[1]{\csname #1.FI\endcsname} +\newcommand*{\FreeII}[1]{\csname #1.FII\endcsname} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\Comment} +% \begin{macro}{\FreeIII} +% Das dritte freie Element ist "uber zwei Makros erreichbar. +% Das Makro |\Comment| dient zur Kompatibilit"at mit "alteren +% |\adrentry|-Eintr"agen, da hier der vorletzte Parameter als +% Kommentar gekennzeichnet war. +% Das Makro |\FreeIII| ist passend zur Definition des Makros +% |\addrentry| benannt. +% Die Daten sind im Makro mit \emph{K"urzel}|.FIII| kodiert. +% \changes{v1.1}{2002/05/18}{Erweitert auf addrentry Eintr"age} +% \begin{macrocode} +\newcommand*{\Comment}{} +\newcommand*{\FreeIII}[1]{\csname #1.FIII\endcsname} +\let\Comment\FreeIII +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\FreeIV} +% Das letzte Makro gibt ebenfalls Zugriff auf ein freies Element, das mit +% \emph{K"urzel}|.FIV| codiert ist. Dies wurde ebenfalls f"ur +% neue |\addrentry| Eintr"agen eingef"uhrt. Bei "alteren |\adrentry| +% Eintr"agen, f"uhrt die Benutzung dieses Macros zu einer Warnung im Text. +% \changes{v1.1}{2002/05/18}{Erweitert auf addrentry Eintr"age} +% \begin{macrocode} +\newcommand*{\FreeIV}[1]{\csname #1.FIV\endcsname} +% \end{macrocode} +% \end{macro} +% +% \subsection{Ende des Pakets} +% \begin{macrocode} +% +% \end{macrocode} +% +% \input{scrlogo.dtx} +% +% \IndexPrologue{\clearpage +% \section*{Index} +% \markboth{Index}{Index} +% Die kursiven Zahlen geben die Seiten an, auf denen +% der entsprechende Eintrag beschrieben ist. +% Die unterstrichenden Zahlen geben die Stelle der +% Definition des Eintrags an. +% Alle anderen Zahlen benennen Stellen, an denen der +% entsprechende Eintrag verwendet ist. +% \vspace{1em}\noindent} +% +% \GlossaryPrologue{\section*{"Anderungsverzeichnis} +% \markboth{"Anderungsverzeichnis}{"Anderungsverzeichnis} +% \addcontentsline{toc}{section}{"Anderungsverzeichnis} +% Die erste Version des \textsf{KOMA-Script} Pakets +% stammt vom 7.\,Juli~1994. Es werden nur die +% "Anderungen ab diesem Zeitpunkt dokumentiert.\par% +% \vspace{1em}\noindent} +% +% \Finale +% +\endinput +% +% Ende der Datei `scraddr.dtx' + +%%% Local Variables: +%%% mode: latex +%%% Text-master: scraddr.ins +%%% End: \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrclass.dtx b/Master/texmf-dist/source/latex/koma-script/scrclass.dtx new file mode 100644 index 00000000000..b9ecef2d564 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrclass.dtx @@ -0,0 +1,12466 @@ +% \CheckSum{11211} +% \iffalse +% ====================================================================== +% scrclass.dtx +% Copyright (C) 1995-2004 Markus Kohm +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the +% main documentation is german. There is also a english documentation, +% but this is NOT up-to-date. +% ---------------------------------------------------------------------- +% scrclass.dtx +% Copyright (C) 1995-2004 Markus Kohm +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +% englische Version der Anleitung, diese hinkt der deutschen Anleitung +% jedoch fast immer hinterher. +% ====================================================================== +% +% \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 \~} +% +%<*dtx> + \ProvidesFile{scrclass.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesFile{scrclass.drv} +%\ProvidesClass{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% +% } +%\ProvidesPackage{% +% typearea% +% scrlfile% +% } +%\ProvidesFile{% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% +% .lco} + [2004/09/16 v2.9t LaTeX2e KOMA +% BETA-VERSION +% document class] +% package] +% letter-class-option] +% +%<*driver> + Script bundle] +\documentclass{ltxdoc} +\usepackage[a4paper,BCOR15mm,DIV12]{typearea} +\usepackage{german} +% +% Fuer den Fall von |\EnableCrossrefs| +% +\DoNotIndex{\.,\@M,\@abstrtfalse,\@abstrttrue,\@addtoreset,\@afterheading} +\DoNotIndex{\@afterindentfalse,\@arabic,\@badmath,\@beginparpenalty} +\DoNotIndex{\@car,\@cdr,\@centercr,\@cite,\@dblfloat,\@dotsep} +\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty,\@endpart} +\DoNotIndex{\@finclfalse,\@fincltrue,\@float,\@fontswitch,\@fslfalse} +\DoNotIndex{\@fsltrue,\@gobbletwo} +\DoNotIndex{\@hangfrom,\@highpenalty,\@hinclfalse,\@hincltrue,\@hslfalse} +\DoNotIndex{\@hsltrue,\@idxitem,\@ifnextchar,\@ifundefined,\@itempenalty} +\DoNotIndex{\@latex@warning,\@m,\@mainmatterfalse,\@mainmattertrue} +\DoNotIndex{\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse} +\DoNotIndex{\@mparswitchtrue} +\DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@noitemerr,\@nomath} +\DoNotIndex{\@openrightfalse,\@openrighttrue} +\DoNotIndex{\@plus,\@restonecolfalse,\@restonecoltrue} +\DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempswafalse,\@tempswatrue} +\DoNotIndex{\@titlepagefalse,\@titlepagetrue,\@tocrmarg,\@topnewpage} +\DoNotIndex{\@topnum,\@twocolumnfalse,\@twocolumntrue,\@twosidefalse} +\DoNotIndex{\@twosidetrue} +\DoNotIndex{\@whiledim,\@whilenum,\\,\ } +\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength} +\DoNotIndex{\addvspace,\advance,\@Alph,\@alph,\@arabic} +\DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet} +\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth} +\DoNotIndex{\cdot,\centering,\changes,\cleardoublepage,\clearpage} +\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex} +\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction} +\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\def,\DisableCrossrefs} +\DoNotIndex{\divide,\DoNotIndex} +\DoNotIndex{\ifdim,\else,\fi,\empty,\em,\EnableCrossrefs,\end} +\DoNotIndex{\end@dblfloat} +\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage} +\DoNotIndex{\everypar,\ExecuteOptions,\expandafter} +\DoNotIndex{\fboxrule,\fboxsep} +\DoNotIndex{\gdef,\global} +\DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss} +\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi} +\DoNotIndex{\ifnum,\ifodd,\ifx,\fi,\fi,\fi} +\DoNotIndex{\input,\InputIfFileExists,\item,\itshape} +\DoNotIndex{\kern,\leavevmode,\leftmark,\leftskip,\let,\lineskip} +\DoNotIndex{\list,\long} +\DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright,\mathbf,\mathcal} +\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak} +\DoNotIndex{\month} +\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen} +\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent} +\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number} +\DoNotIndex{\numberline} +\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule} +\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine} +\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox} +\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges} +\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand} +\DoNotIndex{\ProvidesClass} +\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax} +\DoNotIndex{\renewcommand,\RequirePackage,\reset@font} +\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\@Roman,\@roman} +\DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength} +\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space} +\DoNotIndex{\string} +\DoNotIndex{\ta@temp,\the,\thispagestyle,\triangleright,\ttfamily} +\DoNotIndex{\twocolumn,\typeout} +\DoNotIndex{\undefined,\usecounter} +\DoNotIndex{\vfil,\vfill,\vspace} +\DoNotIndex{\wd,\xdef,\year,\z@} +\CodelineIndex +% +\begin{document} + \DocInput{scrclass.dtx} +\end{document} +% +% \fi +% +% \GetFileInfo{scrclass.dtx} +% \RecordChanges +% +% \makeatletter +% \def\macro{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 0} +% \def\environment{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 1} +% \def\option{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 2} +% \def\Length{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 3} +% \def\Counter{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 4} +% \def\KOMAvar{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 5} +% \long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist +% \edef\saved@macroname{\string#2}% +% \ifcase #1% +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \or +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \else +% \let\saved@@macroname\saved@macroname +% \fi +% \def\makelabel##1{\llap{##1}}% +% \if@inlabel +% \let\@tempa\@empty \count@\macro@cnt +% \loop \ifnum\count@>\z@ +% \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat +% \edef\makelabel##1{\llap{\vtop to\baselineskip +% {\@tempa\hbox{##1}\vss}}}% +% \advance \macro@cnt \@ne +% \else \macro@cnt\@ne \fi +% \edef\@tempa{\noexpand\item[% +% \ifcase #1% +% \noexpand\PrintMacroName +% \or +% \noexpand\PrintEnvName +% \or +% \noexpand\PrintOptionName +% \or +% \noexpand\PrintLengthName +% \or +% \noexpand\PrintCounterName +% \or +% \noexpand\PrintKOMAvarName +% \fi +% {\string#2}]}% +% \@tempa +% {\advance\c@CodelineNo\@ne +% \ifcase #1% +% \SpecialMainIndex{#2}\nobreak +% \DoNotIndex{#2}% +% \or +% \SpecialMainEnvIndex{#2}\nobreak +% \or +% \SpecialMainOptionIndex{#2}\nobreak +% \or +% \SpecialMainLengthIndex{#2}\nobreak +% \or +% \SpecialMainCounterIndex{#2}\nobreak +% \or +% \SpecialMainKOMAvarIndex{#2}\nobreak +% \fi +% }% +% \ignorespaces} +% \let\endoption\endtrivlist +% \providecommand*{\PrintOptionName}[1]{\strut \MacroFont #1\ } +% \providecommand*{\PrintLengthName}[1]{\strut \MacroFont \char`\\#1\ } +% \providecommand*{\PrintCounterName}[1]{\strut \MacroFont #1\ } +% \providecommand*{\PrintKOMAvarName}[1]{\strut \MacroFont #1\ } +% \newcommand*{\ttbksp}{\texttt{\char`\\}} +% \newcommand*{\SpecialMainOptionIndex}[1]{\@bsphack +% \special@index{#1\actualchar{\string\ttfamily\space#1} +% (Option)\encapchar main}% +% \special@index{Optionen:\levelchar{\string\ttfamily\space#1}\encapchar +% main}\@esphack} +% \newcommand*{\SpecialMainLengthIndex}[1]{\@bsphack +% \special@index{#1\actualchar{\string\ttfamily\string\ttbksp\space#1} +% (L"ange)\encapchar main}% +% \special@index{L"angen:\levelchar{\string\ttfamily\string\ttbksp\space +% #1}\encapchar +% main}\@esphack} +% \newcommand*{\SpecialMainCounterIndex}[1]{\@bsphack +% \special@index{#1\actualchar{\string\ttfamily\space#1} +% (Z"ahler)\encapchar main}% +% \special@index{Z"ahler:\levelchar{\string\ttfamily\space#1}\encapchar +% main}\@esphack} +% \newcommand*{\SpecialMainKOMAvarIndex}[1]{\@bsphack +% \special@index{#1\actualchar{\string\ttfamily\space#1} +% (Variable)\encapchar main}% +% \special@index{KOMA-Script +% Variablen:\levelchar{\string\ttfamily\space +% #1}\encapchar +% main}\@esphack} +% \renewcommand*{\changes@}[3]{% +% \protected@edef\@tempa{\noexpand\glossary{#1\levelchar +% \ifx\saved@macroname\@empty +% \space +% \actualchar +% \generalname +% \else +% \saved@@macroname +% \actualchar +% \string\verb\quotechar*\verbatimchar% +% \saved@macroname +% \verbatimchar +% \fi +% :\levelchar #3}}% +% \@tempa\endgroup\@esphack} +% \makeatother +% \MacroIndent=2em +% +% \title{Die Haupt-classes und -packages des \textsf{KOMA-Script} +% Pakets\thanks{Diese Datei hat die Versionsnummer \fileversion, +% letzte "Anderung \filedate.}} +% \author{Frank Neukam\and Markus Kohm} +% \date{\filedate} +% \maketitle +% +% \tableofcontents +% +% \changes{v2.0e}{1994/10/28}{Erste Version, die \texttt{docstrip} +% verwendet} +% \changes{v2.3}{1995/06/25}{Change-Glossary aufger"aumt} +% \changes{v2.3a}{1995/07/08}{\texttt{0pt} jeweils durch \cs{z@} ersetzt} +% \changes{v2.3a}{1995/07/08}{Verwendung von \cs{cs} statt \cs{cmd} im +% Change Glossary} +% \changes{v2.3a}{1995/07/08}{Die Mehrzahl der \cs{newcommand} mit +% Parameter durch \cs{newcommand*} ersetzt} +% \changes{v2.3a}{1995/07/08}{\cs{hbox to} durch \cs{hb@xt@} ersetzt} +% \changes{v2.3a}{1995/07/08}{\cs{reset@font} durch \cs{normalfont} +% ersetzt} +% \changes{v2.3g}{1996/01/14}{Diverse weitere \cs{newcommand} mit und +% ohne Parameter durch \cs{newcommand*} +% ersetzt} +% \changes{v2.3g}{1996/01/14}{Diverse \cs{renewcommand} mit und ohne +% Parameter durch \cs{renewcommand*} +% ersetzt} +% \changes{v2.7b}{2001/01/05}{Implementierungsdokumentation verbessert +% und bessert geordnet +% (Gliederungsbefehle)} +% \changes{v2.8q}{2001/11/13}{diverse \texttt{pt} durch \cs{p@} und +% \texttt{0pt} durch \cs{z@} ersetzt} +% +% \part{Anleitung} +% +% \section{Generelles} +% +% \subsection{Rechtliches} +% Es wird keinerlei Haftung "ubernommen f"ur irgendwelche Sch"aden, +% die aus der Benutzung der Programme und Dateien des hier +% beschriebenen Paketes folgen. +% +% \subsection{Das \textsf{KOMA-Script} Paket} +% +% Das gesamte \textsf{KOMA-Script} Paket besteht aus mehreren Teilen. +% Dieser Teil (|scrclass.dtx|) beinhaltet die Haupt-classes +% |scrartcl.cls|, |scrreprt.cls| und |scrbook.cls| sowie das von +% diesen ben"otigte package |typearea.sty|. +% +% Die urspr"unglich ebenfalls in |komascr.dtx| enthaltene Anleitung +% wurde von Harald Sommerfeldt "uberarbeitet und ist nun als getrennte +% Datei |scrguide.tex| zu finden. |scrguide.tex| sollte am gleichen +% Ort verf"ugbar sein, an dem Sie auch |scrclass.dtx| gefunden haben. +% +% Urspr"unglich war in |komascr.dtx| eine Brief-Klasse +% enthalten. Die Klasse |scrlettr.cls| wurde dann jedoch als +% |scrlettr.dtx| abgetrennt. Inzwischen ist die neue Brief-Klasse +% |scrlttr2.cls| wieder enthalten. +% +% Zum Gesamtpaket geh"oren weitere Dateien. +% Eine Aufz"ahlung finden Sie in der Installationsanleitung +% |liesmich.txt|. Dort ist auch angegeben, wie die classes, packages +% und andere Dateien aus den |*.dtx|-Dateien extrahiert werden. +% +% Das \textsf{KOMA-Script} Paket entspricht dem Stand nach den +% Standard \LaTeX Document Classes Version 1.3q [1995/12/20]. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \part{Implementierung} +% \changes{v2.9}{2002/06/21}{Release} +% +% \section{Generell} +%\iffalse +% \begin{macrocode} +%<*beta> +%<*package> +\PackageWarningNoLine{% +% typearea% +% scrlfile% + } +% +%<*class> +\ClassWarningNoLine{% +% scrbook% +% scrreprt% +% scrartcl% +% scrlttr2% + } +% +%<*lco> +\GenericWarning{(% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% + .lco)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces}{% + Letter-class-option +% DIN +% DINmtext +% SN +% SNold +% SNleft +% KOMAold + Warning:\space +% +% {% +%<*class|package|lco> + THIS IS A BETA VERSION!\MessageBreak + YOU SHOULD NOT USE THIS VERSION!\MessageBreak + YOU SHOULD INSTALL THE RELEASE FROM CTAN\MessageBreak + AND USE THAT INSTEAD OF THIS BETA VERSION% +% \@gobble% +} +% +% +% \end{macrocode} +%\fi +% +% +% \section{"`scrlfile"'-package} +% +% Dieser Abschnitt ist englisch dokumentiert. Ich bitte daf"ur um +% Verst"andnis. +% +% \subsection{Let's start} +% +% \begin{macrocode} +%<*scrlfile> +\typeout{Package scrlfile, \csname ver@scrlfile.sty\endcsname% + ^^J\@spaces\@spaces\@spaces\@spaces\space\space + Copyright (C) Markus Kohm^^J} +% +% +% \subsection{Options} +% +% Currently there are no options. +% \begin{macrocode} +\ExecuteOptions{} +\ProcessOptions\relax +% \end{macrocode} +% +% +% \subsection{The macros} +% +% \begin{macro}{\InputIfFileExists} +% \LaTeX{} uses this macro for loading files with +% \cs{input}\marg{filename}, \cs{include}, \cs{LoadClass}, +% \cs{LoadClassWithOptions}, \cs{documentclass}, \cs{documentstyle}, +% \cs{RequirePackage}, \cs{usepackage}. Only +% \cs{input}~\meta{filename} loads \meta{filename} without using +% \cs{InputIfFileExists}. +% +% Because of this, it's very easy to add stuff before and after +% loading a file. We simply change this macro and add to +% macros\,---\,one before loading the file and one after loading the +% file. But before we redefine the macro, we test, if the macro was +% defined like we expected. \LaTeX{} will warn, if not. +% \begin{macrocode} +\CheckCommand{\InputIfFileExists}[2]{% + \IfFileExists{#1}% + {#2\@addtofilelist{#1}\@@input \@filef@und}} +% \end{macrocode} +% Now we can redefine the macro like described above: +% \begin{macrocode} +\renewcommand{\InputIfFileExists}[2]{% + \IfFileExists{#1}{% + \scr@load@hook{before}{#1}% + #2\@addtofilelist{#1}\@@input \@filef@und + \scr@load@hook{after}{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@load@hook} +% This macro simply calls a load-file-hook, either the \emph{before} +% or the \emph{after} one, if the hook exists. After calling the hook +% it will be deleted. First argument is the type of hook +% (\meta{before} or \meta{after}), second argument is a filename. +% \begin{macrocode} +\newcommand*{\scr@load@hook}[2]{% + \@ifundefined{#2-@#1}{}{% + \@nameuse{#2-@#1}% + \expandafter\let\csname #2-@#1\endcsname=\relax}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@set@load@hook} +% This command adds stuff to a load-file-hook, either the +% \emph{before} or the \emph{after} one. First argument is the type of +% hook (\meta{before} or \meta{after}), second is a filename. There's +% a third argument not parsed by the macro itself but +% \cs{g@addto@macro}. This third argument is the stuff, which will be +% added to the hook. Because of using \cs{g@addto@macro} the hook must +% be defined. So we define it, if it isn't. +% \begin{macrocode} +\newcommand*{\scr@set@load@hook}[2]{% + \@ifundefined{#2-@#1}{\@namedef{#2-@#1}{}}{}% + \expandafter\g@addto@macro\csname #2-@#1\endcsname} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\BeforeFile} +% \begin{macro}{\AfterFile} +% \begin{macro}{\BeforeClass} +% \begin{macro}{\AfterClass} +% \changes{v2.9f}{2002/08/29}{Sternvariante funktioniert jetzt} +% \begin{macro}{\@AfterClass} +% \begin{macro}{\@sAfterClass} +% \begin{macro}{\BeforePackage} +% \begin{macro}{\AfterPackage} +% \changes{v2.9f}{2002/08/29}{Sternvariante funktioniert jetzt} +% \begin{macro}{\@AfterPAckage} +% \begin{macro}{\@sAfterPackage} +% These macros add stuff to a load-file-hook of a file, class or +% package. First argument is the name of the file (with extension), +% class (without extension) or package (without extension). There's a +% second argument parsed by wether the macros themself nor +% \cs{scr@set@load@hook} but \cs{g@addto@macro}. See +% \cs{scr@set@load@hook} for more information. The star-forms +% \cs{AfterClass*} and \cs{AfterPackage*} does the action immediate, +% if the class or package was already loaded. +% \begin{macrocode} +\newcommand*{\BeforeFile}{\scr@set@load@hook{before}} +\newcommand*{\AfterFile}{\scr@set@load@hook{after}} +\newcommand*{\BeforeClass}[1]{% + \scr@set@load@hook{before}{#1.\@clsextension}} +\newcommand*{\AfterClass}{% + \@ifstar {\@sAfterClass}{\@AfterClass}} +\newcommand*{\@AfterClass}[1]{% + \scr@set@load@hook{after}{#1.\@clsextension}} +\newcommand*{\@sAfterClass}[1]{% + \begingroup + \@ifclassloaded{#1}{% + \aftergroup\@secondoftwo + }{% + \aftergroup\@AfterClass + }% + \endgroup + {#1}% +} +\newcommand*{\BeforePackage}[1]{% + \scr@set@load@hook{before}{#1.\@pkgextension}} +\newcommand*{\AfterPackage}{% + \@ifstar {\@sAfterPackage}{\@AfterPackage}} +\newcommand*{\@AfterPackage}[1]{% + \scr@set@load@hook{after}{#1.\@pkgextension}} +\newcommand*{\@sAfterPackage}[1]{% + \begingroup + \@ifpackageloaded{#1}{% + \aftergroup\@secondoftwo + }{% + \aftergroup\@AfterPackage + }% + \endgroup + {#1}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% That's all +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \section{"`typearea"'-package} +% +% \begin{macrocode} +%<*typearea> +% \end{macrocode} +% \changes{v2.0e}{1994/07/07}{Auf \LaTeXe umgestellt} +% \changes{v2.0e}{1994/09/02}{\cs{ProvideClass} durch +% \cs{ProvidePackage} ersetzt} +% \changes{v2.0e}{1994/09/02}{\cs{endinput} angeh"angt} +% \changes{v2.1a}{1994/10/29}{Auf doc/docstrip umgestellt} +% \changes{v2.1b}{1994/12/31}{Letzte Version f"ur 1994 fertiggestellt} +% Zuerst einmal zeigen, was es ist: +% \begin{macrocode} +\typeout{Package typearea, \csname ver@typearea.sty\endcsname% + ^^J\@spaces\@spaces\@spaces\@spaces\space\space + Copyright (C) Frank Neukam, 1992-1994% + ^^J\@spaces\@spaces\@spaces\@spaces\space\space + Copyright (C) Markus Kohm, 1994-2002^^J} +% \end{macrocode} +% +% \subsection{Befehle vor den Optionen} +% +% \begin{macro}{\SetDIVList} +% \changes{v2.1a}{1994/10/28}{neu eingef"uhrt.} +% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enth"alt Werte f"ur +% Schriftgr"o"sen ab 1pt.} +% Der Befehl |\SetDIVList| tut nichts weiter als die innere Variable +% f"ur die schriftgr"o"senabh"angige \emph{DIV}-Liste |\ta@divlist| neu +% zu definieren. Dabei k"onnen \emph{DIV}-Werte f"ur Gr"o"sen ab 10\,pt +% gesetzt werden. +% \begin{macrocode} +\newcommand*\SetDIVList[1]{\def\ta@divlist{{}{}{}{}{}{}{}{}{}#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\SetXDIVList} +% \changes{v2.6}{2000/01/04}{neu eingef"uhrt.} +% Da mit \cs{SetDIVList} aus Kompatibilit"atsgr"unden nur Werte f"ur +% Gr"o"sen ab 10\,pt gesetzt werden k"onnen, wird f"ur Werte ab 1\,pt +% ein neuer Befehl ben"otigt. +% \begin{macrocode} +\newcommand*\SetXDIVList[1]{\def\ta@divlist{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ta@bcor} +% \changes{v2.2a}{1995/01/25}{Definition der Dimension wegen der +% Option \texttt{BCOR} vorgezogen} +% \changes{v2.7g}{2001/04/17}{\cs{newlength} and Stelle von +% \cs{newdimen} f"ur die Definition +% verwendet} +% Dimension f"ur die Bindekorrektur reservieren. Diese wird implizit +% zu 0pt initialisiert. +% \begin{macrocode} +\newlength{\ta@bcor} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifnumber} +% Dieses Makro testet, ob ein "ubergebener Parameter eine positive, +% ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter +% ausgef"uhrt, sonst der dritte. +% \begin{macrocode} +\providecommand\ifnumber[3]{ + \begingroup\@tempswafalse\let\scr@next\test@number + \expandafter\scr@next#1\scr@next + \if@tempswa\endgroup#2\else\endgroup#3\fi +} +% \end{macrocode} +% F"ur den eigentlichen Test wird der erste Parameter Token f"ur Token +% gescannt und beurteilt. +% \begin{macro}{\test@number} +% \begin{macrocode} +\newcommand*{\test@number}[1]{ + \ifx \scr@next#1 + \let\scr@next\relax + \else +% \end{macrocode} +% Dabei wird f"ur einen schnelleren Vergleich die Tatsache genutzt, da"s +% Ziffernzeichen immer im selben durchg"angigen Bereich liegen +% \begin{macrocode} + \@tempcnta=\expandafter\expandafter\expandafter\number + \expandafter`#1\relax + \ifnum \@tempcnta>47\relax + \ifnum \@tempcnta<58\relax + \@tempswatrue + \else\@tempswafalse\fi + \else\@tempswafalse\fi +% \end{macrocode} +% Das zeichenweise scannen und parsen kann nat"urlich nicht einfach +% abgebrochen werden. Stattdessen ist der Parameterrest noch zu +% entfernen. +% \begin{macrocode} + \if@tempswa\else\let\scr@next\gobble@till@next\fi\fi + \scr@next} +% \end{macrocode} +% \begin{macro}{\gobble@till@next} +% Das geschieht mit einem einzigen "`Leermacro"'. +% \begin{macrocode} +\newcommand*{\gobble@till@next}{} +\def\gobble@till@next#1\scr@next{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\ifdimen} +% Dieses Makro testet, ob ein "ubergebener Parameter eine Dimension +% ist und f"uhrt in Abh"angigkeit davon den zweiten oder dritten +% Parameter aus. +% \begin{macrocode} +\newcommand{\ifdimen}[3]{ + \begingroup\@tempswatrue\let\scr@next\test@posdimen + \expandafter\test@dimen#1\scr@next + \if@tempswa\endgroup#2\else\endgroup#3\fi +} +% \end{macrocode} +% \begin{macro}{\test@dimen} +% Als erste mu"s ein Vorzeichen entfernt werden. +% \begin{macrocode} +\newcommand*{\test@dimen}[1]{\ifx -#1\else\ifx +#1\else + \def\scr@next{\let\scr@next\test@posdimen\scr@next#1}\fi\fi\scr@next} +% \end{macrocode} +% \begin{macro}{\test@posdimen} +% Dann mu"s getestet werden, ob es sich beim Rest um eine Dimension +% handelt. Dabei werden der einfachheit halber mehrere Dezimalkomma +% und -punkte erlaubt. Nat"urlich k"onnte man es auch wirklich richtig +% machen, aber das w"are nochmal etwas aufwendiger. Ist das wirklich +% notwendig? +% \begin{macrocode} +\newcommand*{\test@posdimen}[1]{ + \ifx \scr@next#1 + \@tempswafalse\let\scr@next\relax + \else + \if .#1\else\if ,#1\else + \@tempcnta=% + \expandafter\expandafter\expandafter\number\expandafter`#1\relax + \ifnum \@tempcnta>47\relax + \ifnum \@tempcnta<58\relax + \else\def\scr@next{\test@dimunt#1}\fi + \else\def\scr@next{\test@dimunt#1}\fi\fi\fi\fi + \scr@next} +% \end{macrocode} +% \begin{macro}{\testdimunt} +% \begin{macro}{\test@trueunt} +% Au"ser einer Gleitkomma- bzw. Gleitpunktzahl mu"s auch noch die Einheit +% behandelt werden. Dabei sind sowohl die neun Standardeinheiten als auch +% deren "`true"'-Variante zu ber"ucksichtigen. Deshalb wird zuerst ein +% eventuelles "`\texttt{true}"' weggeworfen. +% \begin{macrocode} +\newcommand*{\test@dimunt}{} +\def\test@dimunt#1\scr@next{% + \expandafter\test@trueunt#1truetrue\test@trueunt} +\newcommand*{\test@trueunt}{} +\def\test@trueunt#1true#2true#3\test@trueunt{ + \edef\@tempa{#1} + \ifx\@tempa\@empty\test@@ifdimunt{#2}\else\test@@ifdimunt{#1}\fi} +% \end{macrocode} +% \begin{macro}{\test@@ifdimunt} +% Anschlie"send wird dann getestet, ob es sich um eine der neun "ublichen +% Einheiten handelt. +% \begin{macrocode} +\newcommand*\test@@ifdimunt[1]{ + \@tempswafalse + \ifstr{#1}{pt}{\@tempswatrue}{} + \ifstr{#1}{pc}{\@tempswatrue}{} + \ifstr{#1}{in}{\@tempswatrue}{} + \ifstr{#1}{bp}{\@tempswatrue}{} + \ifstr{#1}{cm}{\@tempswatrue}{} + \ifstr{#1}{mm}{\@tempswatrue}{} + \ifstr{#1}{dd}{\@tempswatrue}{} + \ifstr{#1}{cc}{\@tempswatrue}{} + \ifstr{#1}{sp}{\@tempswatrue}{}} +% \end{macrocode} +% \begin{macro}{\ifstr} +% Dieses Macro wird oben ben"otigt und vergleicht zwei +% Tokenfolgen. +% \begin{macrocode} +\newcommand\ifstr[4]{ + \begingroup\edef\@tempa{#1}\edef\@tempb{#2} + \ifx\@tempa\@tempb\endgroup#3\else\endgroup#4\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@BCOR} +% \begin{macro}{\@@BCOR} +% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch Mustererkennung +% ersetzt.} +% Das Makro |\@BCOR| wird sp"ater ben"otigt, um die Option +% |BCOR|\emph{BCOR} zu erkennen. Die Option wird "uber ihr Muster +% erkannt. +% \begin{macrocode} +\newcommand*{\@BCOR}{\expandafter\@@BCOR\CurrentOption BCORBCOR\@@BCOR} +\newcommand*{\@@BCOR}{} +\def\@@BCOR #1BCOR#2BCOR#3\@@BCOR{ +% \end{macrocode} +% Handelt es sich um die Option |BCOR|, so ist der erste Parameter leer. +% \begin{macrocode} + \edef\@tempa{#1}\ifx\@tempa\@empty +% \end{macrocode} +% Au"serdem ist der dritte Parameter dann |BCOR|. +% \begin{macrocode} + \edef\@tempa{#3}\def\@tempb{BCOR}\ifx\@tempa\@tempb +% \end{macrocode} +% Der zweite Parameter sollte dann die Gr"o"se enthalten. Ist dies +% nicht der Fall, wird ein Fehler gemeldet (Fehlerzeile ist dann +% |\ProcessOptions|). +% \begin{macrocode} + \ifdimen{#2}{\setlength{\ta@bcor}{#2}}{\ta@opt@err} +% \end{macrocode} +% In allen anderen F"allen ist es nicht diese Option, dann wird ein Fehler +% ausgegeben. Stattdessen k"onnte hier auch auf weitere Optionen getestet +% werden. +% \begin{macrocode} + \else\ta@opt@err\fi + \else\ta@opt@err\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ta@div} +% \changes{v2.2a}{1995/01/25}{Definition wegen der Option \texttt{DIV} +% vorgezogen} +% Z"ahler f"ur \emph{DIV} reservieren. Dieser wird implizit zu +% 0 initialisiert. +% \begin{macrocode} +\newcount\ta@div +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@DIV} +% \begin{macro}{\@@DIV} +% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch Mustererkennung +% ersetzt.} +% Die grunds"atzliche Funktion ist die gleiche wie bei |\@BCOR|, |\@@BCOR|. +% \begin{macrocode} +\newcommand*{\@DIV}{\expandafter\@@DIV\CurrentOption DIVDIV\@@DIV} +\newcommand*{\@@DIV}{} +\def\@@DIV #1DIV#2DIV#3\@@DIV{ + \edef\@tempa{#1}\ifx\@tempa\@empty + \edef\@tempa{#3}\def\@tempb{DIV}\ifx\@tempa\@tempb + \ifnumber{#2}{\ta@div=#2\relax}{\ta@opt@err} + \else\ta@opt@err\fi +% \end{macrocode} +% Der Unterschied liegt darin, da"s bei einem Fehlschlag der +% Mustererkennung kein Fehler vorliegt, sondern u.\,U. noch auf |BCOR| +% getestet werden mu"s. +% \begin{macrocode} + \else\@BCOR\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@headlines} +% \begin{macro}{\@@headlines} +% \changes{v2.7g}{2001/04/17}{Neue Mustererkennung f"ur die Anzahl der +% Kopfzeilen} +% Das Macro \cs{@headlines} wird ben"otigt, um die Option +% \texttt{headlines} zu erkennen. +% \begin{macrocode} +\newcommand{\@headlines}{% + \expandafter\@@headlines\CurrentOption headlines\@@headlines} +\newcommand*{\@@headlines}{} +\def\@@headlines #1headlines#2\@@headlines{ + \edef\@tempa{#2}\edef\@tempb{headlines}\ifx\@tempa\@tempb + \setlength{\@tempdima}{#1\baselineskip} + \def\ta@hh{#1\baselineskip} + \else\@DIV\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\x@paper} +% \begin{macro}{\x@@paper} +% \changes{v2.5}{1997/06/17}{Neue Mustererkennung f"ur die Papiergr"o"se.} +% Diese Makros werden ebenfalls sp"ater ben"otigt, wenn die Papiergr"o"se +% festgelegt wird. +% +% \begin{macro}{\isopaper} +% \changes{v2.5}{1997/06/17}{Neuer Befehl zur Berechnung unterschiedlicher +% ISO/DIN-Papierformate.} +% Da das Makro |\isopaper| in der Mustererkennung f"ur die Papiergr"o"se +% ben"otigt wird, wurde dieses Makro ebenfalls vorgezogen. +% \begin{macrocode} +\newcommand\isopaper[2][a]{% +% \end{macrocode} +% Das Makro kennt zwei Parameter, von denen der erste und optionale die +% Grundgr"o"se angibt. Die Angabe erfolgt "uber einen Kleinbuchstaben. +% M"oglich ist +% \begin{description} +% \item[a] ISO/DIN-A-Format +% \item[b] ISO/DIN-B-Format +% \item[c] ISO/DIN-C-Format +% \end{description} +% Der zweite Paremeter gibt dann die Skalierung an. +% +% Als Grundgr"o"se wird jeweils die 0-Gr"o"se eingesetzt. +% \begin{macrocode} + \ifx a#1 + \setlength{\paperwidth}{841sp}\setlength{\paperheight}{1189sp} + \else\ifx b#1 + \setlength{\paperwidth}{1000sp}\setlength{\paperheight}{1414sp} + \else\ifx c#1 + \setlength{\paperwidth}{917sp}\setlength{\paperheight}{1297sp} + \else\ifx d#1 + \setlength{\paperwidth}{771sp}\setlength{\paperheight}{1090sp} +% \end{macrocode} +% Wurde ein anderer Buchstabe angegeben, ist ein Fehler auszugeben. +% \changes{v2.5a}{1997/06/22}{Ausgabe der gew"ahlten Papiergr"o"se +% entfernt} +% \begin{macrocode} + \else + \PackageError{typearea} + {Unknown ISO/DIN-papersize-letter #1} + {There are only four defined paperscalings:\MessageBreak + a = ISO/DIN-A, b = ISO/DIN-B, c = ISO/DIN-C, d = ISO/DIN-D\MessageBreak + Read KOMA-Script-documentation for further information.} + \setlength{\paperwidth}{841sp}\setlength{\paperheight}{1189sp} + \fi\fi\fi\fi +% \end{macrocode} +% Es d"urfte aufgefallen sein, da"s bei der Gr"o"senfestlegung statt +% der Einheit "`mm"' die Einheit "`sp"' geschrieben wurde. Die Ma"se +% sind also um ein Vielfaches zu klein und m"ussen sp"ater noch mit +% 186468 multiplitziert werden, um auf Millimeter zu kommen. Dieser +% Trick ist jedoch notwendig, weil die Norm vorschreibt, da"s bei der +% nun folgenden $n$-fachen Halbierung der Seiten ($n = +% \texttt{Skalierung} + 1$) jeweils auf ganze Millimeter abgerundet +% werden mu"s. +% \begin{macrocode} + \@tempcnta=#2\relax + \@whilenum\@tempcnta>0 + \do{\setlength{\@tempdima}{\paperwidth} + \setlength{\paperwidth}{.5\paperheight} + \setlength{\paperheight}{\@tempdima} + \advance\@tempcnta by\m@ne} +% \end{macrocode} +% Zum Schlu"s mu"s nun die genannte Multiplitkation erfolgen. Da +% "`mm"' kein ganzzahliges Vielfaches von "`sp"' ist, beinhaltet diese +% Multiplikation eigentlich einen Fehler und eine Abweichung von der +% Norm. Da jedoch "`sp"' die Rechengenauigkeit von {\TeX} darstellt, +% stellt auch die Angabe eines ganzzahligen Millimeterwertes bereits +% einen solchen Fehler dar. +% \begin{macrocode} + \multiply\paperwidth by186468\relax + \multiply\paperheight by186468\relax} +% \end{macrocode} +% \end{macro} +% +% Zur"uck zur Mustererkennung. Diese ist tats"achlich etwas einfacher als +% die in den beiden F"allen zuvor. +% \begin{macrocode} +\newcommand*{\x@paper}{\expandafter\x@@paper\CurrentOption paper\x@@paper} +\newcommand*{\x@@paper}{} +\def\x@@paper #1#2paper#3\x@@paper{ + \edef\@tempa{paper}\edef\@tempb{#3}\ifx\@tempa\@tempb + \ifnumber{#2}{ + \ifx a#1\isopaper[a]{#2} + \else\ifx b#1\isopaper[b]{#2} + \else\ifx c#1\isopaper[c]{#2} + \else\ifx d#1\isopaper[d]{#2} + \else\ta@opt@err\fi\fi\fi\fi + }{\ta@opt@err} + \else\@headlines\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ta@opt@err} +% Falls die zu"atzliche Option nicht \texttt{BCOR}, \texttt{DIV} oder eine +% bekannte Papiergr"o"se ist, ist eine Fehlermeldung f"allig. +% \begin{macrocode} +\newcommand*{\ta@opt@err}{ + \PackageError{typearea} + {Unknown option \CurrentOption} + {You've used an unknown option.\MessageBreak + Read the KOMA-Script-documentation for further + information.}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Optionen} +% +% \subsubsection{Kopf-, Fu"s-, Rand- und Textbereich} +% +% \begin{option}{headinclude} +% \begin{option}{headexclude} +% Diese Optionen bestimmen, ob der Seitenkopf bereits zum Textbereich +% geh"ort. Der Zustand selbst wird in einem Schalter gespeichert. +% \begin{macro}{\if@hincl} +% \begin{macro}{\@hincltrue} +% \begin{macro}{\@hinclfalse} +% \begin{macrocode} +\newif\if@hincl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{headinclude}{\@hincltrue} +\DeclareOption{headexclude}{\@hinclfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{footinclude} +% \begin{option}{footexclude} +% Diese Optionen bestimmen, ob die Fu"szeilen noch zum Textbereich +% geh"oren. Der Zustand selbst wird in einem Schalter gespeichert. +% \begin{macro}{\if@hincl} +% \begin{macro}{\@hincltrue} +% \begin{macro}{\@hinclfalse} +% \begin{macrocode} +\newif\if@fincl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{footinclude}{\@fincltrue} +\DeclareOption{footexclude}{\@finclfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{mpinclude} +% \changes{v2.8q}{2002/03/28}{Neue Option} +% \begin{option}{mpexclude} +% \changes{v2.8q}{2002/03/28}{Neue Option} +% Es gibt Dokumente mit sehr ausf"uhrlichen Randnotizen, bei denen die +% Randnotizen bei der Satzspiegelberechnung in den Satzspiegel +% eingerechnet werden sollten. Diese Optionen bestimmen, ob dies der +% Fall ist. +% \begin{macro}{\if@mincl} +% \begin{macro}{\@mincltrue} +% \begin{macro}{\@minclfalse} +% Der Zustand wird in einem Schlater gespeichert. \textbf{Achtung:} +% Bei Verwendung dieser Option m"ussen gr"ossere DIV-Werte verwendet +% werden. Siehe dazu weiter unten. +% \begin{macrocode} +\@ifundefined{mincltrue}{\newif\if@mincl}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{mpinclude}{\@mincltrue} +\DeclareOption{mpexclude}{\@minclfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsubsection{Papiergr"o"sen-Optionen} +% +% \begin{option}{dvips} +% \changes{v2.7g}{2001/04/17}{Neu} +% \changes{v2.8m}{2001/09/04}{\cs{AtBeginDocument} eingef"ugt} +% Diese Option sorgt daf"ur, dass die Seitengr"o"se als \cs{special} +% f"ur \texttt{dvips} in die DVI-Datei geschrieben wird. Da +% \verb|\AtBeginDvi| im Gegensatz zu \verb|\AtBeginDocument| das +% Argument sofort expandiert, das special aber erst nach dem Laden von +% \texttt{typearea} ausgef"uhert werden darf, wird \verb|\AtBeginDvi| +% einfach innerhalb von \verb|\AtBeginDocument| aufgerufen. +% \begin{macrocode} +\DeclareOption{dvips}{\AtBeginDocument{\AtBeginDvi{% + \special{papersize=\the\paperwidth,\the\paperheight}}}} +% \end{macrocode} +% \end{option} +% +% \begin{option}{pdftex} +% \changes{v2.7g}{2001/04/17}{Neu} +% Diese Option sorgt daf"ur, dass die Seitengr"o"se mit {pdf\TeX} +% ebenfalls in der PDF-Datei landet. +% \begin{macrocode} +\DeclareOption{pdftex}{\AtBeginDocument{% + \pdfpagewidth=\paperwidth \pdfpageheight=\paperheight}} +% \end{macrocode} +% \end{option} +% +% \begin{macro}{\ifpdfoutput} +% \changes{v2.7g}{2001/04/17}{Neu} +% \changes{v2.8q}{2001/10/19}{\cs{pdfoutput} wird nicht mehr zu +% \cs{relax}, wenn zuvor undefiniert} +% \changes{v2.8q}{2001/10/19}{darf bereits definiert sein} +% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}} +% \begin{macro}{\scr@ifpdfoutput} +% \changes{v2.8q}{2001/10/19}{Neu zur internen Verwendung} +% \changes{v2.8q}{2001/11/13}{funktioniert} +% ifthenelse-Konstrukt, um abh"angig davon, ob als pdf ausgegeben wird +% oder nicht, Befehle auszuf"uhren. Dieses Macro wird f"ur die +% Deklaration der Option \texttt{pagesize} ben"otigt. +% \begin{macrocode} +\newcommand{\scr@ifpdfoutput}[2]{% + \begingroup\@ifundefined{pdfoutput}{\endgroup #2}{\endgroup% + \ifnum\pdfoutput>0\relax #1\else #2\fi}}% +\@ifundefined{ifpdfoutput}{% + \let\ifpdfoutput\scr@ifpdfoutput% + }{% + \PackageInfo{typearea}{% + \string\ifpdfoutput\space already defined.\MessageBreak + If \string\ifpdfoutput\space does not behave like\MessageBreak + is is described at the KOMA-Script manual, try to\MessageBreak + load `typearea.sty' earlier or find out at which\MessageBreak + package or class \string\ifpdfoutput\space was defined.}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{option}{pagesize} +% \changes{v2.7g}{2001/04/17}{Neu} +% \changes{v2.8q}{2001/10/19}{\cs{scr@ifpdfoutput} statt +% \cs{ifpdfoutput}} +% Diese Option wiederum arbeitet je nachdem, ob eine PDF- oder eine +% DVI-Ausgabe erfolgt, wie \texttt{dvips} oder \texttt{pdftex}. +% \begin{macrocode} +\DeclareOption{pagesize}{\AtBeginDocument{% + \scr@ifpdfoutput + {\pdfpagewidth=\paperwidth\pdfpageheight=\paperheight} + {\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}}}} +% \end{macrocode} +% \end{option} +% +% +% Diese Optionen bestimmen die Papiergr"o"se. Aus der Papiergr"o"se wird +% sp"ater mit |\typearea| der Seitenspiegel berechnet. Dar"uber hinaus +% w"are das eine passende Gelegenheit |\SetDIVList| anzuwenden, darauf +% wird aber verzichtet (da die Verwendung der Liste ohnehin als +% veraltete Methode betrachtet werden kann. +% +% \begin{option}{a4paper} +% \changes{v2.5}{1997/06/17}{explizite Default-Option als Sonderfall.} +% \begin{macrocode} +\DeclareOption{a4paper}{\isopaper{4}} +% \end{macrocode} +% \begin{option}{a5paper} +% \changes{v2.5}{1997/06/17}{zur Verwendung als globale Option mit den +% Standard-Classes als Sonderfall.} +% \begin{macrocode} +\DeclareOption{a5paper}{\isopaper{5}} +% \end{macrocode} +% \begin{option}{b5paper} +% \changes{v2.5}{1997/06/17}{keine explizite Option mehr.} +% ISO/DIN-A-, -B-, -C- und D-Formate werden per Mustererkennung +% ermittelt. Dies erfolgt bei den Satzspiegeloptionen. Die Berechnung +% selbst ist weiter oben zu finden. Die Optionen |a4paper| und +% |a5paper| wurden lediglich als Sonderfall explizit definiert. Dies +% ist notwendig, damit die |typearea| mit den Standard-Classes besser +% zusammenarbeitet. W"aren die beiden Optionen nicht definiert, +% w"urden die "ublichen Papierformatoptionen nicht in gewohnter Weise +% als gobale Optionen funktionieren. Bei den un"ublichen "ubrigen +% Formaten kann verlangt werden, da"s sie beim Package explizit +% angegeben werden. +% \end{option} +% \end{option} +% \end{option} +% \begin{option}{letterpaper} +% ISO letter: +% \begin{macrocode} +\DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +% \end{macrocode} +% \end{option} +% \begin{option}{legalpaper} +% ISO legal: +% \begin{macrocode} +\DeclareOption{legalpaper} + {\setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} +% \end{macrocode} +% \end{option} +% \begin{option}{executivepaper} +% executive: +% \begin{macrocode} +\DeclareOption{executivepaper} + {\setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} +% \end{macrocode} +% \end{option} +% +% \subsubsection{landscape} +% +% \begin{option}{landscape} +% \changes{v2.5}{1997/06/17}{Vertauschung verz"ogert} +% Mit der Option |landscape| werden |\paperheight| und |\paperwidth| +% vertauscht. Damit wird das entsprechende Querformat erreicht. Leider +% kann das nicht sofort erfolgen, weil die Papiergr"o"se u.\,U. noch +% nicht festliegt. Au"serdem ben"otigt man noch einen entsprechenden +% Drucker oder einen |DVI|-Treiber, der mit einer speziellen Option +% eine um 90\,Grad gedrehte Ausgabe erstellen kann. +% \begin{macro}{\if@landscape} +% \begin{macro}{\@landscapetrue} +% \begin{macro}{\@landscapefalse} +% \begin{macrocode} +\newif\if@landscape +\DeclareOption{landscape}{\@landscapetrue} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \subsubsection{Satzspiegeloptionen} +% +% \begin{option}{BCOR} +% \changes{v2.2a}{1995/01/25}{nun als Option verf"ugbar} +% \changes{v2.2c}{1995/05/25}{nicht mehr im Kompatibilit"atsmodus} +% \begin{option}{DIV} +% \changes{v2.2a}{1995/01/25}{nun als Option verf"ugbar} +% \changes{v2.2c}{1995/05/25}{nicht mehr im Kompatibilit"atsmodus} +% F"ur die neu hinzugekommenen Optionen |BCOR| und |DIV| mu"s eine +% Sonderbehandlung durchgef"uhrt werden. Diese Sonderbehandlung mu"s +% die Optionen scannen und Fehler zur"uckweisen. Daf"ur werden die +% oben definierten Befehle |\@...BCOR| und |\@...DIV| sowie +% |\ta@TraceError| verwendet. Damit die Optionen zeichenweise +% gescannt werden k"onnen, wird die Expansion von |\CurrentOption| +% erzwungen. +% \begin{option}{DIVcalc} +% Zuvor wird jedoch noch die Sonderbehandlung f"ur |DIVcalc| eingebaut. +% Vor Version 2.8q wurde das durch eine einfache Option realisiert, +% "uber die die Default-DIV-Liste so manipuliert wird, da"s +% automatisch nach einem guten DIV-Wert gesucht wird: +% \begin{verbatim} +% \providecommand\ta@divlist{}\def\ta@divlistelse{1} +% \end{verbatim} +% Neuerdings wird stattdessen der Z"ahler |\ta@div| gesetzt. +% \changes{v2.4g}{1996/11/04}{Neue Option \texttt{DIVcalc}} +% \changes{v2.8q}{2001/11/06}{die Option ver"andert nicht mehr die +% \texttt{DIV}-Liste} +% \begin{macrocode} +\DeclareOption{DIVcalc}{\ta@div=1\relax} +% \end{macrocode} +% \end{option} +% \begin{option}{DIVclassic} +% Alternativ gibt es auch noch eine Sonderbehandlung fuer |DIVclassic|. +% Auch dabei wurde fr"uher die Default-DIV-Liste benutzt: +% \begin{verbatim} +% \providecommand\ta@divlist{}\def\ta@divlistelse{3} +% \end{verbatim} +% Gesucht wird dabei nach einem DIV-Wert, mit dem der Satzspiegel der +% Kreismethode m"oglichst gut erreicht wird. +% \changes{v2.4n}{1997/05/28}{Neue Option \texttt{DIVclassic}.} +% \begin{macrocode} +\DeclareOption{DIVclassic}{\ta@div=3\relax} +% \end{macrocode} +% \end{option} +% Ansonsten also die Behandlung f"ur |BCOR|\emph{Wert}, +% |DIV|\emph{Wert} und |a|\emph{Wert}|paper|, |b|\emph{Wert}|paper|, +% |c|\emph{Wert}|paper| sowie |d|\emph{Wert}|paper|. +% \begin{macrocode} +\DeclareOption*{\x@paper} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsection{Konfigurationsdatei} +% +% \changes{v2.0e}{1994/10/28}{Konfigurationsdatei +% \texttt{typearea.cfg} zur Definition +% weiterer Optionen bzw. Papiergr"o"sen} +% Es ist m"oglich in einer Datei |typearea.cfg| z.B. weitere Optionen +% zu definieren, die dann automatisch eingeladen werden. +% \begin{macrocode} +\InputIfFileExists{typearea.cfg} + {\typeout{***************************************^^J% + * Local config file typearea.cfg used^^J% + ***************************************}} + {} +% \end{macrocode} +% +% \subsection{Standardeinstellungen} +% Als Standardoptionen sind |headexclude|, |footexclude| und die +% Papiergr"o"se |a4paper| eingestellt. Diese Optionen k"onnen +% selbstverst"andlich durch explizite Angaben "uberladen werden. +% \changes{v2.3h}{1995/01/19}{\cs{relax} nach \cs{ProcessOptions} +% erg"anzt.} +% \begin{macrocode} +\ExecuteOptions{headexclude,footexclude,a4paper} +\ProcessOptions\relax +% \end{macrocode} +% +% \changes{v2.5}{1997/06/17}{Landscape per Schalter aktivieren} +% Das ist jetzt der richtige Zeitpunkt f"ur die Landscape-Aktivierung. +% \begin{macrocode} +\if@landscape + \setlength\@tempdima {\paperheight} + \setlength\paperheight {\paperwidth} + \setlength\paperwidth {\@tempdima} +\fi +% \end{macrocode} +% +% \begin{macro}{\ta@divlist} +% \changes{v2.0e}{1994/10/28}{neue interne Definition} +% \changes{v2.6}{2000/01/04}{die Liste umfa"st nun Werte ab 1\,pt statt +% ab 10\,pt.} +% \begin{macro}{\ta@divlistelse} +% \changes{v2.6}{2000/01/04}{neue interne Definition} +% Au"serdem mu"s an dieser Stelle noch f"ur die Standardeinstellung +% der |DIV|-Liste gesorgt werden, falls eine solche noch nicht +% definiert wurde. +% \begin{macrocode} +\providecommand\ta@divlist{{}{}{}{}{}{}{}{}{}{8}{10}{12}} +% \end{macrocode} +% \end{macro} +% Wenn kein Defaultwert definiert ist, wird dieser Wert verwendet: +% \begin{macrocode} +\providecommand\ta@divlistelse{1} +% \end{macrocode} +% \end{macro} +% +% \subsection{Einige interne Register} +% +% \begin{Length}{ta@hblk} +% \begin{Length}{ta@vblk} +% \begin{Length}{ta@temp} +% Diese Gr"o"senparameter und Z"ahler werden intern f"ur verschiedene +% Befehle ben"otigt. (|\ta@bcor| und |\ta@div| werden bereits bei der +% Optionenauswertung ben"otigt und sind deshalb vorgezogen.) +% \begin{macrocode} +\newlength{\ta@hblk} +\newlength{\ta@vblk} +\newlength{\ta@temp} +% \end{macrocode} +% \end{Length} +% \end{Length} +% \end{Length} +% +% +% \subsection{Die Berechnung des Seitenspiegels} +% +% \begin{macro}{\typearea} +% Die Berechnung des Seitenspiegels, wie sie im Hauptteil der +% Anleitung beschrieben ist, findet mit Hilfe des Befehls |\typearea| +% statt, der hier definiert wird. Die Berechnung selbst findet in +% mehreren Stufen statt. +% \begin{macro}{\@typearea} +% \changes{v2.4n}{1997/05/28}{Eigentliche Satzspiegelberechnung in +% \cs{@typearea} ausgegliedert.} +% Die eigentliche Satzspiegelberechnung geschieht "uber das Hilfsmakro +% |\@typearea|, das dann auch von |\typearea| genutzt wird. Dieses +% Hilfsmakro ben"otigt keine Parameter, da diese bereits zuvor von +% |\typearea| in die entsprechenden Variablen geschrieben wurden. +% \begin{macrocode} +\newcommand*\@typearea{ +% \end{macrocode} +% Zun"achst werden die horizontalen Ma"se berechnet. Dazu wird als +% erstes die Gr"o"se einer horizontalen L"angeneinheit (\emph{HLE}) +% ermittelt: +% \begin{macrocode} + \ta@hblk \paperwidth + \advance \ta@hblk by -\ta@bcor + \divide\ta@hblk by \ta@div +% \end{macrocode} +% Die Gr"o"se des Bereichs f"ur die Randnotizen ist ebenfalls von der +% Streifenbreite abh"angig. +% \changes{v2.8q}{2002/03/28}{Textbreite ber"ucksichtigt Option +% \texttt{mpinclude}} +% \begin{macrocode} + \if@mincl + \marginparwidth \ta@hblk + \advance\marginparwidth -\marginparsep + \else + \if@twoside + \marginparwidth 1.5\ta@hblk + \else + \marginparwidth \ta@hblk + \fi + \fi +% \end{macrocode} +% Der linke und rechte Rand wird relativ zur benutzbaren Seitenbreite +% berechnet. Dabei mu"s auch der Rand ber"ucksichtigt werden, der vom +% Druckertreiber standardm"a"sig hinzugef"ugt wird. Au"serdem ist der +% Rand abh"angig davon, ob es sich um ein einseitiges oder +% beidseitiges Layout handelt. Bei Option \texttt{mpinclude} sind im +% beidseitigen Satz zus"atzlich die Randnotizen zu beachten. +% \begin{macrocode} + \oddsidemargin -1in + \evensidemargin -1in + \if@twoside + \advance\oddsidemargin by \ta@hblk + \advance\oddsidemargin by \ta@bcor + \advance\evensidemargin by 2\ta@hblk + \if@mincl + \advance\evensidemargin by \marginparwidth + \advance\evensidemargin by \marginparsep + \fi + \else + \advance\oddsidemargin by 1.5\ta@hblk + \advance\oddsidemargin by \ta@bcor + \evensidemargin\oddsidemargin + \fi +% \end{macrocode} +% Der Rest steht nun f"ur den Textbereich zur Verf"ugung: +% \begin{macrocode} + \textwidth \paperwidth + \advance\textwidth by -\ta@bcor + \advance\textwidth by -3\ta@hblk +% \end{macrocode} +% Falls die Randnotizen f"ur die Satzspiegelberechnung zum Textbereich +% gehoeren, muessen sie zusammen mit ihrem Abstand vom Text nun von +% diesem abgezogen werden. Es wird dabei davon ausgegangen, dass die +% Randnotizen immer au"sen gesetzt werden. Sollte der Textbereich f"ur +% Randnotizen zu schmal sein, so wird der Bereich der Randnotizen so +% lange verkleinert, bis dies nicht mehr der Fall ist. Am einfachsten +% geht dies, indem gegebenfalls die Breiten vertauscht werden. +% \begin{macrocode} + \if@mincl + \advance\textwidth by -\marginparwidth + \advance\textwidth by -\marginparsep + \ifdim\textwidth <\marginparwidth + \PackageWarningNoLine{typearea}{% + Width of text (\the\textwidth) less than width of\MessageBreak + marginpar (\the\marginparwidth) while using option\MessageBreak + `mpinclude'.\MessageBreak + Because of this, I'm exchanging the values.\MessageBreak + You should increase DIV to avoid such problems.\MessageBreak + } + \@tempdima \marginparwidth + \marginparwidth \textwidth + \textwidth \@tempdima + \fi + \fi +% \end{macrocode} +% +% Danach folgen die vertikalen Ma"se. Auch daf"ur wird zun"achst die H"ohe +% eines Streifens ben"otigt. +% \begin{macrocode} + \ta@vblk \paperheight + \divide\ta@vblk by \ta@div +% \end{macrocode} +% Davon ausgehend kann der obere Rand berechnet werden, wobei zu +% ber"ucksichtigen ist, da"s {\TeX} diesen selbst"andig um ein Inch +% vergr"o"sert. +% \begin{macrocode} + \topmargin -1in + \advance\topmargin by \ta@vblk +% \end{macrocode} +% Au"serdem ist zu ber"ucksichtigen, ob der Kopf zum Textbereich oder +% zum Rand geh"ort. +% \begin{macrocode} + \if@hincl \else + \advance\topmargin by -\headheight + \advance\topmargin by -\headsep + \fi +% \end{macrocode} +% Bei der Berechnung des Textbereichs sind von der Papierh"ohe die R"ander +% abzuziehen und ebenfalls zu ber"ucksichtigen, ob Kopf- und Fu"s zu den +% R"andern oder zum Textbereich selbst gez"ahlt werden. +% \begin{macrocode} + \ta@temp \paperheight + \advance\ta@temp by -3\ta@vblk + \if@hincl + \advance\ta@temp by -\headheight + \advance\ta@temp by -\headsep + \fi + \if@fincl + \advance\ta@temp by -\footskip + \fi +% \end{macrocode} +% Als Sonderbedingung ist dann noch zu beachten, da"s die Gr"o"se des +% Textbereichs nicht zu einer vertikalen Aufweitung f"uhrt. +% \begin{macrocode} + \textheight \topskip + \@whiledim\textheight<\ta@temp + \do{\advance\textheight by \baselineskip} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ta@modiv} +% Dieses Hilfsmakro wird weiter unten ben"otigt. Es dividiert den +% ersten Parameter durch den zweiten und liefert das gerundete +% Ergebnis in |\ta@div| zur"uck. F"ur die Berechnung werden +% |\@tempdima| und |\@tempdimb| verwendet. +% \begin{macrocode} +\newcommand*\ta@modiv[2]{ + \setlength{\@tempdima}{#1} + \divide\@tempdima by#2\relax + \ta@div\@tempdima + \ifnum \ta@div<4\relax + \ta@div=4\relax + \else + \setlength{\@tempdimb}{#1} + \divide\@tempdimb\ta@div + \addtolength{\@tempdima}{\@tempdima} + \addtolength{\@tempdima}{-\@tempdimb} + \advance\ta@div\@ne + \setlength{\@tempdimb}{#1} + \divide\@tempdimb\ta@div +% \end{macrocode} +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}.} +% \begin{macrocode} + \ifdim \@tempdima<\@tempdimb + \advance\ta@div by\m@ne + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ta@temp@goodwidth} +% Dieses Makro setzt die Hilfdimension |\ta@temp| auf den Wert einer +% optimalen Zeilenbreite in der aktuellen Schrift. Voraussetzung f"ur +% diese Berechnung ist, da"s Zeilenbreiten von ca. 66 bis 72 Zeichen +% optimal sind. Zur Vereinfachung wird mit dem Mittelwert 69 +% gerechnet. Eine solche Zeile besteht dann aus 66 durchschnittlichen +% Klein- und 3 durchschnittlichen Gro"sbuchstaben. +% \changes{v2.7i}{2001/05/17}{Berechnung ist robuster gegen +% arithmetischen "Uberlauf bei sehr gro"sen Schriften} +% \changes{v2.8q}{2002/03/06}{\cs{normalfont}\cs{normalsize} +% hinzugef"ugt} +% \begin{macrocode} +\newcommand*\ta@temp@goodwidth{ + \settowidth{\ta@temp}{\normalfont\normalsize + abcdefghijklmnopqrstuvwxyz} + \ifdim\ta@temp >200\p@ + \divide\ta@temp by 26 + \multiply\ta@temp by 3 + \settowidth{\@tempdima}{\normalfont\normalsize + ABCDEFGHIJKLMNOPQRSTUVWXYZ} + \divide\@tempdima by 26 + \multiply\@tempdima by 3 + \addtolength{\ta@temp}{\@tempdima} + \else + \multiply\ta@temp by 66 + \settowidth{\@tempdima}{\normalfont\normalsize + ABCDEFGHIJKLMNOPQRSTUVWXYZ} + \multiply\@tempdima by 3 + \addtolength{\ta@temp}{\@tempdima} + \divide\ta@temp by 26 + \fi +} +% \end{macrocode} +% \end{macro} +% \changes{v2.4g}{1996/11/04}{"Uberfl"ussigen Kommentar gel"oscht} +% \changes{v2.7g}{2001/04/17}{die neuen Werte \texttt{current}, +% \texttt{default}, \texttt{calc} und +% \texttt{classic} werden verstanden} +% \changes{v2.8q}{2001/11/06}{der Wert \texttt{last} wird verstanden} +% Die symbolischen Werte f"ur das obligatorische Argument haben +% folgende Bedeutung: +% \begin{center}\begin{tabular}{lll} +% Symbol & Wert & Bedeutung \\\hline\\[-1.6ex] +% \texttt{calc} & 2 & guten Wert berechnen \\ +% \texttt{classic} & 3 & mittelalterlicher Buchseitenkanon \\ +% \texttt{current} & --- & aktuellen Wert beibehalten \\ +% \texttt{default} & 0 & Wert aus der Liste verwenden \\ +% \texttt{last} & --- & Argument des letzten Aufrufs verwenden \\ +% \end{tabular}\end{center} +% \begin{macrocode} +\newcommand*\typearea[2][\z@]{ + \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else + \setlength{\ta@bcor}{#1} + \fi + \edef\@tempa{#2} + \def\@tempb{last}\ifx\@tempa\@tempb\let\@tempa=\@lastdiv\fi + \def\@tempb{current}\ifx\@tempa\@tempb\else + \def\@tempb{default}\ifx\@tempa\@tempb\ta@div=0\relax\else + \def\@tempb{calc}\ifx\@tempa\@tempb\ta@div=2\relax\else + \def\@tempb{classic}\ifx\@tempa\@tempb\ta@div=3\relax\else + \ta@div=\@tempa\relax + \fi + \fi + \fi + \fi + \edef\@lastdiv{\the\ta@div} +% \end{macrocode} +% Nun mu"s festgestellt werden, ob die H"ohe des Kopfbereichs bereits +% vorgegeben ist, oder ob diese selbst berechnet werden soll. Im Falle der +% Berechnung wird als H"ohe f"ur den Kopf das 1.25-Fache des +% Grundzeilenabstandes gew"ahlt. Damit sollte auch noch genug Raum f"ur die +% optionale Trennlinie vorhanden sein. +% \changes{v2.4n}{1997/05/28}{Berechnete Kopfh"ohe vom Grundzeilenabstand +% abh"angig.} +% \begin{macrocode} + \@ifundefined{ta@hh}{\headheight 1.25\baselineskip}{\headheight\ta@hh} +% \end{macrocode} +% Auch der Abstand zwischen Kopf und Text ist immer gleich. +% Verschiedene Typographen geben hier verschiedene Werte an. Ein guter +% Wert sollte erreicht werden, wenn dadurch eine Kopfzeile in das +% normale Zeilenraster eingepa"st wird. Der Abstand soll aber auch +% nicht zu gro"s, werden. Optimal ist angeblich ein Wert von einer +% Zeile. Dies f"uhrt jedoch zu einem klaren Konflikt bei +% unterstrichenen Kopfzeilen. Deshalb wird ein Kompromi"s gebildet. +% \begin{macrocode} + \headsep 1.5\baselineskip +% \end{macrocode} +% Es folgen die restlichen von |DIV| und |BCOR| unabh"angigen Werte. +% \begin{macrocode} + \footskip 3.5\baselineskip + \marginparsep 1cc + \marginparpush 0.45\baselineskip +% \end{macrocode} +% \changes{v2.4g}{1996/11/04}{\texttt{DIV}=0 versucht den Wert aus der +% Default-Liste zu verwenden.} +% Vor der eigentlichen Berechnung des Satzspiegels wird nun zun"achst +% "uberpr"uft, ob der "ubergebene |DIV|-Wert 0 ist. Da Werte von 0 bis +% 3 nicht m"oglich sind (Minimum sind drei Teile Rand und ein Teil +% Text), wird der Wert 0 daf"ur verwendet, den Defaultwert aus der +% Liste zu ermitteln, falls ein solcher vorhanden ist. +% \changes{v2.5h}{1999/12/29}{Text der Warnung korrigiert.} +% \begin{macrocode} + \ifnum\ta@div=\z@ + \@ifundefined{@ptsize}{% + \@tempdima=\f@size pt\relax + \advance\@tempdima by.5pt + \ta@div=\@tempdima + \divide\ta@div by65536\relax + \advance\ta@div by-10\relax + \xdef\@ptsize{\the\ta@div}% + \PackageWarningNoLine{typearea}{% + \string\@ptsize\space not defined! + \MessageBreak + Fontsize ist \f@size.\MessageBreak + Defining \string\@ptsize\space to \@ptsize}% + }{} + \ta@divfor{\@ptsize}% + \fi +% \end{macrocode} +% \changes{v2.4n}{1997/05/28}{Optionale, klassische Kreisberechnung f"ur +% \texttt{DIV}.} +% Als zweiter Sonderfall wird f"ur einen |DIV|-Wert von 3 die +% \emph{Kreisberechnung} durchgef"uhrt. Dabei wird versucht, den +% Textbereich genau so hoch zu w"ahlen, wie das Papier breit ist. Ein +% solches Verh"altnis wird bei klassischen Papierformaten als +% harmonisch betrachtet. +% \begin{macrocode} + \ifnum\ta@div=3 + \typeout{DIV calculation for classic typearea.} + \setlength{\ta@temp}{\paperwidth} + \addtolength{\ta@temp}{-\ta@bcor} +% \end{macrocode} +% Bei der Berechnung des vertikal ben"otigten Platzes, ist zu +% beachten, ob Kopf und Fu"s zum Textbereich oder zu den R"andern +% geh"oren. +% \begin{macrocode} + \if@hincl\else + \addtolength{\ta@temp}{\headheight} + \addtolength{\ta@temp}{\headsep} + \fi + \if@fincl\else + \addtolength{\ta@temp}{\footskip} + \fi +% \end{macrocode} +% Wird vertikal mehr Platz ben"otigt, als vorhanden ist, wird eine andere +% Berechnung versucht, die weiter unten erfolgt. +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}.} +% \begin{macrocode} + \ifdim \ta@temp>\paperheight + \PackageWarningNoLine{typearea} + {No classic typearea with this papersize!\MessageBreak + Using calculated DIV} + \ta@div=\@ne +% \end{macrocode} +% Ansonsten wird mittels des belegten Textbereichs und der Papierh"ohe der +% obere und untere Rand zusammen, +% \begin{macrocode} + \else + \setlength{\ta@temp}{\paperheight} + \addtolength{\ta@temp}{-\paperwidth} + \addtolength{\ta@temp}{\ta@bcor} +% \end{macrocode} +% daraus die Streifenh"ohe +% \begin{macrocode} + \divide\ta@temp 3\relax +% \end{macrocode} +% und schlie"slich erneut mit Hilfe der Papierh"ohe der genaue |DIV|-Wert +% berechnet. +% \begin{macrocode} + \ta@modiv{\paperheight}{\ta@temp} + \fi +% An dieser Stelle muss \texttt{mpinclude} nicht ber"ucksichtigt +% werden, da nicht die Breite des Textbereichs, sonder die Breite des +% Papiers als Kriterium verwendet wird. + \fi +% \end{macrocode} +% Wurde bisher kein Wert gefunden oder ein |DIV|-Wert von 1 bis 2 +% angegeben, so wird nun ein m"oglichst optimaler |DIV|-Wert +% ermittelt. +% \changes{v2.4n}{1997/05/28}{Optimale \texttt{DIV}-Berechnung +% verbessert} +% \begin{macrocode} + \ifnum\ta@div<4 + \typeout{DIV calculation for typearea with good linewidth.} +% \end{macrocode} +% Zun"achst k"onnte die Textbreite die gesamte Sichtbare Papierbreite +% einnehmen. +% \begin{macrocode} + \setlength{\textwidth}{\paperwidth} + \addtolength{\textwidth}{-\ta@bcor} +% \end{macrocode} +% Als Sollbreite wird hier die ideale Zeilenf"ullung verwendet +% \begin{macrocode} + \ta@temp@goodwidth +% \end{macrocode} +% Im Zweispaltenmodus besteht jede Zeile aus zwei solchen Spalten +% zuz"uglich dem Spaltenabstand. +% \changes{v2.8q}{2001/12/13}{DIVcalc liefert im zweispaltigen Satz +% (wie dokumentiert) breitere Spalten} +% \begin{macrocode} + \if@twocolumn + \addtolength{\ta@temp}{\ta@temp} + \addtolength{\ta@temp}{\columnsep} + \fi +% \end{macrocode} +% In fr"uheren Versionen erfolgte nun eine iterative Ann"aherung an den +% optimalen |DIV|-Wert. Je nach {\TeX}-Implementierung und +% Papierformat, kann das aber recht lange dauern. Die obere Berechnung +% zum Vorbild nehmend, wird deshalb nun ebenfalls versucht, den +% optimalen Wert direkt zu berechnen. Dazu wird zun"achst wie oben die +% Gr"o"se der horizontalen R"ander zusammen ermittelt: +% \begin{macrocode} + \setlength{\ta@hblk}{\paperwidth} + \addtolength{\ta@hblk}{-\ta@temp} +% \end{macrocode} +% Daraus dann die Breite eines Streifens. +% \begin{macrocode} + \divide\ta@hblk by 3 +% \end{macrocode} +% Ist die Breite negativ, so wird die Mindestbreite von 5mm eingesetzt. +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}.} +% \begin{macrocode} + \ifdim \ta@hblk<\z@\relax + \setlength{\ta@hblk}{5mm} + \fi +% \end{macrocode} +% Nun kann wieder der |DIV|-Wert ermittelt werden. +% \changes{v2.8q}{2002/03/28}{Ber"uchsichtigung von Option +% \texttt{mpinclude} bei der \texttt{DIV}-Berechnung} +% Im Falle der Option \texttt{mpinclude} gilt allgemein, dass +% der Nenner mit $\frac{3}{3+m}$ zu multiplizieren ist. Dabei ist $m$ +% die Anzahl an L"angeneinheiten, die f"ur die Randnotizen verwendet +% werden sollen. Mit $m=1$ ist also der Faktor $\frac{3}{4}=0.75$ zu +% verwenden. Schwieriger wird es, wenn hier nicht die Anzahl +% L"angeneinheiten, sondern ein konkreter Wert f"ur die Breite der +% Randnotizen verwendet wird. +% \begin{macrocode} + \if@mincl + \setlength{\ta@temp}{.75\ta@hblk} + \else + \setlength{\ta@temp}{\ta@hblk} + \fi +% \begin{macrocode} + \ta@modiv{\paperwidth}{\ta@temp} +% \end{macrocode} +% Als Erschwernis kommt jetzt jedoch hinzu, da"s nun zwar der +% |DIV|-Wert f"ur die Breite optimal ist, jedoch u.\,U. zu einer zu +% gro"sen H"ohe f"uhrt. Deshalb wird zun"achst ein Satzspiegel f"ur +% diesen |DIV|-Wert berechnet. +% \begin{macrocode} + \@typearea +% \end{macrocode} +% Nun wird "uberpr"uft, ob die vertikalen Ausma"se in Ordnung +% sind. Auch hier ist wieder eine minimale Streifenbreite +% vorteilhaft. Die Streifenbreite ergibt sich direkt aus dem oberen +% Rand. Wobei jedoch noch das {\TeX}-Offset von 1in zu +% ber"ucksichtigen ist. +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} +% \begin{macrocode} + \setlength{\ta@temp}{-1in} + \addtolength{\ta@temp}{5mm} + \ifdim\topmargin<\ta@temp +% \end{macrocode} +% Ist der Minimalrand nicht eingehalten, so wird f"ur diesen ein neuer +% |DIV|-Wert ermittelt. Dabei mu"s ebenfalls ber"ucksichtigt werden, +% ob Kopf- und Fu"sbereich zum Text oder zum Rand geh"oren. +% \changes{v2.5b}{1997/06/29}{Bei der Mindestrandbetrachtung +% \texttt{headinclude} und +% \texttt{footinclude} ber"ucksichtigen} +% \begin{macrocode} + \setlength{\ta@temp}{15mm} + \if@hincl\else + \addtolength{\ta@temp}{\headheight} + \addtolength{\ta@temp}{\headsep} + \fi + \if@fincl\else + \addtolength{\ta@temp}{\footskip} + \fi + \divide\ta@temp by3\relax + \ta@modiv{\paperheight}{\ta@temp} + \fi +% \end{macrocode} +% Dieser Sonderfall ist somit abschlie"send behandelt. +% \begin{macrocode} + \fi +% \end{macrocode} +% Damit steht jetzt also der |DIV|-Wert fest, und die eigentliche +% Berechnung kann folgen. +% \begin{macrocode} + \@typearea +% \end{macrocode} +% \changes{v2.0e}{1994/10/28}{Die Seitenaufteilung wird in die log-Datei +% geschrieben.} +% \changes{v2.4i}{1996/11/11}{Die Seitenaufteilung wird etwas sp"ater in +% die log-Datei geschrieben.} +% \changes{v2.4i}{1996/11/11}{Am Ende von \cs{typearea} wird noch +% \cs{@typeare@end} ausgef"uhrt.} +% \changes{v2.4j}{1996/12/04}{Bei der Seitenaufteilung wird \cs{textheight} +% nicht mehr doppelt, daf"ur zus"atzlich +% \cs{baselineskip} ausgegeben.} +% \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' bei landscape +% behoben} +% Zum Schlu"s soll die Seitenaufteilung noch in die |log|-Datei +% geschrieben werden. +% \begin{macrocode} + \ta@temp@goodwidth + \if@twocolumn + \addtolength{\ta@temp}{\ta@temp}% + \addtolength{\ta@temp}{\columnsep}% + \fi + \setlength{\@tempdima}{\ta@temp}% + \addtolength{\ta@temp}{-\textwidth}% + \divide\@tempdima 100\relax + \divide\ta@temp\@tempdima + \@tempcnta\ta@temp + \ifnum\@tempcnta<5\relax + \ifnum\@tempcnta>-5\relax + \@tempcnta=0 + \else + \advance\@tempcnta 4 + \fi + \else + \advance\@tempcnta -4 + \fi + \ifnum\@tempcnta<-15\relax + \PackageWarningNoLine{typearea} + {Bad DIV-value!\MessageBreak + You should decrease DIV, increase fontsize or\MessageBreak + change papersize} + \else\ifnum\@tempcnta>15\relax + \PackageWarningNoLine{typearea} + {Bad DIV-value!\MessageBreak + You should increase DIV, decrease fontsize or\MessageBreak + change papersize} + \fi\fi + \ifnum\ta@div<6\relax + \PackageWarningNoLine{typearea} + {Very low DIV-value!\MessageBreak + DIV-values less than 6 result in textwidth/-height\MessageBreak + smaller than total marginwidth/-height.\MessageBreak + You should increase DIV, increase fontsize or\MessageBreak + change papersize} + \fi + \PackageInfo{typearea}{% + These are the values describing the layout:\MessageBreak + DIV\space\space=\space\number\ta@div\MessageBreak + BCOR\space=\space\the\ta@bcor\MessageBreak + \string\paperwidth\space\space\space\space\space\space=% + \space\the\paperwidth\MessageBreak + \space\string\textwidth\space\space\space\space\space\space=% + \space\the\textwidth\MessageBreak + \space\string\columnwidth\space\space\space\space=% + \space\the\columnwidth\MessageBreak + \space\string\columnsep\space\space\space\space\space\space=% + \space\the\columnsep\MessageBreak + \space DIV-departure\space\space\space=% + \space\the\@tempcnta/100\MessageBreak + \space\string\evensidemargin\space=% + \space\the\evensidemargin\MessageBreak + \space\string\oddsidemargin\space\space=% + \space\the\oddsidemargin\MessageBreak + \string\paperheight\space\space\space\space\space=% + \space\the\paperheight\MessageBreak + \space\string\textheight\space\space\space\space\space=% + \space\the\textheight\MessageBreak + \space\string\topmargin\space\space\space\space\space\space=% + \space\the\topmargin\MessageBreak + \space\string\headheight\space\space\space\space\space=% + \space\the\headheight\MessageBreak + \space\string\headsep\space\space\space\space\space\space\space\space=% + \space\the\headsep\MessageBreak + \space\string\topskip\space\space\space\space\space\space\space\space=% + \space\the\topskip\MessageBreak + \space\string\footskip\space\space\space\space\space\space\space=% + \space\the\footskip\MessageBreak + \space\string\baselineskip\space\space\space=% + \space\the\baselineskip\MessageBreak + } + \@typearea@end} +% \end{macrocode} +% +% \begin{macro}{\@typearea@end} +% Das Makro |\@typearea@end| wird verwendet, um mit einem gewaltigen +% Hack die "Anderung des Satzspiegels innerhalb eines Dokuments zu +% erm"oglichen. +% +% Zun"achst ist das Makro leer, weil in der Pr"aambel nichts weiter zu tun +% ist. +% \begin{macrocode} +\newcommand\@typearea@end{} +% \end{macrocode} +% +% Am Anfang des Dokuments mu"s das Makro jedoch so umdefiniert werden, da"s +% alle Berechnungen, die |\begin{document}| f"ur die Ausgabedimensionen +% durchf"uhrt auch noch von |\typearea| durchgef"uhrt werden. +% \begin{macrocode} +\AtBeginDocument{% + \renewcommand\@typearea@end{% +% \end{macrocode} +% Als erstes wird jedoch eine Warnung ausgegeben, weil es wirklich sehr +% unsauber ist, so zu verfahren. Das ganze ist absolut abh"angig von der +% \LaTeX-Version. +% \begin{macrocode} + \PackageWarning{typearea} + {Typearea changed!\MessageBreak + You should do this only at preamble, because only\MessageBreak + \protect\begin{document} calculates output dimensions!\MessageBreak + Trying to calculate new output dimensions, but\MessageBreak + this is only a dirty hack} +% \end{macrocode} +% Sicherheitshalber werden jetzt die Gleitobjekte ausgegeben und eine neue +% Seite begonnen. +% \begin{macrocode} + \clearpage +% \end{macrocode} +% Dann k"onnen endlich die Dimensionen, die z.\,B. von der Ausgaberoutine +% ben"otigt werden, neu berechnet werden. +% \begin{macrocode} + \@colht\textheight + \@colroom\textheight \vsize\textheight + \columnwidth\textwidth + \if@twocolumn + \advance\columnwidth -\columnsep + \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue + \fi + \hsize\columnwidth \linewidth\hsize + }} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\areaset} +% \changes{v2.1b}{1994/12/31}{\cs{headheight} von \cs{@ptsize} +% abh"angig gemacht} +% \changes{v2.4i}{1996/11/11}{Am Ende von \cs{typearea} wird noch +% \cs{@typeare@end} ausgef"uhrt.} +% \changes{v2.6}{2000/01/04}{\cs{headheight} von \cs{f@size} statt von +% \cs{@ptsize} abh"angig gemacht} +% \changes{v2.7g}{2001/04/17}{Auch hier existiert der symbolische Wert +% \texttt{current} f"ur BCOR} +% Zur Berechnung eines Seitenspiegels mit fester Breite und +% H"ohe dient der Befehl |\areaset|. Der Algorithmus ist "ahnlich dem +% vorherigen Verfahren, aber einfacher. +% \begin{macrocode} +\newcommand*\areaset[3][\z@]{ + \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else + \setlength{\ta@bcor}{#1} + \fi + \textwidth #2 + \textheight #3 + \ta@hblk \paperwidth + \advance\ta@hblk by -\ta@bcor + \advance\ta@hblk by -\textwidth + \divide\ta@hblk by 3 + \oddsidemargin -1in + \evensidemargin -1in + \if@twoside + \advance\oddsidemargin by \ta@hblk + \advance\oddsidemargin by \ta@bcor + \advance\evensidemargin by 2\ta@hblk + \else + \advance\oddsidemargin by 1.5\ta@hblk + \advance\oddsidemargin by \ta@bcor + \evensidemargin\oddsidemargin + \fi + \headheight 15\p@ + \advance\headheight by\f@size\p@ + \advance\headheight by-10\p@ + \headsep 1.5\baselineskip + \footskip 3.5\baselineskip + \ta@vblk \paperheight + \advance\ta@vblk by -\textheight + \divide\ta@vblk by 3 + \if@hincl + \advance\textheight by -\headheight + \advance\textheight by -\headsep + \fi + \if@fincl + \advance\textheight by -\footskip + \fi + \topmargin \ta@vblk + \advance\topmargin by -1in + \if@hincl \else + \advance\topmargin by -\headheight + \advance\topmargin by -\headsep + \fi + \if@twoside + \marginparwidth 1.5\ta@hblk + \else + \marginparwidth \ta@hblk + \fi + \marginparsep 1cc + \marginparpush 0.45\baselineskip + \@areaset@end} +% \end{macrocode} +% +% \begin{macro}{\@areaset@end} +% Da die Schlu"s-Berechnungen und auch die Ausgabe von |\@areaset@end| +% und |\@typearea@end| identisch sind, wird hier genau daf"ur gesorgt. +% Dazu kann nat"urlich nicht |\let| verwendet werden, weil sich die +% Definition von |\@typarea@end| ja im Laufe der Zeit "andert. +% \begin{macrocode} +\newcommand\@areaset@end{\@typearea@end} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Berechnung des Standardseitenspiegels} +% +% \begin{macro}{\ta@divfor} +% Der Standardseitenspiegel ist abh"angig von den mit |\SetDIVList| +% vorgegebenen Einstellungen. Dazu mu"s aus einer eventuell vorhandenen +% inneren Liste |ta@divlist| der von der Schriftgr"o"se abh"angige +% \textsf{DIV}-Wert ausgelesen werden. Dies geschieht mit Hilfe des +% |\ta@divfor|-Befehls, der sich wiederum einiger interner Befehle +% zur Listenbearbeitung bedient. +% \changes{v2.4g}{1996/11/04}{Der Satzspiegel wird nicht mehr direkt +% berechnet, sondern nur der +% \texttt{DIV}-Wert aus der Defaultliste +% ermittelt.} +% \changes{v2.6}{2000/01/04}{Ber"ucksichtigung der erweiterten Liste} +% \changes{v2.8q}{2002/03/28}{Ber"ucksichtigung der Option +% `mpinclude'} +% \changes{v2.9e}{2002/08/25}{zweimal \cs{relax} eingef"ugt} +% \begin{macrocode} +\newcommand*{\ta@divfor}[1]{ + \if@mincl + \PackageInfo{typearea}{% + With option `mpinclude' there are no predefined\MessageBreak + DIV-values. Using DIV calculation for good line\MessageBreak + width} + \ta@div=2 + \else + \xdef\@tempa{\ta@divlist{}} + \ta@div=#1\relax + \@whilenum \ta@div >-9 \do {% + \ifx\@tempa\empty \relax% + \else \xdef\@tempa{\expandafter\@cdr\@tempa\@nil}% + \fi + \advance\ta@div by -1 + } + \ifx\@tempa\empty +% \end{macrocode} +% Wenn keine Voreinstellung gefunden werden konnte, so wird immer +% der Optimalwert berechnet. Mit einer Warnung wird darauf hingewiesen. +% \begin{macrocode} + \ta@div=10\advance\ta@div by#1\relax + \PackageWarningNoLine{typearea}{% + DIV for \the\ta@div pt and used papersize\MessageBreak + not defined!\MessageBreak + Using DIV=\ta@divlistelse} + \ta@div=\ta@divlistelse\relax + \else +% \end{macrocode} +% Ansonsten wird der vorgegebene Wert verwendet. +% \begin{macrocode} + \xdef\@tempa{\expandafter\@car\@tempa\@nil} + \ifx\@tempa\empty + \ta@div=\ta@divlistelse\relax + \else + \ta@div=\@tempa\relax + \fi + \fi + \fi} +% \end{macrocode} +% \end{macro} +% \changes{v2.8q}{2001/11/06}{Initialisierung mit Hilfe der +% symbolischen Werte \texttt{current}} +% Nun fehlt nur noch die eigentliche Initialisierung. Dazu wird einfach der +% Satzspiegel mit den getroffenen Voreinstellungen berechnet. Da der +% |DIV|-Wert 0 f"ur einen Wert aus der Default-Liste steht, bleibt die +% Kompatibilit"at zu "alteren Versionen erhalten. Der aktuelle Wert +% f"ur |DIV| und |BCOR| wurde "uber die Optionen bereits +% gesetzt. Dabei kann abweichend zu sonst der aktuelle Wert auch 0, 1, +% 2 oder 3 sein. Die Initialisierung des Pakets ist damit sehr einfach. +% \begin{macrocode} +\typearea[current]{current} +% \end{macrocode} +% +% \subsection{Fast das Ende} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \section{"`scrartcl"'-class, +% "`scrreprt"'-class, +% "`scrbook"'-class, +% "`scrlttr2"'-class} +% +% Alle drei Haupt-\emph{classes} haben viele Teile gemeinsam. Die +% gr"o"sten Gemeinsamkeiten bestehen dabei zwischen |scrreprt| und +% |scrbook|. |scrartcl| unterscheidet sich in mehreren Punkten von den +% beiden "ubrigen Haupt-\emph{classes}. +% +% |scrlttr2| unterscheidet sich in vielen Punkten grundlegend von den +% drei Haupt-\emph{classes}. Dennoch wird sie ab Version 2.8n +% ebenfalls hier implementiert. +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \changes{v2.0e}{1994/07/07}{Erste Version von "`scrartcl"', "`scrreprt"' +% und "`scrbook"'.} +% \changes{v2.0e}{1994/08/10}{\cs{sectdef} "uberall in "`scrreprt"' und +% "`scrbook"' durch \cs{secdef} ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} in "`scrreprt"' und +% "`scrbook"' durch \cs{addcontentsline} +% ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} an zwei Stellen in +% "`scrreprt"' und "`scrbook"' durch +% \cs{@makeschapterhead} ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} in "`scrreprt"' und +% "`scrbook"' durch \cs{@afterheadings} +% ersetzt.} +% \changes{v2.1b}{1994/12/31}{Letzte Version f"ur 1994 +% fertiggestellt.} +% \changes{v2.8m}{2001/09/08}{"`scrlttr2"' zur"uck in "`scrclass.dtx"'} +% +% Die Implementierung "ahnelt in vielen Punkten der der Standard-classes. +% Deshalb werden hier allenfalls grobe Unterschiede behandelt. +% +% \subsection{Optionen} +% +% \subsubsection{Optionen mit Hilfe von \texttt{keyval}} +% +% Die neue Briefklasse (und derzeit nur diese) verwendet das +% \texttt{keyval}-Paket f"ur die Auswertung der Optionen. Dabei wird +% schlicht jede Option "uber \cs{DeclareOption*} ausgewertet. +% \begin{macrocode} +%<*scrlettr> +\RequirePackage{keyval} +% \end{macrocode} +% +% \begin{macro}{\KOMA@key} +% \begin{macro}{\KOMAoptions} +% \changes{v2.8q}{2001/10/08}{Neu} +% \begin{macro}{\scr@save@KV@errx} +% \changes{v2.8q}{2001/10/15} +% Ein paar Abk"urzungen und Erleichterungen sowohl f"ur mich als auch +% f"ur den Anwender. Das erste Makro dient der Definition eines neuen +% \texttt{keyval}-Schl"ussels. Das zweite ruft \cs{setkeys} auf. +% \begin{macrocode} +\newcommand*{\KOMA@key}{\define@key{KOMA}} +\newcommand*{\KOMAoptions}[1]{% + \@ifundefined{scr@save@KV@errx}{% + \let\scr@save@KV@errx=\KV@errx + \renewcommand*{\KV@errx}[1]{% + \ClassError{% + scrlttr2% + }{unknown KOMA option `#1'}{% + You've tried to use the KOMA option `#1'.\MessageBreak + But there is no KOMA option with that name.\MessageBreak + See the manual of KOMA-Script for information about known koma + options.}}% + \setkeys{KOMA}{#1}% + \let\KV@errx=\scr@save@KV@errx + \let\scr@save@KV@errx=\relax + }{% + \setkeys{KOMA}{#1}% + }\ignorespaces% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\AfterProcessOptions} +% \begin{macro}{\AfterProcessOptions@hook} +% \changes{v2.8q}{2001/10/08}{Neu} +% Au"serdem existiert ein interner \emph{hook}, um aufgrund von +% Optionen unmittelbar nach \cs{ProcessOptions} Aktionen auszul"osen. +% \begin{macrocode} +\newcommand*{\AfterProcessOptions@hook}{} +\newcommand*{\AfterProcessOptions}[1]{% + \g@addto@macro{\AfterProcessOptions@hook}{#1}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@setif} +% \changes{v2.8q}{2001/10/08}{Neu} +% Es wird ebenfalls ein Makro ben"otigt, mit dem man einen Schalter +% "uber die symbolischen Werte \texttt{true}, \texttt{false}, +% \texttt{on} und \texttt{off} setzen kann. +% \begin{macro}{\@setif@alsoerr} +% \changes{v2.8q}{2001/10/09}{Neu} +% \begin{macrocode} +\newcommand*{\@setif}[3][]{% + \begingroup% + \edef\@tempa{#1} + \ifx\@tempa\@empty\def\@tempc{@#2}\else\def\@tempc{#1}\fi + \edef\@tempa{#3}\def\@tempb{on}\ifx\@tempa\@tempb + \def\@tempa{true}% + \else\def\@tempb{off}\ifx\@tempa\@tempb + \def\@tempa{false}% + \fi\fi% + \@ifundefined{\@tempc\@tempa}{% + \ClassError{% + scrlttr2% + }{You've used an unknown switch or value}{% + You've tried to set switch `#2' to value `#3', but there's + either no\MessageBreak% + switch `#2' defined or `#3' is not a switch + value.\MessageBreak% + Allowed switch values are `true', `false', `on', + `off'\@setif@alsoerr.} + \let\@tempa\endgroup + }{% + \edef\@tempa{\endgroup\noexpand\@nameuse{\@tempc\@tempa}} + } + \@tempa + \let\@setif@alsoerr=\@empty + } +\newcommand*{\@setif@alsoerr}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@setxif} +% \changes{v2.8q}{2001/10/08}{Neu} +% Es existiert eine Variante von obigem Makro, bei der die Werte f"ur +% \texttt{true} und \texttt{false} explizit angegeben werden. Diese +% sind dann Parameter 3 (\texttt{true}) und 4 (\texttt{false}). +% \begin{macrocode} +\newcommand*{\@setxif}[5][]{% + \begingroup% + \edef\@tempa{#1} + \ifx\@tempa\@empty\def\@tempc{@#2}\else\def\@tempc{#1}\fi + \@ifundefined{\@tempc true}{% + \ClassError{% + scrlttr2% + }{You've used an unknown switch}{% + You've tried to set switch `#2' to value `#3', but + there's no\MessageBreak + switch `#2' defined.} + \let\@tempa\endgroup + }{% + \edef\@tempa{#3}\edef\@tempb{#4}\ifx\@tempa\@tempb + \edef\@tempa{\endgroup\noexpand\@nameuse{\@tempc true}} + \else\def\@tempb{#5}\ifx\@tempa\@tempb + \edef\@tempa{\endgroup\noexpand\@nameuse{\@tempc false}} + \else + \ClassError{% + scrlttr2% + }{You've used an unknown switch value}{% + You've tried to set switch `#2' to value `#3', but allowed + switch\MessageBreak + values are `#4', `#5'\@setif@alsoerr\space only.} + \let\@tempa\endgroup + \fi\fi% + } + \@tempa + \let\@setif@alsoerr=\@empty + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@setnumstate} +% \changes{v2.8q}{2002/01/25}{Neu} +% Es wird au"serdem ein Makro ben"otigt, mit dem man ein nummerisches +% Makro in Abh"angigkeit "uber einen symbolischen Wert setze kann. +% Dabei soll es auch m"oglich sein, dass verschiedene symbolische +% Werte auf dieselbe Nummer abgebildet werden. Das erste Argument ist +% das Makro das umdefiniert werden soll. Das zweite ist die Option, +% "uber die der Wert gesetzt wird. Das dritte ist eine Liste aus +% symbolischen und nummerischen Werten der Art +% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots +% \begin{macrocode} +\newcommand*{\@setnumstate}[4]{% + \begingroup + \edef\@searched{#4}% + \let\@tempa=\@empty + \let\@tempb=\@empty + \@tempswafalse + \@for\@valuelist:=#3\do{% + \if@tempswa\else + \edef\@tempc{\expandafter\@firstoftwo\@valuelist}% + \edef\@tempa{\@tempa\@tempb`\@tempc'}% + \edef\@tempb{, }% + \ifx\@tempc\@searched + \@tempswatrue + \edef\@tempa{\expandafter\@secondoftwo\@valuelist}% + \fi + \fi + } + \if@tempswa + \edef\@tempa{\endgroup + \noexpand\renewcommand*{\noexpand#1}{\@tempa}} + \else + \ClassError{% + scrlttr2% + }{You've used an unknown option value}{% + You've tried to set option `#2' to value `#4', + but allowed values\MessageBreak + are only:\MessageBreak + \@tempa.}% + \let\@tempa=\endgroup + \fi + \@tempa + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ObsoleteOption} +% \changes{v2.8q}{2001/10/08}{Neu} +% Es gibt au"serdem ein Makro, um vor der Verwendung alter Optionen zu +% warnen und den Namen und die Syntax der neuen Option anzugeben. +% \begin{macrocode} +\newcommand*{\@ObsoleteOption}[1]{% + \ClassWarningNoLine{% + scrlttr2% + }{% + You've used the obsolete option `\CurrentOption'.\MessageBreak + I'm using option `#1' instead.\MessageBreak + You should do this change also} + \KOMAoptions{#1} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ObsoleteCommand} +% \changes{v2.8q}{2001/10/09}{Neu} +% Gleiches gilt f"ur veraltete Befehle. Allerdings werden hier zwei +% Argumente ben"otigt, um zu wissen, was der alte Befehl +% war. Au"serdem ist es hier sinnvoll die Zeilennummer mit auszugeben. +% \begin{macrocode} +\newcommand*{\@ObsoleteCommand}[2]{% + \ClassWarning{% + scrlttr2% + }{% + You`ve used the obsolete command `\string#1'.\MessageBreak + I`m using `\string\KOMAoptions{#2}' instead.\MessageBreak + You should do this change also} + \KOMAoptions{#2} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Papierformate, DIV, BCOR und Schriftgr"o"se} +% +% Bevor hier etwas getan werden kann, werden ebenfalls ein paar +% Hilfsmakros ben"otigt. Allerdings gilt dies nicht f"ur die +% Briefklasse +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{macro}{\ifnumber} +% Dieses Makro testet, ob ein "ubergebener Parameter eine positive, +% ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter +% ausgef"uhrt, sonst der dritte. +% \begin{macrocode} +\newcommand\ifnumber[3]{ + \begingroup\@tempswafalse\let\scr@next\test@number + \expandafter\scr@next#1\scr@next + \if@tempswa\endgroup#2\else\endgroup#3\fi +} +% \end{macrocode} +% \begin{macro}{\test@number} +% F"ur den eigentlichen Test wird der erste Parameter Token f"ur Token +% gescannt und beurteilt. +% \begin{macrocode} +\newcommand*{\test@number}[1]{ + \ifx \scr@next#1 + \let\scr@next\relax + \else +% \end{macrocode} +% Dabei wird f"ur einen schnelleren Vergleich die Tatsache genutzt, da"s +% Ziffernzeichen immer im selben durchg"angigen Bereich liegen +% \begin{macrocode} + \@tempcnta=\expandafter\expandafter\expandafter\number + \expandafter`#1\relax + \ifnum \@tempcnta>47\relax + \ifnum \@tempcnta<58\relax + \@tempswatrue + \else\@tempswafalse\fi + \else\@tempswafalse\fi +% \end{macrocode} +% Das zeichenweise scannen und parsen kann nat"urlich nicht einfach +% abgebrochen werden. Stattdessen ist der Parameterrest noch zu entfernen. +% \begin{macrocode} + \if@tempswa\else\let\scr@next\gobble@till@next\fi\fi + \scr@next} +% \end{macrocode} +% \begin{macro}{\gobble@till@next} +% Das geschieht mit einem einzigen "`Leermacro"'. +% \begin{macrocode} +\newcommand*{\gobble@till@next}{} +\def\gobble@till@next#1\scr@next{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@BCOR} +% \begin{macro}{\@@BCOR} +% \begin{macro}{\@DIV} +% \begin{macro}{\@@DIV} +% \begin{macro}{\@headlines} +% \changes{v2.7g}{2001/04/17}{Neu} +% \begin{macro}{\@@headlines} +% \changes{v2.7g}{2001/04/17}{Neu} +% \begin{macro}{\@pt@scan} +% \changes{v2.6}{2000/01/04}{neu in dieser Version} +% \begin{macro}{\@pt@@scan} +% \changes{v2.6}{2000/01/04}{neu in dieser Version} +% \begin{macro}{\x@paper} +% \begin{macro}{\x@@paper} +% Auch hier werden die Scan-Befehle f"ur die Optionen |BCOR|, |DIV| und die +% ISO/DIN-Papierformate +% ben"otigt. Allerdings erfolgt keine direkte Wertzuweisung sondern nur +% eine explizite Weitergabe der globalen Option an das +% \emph{typearea}-package. Die Werte selbst werden auch nicht "uberpr"uft, +% sondern es wird davon ausgegangen, da"s diese Optionen immer zu +% \emph{typearea} geh"oren und dort ggf. ein expliziter Fehler ausgegeben +% werden soll. Die Befehle werden anschlie"send von den +% gleichnamigen Scan-Befehlen des packages "uberladen. +% \begin{macrocode} +\newcommand*{\@BCOR}{\expandafter\@@BCOR\CurrentOption BCORBCOR\@@BCOR} +\newcommand*{\@@BCOR}{} +\def\@@BCOR #1BCOR#2BCOR#3\@@BCOR{ + \edef\@tempa{#1}\ifx\@tempa\@empty + \edef\@tempa{#3}\def\@tempb{BCOR}\ifx\@tempa\@tempb + \PassOptionsToPackage{BCOR#2}{typearea} + \else\OptionNotUsed\fi + \else\OptionNotUsed\fi} +\newcommand*{\@DIV}{\expandafter\@@DIV\CurrentOption DIVDIV\@@DIV} +\newcommand*{\@@DIV}{} +\def\@@DIV #1DIV#2DIV#3\@@DIV{ + \edef\@tempa{#1}\ifx\@tempa\@empty + \edef\@tempa{#3}\def\@tempb{DIV}\ifx\@tempa\@tempb + \PassOptionsToPackage{DIV#2}{typearea} + \else\OptionNotUsed\fi + \else\@BCOR\fi} +\newcommand{\@headlines}{% + \expandafter\@@headlines\CurrentOption headlines\@@headlines} +\newcommand*{\@@headlines}{} +\def\@@headlines #1headlines#2\@@headlines{ + \edef\@tempa{#2}\edef\@tempb{headlines}\ifx\@tempa\@tempb + \PassOptionsToPackage{#1headlines}{typearea} + \else\@DIV\fi} +\newcommand*{\@pt@scan}{\expandafter\@pt@@scan\CurrentOption pt\@pt@@scan} +\newcommand*{\@pt@@scan}{} +\def\@pt@@scan #1pt#2\@pt@@scan{ + \edef\@tempa{pt}\edef\@tempb{#2}\ifx\@tempa\@tempb + \ifnumber{#1} + {\@tempcnta=#1\relax + \advance \@tempcnta by-10\relax + \edef\@ptsize{\the\@tempcnta}} + {\@headlines} + \else\@headlines\fi} +\newcommand*{\x@paper}{\expandafter\x@@paper\CurrentOption paper\x@@paper} +\newcommand*{\x@@paper}{} +\def\x@@paper #1#2paper#3\x@@paper{ + \edef\@tempa{paper}\edef\@tempb{#3}\ifx\@tempa\@tempb + \ifx a#1\PassOptionsToPackage{a#2paper}{typearea} + \else\ifx b#1\PassOptionsToPackage{b#2paper}{typearea} + \else\ifx c#1\PassOptionsToPackage{c#2paper}{typearea} + \else\ifx d#1\PassOptionsToPackage{d#2paper}{typearea} + \else\OptionNotUsed\fi\fi\fi\fi + \else\@pt@scan\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{option}{BCOR} +% \begin{option}{DIV} +% \begin{option}{headlines} +% \begin{option}{paper} +% Die Briefklasse arbeitet hier einfach mit \texttt{keyval}-Optionen: +% \begin{macrocode} +%<*scrlettr> +\KOMA@key{BCOR}{\PassOptionsToPackage{BCOR#1}{typearea}} +\KOMA@key{DIV}{\PassOptionsToPackage{DIV#1}{typearea}} +\KOMA@key{headlines}{\PassOptionsToPackage{#1headlines}{typearea}} +\KOMA@key{paper}{\PassOptionsToPackage{#1paper}{typearea}} +% +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{option}{a4paper} +% \begin{option}{a5paper} +% \begin{option}{b5paper} +% \begin{option}{letterpaper} +% \begin{option}{legalpaper} +% \begin{option}{executivepaper} +% Allerdings m"ussen die Standardpapierformate zus"atzlich per alter +% Option unterst"utzt werden. +% \begin{macrocode} +%<*scrlettr> +\DeclareOption{a4paper}{\@ObsoleteOption{paper=a4}} +\DeclareOption{a5paper}{\@ObsoleteOption{paper=a5}} +\DeclareOption{b5paper}{\@ObsoleteOption{paper=b5}} +\DeclareOption{letterpaper}{\@ObsoleteOption{paper=letter}} +\DeclareOption{legalpaper}{\@ObsoleteOption{paper=legal}} +\DeclareOption{executivepaper}{\@ObsoleteOption{paper=executive}} +% +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% +% Es gibt einige neue Optionen gegen"uber den Standard-Classes. +% +% \subsubsection{Tabellenoptionen} +% +% Da Flie"sobjekte in einem Brief etwas fehlt am Platz sind, werden +% in Briefen auch keine Optionen daf"ur angeboten. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{option}{onelinecaption} +% \changes{v2.8q}{2001/11/17}{Neue Option} +% \begin{option}{noonelinecaption} +% \changes{v2.8q}{2001/11/17}{Neue Option} +% Genau wie beim |caption2|-Paket gibt es Optionen, mit denen die +% Sonderbehandlung f"ur einzeilige Tabellen- und Abbildungsunter- und +% -"uberschriften ein- und ausgeschaltet werden werden k"onnen. +% \begin{macro}{\ifonelinecaptions} +% \changes{v2.8q}{2001/11/17}{Neuer Schalter} +% \begin{macro}{\onelinecaptionstrue} +% \begin{macro}{\onelinecaptionsfalse} +% Die Entscheidung wird in einem Schalter gespeichert. In der +% Hoffnung, beim Laden von |caption2| Speicher zu sparen, wird der +% gleiche Name verwendet, den auch |caption2| verwendet. +% \begin{macrocode} +\newif\ifonelinecaptions\onelinecaptionstrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Da f"ur diese Option nicht der gleiche Name verwendet wird, wie +% bei |caption2|, wird von den Optionen nicht nur der Schalter +% entsprechend gesetzt, sondern auch die korrespondierende Option an +% |caption2| weitergeleitet. Der gleiche Name konnte schlecht +% verwendet werden, weil er bei einer Klasse auch nicht ansatzweise +% als selbsterkl"arend bezeichnet werden kann. +% \begin{macrocode} +\DeclareOption{onelinecaption}{\onelinecaptionstrue% + \PassOptionsToPackage{oneline}{caption2}} +\DeclareOption{noonelinecaption}{\onelinecaptionsfalse% + \PassOptionsToPackage{nooneline}{caption2}} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{Neu} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die +% Klassen verschoben} +% \begin{option}{tablecaptionbelow} +% \changes{v2.8h}{2001/07/19}{Neu} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die +% Klassen verschoben} +% \begin{macro}{\if@tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{Neu} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die +% Klassen verschoben} +% \begin{macro}{\@tablecaptionabovetrue} +% \begin{macro}{\@tablecaptionabovefalse} +% Es besteht nun die Wahl, ob \cs{caption} bei Tabellen f"ur Unter- +% oder "Uberschriften voreingestellt ist. Die Defaulteinstellung ist +% aus Kompatibilit"atsgr"unden die Tabellenunterschrift. +% \begin{macrocode} +\newif\if@tablecaptionabove\@tablecaptionabovefalse +\DeclareOption{tablecaptionabove}{\@tablecaptionabovetrue} +\DeclareOption{tablecaptionbelow}{\@tablecaptionabovefalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{origlongtable} +% \changes{v2.8l}{2001/08/16}{Neu} +% \begin{macro}{\if@komalongtable} +% \changes{v2.8l}{2001/08/16}{Neu} +% \begin{macro}{\@komalongtabletrue} +% \begin{macro}{\@komalongtablefalse} +% Wenn das \texttt{longtable}-Paket geladen ist, werden die +% Tabellen"uber- oder -unterschriften daf"ur normalerweise von den +% Klassen umdefiniert. Dies geschieht automatisch nicht, wenn das +% \texttt{caption2}-Paket geladen ist. Es geschieht ausserdem nicht, +% wenn diese Option gesetzt ist. Die Unterscheidung erfolgt mit einem +% Schalter. +% \begin{macrocode} +\newif\if@komalongtable\@komalongtabletrue +\DeclareOption{origlongtable}{\@komalongtablefalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Kopf-, Fu"s- und Randbereich} +% \begin{option}{headsepline} +% \begin{option}{headnosepline} +% Der Kopfteil kann mit einer Linie vom Textbereich getrennt +% werden. +% \begin{macro}{\if@hsl} +% \begin{macro}{\@hsltrue} +% \begin{macro}{\@hslfalse} +% Die Entscheidung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@hsl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Gleichzeitig wird dem \texttt{typearea}-Paket mitgeteilt, dass der +% Kopf zum Textbereich zu rechnen ist. +% \begin{macrocode} +%<*!scrlettr> +\DeclareOption{headsepline}{% + \PassOptionsToPackage{headinclude}{typearea}\@hsltrue} +% +%<*scrlettr> +\KOMA@key{headsepline}[true]{\@setif{hsl}{#1}}% +\AfterProcessOptions{% + \if@hsl\PassOptionsToPackage{headinclude}{typearea}\fi} +% +\DeclareOption{headnosepline}{% +% \@hslfalse% +% \@ObsoleteOption{headsepline=false}% + } +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{footsepline} +% \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte die +% package-Angabe.} +% \begin{option}{footnosepline} +% Der Fu"steil kann mit einer Linie vom Textbereich getrennt werden. +% \begin{macro}{\if@fsl} +% \begin{macro}{\@fsltrue} +% \begin{macro}{\@fslfalse} +% Die Entscheidung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@fsl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Gleichzeitig wird dem \texttt{typearea}-Paket mitgeteilt, dass der +% Fu"s zum Textbereich zu rechnen ist. +% \begin{macrocode} +% \begin{macrocode} +%<*!scrlettr> +\DeclareOption{footsepline}{\PassOptionsToPackage{footinclude}{typearea} + \@fsltrue} +% +%<*scrlettr> +\KOMA@key{footsepline}[true]{\@setif{fsl}{#1}}% +\AfterProcessOptions{% + \if@fsl\PassOptionsToPackage{footinclude}{typearea}\fi} +% +\DeclareOption{footnosepline}{% +% \@fslfalse% +% \@ObsoleteOption{footsepline=false}% + } +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{mpinclude} +% \changes{v2.8q}{2002/03/28}{Neue Option} +% \begin{option}{mpexclude} +% \changes{v2.8q}{2002/03/28}{Neue Option} +% Es gibt Dokumente mit sehr ausf"uhrlichen Randnotizen, bei denen die +% Randnotizen bei der Satzspiegelberechnung in den Satzspiegel +% eingerechnet werden sollten. Siehe hierzu auch die gleichnamige +% Option des \texttt{typearea} Pakets. In den Hauptklassen muss +% lediglich daf"ur gesorgt werden, dass der Kopf- und Fu"sbereich in +% diesem Fall auch die Randnotizen "uberdeckt. Eine Weiterleitung an +% die Pakete \texttt{typearea} und \texttt{scrpage2} ist nicht +% erforderlich, da in diesem derselbe Schalter verwendet wird. Dieser +% wird in den Paketen nur dann definiert, wenn er nicht bereits +% definiert ist. +% \begin{macro}{\if@mincl} +% \begin{macro}{\@mincltrue} +% \begin{macro}{\@minclfalse} +% Der Zustand wird in einem Schlater gespeichert. \textbf{Achtung:} +% Bei Verwendung dieser Option m"ussen gr"ossere DIV-Werte verwendet +% werden. Siehe dazu weiter unten. F"ur die Briefklasse wird bei +% Verwendung der Optionen eine Warnung ausgegeben. +% \begin{macrocode} +\newif\if@mincl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{mpinclude}{% + \@mincltrue +%<*scrlettr> + \ClassWarning{scrlttr2}{% + You should not use option `mpinclude' with this\MessageBreak + class} +% + } +\DeclareOption{mpexclude}{ + \@minclfalse +%<*scrlettr> + \ClassWarning{scrlttr2}{% + You should not use option `mpexclude' with this\MessageBreak + class} +% + } +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsubsection{Optionen f"ur den Briefkopf} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% Die Gestaltung des Briefkopfes war bei der alten \texttt{scrlettr} +% Klasse eng begrenzt. Deshalb hatte ich f"ur mich selbst das +% \texttt{briefkopf} Paket geschrieben und ohne Support +% ver"offentlicht. Die Funktionalit"at ist nun direkt verf"ugbar. Dazu +% werden verschiedene Optionen ben"otigt. +% +% \begin{option}{fromalign} +% \changes{v2.8q}{2002/01/25}{Neu} +% Diese Option legt fest, ob der Absender linksb"undig, mittig oder +% rechtsb"undig gesetzt werden soll. +% \begin{macro}{\@alignfrom} +% \changes{v2.8q}{2002/01/25}{Neu} +% Die Einstellung wird in einem nummerisch auszuwertenden Makro +% gespeichert. Dabei gelten folgende Werte: +% \begin{center} +% \begin{tabular}{rl} +% Wert & Ausrichtung \\\hline +% 0 & linksb"undig \\ +% 1 & zentriert \\ +% 2 & rechtsb"undig \\ +% 10000 & nicht antasten \\ +% \end{tabular} +% \end{center} +% Voreingestellt ist "`nicht antasten"'. +% \begin{macrocode} +\newcommand*{\@alignfrom}{0} +\KOMA@key{fromalign}{% + \@setnumstate{\@alignfrom}{fromalign}{% + {left}{0},% + {center}{1},{centered}{1},{middle}{1},% + {right}{2},% + {no}{10000},{false}{10000},{off}{10000}}{#1}% + } +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{fromrule} +% \changes{v2.8q}{2002/01/25}{Neu} +% Es kann gew"ahlt werden, ob im Absender nach dem Namen oder nach dem +% gesamten Absender eine Linie gesetzt werden soll. +% \begin{macro}{\@rulefrom} +% \changes{v2.8q}{2002/01/25}{Neu} +% Die Einstellung wird in einem nummerisch auszuwertenden Makro +% gespeichert. Dabei gelten folgende Werte: +% \begin{center} +% \begin{tabular}{rl} +% Wert & Absenderlinie \\\hline +% 0 & keine \\ +% 1 & unter dem Name \\ +% 2 & unter der Adresse \\ +% \end{tabular} +% \end{center} +% Voreingestellt ist keine Linie. +% \begin{macrocode} +\newcommand*{\@rulefrom}{0} +\KOMA@key{fromrule}[below]{% + \@setnumstate{\@rulefrom}{fromrule}{% + {false}{0},{no}{0},{off}{0},{aftername}{1},% + {below}{2},{afteraddress}{2},{true}{2},{yes}{2},{on}{2}% + }{#1}% + } +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{fromphone} +% \changes{v2.8q}{2002/01/25}{Neu} +% Ob die Telefonnummer im Absender gesetzt werden soll oder nicht, +% kann hier angegeben werden. +% \begin{macro}{\if@phone} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@phonetrue} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@phonefalse} +% \changes{v2.8q}{2002/01/25}{Neu} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist keine Telefonnummer im Absender. +% \begin{macrocode} +\newif\if@phone +\KOMA@key{fromphone}[true]{\@setif{phone}{#1}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{fromfax} +% \changes{v2.8q}{2002/01/25}{Neu} +% Ob die Faxnummer im Absender gesetzt werden soll oder nicht, +% kann hier angegeben werden. +% \begin{macro}{\if@fax} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@faxtrue} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@faxfalse} +% \changes{v2.8q}{2002/01/25}{Neu} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist keine Faxnummer im Absender. +% \begin{macrocode} +\newif\if@fax +\KOMA@key{fromfax}[true]{\@setif{fax}{#1}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{fromemail} +% \changes{v2.8q}{2002/01/25}{Neu} +% Ob die E-Mail-Adresse im Absender gesetzt werden soll oder nicht, +% kann hier angegeben werden. +% \begin{macro}{\if@email} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@emailtrue} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@emailfalse} +% \changes{v2.8q}{2002/01/25}{Neu} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist keine E-Mail-Adresse im Absender. +% \begin{macrocode} +\newif\if@email +\KOMA@key{fromemail}[true]{\@setif{email}{#1}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{fromurl} +% \changes{v2.8q}{2002/01/25}{Neu} +% Ob die URL auf eine Homepage im Absender gesetzt werden soll oder +% nicht, kann hier angegeben werden. +% \begin{macro}{\if@www} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@wwwtrue} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@wwwfalse} +% \changes{v2.8q}{2002/01/25}{Neu} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist keine URL im Absender. +% \begin{macrocode} +\newif\if@www +\KOMA@key{fromurl}[true]{\@setif{www}{#1}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{fromlogo} +% \changes{v2.8q}{2002/01/25}{Neu} +% Ob ein Logo in den Briefkopf gesetzt werden soll oder +% nicht, kann hier angegeben werden. +% \begin{macro}{\if@logo} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@logotrue} +% \changes{v2.8q}{2002/01/25}{Neu} +% \begin{macro}{\@logofalse} +% \changes{v2.8q}{2002/01/25}{Neu} +% Gespeichert wird die Information in einem einfachen Schalter. +% Voreingestellt ist kein Logo im Briefkopf. +% \begin{macrocode} +\newif\if@logo +\KOMA@key{fromlogo}[true]{\@setif{logo}{#1}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Optionen f"ur den Kopf der Folgeseiten in Briefen} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{option}{pagenumber} +% \changes{v2.8q}{2002/01/31}{Neu} +% Bei Briefen kann gew"ahlt werden, ob auf Folgeseiten die Seitenzahl +% im Kopf oder im Fu"s stehen soll. Dabei kann zwischen Seitenzahl +% rechts, links oder zentriert gew"ahlt werden. Voreingestellt ist der +% Fu"s und mittig. +% \begin{macro}{\@pageat} +% \changes{v2.8q}{2002/01/31}{Neu} +% In dieser nummerisch auswertbaren Variablen wird gespeichert, wo die +% Seitenzahl stehen soll. Dabei gilt: +% \begin{center}\begin{tabular}{rl} +% Wert & Bedeutung f"ur die Seitenzahl\\\hline +% -1 & keine \\ +% 0 & im Kopf links \\ +% 1 & im Kopf mittig \\ +% 2 & im Kopf rechts \\ +% 3 & im Fu"s links \\ +% 4 & im Fu"s mittig \\ +% 5 & im Fu"s rechts \\ +% \end{tabular}\end{center} +% \begin{macrocode} +\newcommand*{\@pageat}{4} +\KOMA@key{pagenumber}{% + \begingroup + \@setnumstate{\@tempa}{pagenumber}{% + {no}{-1},{off}{-1},{false}{-1},% + {topleft}{0},{headleft}{0},% + {topmiddle}{1},{topcenter}{1},{topcentered}{1},% + {headmiddle}{1},{headcenter}{1},{headcentered}{1},% + {topright}{2},{headright}{2},% + {botleft}{3},{footleft}{3},% + {botmiddle}{4},{botcenter}{4},{botcentered}{4},% + {footmiddle}{4},{footcenter}{4},{footcentered}{4},% + {botright}{5},{footright}{5},% + {top}{10},{head}{10},{bot}{11},{foot}{11},% + {left}{20},{middle}{21},{center}{21},{centered}{21},{right}{22}% + }{#1}% + \ifnum\@tempa<10 + \edef\@tempa{\endgroup\edef\noexpand\@pageat{\@tempa}}% + \else + \ifnum\@tempa<20 + \@tempcnta\@pageat\relax + \ifnum\@tempcnta>2 + \advance\@tempcnta by -3 + \fi + \ifnum\@tempa=11 + \advance\@tempcnta by 3 + \fi + \edef\@tempa{\endgroup\edef\noexpand\@pageat{\the\@tempcnta}}% + \else + \ifnum\@pageat>2 + \edef\@pageat{3}% + \else + \edef\@pageat{0} + \fi + \@tempcnta\@tempa + \advance\@tempcnta by -20 + \advance\@tempcnta by\@pageat + \edef\@tempa{\endgroup\edef\noexpand\@pageat{\the\@tempcnta}}% + \fi + \fi + \@tempa + } +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsubsection{Standardoptionen} +% +% \begin{option}{10pt} +% \begin{option}{11pt} +% \begin{option}{12pt} +% \begin{macro}{\@ptsize} +% Wir definieren \cs{@ptsize} als Grundschriftgr"o"se minus +% 10\,pt. Hier wird allerdings zun"achst nur ein Dummy definiert, +% damit sp"ater \cs{renewcommand} verwendet werden kann. +% \begin{macrocode} +\newcommand*\@ptsize{% +% 2% + } +% \end{macrocode} +% \end{macro} +% \begin{option}{fontsize} +% \begin{macrocode} +%<*scrlettr> +\KOMA@key{fontsize}{% + \begingroup + \setlength{\@tempdima}{#1} + \addtolength{\@tempdima}{-10\p@} + \edef\@tempa{\endgroup\noexpand\renewcommand*\noexpand\@ptsize{% + \strip@pt\@tempdima}} + \@tempa + } +% +\DeclareOption{10pt}{% +% \renewcommand*\@ptsize{0} +% \@ObsoleteOption{fontsize=10pt} + } +\DeclareOption{11pt}{% +% \renewcommand*\@ptsize{1} +% \@ObsoleteOption{fontsize=11pt} + } +\DeclareOption{12pt}{% +% \renewcommand*\@ptsize{2} +% \@ObsoleteOption{fontsize=12pt} + } +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{option}{oneside} +% \begin{option}{twoside} +% \changes{v2.9o}{2003/02/08}{Typofix} +% \begin{option}{draft} +% \begin{option}{final} +% \begin{macrocode} +%<*scrlettr> +\KOMA@key{twoside}[true]{\@setif{twoside}{#1}% + \if@twoside\@mparswitchtrue\else\@mparswitchfalse\fi} +% +\DeclareOption{oneside}{% +% \@twosidefalse \@mparswitchfalse +% \@ObsoleteOption{twoside=false} + } +%\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +%<*scrlettr> +\KOMA@key{draft}[true]{% + \begingroup + \let\@drafttrue=\@tempswatrue + \let\@draftfalse=\@tempswafalse + \@setif{draft}{#1} + \if@tempswa + \global\setlength{\overfullrule}{5\p@} + \else + \global\setlength{\overfullrule}{\z@} + \fi + \endgroup + } +% +%\DeclareOption{draft}{\setlength{\overfullrule}{5pt}} +\DeclareOption{final}{% +% \setlength{\overfullrule}{\z@} +% \@ObsoleteOption{draft=false} + } +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{option}{titlepage} +% \begin{option}{notitlepage} +% \begin{macro}{\if@titlepage} +% \begin{macro}{\@titlepagetrue} +% \begin{macro}{\@titlepagefalse} +% Briefe haben keine Titelei, die "ubrigen Klassen bieten zwei Arten +% der Titelei. +% \begin{macrocode} +%<*!scrlettr> +\newif\if@titlepage +%\@titlepagefalse +%\@titlepagetrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +% +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{openright} +% \begin{option}{openany} +% \begin{macro}{\if@openright} +% \begin{macro}{\@openrighttrue} +% \begin{macro}{\@openrightfalse} +% Bei Artikeln und Briefen gibt es keine Kapitel also auch keine +% Schalter, damit diese immer auf rechten Seiten beginnen. Bei den +% anderen Klassen schon. +% \begin{macrocode} +%<*!scrartcl&!scrlettr> +\newif\if@openright +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{openany}{\@openrightfalse} +% +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{onecolumn} +% \begin{option}{twocolumn} +% \begin{option}{leqno} +% \begin{option}{fleqno} +% Briefe sind immer einspaltig und kennen keine Gleichungen, also gibt +% es f"ur diese auch die entsprechenden Optionen nicht. +% \begin{macrocode} +%<*!scrlettr> +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +% +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{option}{openbib} +% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue}, +% \cs{@openbibfalse} entfernt.} +% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu +% implementiert.} +% \begin{macro}{\@openbib@code} +% \begin{macro}{\newblock} +% Briefe haben kein Literaturverzeichnis. Alle anderen Klassen bieten +% eine alternative Darstellung daf"ur. +% \begin{macrocode} +%<*!scrlettr> +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand*\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand*\newblock{\par}}% +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{option} +% +% \subsubsection{Abstract (Zusammenfassung)} +% \begin{option}{abstracton} +% \begin{option}{abstractoff} +% Das Abstract (Zusammenfassung) kann mit einem standardm"a"sigen Titel +% versehen werden. Der Titel kann aber auch unterdr"uckt werden. +% +% Bei B"uchern und Briefen gibt es keine Zusammenfassung als +% gesonderte Umgebung. +% +% \begin{macro}{\if@abstrt} +% \begin{macro}{\@abstrttrue} +% \begin{macro}{\@abstrtfalse} +% Die Enscheidung wird in einem Schalter gespeichert. +% \begin{macrocode} +%<*!scrbook&!scrlettr> +\newif\if@abstrt +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +\DeclareOption{abstracton}{\@abstrttrue} +\DeclareOption{abstractoff}{\@abstrtfalse} +% +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsubsection{Briefspezifische Optionen f"ur die erste Seite} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{option}{enlargefirstpage} +% \changes{v2.8o}{2001/09/18}{Neue Option} +% Normalerweise wird der Text der ersten Seite entsprechend dem +% normalen Satzspiegel gesetzt. Ist allerdings der Fu"s der ersten +% Seite zu hoch, dann wird der Satzspiegel vertikal entsprechend +% verk"urzt. Mit der Option \texttt{firstpageenlarge} kann erzwungen +% werden, dass im umgekehrten Fall, der Satzspiegel vertikal +% verl"angert wird. +% \begin{macro}{\if@enlargefp} +% \begin{macro}{\@enlargefptrue} +% \begin{macro}{\@enlargefpfalse} +% Gespeichert wird die Information "uber die Optionen in einem +% Schalter. +% \begin{macrocode} +\newif\if@enlargefp +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\KOMA@key{enlargefirstpage}[true]{% + \@setif[@enlargefp]{enlargefirstpage}{#1}} +% \end{macrocode} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Optionen f"ur das Absatzlayout} +% +% Ab Version 2.8i k"onnen wir auch mit Avsatzlayouts umgehen, die einen +% Absatzabstand statt einem Absatzeinzug verlangen. Gesteuert wird +% dies "uber Optionen und Schalter. +% +% \begin{macro}{\if@parskip} +% \changes{v2.8i}{2001/07/22}{Neu} +% \changes{v2.8q}{2001/11/06}{Entf"allt} +% Dieser Schalter steuert intern, ob mit Absatzabstand oder +% Absatzeinzug gearbeitet werden soll. Voreingestellt ist wie bisher +% der Absatzeinzug. +% \begin{macrocode} +\newif\if@parskip +% \end{macrocode} +% \end{macro} +% \begin{option}{parskip} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{option}{parskip-} +% \changes{v2.8l}{2001/08/16}{Neu} +% \begin{option}{parskip+} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{option}{parskip*} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{option}{halfparskip} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{option}{halfparskip-} +% \changes{v2.8l}{2001/08/16}{Neu} +% \begin{option}{halfparskip+} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{option}{halfparskip*} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{option}{parindent} +% \changes{v2.8i}{2001/07/22}{Neu} +% Diese vier Optionen steuern die Umschaltung zwischen den Modi. Dabei +% schalten alle \texttt{parskip}-Optionen einen Absatzabstand ein, +% wohingegen die \texttt{parindent}-Option den Absatzeinzug +% einschaltet. Die \texttt{+}-Variante sorgt au"serdem daf"ur, dass +% die letzte Zeile eines Absatzes maximal zu zweidrittel gef"ullt +% wird. Entsprechend sorgt die \texttt{*}-Variante f"ur eine maximale +% F"ullung von drei Vierteln. Die normale Variante sorgt lediglich +% f"ur einen freien Raum von 1\,em. Die \texttt{-}-Variante sorgt f"ur +% "uberhaupt nichts. +% \begin{macro}{\scr@parskip} +% \changes{v2.8i}{2001/07/22}{Neu} +% Hiermit wird ggf. der Absatzabstand eingestellt. +% \begin{macro}{scr@parfillskip} +% \changes{v2.8i}{2001/07/22}{Neu} +% \begin{macro}{\@parskip@indent} +% \changes{v2.8q}{2001/11/06}{Neu} +% Hiermit wird ggf. die F"ullung der letzten Absatzzeile eingestellt. +% einzustellen ist. +% \begin{macrocode} +\newcommand*{\scr@parskip}{\setlength{\parskip}{\z@}} +\newcommand*{\scr@parfillskip}{\setlength{\parfillskip}{\z@}} +%<*!scrlettr> +\DeclareOption{parskip}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .1\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{1em \@plus 1fil}}} +\DeclareOption{parskip-}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .1\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{\z@ \@plus 1fil}}} +\DeclareOption{parskip+}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .1\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{.3333\linewidth} + \addtolength{\parfillskip}{\z@ \@plus 1fil}}} +\DeclareOption{parskip*}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .1\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{.25\linewidth} + \addtolength{\parfillskip}{\z@ \@plus 1fil}}} +\DeclareOption{halfparskip}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{.5\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .5\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{1em \@plus 1fil}}} +\DeclareOption{halfparskip-}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{.5\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .5\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{\z@ \@plus 1fil}}} +\DeclareOption{halfparskip+}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{.5\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .5\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{.3333\linewidth} + \addtolength{\parfillskip}{\z@ \@plus 1fil}}} +\DeclareOption{halfparskip*}{\@parskiptrue% + \renewcommand*{\scr@parskip}{% + \setlength{\parskip}{.5\baselineskip}% + \addtolength{\parskip}{\z@ \@plus .5\baselineskip}} + \renewcommand*{\scr@parfillskip}{% + \setlength{\parfillskip}{.25\linewidth} + \addtolength{\parfillskip}{\z@ \@plus 1fil}}} +\DeclareOption{parindent}{\@parskipfalse} +% +%<*scrlettr> +\newcommand*{\@parskip@indent}{} +\KOMA@key{parskip}[true]{% + \begingroup% + \@tempcnta=-1\edef\@tempa{#1}% + \def\@tempb{false}\ifx\@tempa\@tempb\@tempcnta=0\fi + \def\@tempb{off}\ifx\@tempa\@tempb\@tempcnta=0\fi + \def\@tempb{full-}\ifx\@tempa\@tempb\@tempcnta=1\fi + \def\@tempb{half-}\ifx\@tempa\@tempb\@tempcnta=2\fi + \def\@tempb{full}\ifx\@tempa\@tempb\@tempcnta=3\fi + \def\@tempb{true}\ifx\@tempa\@tempb\@tempcnta=3\fi + \def\@tempb{on}\ifx\@tempa\@tempb\@tempcnta=3\fi + \def\@tempb{half}\ifx\@tempa\@tempb\@tempcnta=4\fi + \def\@tempb{full+}\ifx\@tempa\@tempb\@tempcnta=5\fi + \def\@tempb{half+}\ifx\@tempa\@tempb\@tempcnta=6\fi + \def\@tempb{full*}\ifx\@tempa\@tempb\@tempcnta=7\fi + \def\@tempb{half*}\ifx\@tempa\@tempb\@tempcnta=8\fi + \let\@tempa\endgroup + \ifnum \@tempcnta <\z@\relax + \ClassError{% + scrlttr2% + }{You've used an unknown option value}{% + You've tried to set option `parskip' to value `#1', but + allowed values\MessageBreak + are `full-', `full', `full+', `full*', `half-', + `half', `half+',\MessageBreak + `half*', `false' and `off' only.\MessageBreak + You may also use `on' instead of `full'.}% + \else\ifnum \@tempcnta =\z@ + \def\@tempa{\endgroup\@parskipfalse\@parskip@indent}% + \else + \let\@tempb=\relax\let\@tempc=\relax + \ifodd \@tempcnta + \def\@tempb{\def\noexpand\scr@parskip{% + \noexpand\setlength{\parskip}{\baselineskip}% + \noexpand\addtolength{\parskip}{% + \z@ \@plus .1\baselineskip}}}% + \else + \def\@tempb{\def\noexpand\scr@parskip{% + \noexpand\setlength{\parskip}{.5\baselineskip}% + \noexpand\addtolength{\parskip}{% + \z@ \@plus .5\baselineskip}}}% + \fi + \advance\@tempcnta by \m@ne + \divide\@tempcnta by \tw@ + \ifcase\@tempcnta + \def\@tempc{\def\noexpand\scr@parfillskip{% + \noexpand\setlength{\parfillskip}{\z@ \@plus 1fil}}}% + \or + \def\@tempc{\def\noexpand\scr@parfillskip{% + \noexpand\setlength{\parfillskip}{1em \@plus 1fil}}}% + \or + \def\@tempc{\def\noexpand\scr@parfillskip{% + \noexpand\setlength{\parfillskip}{.3333\linewidth}% + \noexpand\addtolength{\parfillskip}{\z@ \@plus 1fil}}}% + \or + \def\@tempc{\def\noexpand\scr@parfillskip{% + \noexpand\setlength{\parfillskip}{.25\linewidth}% + \noexpand\addtolength{\parfillskip}{\z@ \@plus 1fil}}}% + \fi + \edef\@tempa{% + \endgroup\noexpand\@parskiptrue\@tempb\@tempc% + \noexpand\@parskip@indent}% + \fi + \fi + \@tempa + } +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% +% \subsubsection{Optionen zur Steuerung der Numerierung} +% +% In Briefen gibt es keine Gliederung also auch keine Optionen f"ur +% die Steuerung der Nummerierung. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{option}{pointednumbers} +% \changes{v2.3h}{1995/01/19}{Option zum Einschalten des Punktes nach +% Nummern.} +% \changes{v2.4g}{1996/11/04}{Die Option hei"st nun wirklich so, bei +% \texttt{pointednumber} wird explizit ein +% Fehler gemeldet.} +% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformatfalse} wird direkt auf +% \cs{@altsecnumformattrue} gesetzt.} +% \begin{option}{pointlessnumbers} +% \changes{v2.3h}{1995/01/19}{Option zur Verhinderung des Punktes nach +% Nummern.} +% \changes{v2.4g}{1996/11/04}{Die Option hei"st nun wirklich so, bei +% \texttt{pointlessnumber} wird explizit +% ein Fehler gemeldet.} +% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformattrue} wird direkt auf +% \cs{@altsecnumformatfalse} gesetzt.} +% Normalerweise wird automatisch entschieden, ob Nummern mit einem Punkt +% enden m"ussen oder nicht. Um dies abzuschalten, mu"s nur der +% gew"unschte Zustand eingeschaltet und die Umschaltm"oglichkeit entfernt +% werden. Dies kann jedoch erst am Ende der Class geschehen. +% \begin{macrocode} +\DeclareOption{pointednumbers} + {\AtEndOfClass{\@altsecnumformattrue + \global\let\@altsecnumformatfalse\@altsecnumformattrue}} +\DeclareOption{pointednumber} + {\AtEndOfClass{\@altsecnumformattrue + \global\let\@altsecnumformatfalse\@altsecnumformattrue} + \ClassError +% {scrbook} +% {scrreprt} +% {scrartcl} + {undefined option `pointednumber' instead of `pointednumbers'} + {You've used the class-option `pointednumber'.\MessageBreak + This name was an implementation-error at versions from 2.3h till + 2.4f.\MessageBreak + The correct name is `pointednumbers'. + Change this at your document.\MessageBreak + If you'll continue, the option `pointednumbers' will be used.}} +\DeclareOption{pointlessnumbers} + {\AtEndOfClass{\@altsecnumformatfalse + \global\let\@altsecnumformattrue\@altsecnumformatfalse}} +\DeclareOption{pointlessnumber} + {\AtEndOfClass{\@altsecnumformatfalse + \global\let\@altsecnumformattrue\@altsecnumformatfalse} + \ClassError +% {scrbook} +% {scrreprt} +% {scrartcl} + {undefined option `pointlessnumber' instead of `pointlessnumbers'} + {You've used the class-option `pointlessnumber'.\MessageBreak + This name was an implementation-error at versions from 2.3h till + 2.4f.\MessageBreak + The correct name is `pointlessnumbers'. + Change this at your document.\MessageBreak + If you'll continue, the option `pointlessnumbers' will be used.}} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsubsection{Optionen zur Steuerung der "Uberschriften} +% +% In Briefen gibt es keine Gliederung also auch keine Optionen f"ur +% die Steuerung der "Uberschriften. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{option}{bigheadings} +% \changes{v2.3h}{1996/01/20}{Neue Option} +% \changes{v2.4g}{1996/11/04}{Die Option hei"st nun wirklich so. Bei +% Verwendung des alten, falschen Namens +% wird ein Fehler ausgegeben} +% \begin{macro}{\@bigheadings} +% \begin{option}{normalheadings} +% \changes{v2.3h}{1996/01/20}{Neue Option} +% \changes{v2.4g}{1996/11/04}{Die Option hei"st nun wirklich so. Bei +% Verwendung des alten, falschen Namens +% wird ein Fehler ausgegeben} +% \begin{macro}{\@normalheadings} +% \begin{option}{smallheadings} +% \changes{v2.3h}{1996/01/20}{Neue Option} +% \changes{v2.4g}{1996/11/04}{Die Option hei"st nun wirklich so. Bei +% Verwendung des alten, falschen Namens +% wird ein Fehler ausgegeben} +% \begin{macro}{\@smallheadings} +% Neuerdings kann zwischen verschiedenen "Uberschriftgr"o"sen umgeschaltet +% werden, wobei die bisherige Gr"o"se als gro"s gilt und +% voreingestellt wird. +% \changes{v2.3h}{1996/01/20}{Die Gr"o"se von \cs{chapter} um eine Stufe +% veringert.} +% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} +% und \cs{chapterheadendvskip} an Stelle von +% festen vertikalen Abst"anden am Anfang und +% am Ende eines Kapitels.} +% \changes{v2.7c}{2000/01/19}{Vertikale Abst"ande nach der +% Kapitel"uberschrift geringf"ugig +% ver"andert und mit Leim versehen, +% um mit \cs{flushbottom} zu besseren +% Ergebnissen zu gelangen.} +% \begin{macrocode} +\newcommand\@bigheadings + {\AtEndOfClass{ +%<*scrbook|scrreprt> + \renewcommand*{\chapterheadstartvskip}{\vspace*{2.3\baselineskip}} + \renewcommand*{\chapterheadendvskip}{\vspace{1.725\baselineskip + \@plus .115\baselineskip \@minus .192\baselineskip}} +% + \let\size@part\Huge + \let\size@partnumber\huge +% \let\size@chapter\huge + \let\size@section\Large + \let\size@subsection\large + \let\size@subsubsection\normalsize + \let\size@paragraph\normalsize + \let\size@subparagraph\normalsize}} +\DeclareOption{bigheadings}{\@bigheadings} +\DeclareOption{bigheading}{\@bigheadings + \ClassError +% {scrbook} +% {scrreprt} +% {scrartcl} + {undefined option `bigheading' instead of `bigheadings'} + {You've used the old option name `bigheading'!\MessageBreak + The correct name of the option is `bigheadings'.\MessageBreak + The old name was an implementation error from\MessageBreak + version 2.3h till 2.4f.\MessageBreak + You should change this at your document!\MessageBreak + If you'll continue, option `bigheadings' will be used.}} +\newcommand\@normalheadings + {\AtEndOfClass{ +%<*scrbook|scrreprt> + \renewcommand*{\chapterheadstartvskip}{\vspace*{2\baselineskip}} + \renewcommand*{\chapterheadendvskip}{\vspace{1.5\baselineskip + \@plus .1\baselineskip \@minus .167\baselineskip}} +% + \let\size@part\huge + \let\size@partnumber\huge +%<*scrbook|scrreprt> + \let\size@chapter\LARGE + \let\size@section\Large + \let\size@subsection\large +% +%<*scrartcl> + \let\size@section\large + \let\size@subsection\normalsize +% + \let\size@subsubsection\normalsize + \let\size@paragraph\normalsize + \let\size@subparagraph\normalsize}} +\DeclareOption{normalheadings}{\@normalheadings} +\DeclareOption{normalheading}{\@normalheadings + \ClassError +% {scrbook} +% {scrreprt} +% {scrartcl} + {undefined option `normalheading' instead of `normalheadings'} + {You've used the old option name `normalheading'!\MessageBreak + The correct name of the option is `normalheadings'.\MessageBreak + The old name was an implementation error from\MessageBreak + version 2.3h till 2.4f.\MessageBreak + You should change this at your document!\MessageBreak + If you'll continue, option `normalheadings' will be used.}} +\newcommand\@smallheadings + {\AtEndOfClass{ +%<*scrbook|scrreprt> + \renewcommand*{\chapterheadstartvskip}{\vspace*{1.8\baselineskip}} + \renewcommand*{\chapterheadendvskip}{\vspace{1.35\baselineskip + \@plus 0.09\baselineskip \@minus .15\baselineskip}} +% + \let\size@part\LARGE + \let\size@partnumber\LARGE +%<*scrbook|scrreprt> + \let\size@chapter\Large + \let\size@section\large +% +%<*scrartcl> + \let\size@section\normalsize +% + \let\size@subsection\normalsize + \let\size@subsubsection\normalsize + \let\size@paragraph\normalsize + \let\size@subparagraph\normalsize}} +\DeclareOption{smallheadings}{\@smallheadings} +\DeclareOption{smallheading}{\@smallheadings + \ClassError +% {scrbook} +% {scrreprt} +% {scrartcl} + {undefined option `smallheading' instead of `smallheadings'} + {You've used the old option name `smallheading'!\MessageBreak + The correct name of the option is `smallheadings'.\MessageBreak + The old name was an implementation error from\MessageBreak + version 2.3h till 2.4f.\MessageBreak + You should change this at your document!\MessageBreak + If you'll continue, option `smallheadings' will be used.}} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% +% +% \begin{option}{chapterprefix} +% \changes{v2.8}{2001/06/15}{Neu} +% \begin{option}{nochapterprefix} +% \changes{v2.8}{2001/06/15}{Neu} +% Normalerweise verwenden |scrbook.cls| und |scrreprt.cls| nicht die +% enorm gro"sen "Uberschriften von |book.cls| und |report.cls|, die mit +% einem Absatz "`Kapitel \emph{Nummer}"' beginnen. Mit der Option +% |chapterprefix| kann dies jetzt wieder aktiviert werden. Die Option, +% zur Deaktivierung hei"st entsprechend |nochapterprefix|. Um f"ur +% Spezialanwendungen auch innerhalb des Dokuments eine Umschaltung zu +% erm"oglichen bzw. f"ur die Optionen "`appendixprefix"' und +% "`noappendixprefix"' erfolgt die Umschaltung durch einen Schalter. +% \begin{macro}{\if@chapterprefix} +% \begin{macro}{\@chapterprefixtrue} +% \begin{macro}{\@chapterprefixfalse} +% \begin{macrocode} +%<*scrbook|scrreprt> +\newif\if@chapterprefix +\DeclareOption{chapterprefix}{\@chapterprefixtrue} +\DeclareOption{nochapterprefix}{\@chapterprefixfalse} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% +% +% \begin{option}{appendixprefix} +% \changes{v2.8}{2001/06/15}{Neu} +% \begin{option}{noappendixprefix} +% \changes{v2.8}{2001/06/15}{Neu} +% Will man abweichend von den Optionen |chapterprefix| und +% |nochapterprefix| die gro"sen "Uberschriften f"ur den Anhang +% aktivieren oder deaktivieren, so kann man das mit dieser Option +% erreichen. Allerdings setzt diese keinen Schalter, sondern ein +% Zusatzmakro, das auch f"ur andere Zwecke genutzt werden kann. +% \begin{macrocode} +%<*scrbook|scrreprt> +\DeclareOption{appendixprefix}{\def\appendixmore{\@chapterprefixtrue}} +\DeclareOption{noappendixprefix}{\def\appendixmore{\@chapterprefixfalse}} +% +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% Allerdings gibt es bei Briefen ebenfalls den Befehl +% |\cleardoublepage|, also auch die zugeh"origen Optionen. +% \begin{macrocode} +% +% \end{macrocode} +% +% \begin{option}{cleardoubleempty} +% \changes{v2.8a}{2001/06/18}{Neu} +% \begin{option}{cleardoubleplain} +% \changes{v2.8a}{2001/06/18}{Neu} +% \begin{option}{cleardoublestandard} +% \changes{v2.8a}{2001/06/18}{Neu} +% \begin{option}{cleardoublepage} +% \changes{v2.8q}{2001/10/17}{Neu bei \texttt{scrlttr2}} +% \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} statt +% \cs{cleardoublestandard}} +% \begin{macro}{\cleardoublestandardpage} +% \changes{v2.8a}{2001/06/18}{Neu} +% \begin{macro}{\cleardoubleemptypage} +% \changes{v2.8a}{2001/06/18}{Neu} +% \begin{macro}{\cleardoubleplainpage} +% \changes{v2.8a}{2001/06/18}{Neu} +% Bei Verwendung von |twoside| und |openright| bei den Klassen +% |scrbook.cls| und |scrreprt.cls| wird bei |\chapter| implizit +% |\cleardoublepage| ausgef"uhrt. Das f"uhrt ggf. normalerweise zu +% einer linken Seite, auf der noch der Kolumnentitel des vorherigen +% Kapitels und eine Seitenzahl steht. H"aufig wird stattdessen nur +% eine Seitenzahl oder auch gar nichts gew"unscht. Es soll also der +% Seitenstil |plain| oder |empty| verwendet werden. Dies wird mit +% den beiden neuen Optionen erm"oglicht. Dazu werden auch gleich drei +% neue Makros definiert: +% \begin{macrocode} +\newcommand*{\cleardoublestandardpage}{} +\let\cleardoublestandardpage\cleardoublepage +\newcommand*{\cleardoubleemptypage}{\clearpage% + {\thispagestyle{empty}\cleardoublestandardpage}} +\newcommand*{\cleardoubleplainpage}{\clearpage% + {\thispagestyle{plain}\cleardoublestandardpage}} +%<*!scrlettr> +\DeclareOption{cleardoubleempty}{% + \let\cleardoublepage\cleardoubleemptypage} +\DeclareOption{cleardoubleplain}{% + \let\cleardoublepage\cleardoubleplainpage} +\DeclareOption{cleardoublestandard}{% + \let\cleardoublepage\cleardoublestandardpage} +% +%<*scrlettr> +\DeclareOption{cleardoubleempty}{% + \@ObsoleteOption{cleardoublepage=empty}} +\DeclareOption{cleardoubleplain}{% + \@ObsoleteOption{cleardoublepage=plain}} +\DeclareOption{cleardoublestandard}{% + \@ObsoleteOption{cleardoublepage=standard}} +\KOMA@key{cleardoublepage}{% + \begingroup% + \def\@tempc{% + \endgroup% + \ClassError{% + scrlttr2% + }{You've used an unknown switch value}{% + You've tried to set switch `cleardoublepage' to value + `#1', but\MessageBreak + allowed switch values are `emtpy', `plain' and + `standard' only.}} + \edef\@tempa{#1}% + \def\@tempb{empty}\ifx\@tempa\@tempb% + \def\@tempc{\endgroup% + \let\cleardoublepage\cleardoubleemptypage}\fi + \def\@tempb{plain}\ifx\@tempa\@tempb% + \def\@tempc{\endgroup% + \let\cleardoublepage\cleardoubleplainpage}\fi + \def\@tempb{standard}\ifx\@tempa\@tempb% + \def\@tempc{\endgroup% + \let\cleardoublepage\cleardoublestandardpage}\fi + \@tempc} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% +% \subsubsection{Optionen zur Beeinflussung des Inhaltsverzeichnisses} +% +% In Briefen gibt es keine Gliederung also auch keine Optionen f"ur +% die Beinflussung des Inhaltsverzeichnisses. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{option}{liststotoc} +% \changes{v2.3h}{1995/01/21}{Neue Option} +% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% Die Option sorgt daf"ur, da"s das Abbildungs- und das +% Tabellenverzeichnis im Inhalsverzeichnis aufgef"uhrt werden. Dazu +% muss nur \cs{float@listhead} umdefiniert werden. +% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch \cs{listtablename} +% ersetzt.} +% \begin{macro}{\float@listhead} +% \begin{macrocode} +\DeclareOption{liststotoc}{% + \AtEndOfClass{% + \renewcommand*{\float@listhead}[1]{% +% \addsec{#1} +% \addchap{#1} + \@mkboth{#1}{#1}% + \if@dynlist% + \newcommand*{\scr@starttoc}{}% + \let\scr@starttoc=\@starttoc% + \renewcommand*{\@starttoc}[1]{% + \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% + \fi% + }} + } +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{liststotocnumbered} +% \changes{v2.8q}{2002/04/08}{dem langj"ahrigen Druck nachgegeben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% Die Option sorgt daf"ur, da"s das Abbildungs- und das +% Tabellenverzeichnis nummerierte Kapitel/Abschnitte werden. Dazu +% muss nur \cs{float@listhead} umdefiniert werden. Ich halte diese +% Option selbst f"ur wenig sinnvoll. +% \begin{macro}{\float@listhead} +% \begin{macrocode} +\DeclareOption{liststotocnumbered}{% + \AtEndOfClass{% + \renewcommand*{\float@listhead}[1]{% +% \section{#1} +% \chapter{#1} +% \@mkboth{\sectionmarkformat #1}{\sectionmarkformat #1}% +% \@mkboth{\chaptermarkformat #1}{\chaptermarkformat #1}% + \if@dynlist% + \newcommand*{\scr@starttoc}{}% + \let\scr@starttoc=\@starttoc% + \renewcommand*{\@starttoc}[1]{% + \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% + \fi% + }} + } +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{bibtotoc} +% \changes{v2.3h}{1995/01/21}{Neue Option.} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingef"ugt.} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingef"ugt.} +% \changes{v2.7}{2001/01/03}{Klammerung koorigiert.} +% \changes{v2.7j}{2001/06/27}{Setzen der Pr"aambel in die +% thebibliography-Umgebung verschoben} +% Die Option sorgt daf"ur, da"s das Literaturverzeichnis im +% Inhaltsverzeichnis aufgef"uhrt wird. +% \begin{option}{bibtotocnumbered} +% \changes{v2.3h}{1995/01/21}{Neue Option.} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingef"ugt.} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingef"ugt.} +% \changes{v2.7}{2001/01/03}{Klammerung koorigiert.} +% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet.} +% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}} +% \changes{v2.7j}{2001/06/27}{Setzen der Pr"aambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% Wobei auch eine normal numerierte Variante m"oglich ist. +% \begin{macro}{\bib@heading} +% \begin{macrocode} +\DeclareOption{bibtotoc} + {\AtEndOfClass{% + \renewcommand*\bib@heading{% +%<*scrartcl> + \addsec{\refname} + \@mkboth{\refname}{\refname} +% +%<*scrbook|scrreprt> + \addchap{\bibname} + \@mkboth{\bibname}{\bibname} +% + }}} +\DeclareOption{bibtotocnumbered} + {\AtEndOfClass{% + \renewcommand*\bib@heading{% +%<*scrartcl> + \section{\refname} + \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname} +% +%<*scrbook|scrreprt> + \chapter{\bibname} + \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname} +% + }}} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{idxtotoc} +% \changes{v2.3h}{1995/01/21}{Neue Option.} +% Die Option sorgt daf"ur, da"s der Index auch im Inhaltsverzeichnis +% erscheint. +% \begin{macro}{\idx@heading} +% Dazu wird das interne Makro |\idx@heading| umdefiniert, "uber das +% die "uberschrift gesetzt und der Kolumnentitel angepa"st wird. +% \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt +% behandelt} +% \changes{v2.4g}{1996/11/04}{Index auch bei scrartcl wieder +% zweispaltig} +% \changes{v2.6c}{2000/06/10}{Im Index kann nach der "Uberschrift +% eine Preambel gesetzt werden} +% \changes{v2.7a}{2001/01/04}{F"ur \texttt{scrbook} und +% \texttt{scrreprt} die Link-Erzeugung mit \texttt{hyperref} +% verbessert} +% \changes{v2.7j}{2001/05/27}{Setzen der Pr"aambel in die +% theindex-Umgebung verschoben} +% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch +% \cs{if@openright} ersetzt} +% An dieser Stelle m"u"s daf"ur gesorgt werden, da"s im Falle von +% \texttt{scrbook} und \texttt{scrreprt} das Makro \cs{@schapter} verwendet +% wird. Damit dies hier m"oglich ist mu"sten tiefreifendere "Anderungen am +% \LaTeX-Kernel bzw. am Gliederungsbefehl |\chapter| vorgenommen werden. +% Die urspr"ungliche Definition sah so aus: +% \begin{verbatim} +% \renewcommand*\idx@heading{% +% \if@twoside\cleardoublepage\else\clearpage\fi% +% \@mkboth{\indexname}{\indexname}% +% \addcontentsline{toc}{chapter}{\indexname}% +% \twocolumn[% +% \addsec +% \@makeschapterhead +% {\indexname}\index@preamble]% +% } +% \end{verbatim} +% Die neue Definition wurde wie folgt ge"andert: +% \begin{macrocode} +\DeclareOption{idxtotoc} + {\AtEndOfClass{% + \renewcommand*\idx@heading{% +% \if@openright\cleardoublepage\else\clearpage\fi% +% \twocolumn[\addsec{\indexname}] +% \twocolumn[\addchap{\indexname}] + \@mkboth{\indexname}{\indexname}% + }}} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% +% \begin{option}{tocleft} +% \changes{v2.8q}{2001/11/14}{Neue Option} +% \begin{option}{tocindent} +% \changes{v2.8q}{2001/11/14}{Neue Option} +% Optionen f"ur zwei unterschiedliche Darstellungen des +% Inhaltsverzeichnisses. Die Variante |tocindent| ist die altbekannte +% Variante. Bei |tocleft| hingegen wird eine tabellenartige Form +% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils +% untereinander stehen. Der f"ur die Nummern ben"otigte Platz wird +% dabei automatisch ermittelt. +% \begin{macro}{\if@tocleft} +% \changes{v2.8q}{2001/11/14}{Neuer Schalter} +% \begin{macro}{\@toclefttrue} +% \begin{macro}{\@tocleftfalse} +% Die Wahl der Darstellungsart wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@tocleft +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{tocleft}{\@toclefttrue} +\DeclareOption{tocindent}{\@tocleftfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{option}{listsleft} +% \changes{v2.8q}{2001/11/14}{Neue Option} +% \begin{option}{listsindent} +% \changes{v2.8q}{2001/11/14}{Neue Option} +% Optionen f"ur zwei unterschiedliche Darstellungen der +% Verzeichnisses von Gleitumgebungen. Die Variante |listindent| ist +% die altbekannte Variante mit einem festen Einzug der Nummer. Bei +% |listleft| hingegen wird der f"ur die Nummern ben"otigte Platz +% automatisch ermittelt. +% \begin{macro}{\if@dynlist} +% \changes{v2.8q}{2001/11/14}{Neuer Schalter} +% \begin{macro}{\@dynlisttrue} +% \begin{macro}{\@dynlistfalse} +% Die Wahl der Darstellungsart wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@dynlist +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{listsleft}{\@dynlisttrue} +\DeclareOption{listsindent}{\@dynlistfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Briefspezifische Optionen f"ur das Adressfenster} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{option}{addrfield} +% \changes{v2.8q}{2001/10/09}{Neu} +% Das Adressfeld f"ur Fensterumschl"age kann mit |addrfield| ein- und +% ausgeschaltet werden +% \begin{macro}{\if@afield} +% \begin{macro}{\if@afieldtrue} +% \begin{macro}{\if@afieldfalse} +% Die Speicherung erfolgt wiederum in einem Schalter. +% \begin{macrocode} +\newif\if@afield\@afieldtrue +\KOMA@key{addrfield}[true]{\@setif[@afield]{addrfield}{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{backaddress} +% \changes{v2.8q}{2002/01/22}{Neu} +% Im Adressfeld kann die R"ucksendeadresse gesetzt werden. Dies +% geschieht nun nicht mehr allein durch Definition einer +% R"ucksendeadresse, sondern auch durch eine Option. +% \begin{macro}{\if@baddr} +% \begin{macro}{\@baddrtrue} +% \begin{macro}{\@baddrfalse} +% Die Einstellung der Option wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@baddr\@baddrtrue +\KOMA@key{backaddress}[true]{\@setif[@baddr]{backaddress}{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{subject} +% \changes{v2.8q}{2001/10/09}{Neu} +% Ein Betreff-Titel kann mit |subject| ein- und abgeschaltet +% werden. In England und Frankreich scheint es teilweise "ublich zu +% sein, den Betreff erst nach der Anrede und daf"ur zentriert zu +% setzen\footnote{Ich kann mir nur m"uhsahm eine Bemerkung dazu +% verkneifen.}. +% Deshalb kann alternativ zum Einschalten des Betreff-Titels hier auch +% dies aktiviert werden. +% \begin{macro}{\if@subj} +% \begin{macro}{\@subjtrue} +% \begin{macro}{\@subjfalse} +% \begin{macro}{\if@subjafter} +% \begin{macro}{\@subjaftertrue} +% \begin{macro}{\@subjafterfalse} +% Die Speicherung erfolgt in zwei Schaltern. +% \begin{macrocode} +\newif\if@subj +\newif\if@subjafter +\KOMA@key{subject}[true]{% + \begingroup + \edef\@tempa{#1}% + \def\@tempb{afteropening}% + \ifx\@tempa\@tempb\endgroup\@subjaftertrue + \else + \def\@tempb{beforeopening}% + \ifx\@tempa\@tempb\endgroup\@subjafterfalse + \else + \endgroup\def\@setif@alsoerr{, `afteropening' and + `beforeopening'\MessageBreak}% + \@setxif[@subj]{subject}{#1}{titled}{untitled}% + \fi + \fi + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{locfield} +% \changes{v2.8q}{2001/10/09}{Neu} +% Mit Hilfe der Optione |locfield| kann der Platz neben dem Adressfeld +% gro"s oder klein gew"ahlt werden. +% \begin{macro}{\if@bigloc} +% \begin{macro}{\@bigloctrue} +% \begin{macro}{\@biglocfalse} +% Die Einstellung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@bigloc +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\KOMA@key{locfield}[wide]{\@setxif[@bigloc]{locfield}{#1}{wide}{narrow}} +\DeclareOption{wlocfield}{\@ObsoleteOption{locfield=wide}} +\DeclareOption{slocfield}{\@ObsoleteOption{locfield=narrow}} +% \end{macrocode} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsection{Briefspezifische Optionen f"ur Faltmarken} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% +% \begin{option}{foldmarks} +% \changes{v2.8q}{2001/09/10}{Neu} +% Die Faltmarken k"onnen mit |foldmarks| aktiviert und deaktiviert +% werden. +% \begin{macro}{\if@fold} +% \begin{macro}{\@foldtrue} +% \begin{macro}{\@foldfalse} +% Ob Faltmarken gesetzt werden sollen oder nicht, wird in einem +% Schalter gespeichert. +% \begin{macrocode} +\newif\if@fold\@foldtrue +\KOMA@key{foldmarks}[true]{\@setif[@fold]{foldmarks}{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsubsection{Briefspezifische Optionen f"ur die Gesch"aftszeile} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{option}{numericaldate} +% \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von +% \texttt{scrdate} und \texttt{orgdate})} +% Es kann zwischen dem Originaldatum, das beispielsweise von +% \texttt{german.sty} definiert wird, und dem \texttt{scrlttr2}-Datum +% gew"ahlt werden. Nat"urlich gibt es diese Optionen nur bei Briefen. +% \begin{macro}{\if@orgdate} +% \begin{macro}{\@orgdatetrue} +% \begin{macro}{\@orgdatefalse} +% Die Einstellung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@orgdate\@orgdatetrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Dummerweise besitzt der alte Schalter genau die gegenteilige +% Bedeutung der Option, deshalb muss der Schalter zweimal invertiert +% werden. +% \begin{macrocode} +\KOMA@key{numericaldate}[true]{% + \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi + \@setif[@orgdate]{numericaldate}{#1} + \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi +} +\DeclareOption{scrdate}{\@ObsoleteOption{numericaldate=true}} +\DeclareOption{orgdate}{\@ObsoleteOption{numericaldate=false}} +% \end{macrocode} +% \end{option} +% +% +% \begin{option}{refline} +% \changes{v2.8n}{2001/09/08}{Neue Option} +% Kopf und Fu"s der ersten Seite sind normalweise so breit, dass sie +% zur Adresse des Empf"angers passen. F"ur die Gesch"aftszeile gibt es +% zwei Alternativen, eine breite und eine, deren Breite der Textbreite +% entspricht. Voreingestellt ist die Textbreite. +% \begin{macro}{\if@refwide} +% \changes{v2.8n}{2001/09/08}{Neuer Schalter} +% \begin{macro}{\@refwidetrue} +% \begin{macro}{\@refwidefalse} +% Gespeichert wird die Information in einem Schalter. +% \begin{macrocode} +\newif\if@refwide +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\KOMA@key{refline}[wide]{\@setxif[@refwide]{refline}{#1}{wide}{narrow}} +% \end{macrocode} +% \end{option} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsubsection{Optionen f"ur den Satzspiegel} +% +% \changes{v2.6}{2000/01/04}{ab jetzt sind auch die Optionen f"ur die +% Schriftgr"o"sen variabel.} +% \begin{option}{BCOR} +% \changes{v2.2a}{1995/01/25}{nun als Option verf"ugbar.} +% \changes{v2.2c}{1995/05/25}{nicht mehr im Kompatibilit"atsmodus.} +% \begin{option}{DIV} +% \changes{v2.2a}{1995/01/25}{nun als Option verf"ugbar} +% \changes{v2.2c}{1995/05/25}{nicht mehr im Kompatibilit"atsmodus} +% Die Optionen |BCOR|, |DIV| und die Papiergr"o"sen m"ussen f"ur ihre +% Weiterleitung an das +% \emph{typearea}-package gesondert erkannt werden. Da die Optionen +% Parameter besitzen, k"onnen sie nur mit |\DeclareOption*| verarbeitet +% werden. Im Kompatibilit"atsmodus erfolgt eine gesonderte Behandlung. +% \begin{macrocode} +%\if@compatibility\else + \DeclareOption*{% +%<*scrlettr> +% \end{macrocode} +% Bei der Briefklasse tritt eine Besonderheit ein. Hier ist es +% m"oglich, spezielle \texttt{lco}-Dateien zu definieren, die "uber +% Optionen geladen werden k"onnen. Die unterschiedlichen Brieftypen +% sind ein Fall f"ur solche \emph{\textbf{l}etter \textbf{c}lass +% \textbf{o}ption} Dateien. Wurde eine solche Datei geladen, ist die +% Option nat"urlich auch nicht mehr unbenutzt. +% \changes{v2.8q}{2001/10/17}{Endung "`.lco"' beim +% \cs{LoadLetterOption}-Aufruf in +% \cs{DeclareOption*} entfernt} +% \changes{v2.8q}{2001/10/18}{\cs{expandafter} beim Aufruf von +% \cs{KOMAoptions} erg"anzt} +% \begin{macrocode} + \let\scr@save@KV@errx=\KV@errx% + \IfFileExists{\CurrentOption.lco}{% + \begingroup\edef\@tempa{\endgroup% + \noexpand\AtEndOfClass{% + \noexpand\LoadLetterOption{\CurrentOption}}% + }% + \@tempa\let\KV@errx\@gobble + }{% + \renewcommand*{\KV@errx}[1]{\OptionNotUsed} + } +% \end{macrocode} +% An dieser Stelle muss nun die Expansion von \verb+\CurrentOption+ +% erzwungen werden. Alternativ k"onnte dies auch in +% \verb+\KOMAoptions+ erledigt werden. +% \begin{macrocode} + \expandafter\KOMAoptions\expandafter{\CurrentOption} + \let\KV@errx=\scr@save@KV@errx% + \let\scr@save@KV@errx=\relax% +% +% \x@paper + } +%\fi +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \subsubsection{Optionenauswahl} +% \changes{v2.0e}{1994/09/04}{Standardoption \texttt{abstactoff} durch +% \texttt{abstractoff} ersetzt.} +% \changes{v2.2f}{1995/06/14}{\cs{ExecuteOptions} von Leerzeichen u."a. +% befreit.} +% \changes{v2.8q}{2001/10/06}{\texttt{scrlttr2} verwendet nicht mehr +% die Option \texttt{KOMAold}, sondern +% \texttt{DIN} als Standard} +% Es m"ussen die Standardoptionen festgelegt und alle Optionen ausgew"ahlt +% werden. Anschlie"send ist die Schriftgr"o"seneinstellung vorzunehmen +% und der Seitenspiegel mit Hilfe des |typearea|-packages zu berechnen. +% \begin{macrocode} +\ExecuteOptions{% +% final,11pt,onecolumn% +% ,headnosepline,footnosepline,bigheadings% +% ,oneside,abstractoff% +% ,nochapterprefix,oneside,openany,abstractoff% +% ,nochapterprefix,twoside,openright% +} +\ProcessOptions\relax +%\AfterProcessOptions@hook +%\let\AfterProcessOptions@hook=\undefined +% \end{macrocode} +% +% \subsubsection{Laden von Dateien} +% \changes{v2.8q}{2001/11/17}{das Paket \texttt{scrlfile} wird +% ben"otigt} +% +% Ab Version 2.8q ist das Paket \texttt{scrlfile} Bestandteil von +% \textsf{KOMA-Script}. Da es von den Klassen beispielsweise zur +% Verbesserung der Zusammenarbeit mit |caption2| ben"otigt wird, wird +% es hier geladen. Obwohl die Briefklasse es derzeit nicht ben"otigt, +% wird es aus Gr"unden der Einheitlichkeit auch f"ur diese geladen. +% \begin{macrocode} +\RequirePackage{scrlfile} +% \end{macrocode} +% +% \subsubsection{Allgemeine Schalter} +% \begin{macro}{\if@restonecol} +% \begin{macro}{\@restonecoltrue} +% \begin{macro}{\@restonecolfalse} +% Damit innerhalb einer Umgebung lokal auf ein- oder zweispaltigen +% Satz umgeschaltet werden kann, wird ein Schalter ben"otigt. Dieser +% wird dann daf"ur verwendet, sich zu merken, dass eine Umschaltung +% stattgefunden hat und am Ende der Umgebung wieder aufzuheben +% ist. Der Schalter wird nicht in Umgebungen verwendet, die +% geschachtelt werden. Verwendung findet er beispielsweise f"ur +% Titelseiten und das Inhaltsverzeichnis. +% \begin{macrocode} +\newif\if@restonecol +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\if@mainmatter} +% \begin{macro}{\@mainmattertrue} +% \begin{macro}{\@mainmatterfalse} +% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung +% verschoben.} +% "Uber diesen Schalter wird bei Buchklassen festgelegt, ob wir uns im +% Hauptteil des Dokuments befinden oder nicht. Die eigentliche +% Umschaltung geschieht mit Hilfe der Befehle \cs{frontmatter}, +% \cs{mainmatter}, \cs{backmatter}. Ohne Umschaltung befinden wir uns +% bereits im Hauptteil. +% \begin{macrocode} +%\newif\if@mainmatter\@mainmattertrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{Schriftgr"o"seninitialisierung} +% \changes{v2.6}{2000/01/04}{Das Einlesen der Schriftgr"o"sen-Options-Datei +% funktioniert nun mit diversen Gr"o"sen.} +% \begin{macrocode} +\@tempcnta=10 +\advance\@tempcnta by\@ptsize\relax +\xdef\@tempa{% +%size% +%bk% +\the\@tempcnta.clo} +\InputIfFileExists{\@tempa}{}{% +%<*scrbook> + \xdef\@tempb{size\the\@tempcnta.clo} + \InputIfFileExists{\@tempb}{% + \ClassWarning{scrbook}{File `\@tempa' not found!\MessageBreak + Used `\@tempb' instead}}{ +% + \ClassError +% {scrbook} +% {scrreprt} +% {scrartcl} +% {scrlttr2} + {File `\@tempa' not found!\MessageBreak + This error is fatal!} + {To every fontsize you want to select by class option,\MessageBreak + you need a corresponding +% bk-class-option-file or\MessageBreak at least a + size-class-option-file declaring all\MessageBreak + the macros based on fontsize.\MessageBreak + Ask a wizzard for more information or use another + fontsize.\MessageBreak + You cannot continue!} + \batchmode \csname @@end\endcsname \end +% } +} +% \end{macrocode} +% +% \begin{option}{fontsize} +% \changes{v2.8q}{2001/10/17}{nach dem Laden der Schriftgr"o"sendatei +% nicht mehr zul"assig} +% Ab hier darf nat"urlich die Option \texttt{fontsize} nicht mehr +% verwendet werden! +% \begin{macrocode} +%<*scrlettr> +\KOMA@key{fontsize}{% + \begingroup + \setlength{\@tempdima}{#1} + \addtolength{\@tempdima}{-10\p@} + \ifnum \@tempdima=\@ptsize + \else + \ClassError{% + scrlttr2% + }{option `fontsize' not allowed\MessageBreak + after loading sizeX.clo file}{% + Maybe you've used option `fontsize' at + \string\KOMAoptions.\MessageBreak + You should set this option at \string\documentclass.} + \fi + \endgroup + } +% +% \end{macrocode} +% \end{option} +% +% \subsubsection{Satzspiegel einstellen} +% \changes{v2.4}{1996/02/25}{Es wird jetzt explizit nach einem aktuellen +% typearea verlangt.} +% \changes{v2.8n}{2001/09/06}{Es wird wirklich nach einem aktuellen +% typearea verlangt} +% Zun"achst werden die ganzen Befehle, die sowohl in den Klassen als +% auch in \texttt{typearea} definiert sind, wieder gel"oescht. Dies +% ist allerdings bei der Briefklasse nicht notwendig, das diese anders +% arbeitet. +% \begin{macrocode} +%<*!scrlettr> +\let\test@number =\undefined +\let\gobble@till@next =\undefined +\let\@BCOR =\undefined +\let\@@BCOR =\undefined +\let\@DIV =\undefined +\let\@@DIV =\undefined +\let\@headlines =\undefined +\let\@@headlines =\undefined +\let\x@paper =\undefined +\let\x@@paper =\undefined +% +% \end{macrocode} +% \begin{macro}{\scr@file@date@version} +% \changes{v2.8n}{2001/09/06}{Neu} +% Es muss jeweils die gleiche Version von \texttt{typearea} geladen +% werden, die auch von der jeweiligen Klasse geladen wurde. +% \begin{macrocode} +\newcommand*{\scr@file@date@version}{} +\def\scr@file@date@version#1/#2/#3 #4 #5\@nil{#1/#2/#3 #4} +\RequirePackage{typearea}[\expandafter\expandafter\expandafter% + \scr@file@date@version\csname ver@% +% scrbook% +% scrreprt% +% scrartcl% +% scrlttr2% + .cls\endcsname\@nil] +% \end{macrocode} +% \end{macro} +% +% Bei der Briefklasse gibt es jetzt noch ein paar Besonderheit. +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{Length}{oddsidemargin} +% \begin{Length}{evensidemargin} +% Der rechte und der linke Rand ohne Bindekorrektur auf bei +% beidseitigem Layout gleich gro"s. Die Bindekorrektur wird +% selbstverst"andlich wieder dem ungeraden Rand zugeschlagen. +% \begin{macrocode} +\if@twoside + \addtolength{\oddsidemargin}{\evensidemargin} + \addtolength{\oddsidemargin}{-\ta@bcor} + \setlength{\evensidemargin}{.5\oddsidemargin} + \setlength{\oddsidemargin}{\evensidemargin} + \addtolength{\oddsidemargin}{\ta@bcor} +\fi +% \end{macrocode} +% \end{Length} +% \end{Length} +% +% \begin{option}{BCOR} +% \changes{v2.8q}{2001/10/18}{funktioniert auch noch nach +% dem Laden von \texttt{typearea.sty}} +% \begin{option}{DIV} +% \changes{v2.8q}{2001/10/18}{funktioniert auch noch nach +% dem Laden von \texttt{typearea.sty}} +% \begin{option}{headlines} +% \changes{v2.8q}{2001/10/18}{funktioniert auch noch nach +% dem Laden von \texttt{typearea.sty}} +% Nach dem Laden von \texttt{typearea.sty} muss die Funktionsweise +% dieser Optionen ge"andert werden. Bei \texttt{BCOR} und \texttt{DIV} +% ist das einfach. Bei \texttt{headlines} sieht es etwas anders aus. +% \begin{macrocode} +\KOMA@key{BCOR}{\typearea[{#1}]{last}} +\KOMA@key{DIV}{\typearea[current]{#1}} +\KOMA@key{headlines}{% + \def\ta@hh{#1\baselineskip}% + \typearea[current]{last}} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% +% \begin{option}{paper} +% \changes{v2.8q}{2001/10/17}{funktioniert auch noch nach +% dem Laden von \texttt{typearea.sty}} +% Au"serdem mu"s die \texttt{paper}-Option nun anders funktionieren. +% \begin{macrocode} +\KOMA@key{paper}{% + \begingroup + \edef\@tempc{\noexpand\@tempswatrue% + \noexpand\ifdim\paperwidth=\the\paperwidth\noexpand\else% + \noexpand\@tempswafalse\noexpand\fi% + \noexpand\ifdim\paperheight=\the\paperheight\noexpand\else% + \noexpand\@tempswafalse\noexpand\fi% + } + \edef\@tempa{#1}% + \def\@tempb{letter}\ifx\@tempa\@tempb% + \setlength{\paperheight}{11in}\setlength{\paperwidth}{8.5in}% + \else\def\@tempb{legal}\ifx\@tempa\@tempb% + \setlength{\paperheight}{14in}\setlength{\paperwidth}{8.5in}% + \else\def\@tempb{executive}\ifx\@tempa\@tempb% + \setlength{\paperheight}{10.5in}\setlength{\paperwidth}{7.25in}% + \else% + \def\ta@opt@err{% + \ClassError{% + scrlttr2% + }{papersize `#1' undefined}{% + You've told me to set KOMA option `paper' to value + `#1',\MessageBreak + but the value `#1' is not allowed to this + option.\MessageBreak + See the KOMA-Script manual for informations about known + papersizes.}% + } + \let\@headlines\ta@opt@err% + \x@@paper #1paperpaper\x@@paper% + \fi\fi\fi + \@tempc% + \if@tempswa% + \ClassInfo{% + scrlttr2% + }{% + change to already set paper size ignored% + } + \let\@tempc\endgroup% + \else% + \ClassWarning{% + scrlttr2% + }{% + you're changing paper size after loading package\MessageBreak + `typearea'. This may be dangerous.\MessageBreak + You should set paper size only at \string\documentclass\space + not\MessageBreak + with \string\KOMAoptions% + } + \edef\@tempc{\endgroup% + \setlength{\paperwidth}{\the\paperwidth}% + \setlength{\paperheight}{\the\paperheight}% + \noexpand\typearea[current]{last}} + \fi + \@tempc% + } +% \end{macrocode} +% \end{option} +% +% Damit sind wir ersteinmal am Ende der Besonderheiten der +% Briefklasse. +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Einige Gr"o"sen} +% +% \changes{v2.8i}{2001/07/22}{\cs{baselinestretch} wird nicht umdefiniert} +% \begin{Length}{lineskip} +% \begin{Length}{normallineskip} +% Minimaler Zeilenabstand: +% \begin{macrocode} +\setlength{\lineskip}{\p@} +\setlength{\normallineskip}{\p@} +% \end{macrocode} +% \end{Length} +% \end{Length} +% +% \begin{Length}{columnsep} +% \begin{Length}{columnseprule} +% Spaltenabstand und Spaltentrennlinie (da die Briefklasse +% zweispaltigen Satz nicht unterst"utzt, entf"allt dies f"ur selbige): +% \begin{macrocode} +%<*!scrlettr> +\setlength{\columnsep}{10\p@} +\setlength{\columnseprule}{\z@} +% +% \end{macrocode} +% \end{Length} +% \end{Length} +% +% Absatzabstand und Absatzeinzug: +% \begin{macro}{\parskip} +% \changes{v2.8i}{2001/07/22}{abh"angig von den Optionen} +% \begin{macro}{\parindent} +% \changes{v2.8i}{2001/07/22}{abh"angig von den Optionen} +% \begin{macro}{\parfillskip} +% \begin{macro}{\@listi} +% \begin{macro}{\@listI} +% \begin{macro}{\@listii} +% \begin{macro}{\@listiii} +% \begin{macro}{\@list@extra} +% \changes{v2.8q}{2001/11/06}{Neu} +% \begin{macro}{\@parskip@indent} +% \changes{v2.8q}{2001/11/13}{Neu} +% \changes{v2.9k}{2003/01/03}{\cs{scr@parfillskip} bei +% \texttt{\cs{begin}\{document\}} erneuert} +% \begin{macro}{\footnotesize} +% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \begin{macro}{\small} +% \changes{v2.9h}{2002/09/03}{etwas robuster} +% \begin{macro}{\add@extra@listi} +% \changes{v2.9h}{2002/09/03}{neu (intern)} +% Ab Version 2.8i wird hier optionsabh"angig gearbeitet. Dabei m"ussen +% auch die Befehle bei der Umschaltung der Schriftgr"o"se f"ur +% \cs{small} und \cs{footnotesize} ge"andert werden. +% \begin{macrocode} +\g@addto@macro{\@listi}{\@list@extra} +\let\@listI=\@listi +\g@addto@macro{\@listii}{\@list@extra} +\g@addto@macro{\@listiii}{\@list@extra} +\newcommand*{\add@extra@listi}[1]{% + \expandafter\let\csname #1@listi\endcsname=\@listi + \def\@listi{\csname #1@listi\endcsname\@list@extra}% +} +\g@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}} +\g@addto@macro{\small}{\protect\add@extra@listi{sml}} +\newcommand*{\@list@extra}{} +%\renewcommand*{% +%\newcommand*{% + \@parskip@indent}{% + \if@parskip + \setlength{\parindent}{\z@}% + \scr@parskip + \scr@parfillskip + \renewcommand*{\@list@extra}{% + \topsep\z@ \parsep\parskip \itemsep\z@}% + \else + \setlength{\parindent}{1em}% + \setlength{\parskip}{\z@ \@plus \p@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \renewcommand*{\@list@extra}{}% + \fi +}% +\@parskip@indent +\AtBeginDocument{% + \if@parskip\ifdim\parfillskip=\z@ \scr@parfillskip\fi\fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Die Penalties (genau wie bei den Standardklassen): +% \end{macro} +% \begin{macrocode} +\@lowpenalty = 51 +\@medpenalty =151 +\@highpenalty =301 +% \end{macrocode} +% +% \begin{Counter}{topnumber} +% \begin{macro}{\topfraction} +% \begin{Counter}{bottomnumber} +% \begin{macro}{\bottomfraction} +% \begin{Counter}{totalnumber} +% \begin{macro}{\textfraction} +% \begin{macro}{\floatpagefraction} +% \begin{Counter}{dbltopnumber} +% \begin{macro}{\dbltopfraction} +% \begin{macro}{\dblfloatpagefraction} +% Allgemeine Einstellungen f"ur Flie"sumgebungen (Seitenanteile). Da +% es bei Briefen dergleichen nicht gibt, werden die Werte dort auch +% nicht gesetzt. +% \changes{v2.8n}{2001/09/06}{da Briefe keine Flie"sumgebungen haben, +% werden bei \texttt{scrlttr2} auch keine +% Parameter daf"ur mehr gesetzt} +% \begin{macrocode} +%<*!scrlettr> +\setcounter{topnumber}{2} +\renewcommand*\topfraction{.7} +\setcounter{bottomnumber}{1} +\renewcommand*\bottomfraction{.3} +\setcounter{totalnumber}{3} +\renewcommand*\textfraction{.2} +\renewcommand*\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\renewcommand*\dbltopfraction{.7} +\renewcommand*\dblfloatpagefraction{.5} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{Counter} +% +% +% \subsection{Befehle f"ur den Kompatibilit"atsmodus} +% \begin{macro}{\headincludeon} +% \begin{macro}{\headincludeoff} +% \begin{macro}{\headseplineon} +% \begin{macro}{\headseplineoff} +% \begin{macro}{\footincludeon} +% \begin{macro}{\footincludeoff} +% \begin{macro}{\footseplineon} +% \begin{macro}{\footseplineoff} +% Da die classes des \textsf{KOMA-Script} Pakets nun auch im +% Kompatibilit"atsmodus verwendet werden k"onnen, ben"otigen wir einige +% Befehle, die es bei \textsf{Script 2.0} noch gab. Betroffen sind an +% dieser Stelle nur die Befehle f"ur die Kopf- und +% Fu"szeilentrennlinie und die Einbeziehung von Kopf- und Fu"szeilen +% in den Textbereich bei der Berechnung des Seitenspiegels. Da es +% diese Befehle f"ur die Briefklasse nie gab, werden sie f"ur diese +% auch nicht definiert. +% \changes{v2.0e}{1994/10/12}{Kopf- und Fu"szeilenhandling f"ur den +% Kompatibilit"atsmodus erg"anzt} +% \begin{macrocode} +%<*!scrlettr> +\if@compatibility + \newcommand*\headincludeon{\@hincltrue} + \newcommand*\headincludeoff{\@hinclfalse} + \newcommand*\headseplineon{\@hsltrue \@hincltrue} + \newcommand*\headseplineoff{\@hslfalse \@hinclfalse} + \newcommand*\footincludeon{\@fincltrue} + \newcommand*\footincludeoff{\@finclfalse} + \newcommand*\footseplineon{\@fsltrue \@fincltrue} + \newcommand*\footseplineoff{\@fslfalse \@finclfalse} +\fi +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Kopf- und Fu"szeilendefinition} +% +% \changes{v2.0e}{1994/08/10}{Bei "`scrbook"' gibt es kein einseitiges +% Layout.} +% \changes{v2.3a}{1995/07/08}{Da bei "`book"' seit Version 1.2v die +% Option oneside wieder ein einseitiges +% Layout erzeugt, dieses wieder eingebaut.} +% \begin{macro}{\ps@plain} +% \begin{macro}{\ps@myheadings} +% \begin{macro}{\ps@headings} +% Es wird das Aussehen der Kopf- und Fu"szeilen f"ur die +% Standardseitenstile |empty|, |plain|, |headings| und |myheadings| +% festgelegt. Diese sind bei|scrartcl| abh"angig davon, ob es sich um +% einseitiges oder beidseitiges Layout handelt. +% +% Im Gegensatz zu den Seitenstilen der Standard-classes steht die +% Seitennummer beim \textsf{KOMA-Script} Paket immer in der Fu"szeile. +% Au"serdem sind Trennlinien zwischen Kopf- und Textbereich sowie zwischen +% Text- und Fu"sbereich m"oglich. +% +% Die Kopfzeile wird auch nicht mehr in Gro"sbuchstaben gewandelt. +% +% \changes{v2.2a}{1995/02/07}{Bei "`scrbook"' und "`scrreprt"' Punkt +% hinter der section-Nummer entfernt} +% \changes{v2.2c}{1995/05/25}{Punkt hinter der Kapitelnummer in der +% Kopfzeile entfernt} +% \changes{v2.2c}{1995/05/25}{Nummern in der Kopfzeile auf CJK umgestellt} +% \changes{v2.4f}{1996/10/08}{\cs{strut} in der Kopfzeile eingef"ugt} +% Da sich die Seitenstil f"ur die Briefklasse erheblich von denen +% normalen Seitenstilen unterscheiden, werden diese getrennt +% definiert. +% \begin{macro}{\set@tempdima@hw} +% \changes{v2.8q}{2002/03/28}{Neu (intern)} +% Um nicht st"andig das gleiche schreiben zu m"ussen wird hier ein +% internes Makro verwendet. +% \begin{macrocode} +%<*!scrlettr> +\newcommand*{\set@tempdima@hw}{% + \setlength{\@tempdima}{\textwidth}% + \if@mincl + \addtolength{\@tempdima}{\marginparsep}% + \addtolength{\@tempdima}{\marginparwidth}% + \fi + } +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\if@twoside + \renewcommand*{\ps@plain}{\let\@mkboth\@gobbletwo + \renewcommand*{\@evenhead}{}% + \renewcommand*{\@oddhead}{}% + \renewcommand*{\@evenfoot}{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\thepage\hfil}}}}}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\hfil\thepage}}}}\hss}}% + \newcommand*{\ps@headings}{\let\@mkboth\markboth + \renewcommand*{\@evenhead}{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}% + \if@hsl \vskip 1.5\p@ \hrule \fi}}} + \renewcommand*{\@oddhead}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark}}% + \if@hsl \vskip 1.5\p@ \hrule \fi}}\hss} + \renewcommand*{\@evenfoot}{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\thepage\hfil}}}}}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\hfil\thepage}}}}\hss}% +%<*scrartcl> + \renewcommand*{\sectionmark}[1]{% + \markboth {\ifnum \c@secnumdepth >\z@% + \sectionmarkformat\fi ##1}{}} + \renewcommand*{\subsectionmark}[1]{% + \markright {\ifnum \c@secnumdepth >\@ne% + \subsectionmarkformat\fi ##1}}} +% +%<*scrreprt|scrbook> + \renewcommand*{\chaptermark}[1]{% + \markboth {\ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \chaptermarkformat\fi +% \fi + ##1}{}}% + \renewcommand*{\sectionmark}[1]{% + \markright {\ifnum \c@secnumdepth >\z@ + \sectionmarkformat\fi + ##1}}} +% + \newcommand*{\ps@myheadings}{\let\@mkboth\@gobbletwo + \renewcommand*{\@evenhead}{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}% + \if@hsl \vskip 1.5\p@ \hrule \fi}}} + \renewcommand*{\@oddhead}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark}}% + \if@hsl \vskip 1.5\p@ \hrule \fi}}\hss} + \renewcommand*{\@evenfoot}{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\thepage\hfil}}}}}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\hfil\thepage}}}}\hss}% +% \renewcommand*{\chaptermark}[1]{} +% \renewcommand*{\subsectionmark}[1]{} + \renewcommand*{\sectionmark}[1]{}} +\else + \renewcommand*{\ps@plain}{\let\@mkboth\@gobbletwo + \renewcommand*{\@evenhead}{}% + \renewcommand*{\@oddhead}{}% + \renewcommand*{\@evenfoot}{}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\hfil\thepage\hfil}}}}\hss}} + \newcommand*{\ps@headings}{\let\@mkboth\markboth + \renewcommand*{\@evenhead}{}% + \renewcommand*{\@oddhead}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark\hfil}} + \if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}% + \renewcommand*{\@evenfoot}{}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\hfil\thepage\hfil}}}\hss}}% +%<*scrartcl> +% \end{macrocode} +% \changes{v2.1b}{1994/12/31}{Im einseitigen Seitenstil +% \cs{markboth} durch +% \cs{markright} ersetzt.} +% \changes{v2.2a}{1995/02/07}{Im einseitigen Seitenstil +% bei "`scrartcl"' und \texttt{oneside} +% \cs{subsectionmark} eingef"ugt.} +% \changes{v2.2a}{1995/02/07}{Im einseitigen Seitenstil +% bei "`scrreprt"' und \texttt{oneside} +% \cs{sectionmark} eingef"ugt.} +% \begin{macrocode} + \renewcommand*{\subsectionmark}[1]{} + \renewcommand*{\sectionmark}[1]{\markright {\ifnum \c@secnumdepth >\z@ + \sectionmarkformat\fi ##1}}} +% +% \end{macrocode} +% \changes{v2.0e}{1994/08/17}{Im einseitigen Seitenstil +% \cs{markboth} durch +% \cs{markright} ersetzt.} +% \begin{macrocode} +%<*scrreprt|scrbook> + \renewcommand*{\sectionmark}[1]{} + \renewcommand*{\chaptermark}[1]{\markright {\ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \chaptermarkformat\fi +% \fi + ##1}}} +% + \newcommand*{\ps@myheadings}{\let\@mkboth\@gobbletwo + \renewcommand*{\@evenhead}{}% + \renewcommand*{\@oddhead}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark\hfil}} + \if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}% + \renewcommand*{\@evenfoot}{}% + \renewcommand*{\@oddfoot}{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \@tempdima{{\pnumfont\hfil\thepage\hfil}}}}\hss}% +% \renewcommand*{\subsectionmark}[1]{}% +% \renewcommand*{\chaptermark}[1]{}% + \renewcommand*{\sectionmark}[1]{}} +\fi +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@firsthead} +% \begin{macro}{\@gen@firsthead} +% \changes{v2.8q}{2002/01/28}{Neu} +% \begin{macro}{\@nexthead} +% \begin{macro}{\@firstfoot} +% \begin{macro}{\@nextfoot} +% \begin{macro}{\pagemark} +% Bei \texttt{scrlttr2} gibt es die "ublichen Seitenstile, allerdings +% ist deren Verhalten etwas anders als gewohnt. Dies ist in den +% Besonderheiten f"ur Briefen begr"undet. +% \begin{macrocode} +%<*scrlettr> +\newcommand*{\@firsthead}{\noindent% + \parbox[b]{\useplength{firstheadwidth}} + {\centering\usekomafont{fromaddress}{% + \ifkomavarempty{fromname}{}{% + {\usekomafont{fromname}% + {\ignorespaces\usekomavar{fromname}}}\\[-8pt] + \rule{\useplength{firstheadwidth}}{.4pt}\\ + }% + \ifkomavarempty{fromaddress}{}{% + \ignorespaces\usekomavar{fromaddress}% + }% + }% + }% + } +\newcommand*{\@gen@firsthead}{% +% Damit wird ggf. die Kopfzeile der ersten Seite umdefiniert. +% \begin{macrocode} + \ifcase\@alignfrom +% \end{macrocode} +% Wir befinden uns nun in dem Bereich f"ur \verb|\@alignfrom|=0. +% Entsprechend unserer Festlegung wird daher als Erstes der +% linksb"undige Absender definiert. Wir verwenden daf"ur eine +% \emph{parbox}, in der der Text linksb"undig angeordnet wird. Diese +% Box soll "uber die gesamte Breite gehen d"urfen: +% \begin{macrocode} + \renewcommand*{\@firsthead}{\noindent + \parbox[b]{\textwidth}{\raggedright +% \end{macrocode} +% Zuerst wird der Name gesetzt. Dabei soll eine eigene Schriftart f"ur +% den Namen verwendet werden. +% \begin{macrocode} + {\usekomafont{fromname}\strut\ignorespaces + \usekomavar{fromname}% +% \end{macrocode} +% Hat \verb|\@rulefrom| den nummerischen Wert 1, so soll direkt auf den +% Absender eine Linie folgen. Die L"ange dieser Linie kann vom Anwender +% bestimmt oder automatisch gew"ahlt werden. Es wird dabei die +% Pseudo-L"ange \texttt{fromrulewidth} verwendet. Ist diese negativ, +% so wird sie automatisch bestimmt. Bei der automatischen +% L"angenbestimmung wird daf"ur gesorgt, dass die Linie nicht bis in das +% Logo ragt, das eventuell rechtsb"undig neben dem Absender steht: +% \begin{macrocode} + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \if@logo + \settowidth{\@tempdimb}{\usekomavar{fromlogo}}% + \addtolength{\@tempdima}{-\@tempdimb}% + \fi + \fi + \expandafter\rule\expandafter{\the\@tempdima}{.4pt}% + \fi + }% + \\}% +% \end{macrocode} +% Als N"achstes wird die Absenderadresse einschlie"slich aller +% optionalen Felder gesetzt. Dabei werden optionale Felder nur +% gesetzt, wenn der entsprechende Schalter \emph{true} ist. Die +% Adresse wird ebenfalls innerhalb einer Gruppe in einer eigenen +% Schriftart gesetzt. +% \begin{macrocode} + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi% + \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi% + \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi% +% \end{macrocode} +% Wie weiter oben erw"ahnt, kann auch an dieser Stelle eine Linie +% gesetzt werden. Wir gehen davon aus, dass die Linie automatisch +% nicht in das Logo ragt, da es in diesem Fall "uber der Linie zu +% stehen hat. Die entsprechende Berechnung kann also entfallen. +% \begin{macrocode} + \ifnum\@rulefrom=2\\[-.5\baselineskip]% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{.4pt}% + \fi + \\ + }% + }% +% \end{macrocode} +% Die parbox ist damit ebenfalls beendet. Es mu"ss nun ggf. noch das +% Logo gesetz werden. Es wird in diesem Fall von der aktuellen +% Position am rechten Rand nach links ausgegeben. +% \begin{macrocode} + \if@logo + \llap{\usekomavar{fromlogo}}% + \fi + }% +% \end{macrocode} +% Damit ist die Definition des linksb"undigen Absenders abgeschlossen. +% Es geht weiter mit dem zentrierten Absender. Dieser hat als +% Besonderheit, dass das Logo nicht in den Briefkopf, sondern in den +% Bereich rechts neben dem Empf"anger gesetzt wird. Dort ist bereits +% das location-Feld, daher wird dieser Fall auch dort behandelt. +% \begin{macrocode} + \or + \renewcommand*{\@firsthead}{\noindent + \parbox[b]{\textwidth}{\centering + {\usekomafont{fromname}\strut\ignorespaces + \usekomavar{fromname}% + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{.4pt}% + \fi + }% + \\ + }% + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi% + \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi% + \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi% + \ifnum\@rulefrom=2\\[-.5\baselineskip]% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{.4pt}% + \fi + \\ + }% + }% + }% +% \end{macrocode} +% Damit ist die Definition des zentrierten Absenders abgeschlossen. Es +% geht weiter mit dem rechtsb"undigen Absender. Das ganze wird einfach +% beim linksb"undigen Absender abgeschaut. +% \begin{macrocode} + \or + \renewcommand*{\@firsthead}{\noindent + \if@logo + \rlap{\usekomavar{fromlogo}}% + \fi + \parbox[b]{\textwidth}{\raggedleft + {\usekomafont{fromname}\strut\ignorespaces + \usekomavar{fromname}% + {% + \ifnum\@rulefrom=1\\[-.5\baselineskip]% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \if@logo + \settowidth{\@tempdimb}{\usekomavar{fromlogo}}% + \addtolength{\@tempdima}{-\@tempdimb}% + \fi + \fi + \expandafter\rule\expandafter{\the\@tempdima}{.4pt}% + \fi + }% + \\ + }% + {\usekomafont{fromaddress}\strut\ignorespaces + \usekomavar{fromaddress}% + \if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi% + \if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi% + \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi% + \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi% + \ifnum\@rulefrom=2\\[-.5\baselineskip]% + \setlength{\@tempdima}{\useplength{fromrulewidth}}% + \ifdim\@tempdima=\z@ + \setlength{\@tempdima}{\textwidth}% + \fi + \expandafter\rule\expandafter{\the\@tempdima}{.4pt}% + \fi + \\ + }% + }% + }% +% \end{macrocode} +% Damit ist die Umdefinierung beendet. In allen anderen F"allen wird +% der Kopf nicht ver"andert. +% \begin{macrocode} + \fi + } +% \end{macrocode} +% \begin{macrocode} +\newcommand*{\@firstfoot}{} +\newcommand*{\@nexthead}{% + \rlap{\parbox[c]{\textwidth}{\raggedright\strut + \ifnum\@pageat=0\pagemark\else\leftmark\fi\strut}}% + \parbox[c]{\textwidth}{% + \centering\strut + \ifcase\@pageat + \rightmark + \or + \pagemark + \or + \rightmark + \fi\strut}% + \llap{\parbox[c]{\textwidth}{\raggedleft\strut + \ifcase\@pageat + \leftmark + \or + \rightmark + \or + \pagemark + \else + \rightmark + \fi\strut}}% + }% +\newcommand*{\@nextfoot}{% + \ifnum\@pageat>2 + \parbox[c]{\textwidth}{% + \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi + \strut\pagemark% + }% + \fi +} +\newcommand*{\pagemark}{{\usekomafont{pagenumber}\pagename\ \thepage}} +\renewcommand*{\ps@plain}{% + \renewcommand*{\@evenhead}{% + \vbox{\vbox{\hsize=\textwidth\hbox to\textwidth{% + \parbox[b]{\textwidth}{\strut + \ifnum\@pageat>-1 + \ifnum\@pageat<3 + \ifcase\@pageat\raggedright\or\centering\or\raggedleft\fi + \pagemark + \else + \hfill + \fi + \else + \hfill + \fi}% + }% + \if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi + }% + }% + }% + \let\@oddhead\@evenhead% + \renewcommand*{\@evenfoot}{% + \parbox[t]{\textwidth}{% + \if@fsl + {% + \raggedright% + \vskip-\baselineskip\vskip.4pt + \hrulefill\\ + }% + \fi + \ifnum\@pageat>2 + \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi + \strut\pagemark + \else + \hfill + \fi + }% + }% + \let\@oddfoot\@evenfoot + } +\newcommand*{\ps@headings}{% + \let\@mkboth=\markboth + \renewcommand*{\@evenhead}{% + \vbox{% + \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\@nexthead}}% + \if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi% + }% + }% + \let\@oddhead\@evenhead% + \renewcommand*{\@evenfoot}{% + \parbox[t]{\textwidth}{% + \if@fsl + {% + \raggedright% + \vskip-\baselineskip\vskip.4pt + \hrulefill\\ + }% + \fi + \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\@nextfoot}}% + }% + }% + \let\@oddfoot\@evenfoot + } +\newcommand*{\ps@myheadings}{% + \ps@headings\let\@mkboth=\@gobbletwo + } +\let\@mkboth=\@gobbletwo +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\titlepagestyle} +% \changes{v2.8d}{2001/07/05}{Neu} +% \begin{macro}{\partpagestyle} +% \changes{v2.8d}{2001/07/05}{Neu} +% \begin{macro}{\chapterpagestyle} +% \changes{v2.8d}{2001/07/05}{Neu} +% \begin{macro}{\indexpagestyle} +% \changes{v2.8d}{2001/07/05}{Neu} +% Auf verschiedenen Seiten wird automatisch mit |\thispagestyle| auf +% einen anderen Seitenstil umgeschaltet. Welcher das ist, ist in +% diesem Makros abgelegt und kann bei Bedarf ge"andert +% werden. Voreingestellt ist der in fr"uheren Versionen fest +% verdrahtete Seitenstil \texttt{plain}. Da es bei Briefen die +% entsprechenden Teile nicht gibt, wird f"ur \texttt{scrlttr2} +% entsprechendes auch nicht definiert. +% \begin{macrocode} +%<*!scrlettr> +\newcommand*{\titlepagestyle}{plain} +\newcommand*{\partpagestyle}{plain} +%\newcommand*{\chapterpagestyle}{plain} +\newcommand*{\indexpagestyle}{plain} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Titel} +% +% \begin{macro}{\extratitle} +% \begin{macro}{\@extratitle} +% \begin{macro}{\titlehead} +% \begin{macro}{\@titlehead} +% \begin{macro}{\subject} +% \begin{macro}{\@subject} +% \begin{macro}{\publishers} +% \begin{macro}{\@publishers} +% \begin{macro}{\uppertitleback} +% \begin{macro}{\@uppertitleback} +% \begin{macro}{\lowertitleback} +% \begin{macro}{\@lowertitleback} +% \begin{macro}{\dedication} +% \begin{macro}{\@dedication} +% Da der Titel im \textsf{KOMA-Script} Paket wesentlich mehr +% Angaben erlaubt als bei den Standard-classes, gibt es nat"urlich +% auch einige Befehle, mit denen diese gesetzt werden k"onnen. +% +% Alle zus"atzlichen Angaben sind optional und k"onnen auch weggelassen +% werden. In diesem Fall werden Leerfelder verwendet. Bis auf |\subject| +% sind alle Zusatzbefehle |\long| deklariert. +% +% Bei Briefen entf"allt die Titelei +% \begin{macrocode} +%<*!scrlettr> +\newcommand*{\@extratitle}{} +\newcommand{\extratitle}[1]{\gdef\@extratitle{#1}} +\newcommand*{\@titlehead}{} +\newcommand{\titlehead}[1]{\gdef\@titlehead{#1}} +\newcommand*{\@subject}{} +\newcommand*{\subject}[1]{\gdef\@subject{#1}} +\newcommand*{\@publishers}{} +\newcommand{\publishers}[1]{\gdef\@publishers{#1}} +\newcommand*{\@uppertitleback}{} +\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{#1}} +\newcommand*{\@lowertitleback}{} +\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{#1}} +\newcommand*{\@dedication}{} +\newcommand{\dedication}[1]{\gdef\@dedication{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\next@tpage} +% \changes{v2.3b}{1995/07/24}{\cs{null} entfernt.} +% \changes{v2.3g}{1996/01/14}{\cs{newpage} durch \cs{clearpage} ersetzt.} +% \begin{macrocode} +\newcommand*{\next@tpage}{\clearpage\thispagestyle{empty}} +% \end{macrocode} +% Innerhalb eines Titels auf die n"achste Seite umschalten. +% \end{macro} +% \begin{macro}{\maketitle} +% Anschlie"send wird der Titel generiert. +% Bei |scrartcl| mu"s unterschieden werden, ob der Titel auf einer eigenen +% Titelseite oder als Seitenkopf erstellt werden soll. Der +% \textsf{KOMA-Script}-Titel ist u.U. sehr gro"s. In diesem Fall +% sollte eigentlich immer eine Titelseite verwendet werden. +% \changes{v2.1a}{1994/10/29}{Das Hilfskonstrukt \cs{@maketitle} +% wurde aus der Unterscheidung +% herausgenommen. Dies ist f"ur +% den Fall, da"s \cs{maketitle} +% von einem package "uberladen wird.} +% \changes{v2.3a}{1995/07/08}{\texttt{plus} durch \cs{@plus} ersetzt.} +% \changes{v2.3a}{1995/07/08}{\texttt{fill} durch \cs{fill} ersetzt.} +% \changes{v2.3d}{1995/08/19}{\cs{fill} durch \texttt{fill} ersetzt.} +% \changes{v2.3a}{1995/07/08}{\cs{vfil} durch \cs{vfill} ersetzt.} +% \changes{v2.3b}{1995/07/24}{Umbruch bei \cs{@extratitle} in der +% beidseitigen Titelseite korrigiert.} +% \changes{v2.3g}{1996/01/14}{\cs{footnote} funktioniert nun auch im +% Titel} +% \changes{v2.4}{1996/02/25}{\cs{footnote} funktioniert nun wirklich im +% Titel.} +% \changes{v2.4h}{1996/11/09}{Egal ob der Titel auf eine Extraseite +% kommt oder nicht, \cs{@title} wird mit +% \cs{sectfont} gesetzt, wobei die Gr"o"se +% neuerdings danach eingestellt wird.} +% \changes{v2.4l}{1997/02/06}{Symbolische Fu"snoten und +% Fu"snotensymbolbreiten von 0pt zur +% besseren Zentrierung des Autors sind +% auch bei Titelseiten angebracht.} +% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von \cs{sectfont}} +% \begin{macrocode} +\if@titlepage + \newcommand*\maketitle[1][1]{\begin{titlepage}% + \setcounter{page}{#1} + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark} + \ifx\@extratitle\@empty \else + \noindent\@extratitle\next@tpage\cleardoublepage + \thispagestyle{empty} + \fi + \ifx\@titlehead\@empty \else + \noindent\begin{minipage}[t]{\textwidth} + \@titlehead + \end{minipage}\par + \fi + \null\vfill + \begin{center} + \ifx\@subject\@empty \else + {\Large \@subject \par} + \vskip 3em + \fi + {\titlefont\huge \@title\par} + \vskip 3em + {\Large \lineskip 0.75em + \begin{tabular}[t]{c} + \@author + \end{tabular}\par} + \vskip 1.5em + {\Large \@date \par} + \vskip \z@ \@plus3fill + {\Large \@publishers \par} + \vskip 3em + \end{center}\par + \@thanks + \vfill\null + \if@twoside\next@tpage + \noindent\begin{minipage}[t]{\textwidth} + \@uppertitleback + \end{minipage}\par + \vfill + \noindent\begin{minipage}[b]{\textwidth} + \@lowertitleback + \end{minipage} + \fi + \ifx\@dedication\@empty \else + \next@tpage\null\vfill + {\centering \Large \@dedication \par} + \vskip \z@ \@plus3fill + \if@twoside \next@tpage\cleardoublepage \fi + \fi + \end{titlepage} + \setcounter{footnote}{0}% +% \end{macrocode} +% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{global}\cs{let} statt +% \cs{gdef}, um Speicher zu sparen.} +% \changes{v2.3g}{1996/01/14}{\cs{@date} und \cs{title} u."a. ebenfalls +% l"oschen, um Speicher zu sparen.} +% \begin{macrocode} + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@extratitle\@empty + \global\let\@titlehead\@empty + \global\let\@subject\@empty + \global\let\@publishers\@empty + \global\let\@uppertitleback\@empty + \global\let\@lowertitleback\@empty + \global\let\@dedication\@empty + \global\let\author\relax + \global\let\title\relax + \global\let\extratitle\relax + \global\let\titlehead\relax + \global\let\subject\relax + \global\let\publishers\relax + \global\let\uppertitleback\relax + \global\let\lowertitleback\relax + \global\let\dedication\relax + \global\let\date\relax + \global\let\and\relax} +\else +% \end{macrocode} +% \changes{v2.3a}{1995/07/08}{Verwendung von \cs{@makefnmark} in +% \cs{@makefntext}.} +% \changes{v2.3a}{1995/07/08}{Definition von \cs{@makefnmark} und +% \cs{@makefntext} unabh"angig von math +% definiert.} +% \changes{v2.3e}{1995/08/30}{Optionales Argument bei der einseitigen +% Version erlauben und ignorieren.} +% \changes{v2.3g}{1996/01/14}{Mehrfach \cs{null} bei \cs{next@tpage} +% erg"anzt.} +% \changes{v2.4l}{1997/02/06}{Es ist nicht mehr notwendig \cs{\@makefntext} +% umzudefinieren, stattdessen wird nur +% \cs{\@makefnmark} umdefiniert.} +% \changes{v2.8d}{2001/07/05}{\cs{titlepagestyle} statt \texttt{plain}} +% \begin{macrocode} + \newcommand*\maketitle[1][1]{\par + \@tempcnta=#1\relax\ifnum\@tempcnta=1\else +% \ClassWarning{scrartcl} +% \ClassWarning{scrreprt} +% \ClassWarning{scrbook} + {Optional argument of \string\maketitle\space ignored + at\MessageBreak + notitlepage-mode}\fi + \begingroup + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark} + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ + \@maketitle + \fi + \thispagestyle{\titlepagestyle}\@thanks + \endgroup + \setcounter{footnote}{0}% + \let\thanks\relax + \let\maketitle\relax + \let\@maketitle\relax +% \end{macrocode} +% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{global}\cs{let} statt +% \cs{gdef}, um Speicher zu sparen.} +% \changes{v2.3g}{1996/01/14}{\cs{@date} und \cs{title} u."a. ebenfalls +% l"oschen, um Speicher zu sparen.} +% \begin{macrocode} + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@extratitle\@empty + \global\let\@titlehead\@empty + \global\let\@subject\@empty + \global\let\@publishers\@empty + \global\let\@uppertitleback\@empty + \global\let\@lowertitleback\@empty + \global\let\@dedication\@empty + \global\let\author\relax + \global\let\title\relax + \global\let\extratitle\relax + \global\let\titlehead\relax + \global\let\subject\relax + \global\let\publishers\relax + \global\let\uppertitleback\relax + \global\let\lowertitleback\relax + \global\let\dedication\relax + \global\let\date\relax + \global\let\and\relax} +\fi +% \end{macrocode} +% \begin{macro}{\@maketitle} +% \begin{macrocode} +\newcommand*{\@maketitle}{% + \clearpage + \let\footnote\thanks + \ifx\@extratitle\@empty \else + \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi + \fi + \ifx\@titlehead\@empty \else + \noindent\begin{minipage}[t]{\textwidth} + \@titlehead + \end{minipage}\par + \fi + \null + \vskip 2em% + \begin{center}% + \ifx\@subject\@empty \else + {\Large \@subject \par} + \vskip 1.5em + \fi + {\titlefont\huge \@title \par}% + \vskip 1.5em% + {\Large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\Large \@date \par}% + \vskip \z@ \@plus 1em + {\Large \@publishers \par} + \ifx\@dedication\@empty \else + \vskip 2em + {\Large \@dedication \par} + \fi + \end{center}% + \par + \vskip 2em} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Kapiteleinteilung} +% +% Die gesamte Gliederungsgeschichte entf"allt bei Briefen: +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \changes{v2.3h}{1996/01/20}{Gr"o"senbefehle in den "Uberschriften +% variabel gestaltet.} +% \begin{macro}{\numberline} +% \changes{v2.3c}{1995/08/06}{\cs{numberline} umdefiniert.} +% Dieses Makro wird indirekt im Inhaltsverzeichnis verwendet und mu"s +% umdefiniert werden, um Duden Regel~5 und Regel~6 zu implementieren. +% \begin{macrocode} +\renewcommand*{\numberline}[1]{% + \hb@xt@\@tempdima{#1\autodot\hfil}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\chaptermark} +% Dieses Makro, das f"ur lebende Kolumnentitel auf Kapitelebene +% zust"andig ist, wird im Kernel nicht definiert. Deshalb wird es hier +% nachgeholt. Strenggenommen ist das nur notwendig, wenn innerhalb der +% Seitenstildefinitionen |\renewcommand| verwendet wird. Auf jedenfall +% ist es sauberer, die Definition hier durchzuf"uhren, als sie +% wegzulassen. +% \begin{macrocode} +%\newcommand*\chaptermark[1]{} +% \end{macrocode} +% \end{macro} +% +% \begin{Counter}{secnumdepth} +% \begin{Counter}{part} +% \begin{Counter}{chapter} +% \begin{Counter}{section} +% \begin{Counter}{subsection} +% \begin{Counter}{subsubsection} +% \begin{Counter}{paragraph} +% \begin{Counter}{subparagraph} +% \begin{macro}{thepart} +% \begin{macro}{thechapter} +% \begin{macro}{thesection} +% \begin{macro}{thesubsection} +% \begin{macro}{thesubsubsection} +% \begin{macro}{theparagraph} +% \begin{macro}{thesubparagraph} +% Au"serdem werden an dieser Stelle nun einige Z"ahler definiert und +% initialisiert, die f"ur die Gliederung ma"sgeblich sind. Das +% Erscheinungsbild der Z"ahler bei ihrer Ausgabe wird ebenfalls festgelegt. +% \begin{macrocode} +%\setcounter{secnumdepth}{2} +%\setcounter{secnumdepth}{3} +\newcounter{part} +%\newcounter{chapter} +%\newcounter{section} +%\newcounter{section}[chapter] +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\renewcommand*\thepart{\@Roman\c@part} +%\renewcommand*\thechapter{\@arabic\c@chapter} +%\renewcommand*\thesection{\thechapter.\@arabic\c@section} +%\renewcommand*\thesection{\@arabic\c@section} +\renewcommand*\thesubsection{\thesection.\@arabic\c@subsection} +\renewcommand*\thesubsubsection{\thesubsection.\@arabic\c@subsubsection} +\renewcommand*\theparagraph{\thesubsubsection.\@arabic\c@paragraph} +\renewcommand*\thesubparagraph{\theparagraph.\@arabic\c@subparagraph} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{Counter} +% \end{Counter} +% \end{Counter} +% \end{Counter} +% \end{Counter} +% \end{Counter} +% \end{Counter} +% +% \begin{macro}{\@thepart} +% \changes{v2.8e}{2001/07/10}{Entfernt} +% \begin{macro}{\@maybeasf} +% \changes{v2.8e}{2001/07/10}{Entfernt} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@chapapp} +% Analog zu den Standardklassen. +% \begin{macrocode} +%\newcommand*\@chapapp{\chaptername} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\frontmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten.} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten.} +% \begin{macrocode} +%<*scrbook> +\newcommand*\frontmatter{\if@twoside\cleardoublepage\else\clearpage\fi + \@mainmatterfalse\pagenumbering{roman}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mainmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten.} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten.} +% \begin{macrocode} +\newcommand*\mainmatter{\if@twoside\cleardoublepage\else\clearpage\fi + \@mainmattertrue\pagenumbering{arabic}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\backmatter} +% Auch wenn nicht ganz einzusehen ist, warum das anders sein soll, +% wird hier nicht nach der Option \texttt{twoside}, sondern nach +% \texttt{openright} unterschieden. +% \begin{macrocode} +\newcommand*\backmatter{\if@openright\cleardoublepage\else\clearpage\fi + \@mainmatterfalse} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\part} +% \changes{v2.1c}{1995/01/17}{Zeichenkette "`markboth"' durch +% Befehl \cs{markboth} ersetzt.} +% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt.} +% \changes{v2.3c}{1995/08/06}{Alternative Numerierung bei r"omischer +% Part-Numerierung.} +% \changes{v2.3d}{1995/08/19}{Alternative Numerierung korrigiert.} +% \changes{v2.3g}{1996/01/14}{\cs{hbox} durch \cs{null} ersetzt.} +% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}} +% \changes{v2.8p}{2001/09/27}{Pr"aambel "uber der "Uberschrift +% hinzugef"ugt} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt +% einen Bug im color Paket} +% \begin{macro}{\@part} +% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch +% \cs{size@partnumber} ersetzt.} +% \changes{v2.4n}{1997/05/28}{F"ur scrartcl \cs{markboth} zum L"oschen +% der Kolumnentitel durch \cs{sectionmark} +% ersetzt.} +% \changes{v2.4n}{1997/05/28}{In der Sternvariante \cs{chaptermark} bzw. +% \cs{sectionmark} eingef"ugt, um die +% Kolumnentitel zu l"oschen.} +% \changes{v2.6a}{2000/01/20}{Zum L"oschen der Kolumnentitel wird nun +% \cs{@mkboth} verwendet.} +% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@part} und \cs{size@partnumber} +% aufgerufen} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.9c}{2002/08/10}{\cs{@parskipfalse}\cs{@parskip@indent} +% und \cs{centering} in der Reihenfolge +% vertauscht} +% \changes{v2.9s}{2004/07/05}{Verwendung von \cs{partmark}} +% \begin{macro}{\@spart} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.9c}{2002/08/10}{\cs{@parskipfalse}\cs{@parskip@indent} +% und \cs{centering} in der Reihenfolge +% vertauscht} +% \begin{macro}{\@endpart} +% Der Gliederungsfehl |\part| wird wie in den Standardklassen mit Hilfe +% mehrere Hilfsmakros definiert. Wesentliche Unterschiede zu den +% Standardklassen existieren nicht, jedoch sind Schriftgr"o"se, +% Schriftart u.~"a. flexibler gehalten. Au"serdem gibt es die +% M"oglichkeit von Pr"aambeln. \emph{Achtung: Die Pr"aambel vor der +% \cs{part}-"Uberschrift kann ohne Warnung "uber den oberen Rand +% hinaus reichen!} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten.} +% \changes{v2.5e}{1998/07/17}{\cs{numberline} verwendet, damit die +% reservierte Part-Nummern-Breite in +% \cs{l@part} auch wirklich verwendet +% wird} +% \begin{macrocode} +%<*scrartcl> +\newcommand\part{\par + \addvspace{4ex}% + \@afterindentfalse + \secdef\@part\@spart} +% +%<*scrreprt|scrbook> +\newcommand\part{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil% + \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% + \vskip-\baselineskip\nobreak% + \secdef\@part\@spart} +% +\newcommand*{\@part}{} +\def\@part[#1]#2{% +%<*scrartcl> + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \@maybeautodot\thepart% + \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont\sectfont\nobreak + \ifnum \c@secnumdepth >\m@ne + \size@partnumber\partformat + \par\nobreak + \fi + \size@part #2\strut% + \partmark{#1}\par}% + \nobreak + \vskip 3ex + \@afterheading} +% +%<*scrreprt|scrbook> + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \@maybeautodot\thepart% + \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \partmark{#1}% + {\@parskipfalse\@parskip@indent\centering + \interlinepenalty \@M + \normalfont\sectfont + \ifnum \c@secnumdepth >-2\relax + \size@partnumber\partformat + \par + \vskip 20\p@ + \fi + \size@part #2\strut\par}% + \@endpart} +% +\newcommand*{\@spart}[1]{% +%<*scrartcl> + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \sectfont\nobreak\size@part #1\strut\@mkboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} +% +%<*scrreprt|scrbook> + {\@parskipfalse\@parskip@indent\centering + \interlinepenalty \@M + \normalfont + \sectfont\size@part #1\strut\@mkboth{}{}\par}% + \@endpart} +% \end{macrocode} +% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird f"ur scrartcl nicht mehr +% definiert} +% \changes{v2.6c}{2000/06/10}{\cs{@endpart} f"ugt nur noch in beidseitigen +% Dokumenten bei Verwendung von openright eine +% Leerseite ein} +% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingef"ugt} +% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt +% \cs{@part@preamble}} +% \begin{macrocode} +\newcommand*{\@endpart}{\vbox to\z@{\use@preamble{part@u}\vss}% + \vfil\newpage + \if@twoside\if@openright + \null% + \thispagestyle{empty}% + \newpage + \fi\fi + \if@tempswa + \twocolumn + \fi} +% +% \end{macrocode} +% \begin{macro}{\partmark} +% \changes{v2.9s}{2004/07/05}{Neu} +% In der initialen Version macht das dasselbe wie bisher, als das Makro noch +% nicht definiert war: automatische Kolumnentitel ggf. l"oschen. +% \begin{macrocode} +\newcommand*{\partmark}[1]{\@mkboth{}{}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\addpart} +% \changes{v2.8c}{2001/06/29}{Neu} +% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}} +% \begin{macro}{\@addpart} +% \changes{v2.8c}{2001/06/29}{Neu} +% \changes{v2.8l}{2001/08/17}{Erst eintagen, dann ausgeben} +% \begin{macro}{\@saddpart} +% \changes{v2.8c}{2001/06/29}{Neu} +% \begin{macrocode} +%<*scrartcl> +\newcommand\addpart{\par + \addvspace{4ex}% + \@afterindentfalse + \secdef\@addpart\@saddpart} +% +%<*scrreprt|scrbook> +\newcommand\addpart{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil + \secdef\@addpart\@saddpart} +% +\newcommand*{\@addpart}{} +\def\@addpart[#1]#2{\addcontentsline{toc}{part}{#1}\@spart{#2}} +\newcommand*{\@saddpart}{} +\def\@saddpart#1{\@spart{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\chapter} +% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt \texttt{plain}} +% \begin{macro}{\@chapter} +% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen} +% \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun auch +% ein vertikaler Abstand in Listen des +% \texttt{float}-Pakets eingebaut} +% \begin{macro}{\@schapter} +% \begin{macro}{\@makechapterhead} +% \changes{v2.7b}{2001/01/05}{Kapitel k"onnen grunds"atzlich mit einer +% Pr"aambel versehen werden} +% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von +% Pr"aambeln} +% \begin{macro}{\@@makechapterhead} +% \changes{v2.8p}{2001/09/25}{Neu} +% \changes{v2.9g}{2002/09/01}{\cs{size@chapter} verschoben} +% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} +% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf +% \texttt{1em plus 1fil} ge"andert} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macro}{\@makeschapterhead} +% Der Gliederungsfehl |\chapter|, der nur in den Klassen +% \texttt{scrbook} und \texttt{scrreprt} vorhanden ist, wird wie in +% den Standardklassen mit Hilfe mehrere Hilfsmakros definiert. +% \changes{v2.7b}{2001/01/05}{Kapitel k"onnen grunds"atzlich mit einer +% Pr"aambel versehen werden} +% \begin{macro}{\@@makeschapterhead} +% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option +% \texttt{chapterprefix} auch auf den Pr"afix angewendet} +% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} +% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf +% \texttt{1em plus 1fil} ge"andert} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead} +% angepasst} +% \begin{macro}{\if@at@twocolumn} +% \changes{v2.7b}{2001/01/05}{Neu} +% \begin{macro}{\scr@topnewpage} +% \changes{v2.7b}{2001/01/05}{Neu} +% \changes{v2.8q}{2001/11/27}{Fehlende Klammern erg"anzt} +% \begin{macro}{\@topnewpage} +% \changes{v2.7b}{2001/01/05}{Neu} +% Interessant ist dabei die Erweiterung, da"s jedes Kapitel mit einer +% Preambel versehen werden kann. Diese wird im zweispaltigen Satz wie +% die "Uberschrift selbst einspaltig gesetzt. Intern wird dies f"ur +% die Preambel des Index und der Bibliography verwendet. Dabei +% entsteht aber wiederum das Problem, da"s der Indexkopf innerhalb von +% |\twocolumn| ausgegeben wird andererseits aber innerhalb von +% |\chapter| das Makro |\@topnewpage| verwendet wird. Damit w"urde +% dann also |\@topnewpage| innerhalb von |\@topnewpage| +% aufgerufen. Das ist jedoch nicht erlaubt. Als mu"s der Aufruf von +% |\@topnewpage| in |\@chapter| und |\@schapter| verhindert werden, +% wenn wir uns bereits in |\@topnewpage| befinden. Eine M"oglichkeit +% daf"ur w"are, einen Schalter in den Index-Kopf einzubauen. Wir +% w"ahlen hingegen die Methode, |\@topnewpage| entsprechend +% umzudefinieren. Damit kann dann auch der Anwender |\@chapter| +% innerhalb des optionalen Arguments von |\twocolumn| verwenden. +% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} erg"anzt} +% \begin{macrocode} +%<*scrreprt|scrbook> +\newif\if@at@twocolumn +\newcommand*\scr@topnewpage{} +\let\scr@topnewpage\@topnewpage +\long\def\@topnewpage[#1]{% + \@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse} +\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\chapterpagestyle}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\newcommand*{\@chapter}{} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \refstepcounter{chapter}% + \@maybeautodot\thechapter% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% +% \else +% \addcontentsline{toc}{chapter}{#1}\fi + \else + \addcontentsline{toc}{chapter}{#1} + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \@ifundefined{float@addtolists}{}{% + \float@addtolists{\protect\addvspace{10\p@}}} + \if@twocolumn + \if@at@twocolumn + \@makechapterhead{#2}% + \else + \@topnewpage[\@makechapterhead{#2}]% + \fi + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\newcommand*{\chapterheadstartvskip}{} +\newcommand*{\chapterheadendvskip}{} +\newcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip% + {\normalfont\sectfont\size@chapter + \setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ \@plus 1fil}% + \if@chapterprefix\let\@tempa\raggedsection\else\let\@tempa\@hangfrom\fi% + \@tempa{\ifnum \c@secnumdepth >\m@ne% +% \if@mainmatter \chapterformat\fi\fi}% +% \chapterformat\fi}% + \if@chapterprefix\par\nobreak\vskip.5\baselineskip\fi% + {\raggedsection \interlinepenalty \@M #1\par}}% + \nobreak\chapterheadendvskip% + } +\newcommand*{\use@chapter@o@preamble}{% + {\settoheight{\@tempdima}{\vbox{\chapterheadstartvskip}}% + \settodepth{\@tempdimb}{\vbox{\chapterheadstartvskip}}% + \addtolength{\@tempdima}{\@tempdimb}% + \setbox0\vbox{\use@preamble{chapter@o}% + \vskip-\parskip}% + \setlength{\@tempdimb}{\ht0}% + \addtolength{\@tempdimb}{\dp0}% + \vbox to \z@{% + \vbox to \@tempdima{\vfill\box0}% + \vskip-\@tempdima% + }% + \ifdim \@tempdimb>\@tempdima% + \addtolength{\@tempdimb}{-\@tempdima}% + \ClassWarning{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + preamble before chapter is \the\@tempdimb\space too + high.\MessageBreak + To avoid the overfull \string\vbox\space you may + redefine\MessageBreak + \string\chapterheadstartvskip\space at the preamble of + your\MessageBreak + document. You may also change + \string\setchapterpreamble\MessageBreak + before the command, which generates the message + about\MessageBreak + an overfull \string\vbox + }% + \fi% + } +} +\newcommand*{\@makechapterhead}[1]{% + \use@chapter@o@preamble% + \@@makechapterhead{#1}% + \use@preamble{chapter@u}\nobreak% + } +\newcommand*{\@schapter}[1]{\if@twocolumn + \if@at@twocolumn + \@makeschapterhead{#1}% + \else + \@topnewpage[\@makeschapterhead{#1}]% + \fi + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} +\newcommand*{\@@makeschapterhead}[1]{\chapterheadstartvskip% + {\normalfont\sectfont\size@chapter + \setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection \interlinepenalty \@M #1\par}% + \nobreak\chapterheadendvskip% +} +\newcommand*{\@makeschapterhead}[1]{% + \use@chapter@o@preamble% + \@@makeschapterhead{#1}% + \use@preamble{chapter@u}\nobreak% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\use@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% Dieses Makro dient allgemein zum Setzen einer Pr"aambel (f"ur +% Gliederungs"uberschriften), wenn eine +% solche definiert ist. Als Argument wird der Name der Pr"aambel +% "ubergeben, an den automatisch \verb;@preamble; angeh"angt +% wird. Zum Schluss wird die gespeicherte Pr"aambel gel"oscht. +% \begin{macrocode} +\newcommand*{\use@preamble}[1]{% + \@ifundefined{#1@preamble}{}{% + \@nameuse{#1@preamble}% + \global\expandafter\let\csname#1@preamble\endcsname=\relax}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\set@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% Das Makro \cs{set@preamble} dient allgemein der Defintion einer +% Pr"aambel (f"ur Gliederungs"uberschriften). Als Argument wird der +% Name der Gliederungsebene "ubergeben. Danach folgt ein optionales +% Argument, das die Position der Pr"aambel angibt. Darauf folgt ein +% weiteres optionales Argument, das die Breite der Pr"aambel +% angibt. Ist nur ein optionales Argument angegeben, so ist es die +% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der +% Pr"aambel. Die Definition der Pr"aambel erfolgt global. +% \begin{macro}{\set@@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% \begin{macro}{\set@@@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% \begin{macro}{\set@@@@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% \changes{v2.8q}{2001/11/27}{Fehlende Klammern erg"anzt} +% Da mehrere optionale Argumente nach einem obligatorischen Argument +% auszuwerten sind, werden diverse Hilfsmakros ben"otigt. +% \begin{macrocode} +\newcommand*{\set@preamble}[1]{% +% \end{macrocode} +% Zunaechst wird das erste optionale Argument gesucht. +% \begin{macrocode} + \@ifnextchar [ + {\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}} +\newcommand*{\set@@preamble}{} +\def\set@@preamble#1[#2]{% +% \end{macrocode} +% Wenn ein optionales Argument existiert, kann es auch ein zweites +% geben. Wenn nicht, wird mit der Voreinstellung gearbeitet. +% \begin{macrocode} + \@ifnextchar [ + {\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}} +\newcommand{\set@@@preamble}{} +\long\def\set@@@preamble#1[#2][#3]#4{% +% \end{macrocode} +% Dies ist das Hauptmakro, das die eigentliche Arbeit macht. Es muss +% long definiert werden, da die Pr"aambel auch aus mehreren Abs"atzen +% bestehen kann. +% +% Zun"achst wird das Positionsargument ausgewertet. Dies geschieht mit +% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife +% siehe im dokumentierten \LaTeX-Kern. +% \begin{macrocode} + {% + \def\prmbl@pos{#2}\let\prmbl@hpos\relax\let\prmbl@vpos\relax% + \expandafter \@tfor \expandafter \@tempa% + \expandafter :\expandafter =\prmbl@pos% + \do{% + \if \@tempa l% + \set@preamble@hpos{0}{#2}% + \fi% + \if \@tempa c% + \set@preamble@hpos{1}{#2}% + \fi% + \if \@tempa r% + \set@preamble@hpos{2}{#2}% + \fi% + \if \@tempa u% + \set@preamble@vpos{0}{#2}% + \fi% + \if \@tempa o% + \set@preamble@vpos{1}{#2}% + \fi% + } +% \end{macrocode} +% Wurde keine horizontale oder vertikale Ausrichtung definiert, so +% wird nun der Standardwert daf"ur eingesetzt. +% \begin{macrocode} + \@ifundefined{prmbl@hpos}{\def\prmbl@hpos{0}}{}% + \@ifundefined{prmbl@vpos}{\def\prmbl@vpos{0}}{}% +% \end{macrocode} +% Nun sind die Positionen ermittelt und es werden abh"angig davon +% entsprechende P"aambelmakros definiert. +% \begin{macrocode} + \ifcase\prmbl@hpos +% \end{macrocode} +% Zun"achst links unten und oben: +% \begin{macrocode} + \ifcase\prmbl@vpos + \set@@@@preamble{#1@u}{t}{#3}{}{\hfil}{#4} + \else + \set@@@@preamble{#1@o}{b}{#3}{}{\hfil}{#4} + \fi + \or +% \end{macrocode} +% Dann zentriert unten und oben: +% \begin{macrocode} + \ifcase\prmbl@vpos + \set@@@@preamble{#1@u}{t}{#3}{\hfil}{\hfil}{#4} + \else + \set@@@@preamble{#1@o}{b}{#3}{\hfil}{\hfil}{#4} + \fi + \else +% \end{macrocode} +% Zum Schluss rechts und oben: +% \begin{macrocode} + \ifcase\prmbl@vpos + \set@@@@preamble{#1@u}{t}{#3}{\hfil}{}{#4} + \else + \set@@@@preamble{#1@o}{b}{#3}{\hfil}{}{#4} + \fi + \fi + } +} +% \end{macrocode} +% Es folgt das Makro, mit dem die Definition tats"achlich +% stattfindet. Das erste Argument ist der Name der Pr"aambel, das +% zweite die Positionsoption f"ur die verwendete \cs{parbox}, das +% dritte ist die Breite der \cs{parbox}, dann zwei Argumente mit der +% horizontalen Ausrichtung vor und nach der \cs{parbox} und das +% sechste Agument ist schlie"slich der Inhalt der \cs{parbox}. +% \begin{macrocode} +\newcommand{\set@@@@preamble}[6]{% + \expandafter\gdef\csname #1@preamble\endcsname{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}}} +% \end{macrocode} +% +% \begin{macro}{\set@preamble@hpos} +% \changes{v2.8q}{2001/09/25}{Neu} +% Eines der Hilfsmakros dient dazu, die horizontale Position der +% Pr"aambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es +% bereits nicht "ubereinstimmend erfolg, wird ein Fehler +% ausgegeben. Dieses Makro ist extrem intern und funktioniert nur im +% Kontext vor \cs{set@preamble}. +% \begin{macrocode} +\newcommand*{\set@preamble@hpos}[2]{% + \@ifundefined{prbml@hpos}{% + \def\prmbl@hpos{#1}% + }{% + \ifnum \prmbl@hpos=0\relax\else% + \ClassError{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + inconsistent hpos options% + }{% + You said `#2' as position option. But you have + to\MessageBreak + use only one from `l', `r' or `c' not two of + these.\MessageBreak + If you'll continue only first hpos option will be + used}% + \fi}} +% \end{macrocode} +% \end{macro}%\iffalse\set@preamble@hpos\fi +% \begin{macro}{\set@preamble@vpos} +% \changes{v2.8q}{2001/09/25}{Neu} +% Das Hilfsmakro f"ur die vertikale Position funktioniert in gleicher +% Weise. +% \begin{macrocode} +\newcommand*{\set@preamble@vpos}[2]{% + \@ifundefined{prbml@vpos}{% + \def\prmbl@vpos{#1}% + }{% + \ifnum \prmbl@vpos=0\relax\else% + \ClassError{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + inconsistent vpos options% + }{% + You said `#2' as position option. But you have + to\MessageBreak + use only one from `o' or `u' not two of + these.\MessageBreak + If you'll continue only first vpos option will be + used}% + \fi}} +% \end{macrocode} +% \end{macro}%\iffalse\set@preamble@vpos\fi +% \end{macro}%\iffalse\set@@@@preamble\fi +% \end{macro}%\iffalse\set@@@preamble\fi +% \end{macro}%\iffalse\set@@preamble\fi +% \end{macro}%\iffalse\set@preamble\fi +% +% +% \begin{macro}{\dictum} +% \changes{v2.8q}{2001/20/04}{Neu} +% \changes{v2.9l}{2003/01/28}{\cs{edef} durch \cs{def} ersetzt} +% \changes{v2.9q}{2004/04/19}{zur Vermeidung von Problemen durch +% \cs{raggeddictum} Gruppe eingef"ugt} +% \begin{macro}{\dictumwidth} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\raggeddictum} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\raggeddictumtext} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\raggeddictumauthor} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\@dictumfont} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\scr@fnt@dictumtext} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\scr@fnt@instead@dictum} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\@dictumauthorfont} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\scr@fnt@dictumauthor} +% \changes{v2.8q}{2001/20/04}{Neu} +% \begin{macro}{\dictumauthorformat} +% \changes{v2.8q}{2001/20/04}{Neu} +% Ein \emph{dictum} ist ein Spruch. Er besteht aus dem Spruch selbst +% und verf"ugt optional "uber einen Autor, der dann mit einer Linie +% abgetrennt wird. Gibt es keinen Autor, gibt es auch keine Linie. Die +% Schriften f"ur Autor und Spruch k"onnen getrennt voneinander +% eingestellt werden. Die Anordnung des Spruchs wird durch +% \cs{raggeddictumtext} gesetzt. Die des Autors durch +% \cs{raggeddictumauthor}. Die Formatierung selbst geschieht mit dem +% Makro \cs{dictumauthorformat}. Vordefiniert ist, den Namen des +% Autors in +% runde Klammern zu setzen. Die gesamte Geschichte von Text und Autor +% wird in eine Box der Breite \cs{dictumwidth} gepackt. Diese wird mit +% \cs{raggeddictum} angeordnet. +% \begin{macrocode} +\newcommand{\dictum}[2][]{\par% + \begingroup + \raggeddictum\parbox{\dictumwidth}{% + {\@dictumfont{\raggeddictumtext #2\strut\par}% + \def\@tempa{#1}\ifx\@tempa\@empty\else% + {\raggeddictumtext\vskip-1ex\hrulefill\par}% + \raggeddictumauthor\@dictumauthorfont\dictumauthorformat{#1}% + \strut\par% + \fi% + }% + }\par% + \endgroup +} +\newcommand*{\dictumwidth}{.3333\textwidth} +\newcommand*{\raggeddictum}{\raggedleft} +\newcommand*{\dictumauthorformat}[1]{(#1)} +\newcommand*{\raggeddictumtext}{\raggedright} +\newcommand*{\raggeddictumauthor}{\raggedleft} +\newcommand*{\@dictumfont}{\normalfont\normalcolor\sffamily\small} +\newcommand*{\@dictumauthorfont}{\itshape} +\newcommand*{\scr@fnt@dictumtext}{\@dictumfont} +\newcommand*{\scr@fnt@dictumauthor}{\@dictumauthorfont} +\newcommand*{\scr@fnt@instead@dictum}{dictumtext} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\setchapterpreamble} +% \changes{v2.7b}{2001/01/05}{Neu} +% \changes{v2.8p}{2001/09/25}{Verwendung von \cs{set@preamble}} +% \begin{macro}{\chapter@u@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% \changes{v2.8p}{2001/09/25}{Ersatz f"ur \cs{chapter@preamble}} +% \begin{macro}{\chapter@o@preamble} +% \changes{v2.8p}{2001/09/25}{Neu} +% Diese Makros werden ben"otigt, um die Kapitel-Pr"aambel zu setzen +% bzw. zu speichern. Leider kann an dieser Stelle \emph{nicht} +% |\renewcommand*| verwendet werden, weil das Makros unbedingt global +% definiert werden mu"s. +% \begin{macrocode} +\newcommand*{\setchapterpreamble}{\set@preamble{chapter}} +\newcommand*{\chapter@u@preamble}{} +\let\chapter@u@preamble\relax +\newcommand*{\chapter@o@preamble}{} +\let\chapter@o@preamble\relax +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\setpartpreamble} +% \changes{v2.8f}{2001/07/12}{Neu} +% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}} +% \begin{macro}{\part@preamble@u} +% \changes{v2.8p}{2001/09/27}{Ersatz f"ur \cs{part@preamble}} +% \begin{macro}{\part@preamble@o} +% \changes{v2.8p}{2001/09/27}{Neu}\ +% Analog gibt es Befehle f"ur eine Teil-Pr"aambel. Hier wird aber +% direkt mit |\relax| gearbeitet. +% \begin{macrocode} +\newcommand*{\setpartpreamble}{\set@preamble{part}} +\newcommand*{\part@preamble@u}{} +\let\part@preamble@u\relax +\newcommand*{\part@preamble@o}{} +\let\part@preamble@o\relax +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addchap} +% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef} ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} durch +% \cs{addcontentsline} ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{chaptermark} durch +% \cs{markboth} ersetzt.} +% \changes{v2.0e}{1994/10/12}{\cs{markboth} durch \cs{chaptermark} +% ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} durch +% \cs{@makeschapterhead} ersetzt.} +% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} durch +% \cs{@afterheading} ersetzt.} +% \changes{v2.1a}{1994/10/29}{Argument von \cs{chaptermark} entfernt bei +% "`scrbook"'.} +% \changes{v2.0e}{1994/10/12}{Mehrfach \cs{markboth} durch +% \cs{sectionmark} ersetzt.} +% \changes{v2.2b}{1995/03/20}{\cs{chaptermark} durch \cs{@mkboth} +% ersetzt.} +% \changes{v2.7a}{2001/01/04}{\cs{addsec} f"ur eine bessere +% Unterst"utzung von \texttt{hyperref} +% ge"andert} +% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt \texttt{plain}} +% \begin{macro}{\addsec} +% \changes{v2.0e}{1994/10/12}{Mehrfach \cs{markboth} durch +% \cs{sectionmark} ersetzt.} +% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} durch \cs{@mkboth} +% ersetzt.} +% \changes{v2.3h}{1995/01/21}{Jetzt auch bei scrbook und scrreprt.} +% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit dadurch +% provozierte Seitenumbr"uche im +% Inhaltsverzeichnis ber"ucksichtigt werden.} +% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch \cs{markright} +% ersetzt.} +% \begin{macro}{\@addsec} +% \begin{macro}{\@saddsec} +% \textsf{KOMA-Script} bietet in allen drei Hauptklassen den zus"atzlichen +% Gliederungsbefehl |\addsec| und in \texttt{scrbook} und \texttt{scrreprt} +% au"serdem |\addchap|. Es handelt sich dabei um mit |\section*| bzw. +% |\chapter*| vergleichbare Befehle, bei denen jedoch der Kolumnentitel +% korrigiert und ein Eintrag ins Inhaltsverzeichnis erfolgt (nicht in der +% Stern-Variante). +% \begin{macrocode} +\newcommand*\addsec{\secdef\@addsec\@saddsec} +\newcommand*{\@addsec}{} +\def\@addsec[#1]#2{\section*{#2}\addcontentsline{toc}{section}{#1} +% \if@twoside \@mkboth{#1}{}\else \@mkboth{#1}{#1}\fi} +% \if@twoside\ifx\@mkboth\markboth\markright{#1}\fi\fi} +\newcommand*{\@saddsec}[1]{\section*{#1}\@mkboth{}{}} +%<*scrreprt|scrbook> +% \end{macrocode} +% Die Definition von \cs{addcap} sah bis zu Version 2.7 so aus: +% \begin{verbatim} +% \newcommand\addchap{\if@openright\cleardoublepage\else\clearpage\fi +% \thispagestyle{plain}% +% \global\@topnum\z@ +% \@afterindentfalse +% \secdef\@addchap\@saddchap} +% \def\@addchap[#1]#2{\typeout{#2} +% \addcontentsline{toc}{chapter}{#1} +% \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi +% \addtocontents{lof}{\protect\addvspace{10\p@}}% +% \addtocontents{lot}{\protect\addvspace{10\p@}}% +% \if@twocolumn +% \@topnewpage[\@makeschapterhead{#2}]% +% \else +% \@makeschapterhead{#2}% +% \@afterheading +% \fi} +% \def\@saddchap#1{\@mkboth{}{} +% \if@twocolumn +% \@topnewpage[\@makeschapterhead{#1}]% +% \else +% \@makeschapterhead{#1}% +% \@afterheading +% \fi} +% \end{verbatim} +% Dies f"uhrte jedoch zu Problemen im Zusammenhang mit +% \texttt{hyperref}, da hierbei keine korrekten Links erzeugt +% werden. Mit dem \texttt{hypertex}-Treiber werden auch in der neuen +% Version keine korrekten Links erzeugt. Dies wird von mir jedoch als +% Bug in \texttt{hyperref 6.69c} betrachtet. Mit dem +% \texttt{hpdftex}-Treiber werden n"amlich im Gegensatz dazu korrekte +% Links erzeugt. Deshalb wurde der Code wie folgt vereinfacht. Von +% wesentlicher Bedeutung ist dabei der Aufruf von \cs{chapter*}, da in +% \texttt{hpdftex.def} das interne Makro \cs{@schapter} so umdefiniert +% wird, da"s ein korrekter Link erzeugt wird. +% \begin{macro}{\@addchap} +% \begin{macro}{\@saddchap} +% \begin{macrocode} +\newcommand\addchap{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\chapterpagestyle}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@addchap\@saddchap% +} +\newcommand*{\@addchap}{} +\def\@addchap[#1]#2{\@schapter{#2}% + \addcontentsline{toc}{chapter}{#1}% + \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi} +\newcommand*{\@saddchap}[1]{\@schapter{#1}\@mkboth{}{}} +% \end{macrocode} +% In \texttt{hyperref} zumindest bis Version 6.71a ist ein dicker Bug. In +% verschiedenen \texttt{def}-Dateien wird dort das \emph{interne} +% \textsf{KOMA-Script} Makro |\@addchap| umdefiniert, ohne sicherzustellen, +% da"s das Makro auch noch so aussieht, wie man das erwartet hat. Die +% sauberste L"osung w"are sicher gewesen dort |\@addchap| nur zu erg"anzen, +% so wie man das auch bei |\@schapter| gemacht hat. Ab Version 6.71b ist +% dieser Bug behoben. Damit ich nicht eines Fehlers verd"achtigt werde, +% wird ggf. eine entsorechende Meldung ausgegeben. +% \changes{v2.7e}{2001/04/16}{Fehlende, schlie"sende Klammer erg"anzt} +% \changes{v2.7f}{2001/04/17}{Fehlendes Klammerpaar erg"anzt} +% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur "Uberpr"ufung der +% \texttt{hyperref}-Version verwendet} +% \begin{macrocode} +%<*scrbook> +\AfterPackage{hyperref}{% + \@ifpackagelater{hyperref}{2001/02/19}{}{% + \ClassWarningNoLine{scrbook}{% + You are using an old version of hyperref package!\MessageBreak% + This version has a buggy hack at many drivers\MessageBreak% + causing \string\addchap\space to behave strange.\MessageBreak% + Please update hyperref to at least version + 6.71b}}} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\section} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@section} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt +% einen Bug im color Paket} +% \changes{v2.9q}{2004/04/26}{noch vor \cs{raggedsection} wird +% \cs{parfillskip} unendlich dehnbar} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macro}{\subsection} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@subsection} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt +% einen Bug im color Paket} +% \changes{v2.9q}{2004/04/26}{noch vor \cs{raggedsection} wird +% \cs{parfillskip} unendlich dehnbar} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macro}{\subsubsection} +% \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} +% nun ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@subsubsection} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt +% einen Bug im color Paket} +% \changes{v2.9q}{2004/04/26}{noch vor \cs{raggedsection} wird +% \cs{parfillskip} unendlich dehnbar} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macro}{\paragraph} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@paragraph} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt +% einen Bug im color Paket} +% \changes{v2.9q}{2004/04/26}{noch vor \cs{raggedsection} wird +% \cs{parfillskip} unendlich dehnbar} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macro}{\subparagraph} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@subparagraph} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt +% einen Bug im color Paket} +% \changes{v2.9q}{2004/04/26}{noch vor \cs{raggedsection} wird +% \cs{parfillskip} unendlich dehnbar} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% Die Standardgliederungsbefehle |\section| bis |\subparagraph| sind +% mit der im Kernel daf"ur vorgesehenen Schnittstelle definiert. Im +% Unterschied zu den Standardklassen erfolgt die Formatierung jedoch +% in |\raggedsection| und der Schriftart |\sectfont|. Au"serdem sind +% die Gr"o"sen ver"anderbar. In letzter Konsequenz sollten hier +% eigentlich auch die Abst"ande variabilisiert werden. Vielleicht in +% einer sp"ateren Version. +% \begin{macrocode} +\newcommand\section{\@startsection{section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}} +\newcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection\normalfont\sectfont\nobreak\size@subsection\nobreak}} +\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection\normalfont\sectfont\nobreak\size@subsubsection\nobreak}} +\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection\normalfont\sectfont\nobreak\size@paragraph\nobreak}} +\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection\normalfont\sectfont\nobreak\size@subparagraph\nobreak}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{minisec} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket nicht ganz} +% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende +% behebt einen Bug im color Paket} +% In \textsf{KOMA-Script} gibt es diese zus"atzliche Gliederungsebene, die +% immer ohne Nummer und ihne Eintrag ins Inhaltsverzeichnis erfolgt. +% \begin{macrocode} +\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex + {\parindent \z@ + \raggedsection\normalfont\sectfont\nobreak#1\par\nobreak}\nobreak + \@afterheading} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sectionragged} +% \changes{v2.3h}{1996/01/20}{"Uberschriften werden \cs{raggedsection} +% gesetzt.} +% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als \cs{raggedright} +% voreingestellt.} +\let\raggedsection\raggedright +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Listen-Umgebungen} +% +% \subsection{Array, Tabellen, Tabulatoren, Rahmen} +% \begin{Length}{arraycolsep} +% \begin{Length}{tabcolsep} +% \begin{Length}{arrayrulewidth} +% \begin{Length}{doublerulewidth} +% \begin{Length}{tabbingsep} +% \begin{Length}{@mpfootins} +% \begin{Length}{fboxsep} +% \begin{Length}{fboxrule} +% \begin{macrocode} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\setlength{\skip\@mpfootins}{\skip\footins} +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +% \end{macrocode} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% +% \subsubsection{Gleichungen} +% +% \begin{macro}{\theequation} +% \begin{macrocode} +%\@addtoreset{equation}{chapter} +\renewcommand*\theequation{% +% \thechapter.% + \@arabic\c@equation} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{R"ander} +% +% \begin{Length}{leftmargini} +% \begin{Length}{leftmarginii} +% \begin{Length}{leftmarginiii} +% \begin{Length}{leftmarginiv} +% \begin{Length}{leftmarginv} +% \begin{Length}{leftmarginvi} +% \begin{Length}{leftmargin} +% \begin{Length}{labelsep} +% \begin{Length}{labelwidth} +% F"ur die Listenumgebungen in verschiedenen Stufen m"ussen R"ander +% definiert werden. +% \begin{macrocode} +\if@twocolumn + \setlength{\leftmargini}{2em} +\else + \setlength{\leftmargini}{2.5em} +\fi +\setlength{\leftmarginii}{2.2em} +\setlength{\leftmarginiii}{1.87em} +\setlength{\leftmarginiv}{1.7em} +\if@twocolumn + \setlength{\leftmarginv}{.5em} + \setlength{\leftmarginvi}{.5em} +\else + \setlength{\leftmarginv}{1em} + \setlength{\leftmarginvi}{1em} +\fi +\setlength{\leftmargin}{\leftmargini} +\setlength{\labelsep}{.5em} +\setlength{\labelwidth}{\leftmargini} +\addtolength{\labelwidth}{-\labelsep} +\@beginparpenalty=-\@lowpenalty +\@endparpenalty =-\@lowpenalty +\@itempenalty =-\@lowpenalty +% \end{macrocode} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} +% +% +% \subsubsection{Marken} +% +% F"ur die numerierten Listenumgebungen m"ussen Marken bzw. Numerierungen +% festgelegt werden. +% \begin{macro}{\theenumi} +% \begin{macro}{\theenumii} +% \begin{macro}{\theenumiii} +% \begin{macro}{\theenumiv} +% \begin{macro}{\labelenumi} +% \begin{macro}{\labelenumii} +% \changes{v2.4m}{1997/02/28}{"Offnende Klammer gem"a"s Doku entfernt.} +% \begin{macro}{\labelenumiii} +% \begin{macro}{\labelenumiv} +% \begin{macro}{\p@enumii} +% \begin{macro}{\p@enumiii} +% \begin{macro}{\p@enumiv} +% \begin{macro}{\labelitemi} +% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert.} +% \begin{macro}{\labelitemii} +% \changes{v2.5g}{1999/10/09}{\cs{textendash} verwendet.} +% \begin{macro}{\labelitemiii} +% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert.} +% \begin{macro}{\labelitemiv} +% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert.} +% \begin{macrocode} +\renewcommand*\theenumi{\@arabic\c@enumi} +\renewcommand*\theenumii{\@alph\c@enumii} +\renewcommand*\theenumiii{\@roman\c@enumiii} +\renewcommand*\theenumiv{\@Alph\c@enumiv} +\newcommand*\labelenumi{\theenumi.} +\newcommand*\labelenumii{\theenumii)} +\newcommand*\labelenumiii{\theenumiii.} +\newcommand*\labelenumiv{\theenumiv.} +\renewcommand*\p@enumii{\theenumi} +\renewcommand*\p@enumiii{\p@enumii(\theenumii)} +\renewcommand*\p@enumiv{\p@enumiii\theenumiii} +\newcommand*\labelitemi{\textbullet} +\newcommand*\labelitemii{\normalfont\bfseries\textendash} +\newcommand*\labelitemiii{\textasteriskcentered} +\newcommand*\labelitemiv{\textperiodcentered} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{Definition der Umgebungen} +% +% \begin{environment}{description} +% Die |description|-Umgebung dient der Beschreibung von einzelnen +% Begriffen. Der Begriff aus dem optionalen Argument des |\item|-Befehls +% wird in einem speziellen Font, dem |descfont|, gesetzte. +% \begin{macrocode} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} +\newcommand*{\descriptionlabel}[1]{\hspace\labelsep + \descfont #1} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{labeling} +% Die |labeling|-Umgebung ist eine Erweiterung des \textsf{Script} Pakets. +% Sie erwartet ein optionales und ein normales Argument. Das optionale +% Argument beschreibt einen speziellen Trenntext zwischen |\item|-Marke und +% |\item|-Beschreibung. Das eigentliche Argument wird f"ur die Ermittlung +% der Einr"uckung des Beschreibungstextes bzw. des Trenntextes ben"otigt. +% \begin{macrocode} +\newenvironment{labeling}[2][] + {\def\sc@septext{#1} + \list{}{\settowidth{\labelwidth}{#2#1} + \leftmargin\labelwidth \advance\leftmargin by \labelsep + \let\makelabel\labelinglabel}} + {\endlist} +\newcommand\labelinglabel[1]{#1\hfil\sc@septext} +% \end{macrocode} +% \end{environment} +% +% \changes{v2.1a}{1994/10/29}{\texttt{abstract}-Environment verschoben.} +% \begin{environment}{verse} +% \changes{v2.3g}{1996/01/14}{\cs{item} mu"s keine "`[]"'-Klammern mehr +% verarbeiten.} +% Die Verse-Umgebung ist f"ur Zitate in Gedichtform und "ahnliches gedacht. +% \begin{macrocode} +\newenvironment{verse} + {\let\\=\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item\relax} + {\endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{quotation} +% \changes{v2.3g}{1996/01/14}{\cs{item} mu"s keine "`[]"'-Klammern mehr +% verarbeiten.} +% \begin{environment}{quote} +% \changes{v2.3g}{1996/01/14}{\cs{item} mu"s keine "`[]"'-Klammern mehr +% verarbeiten.} +% Die |quotation|- und die |quote|-Umgebung erlauben rechts und links +% einger"uckte Passagen. Abs"atze werden entweder in der ersten Zeile +% zus"atzlich einger"uckt oder durch vertikalen Abstand markiert. +% \begin{macrocode} +\newenvironment{quotation} + {\list{}{\listparindent 1em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item\relax} + {\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax} + {\endlist} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \begin{environment}{addmargin} +% \changes{v2.8q}{2001/11/29}{Neue Umgebung} +% \begin{environment}{addmargin*} +% \changes{v2.8q}{2001/11/29}{Neue Umgebung} +% \changes{v2.9a}{2002/06/27}{\cs{if@thispageodd} durch +% \cs{ifthispageodd} ersetzt} +% Diese beiden Umgebungen "ahneln |quote| und |quotation|. Dabei +% werden Absatzeinzug und Absatzabstand nicht ver"andert. Die einzige +% Ver"anderung besteht in den R"andern. Wie stark die R"ander +% ver"andert werden, h"angt dabei von den Parametern ab. Ist nur der +% obligatorische Parameter angegeben, werden die R"ander auf beiden +% Seiten um diesen Wert vergr"o"sert. Ist ein optionaler Parameter +% angegeben, so ist dies bei |addmargin| der linke und bei +% |addmargin*| der innere Rand. Der obligatorische Parameter ist dann +% der andere Rand. Diese Entscheidung ist das einzige, was die +% Umgebungen selbst erledigen m"ussen. +% \begin{macro}{\@addmargin} +% \changes{v2.8q}{2001/11/29}{Neu} +% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unver"andert} +% Der Rest wird von diesem Makro erledigt. +% \begin{macrocode} +\newenvironment{addmargin}{% + \@tempswafalse\@addmargin + }{\endlist} +\newenvironment{addmargin*}{% + \@tempswafalse + \if@twoside\ifthispageodd{}{\@tempswatrue}\fi + \@addmargin + }{\endlist} +\newcommand*{\@addmargin}[2][\@tempa]{% + \@tempcnta=\@listdepth + \list{}{% + \if@tempswa + \def\@tempa{\leftmargin}% + \setlength{\leftmargin}{#2}% + \setlength{\rightmargin}{#1}% + \else + \def\@tempa{\rightmargin}% + \setlength{\rightmargin}{#2}% + \setlength{\leftmargin}{#1}% + \fi + \setlength{\listparindent}{\parindent}% + \setlength{\itemsep}{\parskip}% + \setlength{\itemindent}{\z@}% + \setlength{\topsep}{\z@}% + \setlength{\parsep}{\parskip}% + \setlength{\partopsep}{\parskip}% + \let\makelabel\@gobble + \setlength{\labelwidth}{\z@} + \@listdepth=\@tempcnta% + }% + \item[]% + } +% \end{macrocode} +% \end{macro} +% \end{environment} +% \end{environment} +% +% +% \subsection{Abstract (Zusammenfassung)} +% \begin{environment}{abstract} +% |scrartcl| und |scrreprt| bieten die M"oglichkeit einer Zusammenfassung, +% eines sogenannten Abstracts. Wenn eine Titelseite verlangt wurde, +% wird auch die Zusammenfassung auf eine eigene Seite gesetzt. +% +% |scrbook| kennt kein Abstract. +% \changes{v2.3a}{1995/07/08}{\cs{@endparpenalty} zur Verhinderung eines +% Seitenumbruchs nach dem Abstract-Kopf +% eingef"ugt.} +% \changes{v2.3g}{1996/01/14}{\cs{@beginparpenalty} zur Verhinderung eines +% Seitenumbruchs vor dem Abstract-Kopf +% eingef"ugt.} +% \changes{v2.7a}{2001/01/04}{Statt \cs{section*} wird nun \cs{addsec*} +% verwendet, damit die Kolumnentitel korrekt +% behandelt werden.} +% \begin{macrocode} +%<*!scrbook&!scrlettr> +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \if@abstrt + \begin{center} + \normalfont\sectfont\nobreak\abstractname + \@endparpenalty\@M + \end{center}\fi} + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn\if@abstrt + \addsec*{\abstractname}\fi% + \else + \if@abstrt + \small + \begin{center}% + {\normalfont\sectfont\nobreak\abstractname + \vspace{-.5em}\vspace{\z@}}% + \end{center}\fi% + \quotation + \fi} + {\if@twocolumn\else\endquotation\fi} +\fi +% +% \end{macrocode} +% \end{environment} +% +% \subsection{Umgebung f"ur die Titelseite} +% +% \begin{environment}{titlepage} +% Die Titelseite bedarf ebenfalls einer gesonderter Umgebung. Beim +% zweispaltigen Layout soll die Titelseite z.\,B. einspaltig gedruckt +% werden. Briefe kennen keine Titelseiten also auch nicht diese +% Umgebung. +% \begin{macrocode} +%<*!scrlettr> +\newenvironment{titlepage} + {% +% \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \if@compatibility + \setcounter{page}{0} + \fi}% + {\if@restonecol\twocolumn \else \newpage \fi + } +% +% \end{macrocode} +% \end{environment} +% +% \subsection{Randmarkierung} +% \begin{macro}{\marginline} +% Das \textsf{Script} Paket stellt zus"atzlich ein Randzeilenmakro zur +% Verf"ugung, das je nach gerader oder ungerader Seite in doppelseitigen +% Layout rechts- oder linksb"undig gesetzt werden mu"s. +% \changes{v2.4l}{1997/02/06}{Die Definition mit Hilfe des optionalen +% Parameters von \cs{marginpar} deutlich +% vereinfacht.} +% \changes{v2.8q}{2001/11/27}{Fehlende Klammern erg"anzt} +% \begin{macrocode} +\newcommand\marginline[1]{\marginpar[\raggedleft{#1}]{\raggedright #1}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Anhang} +% \begin{macro}{\appendix} +% Wird der Anhang aktiviert, so werden Kapitel zuk"unftig mit Buchstaben +% "`numeriert"'. Briefe kennen keinen Anhang. +% \changes{v2.2d}{1995/05/28}{\texttt{scrartcl} ben"otigt keinen Z"ahler +% f"ur chapter.} +% \changes{v2.3c}{1995/08/06}{Alternative Numerierung bei Verwendung +% eines Anhangs.} +% \changes{v2.8}{2001/06/15}{\cs{appendixmore} wird beachtet} +% \changes{v2.8e}{2001/07/10}{\cs{@altsecnumformattrue} wird nicht +% l"anger ausgef"uhrt} +% \changes{v2.8o}{2001/09/19}{\cs{par} eingef"ugt} +% \begin{macrocode} +%<*!scrlettr> +\newcommand*\appendix{\par% +%<*scrartcl> + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \renewcommand*\thesection{\@Alph\c@section}% +% +%<*scrreprt|scrbook> + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand*\@chapapp{\appendixname}% + \renewcommand*\thechapter{\@Alph\c@chapter}% +% + \@ifundefined{appendixmore}{}{\appendixmore}} +% +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Flie"sumgebungen} +% +% Briefe kennen keine Flie"sumgebungen +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% F"ur die Flie"sumgebungen m"ussen verschiedene Konstanten definiert +% werden, die Aufteilung zwischen Text und Flie"sumgebung und +% "ahnliches regeln. +% +% \begin{environment}{figure} +% \changes{v2.2c}{1995/05/25}{Abbildungsausgabe auf CJK umgestellt.} +% \changes{v2.8h}{2001/07/19}{\cs{caption} wird explizit zu +% \cs{captionbelow}} +% Zun"achst werden "`figures"', also Abbildungen behandelt. +% \begin{Counter}{figure} +% \begin{macro}{\thefigure} +% Daf"ur wird ein neuer Z"ahler ben"otigt, der bei der Buch- und der +% Bericht-Klasse mit \cs{chapter} zur"uckgesetzt wird. +% \begin{macro}{\fps@figure} +% Die Standardplatzierung f"ur Abbildungen ist \emph{t}op, +% \emph{b}ottom, \emph{p}age. +% \begin{macro}{\ftype@figure} +% Um die verschiedenen \emph{float}-Typen unterscheiden zu k"onnen, +% ben"otigen sie eine Nummer. Abbildungen bekommen hier willk"urlich +% die Nummer 1. +% \begin{macro}{\ext@figure} +% Die Extension der Datei f"ur das Verzeichnis. +% \begin{macro}{\fnum@figure} +% Die Ausgabe der Abbildungsnummer. +% \begin{macrocode} +%\newcounter{figure}[chapter] +%\newcounter{figure} +\renewcommand*\thefigure{% +% \thechapter.% + \@arabic\c@figure} +\newcommand*{\fps@figure}{tbp} +\newcommand*{\ftype@figure}{1} +\newcommand*{\ext@figure}{lof} +\newcommand*{\fnum@figure}{\figureformat} +\newenvironment{figure} + {\let\caption\captionbelow\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\let\caption\captionbelow\@dblfloat{figure}} + {\end@dblfloat} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{environment} +% +% \begin{environment}{table} +% \changes{v2.2c}{1995/05/25}{Tabellenausgabe auf CJK umgestellt.} +% \changes{v2.8h}{2001/07/19}{Bei Tabellen kann der Default f"ur +% \cs{caption} von Unter- auf +% "Uberschriften ge"andert werden} +% Auch verschiebbare Tabellen sind m"oglich. +% \begin{Counter}{table} +% \begin{macro}{\thetable} +% \begin{macro}{\fps@table} +% \begin{macro}{\ftype@table} +% \begin{macro}{\ext@table} +% \begin{macro}{\fnum@table} +% Die einzelnen Makros +% daf"ur werden entsprechend denen f"ur Abbildungen definiert. +% \begin{macrocode} +%\newcounter{table} +%\newcounter{table}[chapter] +\renewcommand*\thetable{% +% \thechapter.% + \@arabic\c@table} +\newcommand*{\fps@table}{tbp} +\newcommand*{\ftype@table}{2} +\newcommand*{\ext@table}{lot} +\newcommand*{\fnum@table}{\tableformat} +\newenvironment{table} + {\if@tablecaptionabove\let\caption\captionabove% + \else\let\caption\captionbelow\fi\@float{table}} + {\end@float} +\newenvironment{table*} + {\if@tablecaptionabove\let\caption\captionabove% + \else\let\caption\captionbelow\fi\@dblfloat{table}} + {\end@dblfloat} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{environment} +% +% +% \begin{macro}{\ifthispageodd} +% \changes{v2.8q}{2001/11/22}{Neu} +% \changes{v2.9l}{2002/03/28}{stabilisiert} +% H"aufig wird mit |\ifodd\value{page}| getestet, ob man sich gerade +% auf einer rechten oder einer linken Seite befindet. Dummerweise +% funktioniert das aber genaugenommen nur zuf"allig manchmal. Ob man +% sich auf einer linken oder einer rechten Seite befindet, ergibt sich +% n"amlich erst bei der Ausgabe. Deshalb wird hier ein Makro +% definiert, das "uber eine Art Label-Mechanismus arbeitet. Es werden +% bewusst keine echten |\label| und |\pageref| verwendet, weil diese +% Befehle von verschiedenen Paketen manipuliert werden. +% +% \begin{macro}{\new@tpo@label} +% \changes{v2.8q}{2001/11/22}{Neu} +% Definition eines neuen \emph{true}-\emph{page}-\emph{odd} +% Labels. Wird in der \texttt{aux}-Datei verwendet. +% \begin{macrocode} +\newcommand*{\new@tpo@label}[2]{% + \expandafter\gdef\csname scr@tpo@#1\endcsname{#2}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ref@tpo@label} +% \changes{v2.8q}{2001/11/22}{Neu} +% Dieses Makro referenziert ein \emph{true}-\emph{page}-\emph{odd} +% Label. Ist das Label nicht definiert, so wird stattdessen the +% aktuelle Seitenzahl verwendet. +% \begin{macrocode} +\newcommand*{\ref@tpo@label}[1]{% + \expandafter\ifx\csname scr@tpo@#1\endcsname\relax\value{page}% + \else\csname scr@tpo@#1\endcsname\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scr@tpo} +% \changes{v2.8q}{2001/11/22}{Neu} +% Es wird ein Z"ahler ben"otigt, der die aktuelle Nummer der Anfrage +% beinhaltet. +% \begin{macrocode} +\newcommand*{\scr@tpo}{0} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\is@thispageodd} +% \changes{v2.8q}{2001/11/22}{Neu} +% \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}} +% Dieses Makro macht die eigentliche Arbeit. Es funktioniert wie ein +% normales \cs{iffalse} oder \cs{iftrue}. Da "uber die +% \texttt{aux}-Datei gearbeitet wird, funktioniert das Ganze nur, wenn +% die Datei auch geschrieben wird und min. zwei \LaTeX-L"aufe +% erfolgen. +% \begin{macrocode} +\newcommand*{\is@thispageodd}{% + \begingroup% + \@tempcnta=\scr@tpo% + \advance\@tempcnta by\@ne% + \xdef\scr@tpo{\the\@tempcnta}% + \@bsphack + \protected@write\@auxout{}{% + \string\new@tpo@label{\scr@tpo}{\noexpand\the\value{page}}}% + \@esphack + \count@\ref@tpo@label{\scr@tpo}\relax + \ifodd\count@ + \aftergroup\thispagewasoddtrue + \else + \aftergroup\thispagewasoddfalse + \fi + \endgroup +} +% \end{macrocode} +% Damit wenigstens halbwegs getestet werden kann, ob ein neuer Lauf +% durchgef"uhrt werden muss, wird hier noch eine weitere Information +% in die \texttt{aux}-Datei geschrieben und auch gleich der +% entsprechende Test vorgenommen. +% \begin{macrocode} +\AtEndDocument{% + \if@filesw\immediate\write\@auxout{% + \string\gdef\string\scr@tpo@lst{\scr@tpo}}\fi% + \ifx\scr@tpo@lst\scr@tpo\else\ifnum \scr@tpo>0 + \ClassWarningNoLine{% +% scrbook% +% scrreprt% +% scrartcl% + }{Rerun to get odd- an even-page-stuff right}% + \fi\fi + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifthispagewasodd} +% \changes{v2.9l}{2003/01/20}{neuer Schalter} +% \begin{macro}{\thispagewasoddtrue} +% \begin{macro}{\thispagewasoddfalse} +% Dieser Schalter speichert auf Rolf Niepraschks speziellen Wunsch die +% letzte Entscheidung von \cs{ifthispageodd}. Vor dem ersten +% \cs{ifthispageodd} ist der Zustand undefiniert. Es ist auch nicht +% garantiert, dass die Entscheidung noch zutreffend ist. +% \begin{macrocode} +\newif\ifthispagewasodd +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Nun fehlt nur noch das eigentliche oben versprochene +% Anwendermacro. Das ist nun aber auch kein Problem mehr: +% \begin{macrocode} +\newcommand{\ifthispageodd}{% + \is@thispageodd + \ifthispagewasodd + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\caption} +% \changes{v2.2c}{1995/05/25}{Flie"stitel auf CJK umgestellt.} +% Es ist m"oglich, die Flie"sumgebungen mit einem Titel und einer +% Beschreibung zu versehen. Diese wird vom ggf. etwas abgesetzt. +% \begin{Length}{abovecaptionskip} +% \begin{Length}{belowcaptionskip} +% Um wieviel ist in zwei L"angenregistern gespeichert: +% \begin{macrocode} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +% \end{macrocode} +% \end{Length} +% \end{Length} +% \begin{macro}{\if@captionabove} +% \changes{v2.8h}{2001/07/19}{Neu} +% Ob es sich um eine Unter- oder "Uberschrift handelt und also +% \cs{abovecaptionskip} davor und \cs{belowcaptionskip} danach steht +% oder umgekehrt, wird "uber diesen Schalter gesteuert. Voreingestellt +% sind Unterschriften. +% \begin{macrocode} +\newif\if@captionabove\@captionabovefalse +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@caption} +% \changes{v2.8h}{2001/07/19}{Neu} +% \begin{macro}{\captionabove} +% \changes{v2.8h}{2001/07/19}{Neu} +% \begin{macro}{\captionbelow} +% \changes{v2.8h}{2001/07/19}{Neu} +% Damit "uberhaupt zwischen Unter- und "Uberschriften unterschieden +% werden kann, muss zun"achst das Originalmakro gesichert werden. Dies +% geschieht erst zu Beginn des Dokuments, damit Pakete ggf. noch ihre +% eigenen Definitionen von \cs{caption} vornehmen k"onnen. Das +% \texttt{hyperref}-Paket ist so ein Kandidat. +% \begin{macrocode} +\newcommand{\scr@caption}{} +\AtBeginDocument{\let\scr@caption\caption} +% \end{macrocode} +% \end{macro} +% Jetzt ist es m"oglich durch einfaches Umlegen des Schalters f"ur die +% korrekte Darstellung zu sorgen: +% \begin{macrocode} +\newcommand{\captionabove}{\@captionabovetrue\scr@caption} +\newcommand{\captionbelow}{\@captionabovefalse\scr@caption} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{environment}{captionbeside} +% \changes{v2.8q}{2001/11/22}{Neu} +% Um einiges komplizierter als die Beschreibung unter oder "uber die +% Tabelle oder Abbildung zu setzen, ist der Versuch, sie daneben zu +% setzen. Dies funktioniert frunds"atzlich auch nicht mit +% \texttt{longtable}-Tabellen. +% +% \begin{macro}{\scap@pos} +% \changes{v2.8q}{2001/11/22}{Neu} +% Hier wird gespeichert, ob die Beschreibung links oder rechts vom +% Rest stehen soll. Voreingestellt ist rechts davon. +% \begin{macrocode} +\newcommand*{\scap@pos}{r} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@valign} +% \changes{v2.8q}{2001/11/22}{Neu} +% Hier wird gespeichert, ob die beiden Boxen (siehe Definition der +% Umgebung) \emph{\textbf{t}op}, \emph{\textbf{b}ottem} oder +% \emph{\textbf{c}enter} ausgerichtet werden sollen. Andere Buchstaben +% sind nicht erlaubt. Voreingestellt ist \emph{\textbf{b}ottem}. +% \begin{macrocode} +\newcommand*{\scap@valign}{b} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@caption} +% \changes{v2.8q}{2001/11/22}{Neu} +% Die Beschreibung, die der Umgebung als Parameter "ubergeben wird, +% muss zwischengespeichert werden. Hier wird lediglich das Makro +% daf"ur reserviert. +% \begin{macrocode} +\newcommand*{\scap@caption}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@width} +% \changes{v2.8q}{2001/11/22}{Neu} +% Die Breite, die Tabelle bzw. Abbildung einschlie"slich Beschreibung +% und insgesamt haben d"urften. Voreingestellt ist die gesamte +% verf"ugbare Breite. +% \begin{macrocode} +\newcommand*{\scap@width}{\linewidth} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@move} +% \changes{v2.8q}{2001/11/22}{Neu} +% Der Wert, um den die Tabelle bzw. Abbildung einschlie"slich +% Beschreibung nach rechts bzw. au"sen verschoben +% werden. Voreingestellt ist keine Verschiebung. +% \begin{macrocode} +\newcommand*{\scap@move}{\z@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@currentlabel} +% \changes{v2.8q}{2001/11/24}{Neu} +% Das |\caption| innerhalb einer Umgebung (|\parbox| und +% |captionbeside|) aufgerufen wird, w"urde ein |\label|, das zwar +% innerhalb der Gleitumgebung aber nach der |captionbeside|-Umgebung +% eingef"ugt wird, nicht die Gleitumgebung, sondern die umgebende +% Referenzebene referenzieren. Damit das nicht geschieht, wird in der +% |captionbeside|-Umgebung in der |\parbox| die aktuelle Referenz +% |\@currentlabel| in dem globalen Makro |\scap@currentlabel| +% zwischengespeichert und am Ende der |captionbeside|-Umgebung mit +% Hilfe von |\aftergroup| nach dem Ende der Umgebung +% wiederhergestellt. Da die |captionbeside|-Umgebung ohnehin nicht +% geschaltelt werden kann, funktioniert das problemlos. F"ur diese +% Aktion wird hier ein globales Makro reserviert. +% \begin{macrocode} +\newcommand*{\scap@currentlabel}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifscap@alt} +% \changes{v2.8q}{2001/11/22}{Neuer Schalter} +% \begin{macro}{\scap@alttrue} +% \begin{macro}{\scap@altfalse} +% Der Schalter, der angibt, ob die Verschiebung |\scap@move| im +% doppelseitigen Modus aus linken Seiten vom rechten Rand aus nach +% links erfolgen soll. +% \begin{macrocode} +\newif\ifscap@alt +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@captionbeside} +% \changes{v2.8q}{2001/11/22}{Neu} +% \begin{macro}{\@@captionbeside} +% \changes{v2.8q}{2001/11/22}{Neu} +% \begin{macro}{\@@@captionbeside} +% \changes{v2.8q}{2001/11/22}{Neu} +% \begin{macro}{\@@@@captionbeside} +% \changes{v2.8q}{2001/11/22}{Neu} +% Die Umgebung soll einmal folgende Parameter besitzen: +% \begin{description} +% \item[(optional)] Verzeichniseintrag +% \item[(obligatorisch)] Beschreibung +% \item[(optional)] lokaler Wert f"ur |\scap@pos| +% \item[(optional)] lokaler Wert f"ur |\scap@width| +% \item[(optional)] lokaler Wert f"ur |\scap@move| +% \item[(*)] lokaler Wert f"ur \cs{ifscap@alt} (Stern gesetzt +% entspricht |\scap@alttrue| +% \end{description} +% Wie man sieht, sollte man bei Angabe aller optionalen Parameter auch +% bewusst den Stern setzen oder darauf verzichten. +% +% Damit alle Parameter ausgewertet werden k"onnen, werden einige +% Hilfsmakros ben"otigt. +% \begin{macrocode} +\newcommand*{\@captionbeside}{} +\long\def\@captionbeside[#1]#2{% + \@ifnextchar [%] + {\@@captionbeside[{#1}]{#2}} + {\c@pti@nb@sid@[{#1}]{#2}}% + } +\newcommand*{\@@captionbeside}{} +\long\def\@@captionbeside[#1]#2[#3]{% + \def\scap@pos{#3}% + \@ifnextchar [%] + {\@@@captionbeside[{#1}]{#2}} + {\c@pti@nb@sid@[{#1}]{#2}}% + } +\newcommand*{\@@@captionbeside}{} +\long\def\@@@captionbeside[#1]#2[#3]{% + \def\scap@width{#3}% + \@ifnextchar [%] + {\@@@@captionbeside[{#1}]{#2}} + {\setlength{\@tempdima}{#3}% + \addtolength{\@tempdima}{-\linewidth}% + \setlength{\@tempdima}{-.5\@tempdima}% + \edef\scap@move{\the\@tempdima}% + \c@pti@nb@sid@[{#1}]{#2}}% + } +\newcommand*{\@@@@captionbeside}{} +\long\def\@@@@captionbeside[#1]#2[#3]{% + \def\scap@move{#3}% + \@ifstar + {\scap@alttrue\c@pti@nb@sid@[{#1}]{#2}} + {\scap@altfalse\c@pti@nb@sid@[{#1}]{#2}}% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c@pti@nb@sid@b@x} +% \changes{v2.8q}{2001/11/22}{Neu} +% Es wird noch eines der kostbaren Boxregister ben"otigt. +% \begin{macrocode} +\newbox\c@pti@nb@sid@b@x +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@pti@nb@sid@} +% \changes{v2.8q}{2001/11/22}{Neu} +% Hier wird nun die Umgebung eigentlich ge"offnet, w"ahrend zuvor nur +% die Parameter ausgewertet wurden. +% \begin{macrocode} +\newcommand{\c@pti@nb@sid@}{} +\long\def\c@pti@nb@sid@[#1]#2{% + \def\scap@caption{\captionbelow[{#1}]{#2}}% + \begin{lrbox}{\c@pti@nb@sid@b@x}% + } +% \end{macrocode} +% \end{macro} +% +% Jetzt endlich k"onnen wir uns auf die Umgebung st"urzen. Die +% Umgebung zu starten ist einfach. Es wird ein Doppelargumentmakro +% ausgef"uhrt. +% \begin{macrocode} +\newenvironment*{captionbeside}{% + \@dblarg\@captionbeside% + }{% +% \end{macrocode} +% Komplizierter ist die Beendigung der Umgebung. Hier f"allt der +% gesamte Satzaufwand an. +% \changes{v2.9a}{2002/06/27}{\cs{if@thispageodd} durch +% \cs{ifthispageodd} ersetzt} +% \begin{macrocode} + \end{lrbox}% + \settowidth{\@tempdima}{\usebox\c@pti@nb@sid@b@x}% + \setlength{\@tempdimb}{\scap@width}% + \addtolength{\@tempdimb}{-\@tempdima}% + \addtolength{\@tempdimb}{-\columnsep}% + \ifdim \@tempdimb<2em + \ClassWarning{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + caption beside will be very, very small.\MessageBreak + In most cases this will result in overfull and + underfull\MessageBreak + \string\hbox\space messages% + }% + \fi% + \onelinecaptionsfalse + \setcapwidth[r]{\@tempdimb}% + \let\@tempa\scap@pos + \setlength{\@tempdimc}{\scap@move}% + \if i\scap@pos\def\@tempa{l}\fi + \if o\scap@pos\def\@tempa{r}\fi + \if@twoside + \ifthispageodd{}{% + \if o\scap@pos\def\@tempa{l}\fi + \if i\scap@pos\def\@tempa{r}\fi + \ifscap@alt + \addtolength{\@tempdimc}{\scap@width}% + \addtolength{\@tempdimc}{-\linewidth}% + \setlength{\@tempdimc}{-\@tempdimc}% + \fi + }% + \fi + \hspace*{\@tempdimc}% +% \end{macrocode} +% \changes{v2.9p}{2002/12/10}{\cs{@temdima} replaced by +% \cs{wd}\cs{c@pti@nb@sid@b@x}, because \cs{@temdima} would be changed} +% \begin{macrocode} + \if l\@tempa% + \rlap{% + \parbox[\scap@valign]{\@tempdimb}{\scap@caption + \global\let\scap@currentlabel\@currentlabel}% + \nobreak\hskip\columnsep% + \parbox[\scap@valign]{\wd\c@pti@nb@sid@b@x}{\usebox\c@pti@nb@sid@b@x}% + }% + \else + \rlap{% + \parbox[\scap@valign]{\wd\c@pti@nb@sid@b@x}{\usebox\c@pti@nb@sid@b@x}% + \nobreak\hskip\columnsep% + \parbox[\scap@valign]{\@tempdimb}{\scap@caption + \global\let\scap@currentlabel\@currentlabel}% + }% + \fi + \par + \aftergroup\let\aftergroup\@currentlabel\aftergroup\scap@currentlabel + } +% \end{macrocode} +% \end{environment} +% +% +% \begin{macro}{\@makecaption} +% \changes{v2.3a}{1995/07/08}{\cs{setbox}\cs{tempboxa}\cs{hbox} durch +% \cs{sbox}\cs{@tempboxa} ersetzt.} +% \changes{v2.3a}{1995/07/08}{Minipage-Flag zur"uckgesetzt (ist das ok?).} +% \changes{v2.3f}{1995/12/09}{Fontumschaltung einheitlich f"ur lange und +% kurze Unter-/"Uberschriften.} +% \changes{v2.5g}{1999/10/09}{Neben den komplett h"angenden +% Unter-/"Uberschriften sind nun auch nicht +% h"angende oder teilweise h"angende m"oglich.} +% Bis Version 2.5f sah die Definition wie folgt aus. +% \begin{verbatim} +% \long\def\@makecaption#1#2{% +% \vskip\abovecaptionskip +% \sbox\@tempboxa{{\caplabelfont #1\captionformat}{\capfont #2}}% +% \ifdim \wd\@tempboxa >\hsize +% \@hangfrom{{\caplabelfont #1\captionformat}}{\capfont #2\par} +% \else +% \global \@minipagefalse +% \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% +% \fi +% \vskip\belowcaptionskip} +% \end{verbatim} +% \begin{macro}{\ifdofullc@p} +% Nun jedoch wird das ganze etwas komplizierter. Als erstes wird ein +% Schalter ben"otigt, der angibt, ob auf die volle L"ange des +% "`Labels"' eingezogen werden soll, oder nicht: +% \begin{macrocode} +\newif\ifdofullc@p +% \end{macrocode} +% wobei die Standardeinstellung der volle Einzug ist, um zum bisherigen +% Verhalten kompatibel zu bleiben. +% \begin{macrocode} +\dofullc@ptrue +% \end{macrocode} +% \end{macro} +% \begin{macro}{\if@capbreak} +% \changes{v2.8j}{2001/07/30}{Neu} +% Au"serdem gibt es einen Schalter, der angibt, ob nach dem Label ein +% Umbruch erfolgen soll. Dies ist normalerweise nicht der Fall. +% \begin{macrocode} +\newif\if@capbreak\@capbreakfalse +% \end{macrocode} +% \end{macro} +% \begin{macro}{\setcapindent} +% \changes{v2.8j}{2001/07/30}{\cs{if@capbreak} wird verwendet} +% \changes{v2.8l}{2001/08/17}{\cs{edef}\cs{cap@indent} statt +% \cs{def}\cs{cap@indent}} +% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von +% \texttt{caption2} umdefiniert} +% Dann wird weiter ein Befehl ben"otigt, mit dem der Benutzer die +% Weite des Einzugs selbst einstellen kann. Da intern f"ur die Weite +% ein Makro verwendet werden soll, findet hier sicherheitshalber eine +% Zuweisung an eine Dimension statt. So sollten Fehlermeldungen hier +% und nicht erst bei Verwendung auftauchen. Nat"urlich mu"s hier auch +% der automatische Einzug abgeschaltet werden. In der Sternform wird +% au"serdem daf"ur gesorgt, da"s zwischen "`Label"' und Beschreibung +% ein Umbruch erfolgt. In der normalen Version wird stattdessen f"ur +% Kompatibilit"at zu fr"uheren Versionen gesorgt. +% \begin{macro}{\@setcapindent} +% \begin{macro}{\@@setcaptindent} +% F"ur die Implementierung der Sternform werden zwei interne Makros +% ben"otigt. +% \begin{macrocode} +\newcommand*{\setcapindent}{\@ifstar{\@@setcapindent}{\@setcapindent}} +\newcommand*{\@setcapindent}[1]{ + \setlength{\@tempdima}{#1}% + \ifdim\@tempdima>\hsize\addtolength{\@tempdima}{-\hsize}\@capbreaktrue + \else\@capbreakfalse\fi + \edef\cap@indent{\the\@tempdima} + \dofullc@pfalse +} +\newcommand*{\@@setcapindent}[1]{ + \setlength{\@tempdima}{#1}% + \edef\cap@indent{\the\@tempdima} + \dofullc@pfalse\@capbreaktrue +} +\AfterPackage{caption2}{% + \renewcommand*{\setcapindent}{% + \ClassWarning{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + You're using package caption2.\MessageBreak + Because of this you should also use \string\captionstyle\space + and\MessageBreak + set length \string\captionindent\space instead if + using\MessageBreak + \string\setcapindent + } + \captionstyle{indent}% + \@ifstar{\setlength{\captionindent}}{\setlength{\captionindent}}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\setcaphanging} +% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von +% \texttt{caption2} umdefiniert} +% Andererseits soll es auch m"oglich sein, nachtr"aglich wieder den +% automatischen Einzug einzuschalten. Daf"ur gibt es ein weiteres Makro. +% \begin{macrocode} +\newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse} +\AfterPackage{caption2}{% + \renewcommand*{\setcaphanging}{% + \ClassWarning{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + You're using package caption2.\MessageBreak + Because of this you should also use \string\captionstyle\MessageBreak + instead of \string\setcaphang + } + \captionstyle{hang}}} +% \end{macrocode} +% \end{macro} +% +% +% Nun aber zur neuen Definition der "Uber-/Unterschriften. Zun"achst geht +% alles wie gehabt. +% \changes{v2.5g}{1999/10/09}{\cs{@makecaption} per \cs{newcommand} +% definiert statt mit \cs{long}\cs{def}.} +% \changes{v2.8h}{2001/07/19}{Unterscheidung zwischen "Uber- und +% Unterschriften} +% \changes{v2.8j}{2001/07/30}{\cs{@makecaption} verwendet +% \cs{@@makecaption}} +% \changes{v2.8q}{2001/11/17}{die Sonderbehandlung f"ur einzeilige +% \emph{caption}s ist abschaltbar} +% \changes{v2.8q}{2001/11/17}{\emph{caption}s k"onnen in ihrer Breite +% beschr"ankt werden} +% \changes{v2.9q}{2004/01/30}{fehlendes \texttt{\%} eingef"ugt} +% \begin{macrocode} +\newcommand{\@makecaption}[2]{% + \if@captionabove\vskip\belowcaptionskip\else\vskip\abovecaptionskip\fi + \@@makecaption\@firstofone{#1}{#2}% + \if@captionabove\vskip\abovecaptionskip\else\vskip\belowcaptionskip\fi} +% \end{macrocode} +% \begin{macro}{\@@makecaption} +% Tats"achlich gesetzt wird die "Uber- bzw. Unterschrift mit diesem +% Makro. Dabei muss der erste Parameter entweder \verb|\@gobble| oder +% \verb|\@firstofone| sein. +% +% \begin{macro}{\cap@width} +% \changes{v2.8q}{2001/11/17}{Neues internes Makro} +% \begin{macro}{\cap@left} +% \changes{v2.8q}{2001/11/17}{Neues internes Makro} +% \begin{macro}{\cap@right} +% \changes{v2.8q}{2001/11/17}{Neues internes Makro} +% Die Breite der mehrzeiligen bzw. die maximale Breite der einzeiligen +% \emph{caption}s sowie das Makro das links und rechts von der Box mit +% der mehrzeiligen \emph{caption} aufgerufen wird. In der +% Voreinstellung wird f"ur Zentrierung gesorgt. +% \begin{macrocode} +\newcommand*{\cap@width}{\hsize} +\newcommand*{\cap@left}{\hfill} +\newcommand*{\cap@right}{\hfill} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\setcapwidth} +% \changes{v2.8q}{2001/11/17}{Neue} +% \changes{v2.9a}{2002/06/27}{\cs{if@thispageodd} durch +% \cs{ifthispageodd} ersetzt} +% \changes{v2.9l}{2003/01/28}{\cs{edef}\cs{@tempb} durch +% \cs{def}\cs{@tempb} ersetzt} +% Hier wird |\cap@width| gesetzt. Dabei werden optional auch +% |\cap@left| und |\cap@right| angepasst. +% \begin{macrocode} +\newcommand*{\setcapwidth}[2][]{% + \begingroup% + \setlength{\@tempdima}{#2}% + \edef\@tempa{\endgroup\def\noexpand\cap@width{\the\@tempdima}}% + \@tempa% + \begingroup + \expandafter\def\expandafter\@tempa\expandafter{#1}% + \def\@tempb{c}\ifx\@tempa\@tempb + \endgroup% + \def\cap@margin{\let\cap@left=\hfill\let\cap@right=\hfill}% + \else + \def\@tempb{l}\ifx\@tempa\@tempb + \endgroup% + \def\cap@margin{\let\cap@left=\relax\let\cap@right\hfill}% + \else + \def\@tempb{r}\ifx\@tempa\@tempb + \endgroup% + \def\cap@margin{\let\cap@left=\hfill\let\cap@right=\relax}% + \else + \def\@tempb{i}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{% + \let\cap@left=\relax + \let\cap@right=\hfill + \if@twoside + \ifthispageodd{}{% + \let\cap@left=\hfill + \let\cap@right=\relax + }% + \fi + }% + \else + \def\@tempb{o}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{% + \let\cap@left=\hfill + \let\cap@right=\relax + \if@twoside + \ifthispageodd{}{% + \let\cap@left=\relax + \let\cap@right=\hfill + }% + \fi + }% + \else + \ifx \@tempa\@empty\else + \ClassError{% +% scrbook% +% scrreprt% +% scrartcl% + }{% + unknown optional position argument% + }{% + You've used `#1' as position argument at + \string\setcaptionwidth,\MessageBreak + but only ONE of `c', `l', `r', `i`, `o` ist + allowed.\MessageBreak + Argument will be ignored, if you'll continue.% + }% + \fi% + \endgroup% + \fi\fi\fi\fi\fi% + } +% \end{macrocode} +% Falls |caption2| geladen wird, "andert sich die Funktion. Das +% optionale Argument wird dann ignorriert. +% \begin{macrocode} +\AfterPackage{caption2}{% + \renewcommand*{\setcapwidth}[2][]{% + \ClassWarning{% + scrbook% + }{% + Ignorring optional argument of \string\setcapwidth!\MessageBreak + You're using package caption2.\MessageBreak + Because of this you should also use + \string\setcaptionwidth\MessageBreak + instead of \string\setcapwidth\MessageBreak + } + \setcaptionwidth{#2}}}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\cap@margin} +% \changes{v2.8q}{2001/11/17}{Neues internes Makro} +% Dieses Makro beinhaltet nicht den Wert der R"ander, sondern das +% Makro, mit dem innerhalb von |\@@makecaption| die Makros |\cap@left| +% und |\cap@right| neu definiert werden. Dies geschieht nur, wenn die +% R"ander mit |\setcapmargin| gesetzt werden. Vordefiniert ist also +% keinerlei Aktion. +% \begin{macrocode} +\newcommand*{\cap@margin}{} +\let\cap@margin=\relax% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\setcapmargin} +% \changes{v2.8q}{2001/11/17}{Neue} +% \begin{macro}{\@setcapmargin} +% \changes{v2.8q}{2001/11/17}{Neue} +% \changes{v2.9a}{2002/06/27}{\cs{if@thispageodd} durch +% \cs{ifthispageodd} ersetzt} +% \begin{macro}{\@@setcapmargin} +% \changes{v2.8q}{2001/11/17}{Neue} +% Statt die Breite der \emph{caption} zu setzen, k"onnen auch die +% R"ander gesetzt werden. In der Sternvariante werden im zweiseitigen +% Modus die R"ander auf linken Seiten vertauscht. +% \begin{macrocode} +\newcommand*{\setcapmargin}{\@ifstar{\@setcapmargin}{\@@setcapmargin}} +\newcommand*{\@setcapmargin}[2][\@tempdimb]{% + \def\cap@margin{% + \onelinecaptionsfalse% + \begingroup% + \setlength{\@tempdima}{\hsize}% + \setlength{\@tempdimb}{#2}% + \addtolength{\@tempdima}{-\@tempdimb}% + \setlength{\@tempdimc}{#1}% + \addtolength{\@tempdima}{-\@tempdimc}% + \edef\@tempa{\endgroup% + \def\noexpand\cap@width{\the\@tempdima}% + \noexpand\if@twoside% + \noexpand\ifthispageodd{% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}% + }{% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimb}}% + }% + \noexpand\else% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}% + \noexpand\fi} + \@tempa}% + } +\newcommand*{\@@setcapmargin}[2][\@tempdimb]{% + \def\cap@margin{% + \onelinecaptionsfalse% + \begingroup% + \setlength{\@tempdima}{\hsize}% + \setlength{\@tempdimb}{#2}% + \addtolength{\@tempdima}{-\@tempdimb}% + \setlength{\@tempdimc}{#1}% + \addtolength{\@tempdima}{-\@tempdimc}% + \edef\@tempa{\endgroup% + \def\noexpand\cap@width{\the\@tempdima}% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}}% + \@tempa}% + } +% \end{macrocode} +% Wenn |caption2| geladen ist, "andert sich die Bedeutung. +% \begin{macrocode} +\AfterPackage{caption2}{% + \renewcommand*{\@setcapmargin}[2][\@tempdimb]{% + \setlength{\@tempdimb}{#2}% + \setlength{\@tempdima}{#1}% + \ifdim\@tempdima\@tempdimb\else + \ClassWarning{% + scrbook% + }{% + Can set only centered caption!\MessageBreak + You're using package caption2.\MessageBreak + Because of this you should also use + \string\setcaptionmargin\MessageBreak + instead of \string\setcapmargin + } + \fi + \addtolength{\@tempdimb}{\@tempdimb}% + \setcaptionmargin{.5\@tempdimb}} + \let\@@setcapmargin=\@setcapmargin + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Jetzt aber zum Eigentlichen. Die Breite der \emph{caption} muss nur +% bestimmte werden, wenn |onelinecaption| verwendet wird. Das bedeutet +% auch, dass bei |noonelinecaption| das Problem mit dem Hochz"ahlen +% der Fu"snoten nicht auftritt. +% \changes{v2.8q}{2002/05/17}{Das Problem mit doppelten Fu"snoten behoben.} +% \changes{v2.9q}{2004/01/30}{\cs{vbox} durch \cs{vtop} ersetzt} +% \changes{v2.9q}{2004/01/30}{\cs{strut} vor \cs{cap@left} und nach +% \cs{cap@right} eingef"ugt} +% \begin{macrocode} +\newcommand{\@@makecaption}[3]{% + \cap@margin% + \ifonelinecaptions% + \@tempcnta=\value{mpfootnote}\@tempcntb=\value{footnote}% + \let\scr@tmp@footnotetext=\@footnotetext + \let\@footnotetext=\@gobble + \sbox\@tempboxa{% + {\capfont#1{{\caplabelfont#2\captionformat}}% + #3}% + }% + \let\@footnotetext=\scr@tmp@footnotetext + \let\scr@tmp@footnotetext=\undefined + \setcounter{footnote}{\@tempcntb}\setcounter{mpfootnote}{\@tempcnta}% + \else + \sbox\@tempboxa{\hspace*{2\cap@width}}% + \fi + \begingroup% + \setlength{\@tempdima}{\wd\@tempboxa}% + \setlength{\@tempdima}{\cap@width}% + \ifdim \wd\@tempboxa >\@tempdima% + \strut\cap@left% + \vtop{\hsize=\cap@width% +% \end{macrocode} +% Im Fall, da"s nun also mehrzeilig gesetzt werden mu"s, ist zu +% unterscheiden, ob wie bisher voll h"angend gearbeitet werden soll +% oder nicht. In ersterem Fall machen wir das, wie bisher, allerdings +% wird der \cs{capfont} fr"uher aktiviert, damit darin auch globale +% Gr"o"sen"anderungen f"ur die "Uber/Unterschrift Platz +% finden. Au"serdem wird die die ge"anderte Parameter"ubergabe +% ber"ucksichtigt. +% \begin{macrocode} + \ifdofullc@p + {\capfont\@hangfrom{#1{{\caplabelfont#2\captionformat}}}{#3\par}} +% \end{macrocode} +% Im zweiten Fall ist nun zu unterscheiden, ob nach dem Label ein +% Umbruch erfolgen soll oder nicht. Dabei ist der Einzug zu beachten. +% Ist der Einzug negativ, so findet ebenfalls ein Umbruch statt und +% nur die erste Folgezeile wird eingezogen. +% \begin{macrocode} + \else% + \ifdim\cap@indent<\z@% + {\capfont#1{{\caplabelfont #2\captionformat\par}}\noindent% + \hspace*{-\cap@indent}#3\par} + \else% + \if@capbreak + {\capfont#1{{\caplabelfont #2\captionformat\par}}\noindent% + \@hangfrom{\hspace*{\cap@indent}}{#3\par}} + \else + {\capfont\@hangfrom{\hspace*{\cap@indent}}% + {\hspace{-\cap@indent}#1% + {{\caplabelfont#2\captionformat}}#3\par}} + \fi + \fi + \fi}% + \cap@right\strut% + \else +% \end{macrocode} +% \changes{v2.9r}{2004/06/11}{\cs{@tempboxa} neu erzeugen} +% \begin{macrocode} + \global \@minipagefalse + \sbox\@tempboxa{% + {\capfont#1{{\caplabelfont#2\captionformat}}% + #3}% + }% + \hb@xt@\hsize{\cap@left\box\@tempboxa\cap@right}% + \fi% + \endgroup} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\LT@makecaption} +% \changes{v2.8j}{2001/07/30}{Neu} +% \changes{v2.8k}{2001/08/15}{Keine Umdefinierung, wenn das +% \texttt{caption2}-Paket erkannt oder die Option \texttt{origlongtable} +% gesetzt wurde} +% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird "uber +% \textsf{KOMA-Script}-Makros bestimmt} +% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}} +% \changes{v2.9s}{2004/08/11}{vertikale Ausrichtung korrigiert} +% \begin{macro}{\LT@array} +% \changes{v2.8q}{2001/11/18}{Neu} +% \begin{macro}{\LT@caption} +% \changes{v2.8q}{2001/11/18}{Neu} +% Ab Version 2.8j wird auf vielfachen Wunsch das +% \texttt{longtable}-Paket ber"ucksichtigt. Da Pakete aber nach +% Klassen geladen werden, kann dies erst nach dem Laden des Pakets +% aktiviert werden. Die Definition entspricht der obigen. Wird das +% |caption2|-Paket nach |longtable| geladen, so wird automatisch die +% Definition von |caption2| verwendet. Wird |caption2| vor |longtable| +% geladen, so liegt voraussichtlich eine Fehlbedienung vor, auf die +% hingewiesen wird. +% \begin{macrocode} +\AfterPackage{longtable}{% + \@ifpackageloaded{caption2}{\@komalongtablefalse% + \ClassWarning{% +% scrbook}{% +% scrreprt}{% +% scrartcl}{% + you've loaded package caption2 before package\MessageBreak + longtable!\MessageBreak + Because of this package caption2 isn't able to + control\MessageBreak + \string\caption\space at longtables. After loading package + caption2\MessageBreak + KOMA-Script also doesn't control \string\caption.\MessageBreak + I think, you should load package caption2 after + package\MessageBreak + longtable% + }}{} + \if@komalongtable + \renewcommand{\LT@makecaption}[3]{% + \noalign{% + \if@captionabove + \vskip\belowcaptionskip + \else + \vskip\abovecaptionskip + \fi + }% + \LT@mcol\LT@cols c{% + \hbox to\z@{\hss\parbox[t]\linewidth{% + \@@makecaption{#1}{#2}{#3}% + \endgraf + \if@captionabove + \vskip\abovecaptionskip + \else + \vskip\belowcaptionskip + \fi + }% + \hss + }% + }% + }% + \newcommand*{\scr@LT@array}{}% + \let\scr@LT@array=\LT@array% + \renewcommand*{\LT@array}{% + \let\scr@caption=\LT@caption + \def\captionabove{\noalign{\global\@captionabovetrue}% + \scr@caption}% + \def\captionbelow{\noalign{\global\@captionabovefalse}% + \scr@caption}% + \if@tablecaptionabove + \let\LT@caption=\captionabove + \else + \let\LT@caption=\captionbelow + \fi + \scr@LT@array} + \ClassInfo{% +% scrbook}{% +% scrreprt}{% +% scrartcl}{% + longtable captions redefined} + \fi + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fs@komaabove} +% \changes{v2.8j}{2001/07/30}{Neu} +% \begin{macro}{\fs@komabelow} +% \changes{v2.8j}{2001/07/30}{Neu} +% \begin{macro}{\floatc@komascript} +% \changes{v2.8j}{2001/07/30}{Neu} +% Ab Version 2.8j werden f"ur das \texttt{float}-Paket zwei float-Stile +% Namens \texttt{komaabove} und \texttt{komabelow} definiert. Da +% m"oglicherweise auch andere +% Pakete darauf zur"uckgreifen, wird das unabh"angig von der Existenz +% von \texttt{float} getan. Verwendet wird dies innerhalb von +% KOMA-Script jedoch nicht. Es werden au"serdem interne Makros von +% \texttt{float} verwendet! +% \begin{macrocode} +\newcommand*{\fs@komaabove}{% + \let\@fs@capt\floatc@komascript + \let\@fs@pre\@empty + \def\@fs@mid{\vskip\abovecaptionskip} + \let\@fs@post\@empty + \let\@fs@iftopcapt\iftrue} +\newcommand*{\fs@komabelow}{% + \let\@fs@capt\floatc@komascript + \let\@fs@pre\@empty + \def\@fs@mid{\vskip\abovecaptionskip} + \let\@fs@post\@empty + \let\@fs@iftopcapt\iffalse} +\newcommand{\floatc@komascript}{\@@makecaption\@firstofone} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{"`Alte"' Font-Auswahlbefehle} +% +% \begin{macro}{\rm} +% \begin{macro}{\sf} +% \begin{macro}{\tt} +% \begin{macro}{\bf} +% \begin{macro}{\it} +% \begin{macro}{\sl} +% \begin{macro}{\sc} +% \begin{macro}{\sfb} +% \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch.} +% \changes{v2.3a}{1995/07/08}{Keine Unterscheidung mehr f"ur den +% Kompatibilit"atsmodus.} +% Um die Umstellung von \LaTeX\ auf \LaTeXe\ zu erleichtern, gibt es +% die alten Font-Auswahlbefehle |\rm|, |\sf|, |\tt|, |\bf|, |\it|, |\sl| +% und |\sc| auch in den \emph{classes}. Es ist zu beachten, da"s diese +% Befehle hier nach dem alten Fontauswahlverfahren arbeiten. Es werden +% also immer alle Parameter zugleich ge"andert. Somit ist zu empfehlen, +% da"s statt dieser Befehle zuk"unftig in der Regel die neuen +% |\text..|-Befehle verwendet werden. +% +% Der aus der \textsf{Script 2.0}-Familie bekannte Befehl |\sfb| ist hier +% ebenfalls definiert. +% \begin{macrocode} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{\@nomath\sfb} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cal} +% \changes{v2.3}{1995/06/25}{Der Befehl ist in \LaTeX nicht mehr definiert. +% Deshalb wird er nun neu und gleich robust +% deklariert. Daf"ur f"allt \cs{pcal} weg.} +% \changes{v2.3g}{1996/01/14}{"Uberfl"ussige Klammerpaare entfernt.} +% \begin{macro}{\mit} +% \changes{v2.3}{1995/06/25}{Der Befehl ist in \LaTeX nicht mehr definiert. +% Deshalb wird er nun neu und gleich robust +% deklariert. Daf"ur f"allt \cs{pmit} weg.} +% \changes{v2.3g}{1996/01/14}{"Uberfl"ussige Klammerpaare entfernt.} +% Die beiden Befehle |\cal| und |\mit| war bis zur \LaTeX-Version vom +% 1.12.1994 patch level 3 noch im Kernal definiert. Jetzt sind die beiden +% den classes "uberlassen. Hier ist die Definition aus den Standard-classes +% "ubernommen. +% \begin{macrocode} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Font-Variablen} +% \begin{macro}{\descfont} +% \begin{macro}{\sectfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingef"ugt} +% \begin{macro}{\pnumfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingef"ugt} +% \begin{macro}{\headfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingef"ugt} +% \begin{macro}{\capfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingef"ugt} +% \changes{v2.8n}{2001/09/06}{f"ur Briefe nicht l"anger definiert} +% \begin{macro}{\caplabelfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingef"ugt} +% \changes{v2.8n}{2001/09/06}{f"ur Briefe nicht l"anger definiert} +% \begin{macro}{\titlefont} +% \changes{v2.8p}{2001/09/22}{Neu} +% \begin{macro}{\subject@font} +% \changes{v2.8q}{2002/01/14}{Neu} +% \begin{macro}{\baddr@font} +% \changes{v2.8q}{2002/01/22}{Neu} +% Das \textsf{Script}-Paket definiert einige Font-Variablen, f"ur +% verschiedene Gestaltungsbereiche wie "Uberschriften, Unterschriften oder +% die Paginierung. +% \begin{macrocode} +\newcommand*\descfont{\sffamily\bfseries} +\newcommand*\sectfont{\normalcolor\sffamily\bfseries} +\newcommand*\pnumfont{\normalfont\normalcolor} +\newcommand*\headfont{\normalfont\normalcolor\slshape} +%\newcommand*\capfont{\normalfont\normalcolor} +%\newcommand*\caplabelfont{\normalfont\normalcolor} +\newcommand*\titlefont{\sectfont} +%\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries} +%\newcommand*{\baddr@font}{\sffamily} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\setkomafont} +% \changes{v2.8o}{2001/09/14}{Neu} +% Mit Hilfe dieses Makros kann die Schriftart von +% KOMA-Script-Elementen gesetzt werden. +% \begin{macrocode} +\newcommand*{\setkomafont}[2]{% + \@ifundefined{scr@fnt@#1}{% + \@ifundefined{scr@fnt@instead@#1}{% + \ClassError{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{font of element `#1' can't be set}{% + You've told me to redefine the font selection of the element,% + \MessageBreak% + but either no such element is known by KOMA-Script\MessageBreak + or the element does not use a special font selection} + }{% + \ClassError{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{font of element `#1' can't be set}{% + You've told me to redefine the font selection of the element,% + \MessageBreak% + but the element does not use a special font + selection. The\MessageBreak + The font of `#1' may be changed with element `\csname + scr@fnt@instead@#1\endcsname'} + }% + }{% + \expandafter\expandafter\expandafter\renewcommand% + \csname scr@fnt@#1\endcsname{#2}% + \@ifundefined{scr@fnt@wrn@#1}{}{% + \ClassWarning{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{\csname scr@fnt@wrn@#1\endcsname{#1}} + } + } +} +% \end{macrocode} +% \begin{macro}{\addtokomafont} +% \changes{v2.8p}{2001/09/22}{Neu} +% Dieses Makro funktioniert fast wie obiges, allerdings f"ugt es der +% vorhandenen Definition etwas an. +% \begin{macro}{\l@addto@macro} +% \changes{v2.8p}{2001/09/22}{Neu} +% Damit dies lokal m"oglich ist, wird eine lokal arbeitende Variante +% von \cs{g@addto@macro} ben"otigt, wie sie hier vorgestellt wird. +% \begin{macrocode} +\newcommand{\l@addto@macro}[2]{% + \begingroup% + \toks@\expandafter{#1#2}% + \edef\@tempa{\endgroup\def\noexpand#1{\the\toks@}}% + \@tempa} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newcommand*{\addtokomafont}[2]{% + \@ifundefined{scr@fnt@#1}{% + \@ifundefined{scr@fnt@instead@#1}{% + \ClassError{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{font of element `#1' can't be extended}{% + You've told me to extend the font selection of the element,% + \MessageBreak% + but either no such element is known by KOMA-Script\MessageBreak + or the element does not use a special font selection} + }{% + \ClassError{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{font of element `#1' can't be extended}{% + You've told me to extend the font selection of the element,% + \MessageBreak% + but the element does not use a special font + selection. The\MessageBreak + The font of `#1' may be changed with element `\csname + scr@fnt@instead@#1\endcsname'} + }% + }{% + \expandafter\expandafter\expandafter\l@addto@macro% + \csname scr@fnt@#1\endcsname{#2}% + \@ifundefined{scr@fnt@wrn@#1}{}{% + \ClassWarning{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{\csname scr@fnt@wrn@#1\endcsname{#1}} + } + } +} +% \end{macrocode} +% +% \begin{macro}{\usekomafont} +% \changes{v2.8p}{2001/09/28}{Neu} +% Mit Hilfe dieses Makros kann auf die Schriftart von +% KOMA-Script-Elementen umgeschaltet werden. +% \begin{macrocode} +\newcommand*{\usekomafont}[1]{% + \@ifundefined{scr@fnt@#1}{% + \@ifundefined{scr@fnt@instead@#1}{% + \ClassError{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{font of element `#1' can't be used}{% + You've told me to use the font selection of the element,% + \MessageBreak% + but either no such element is known by KOMA-Script\MessageBreak + or the element does not use a special font selection} + }{% + \ClassWarning{% +% scrartcl% +% scrreprt% +% scrbook% +% scrlttr2% + }{% + You've told me to use the font selection of the element,% + \MessageBreak% + but the element does not use a special font + selection. The\MessageBreak + The font of `#1' may be selected with element `\csname + scr@fnt@instead@#1\endcsname'.\MessageBreak + I fix this using font of `\csname + scr@fnt@instead@#1\endcsname'}% + }% + \@nameuse{scr@fnt@instead@#1}% + }{% + \@nameuse{scr@fnt@#1}% + }% + } +% \end{macrocode} +% +% \begin{macro}{\scr@fnt@descriptionlabel} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@title} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@sectioning} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@part} +% \changes{v2.8p}{2001/09/23}{Neu} +% \begin{macro}{\scr@fnt@partnumber} +% \changes{v2.8p}{2001/09/23}{Neu} +% \begin{macro}{\scr@fnt@chapter} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@wrn@chapter} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@section} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@subsection} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@subsubsection} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@paragraph} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@subparagraph} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@minisec} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@wrn@minisec} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@pagenumber} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@pagination} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@pagehead} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@pagefoot} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@caption} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@captionlabel} +% \changes{v2.8o}{2001/09/14}{Neu} +% \begin{macro}{\scr@fnt@subject} +% \changes{v2.8q}{2002/01/14}{Neu} +% \begin{macro}{\scr@fnt@backaddress} +% \changes{v2.8q}{2002/01/22}{Neu} +% \begin{macro}{\scr@fnt@fromaddress} +% \changes{v2.8q}{2002/01/28}{Neu} +% \begin{macro}{\scr@fnt@fromname} +% \changes{v2.8q}{2002/01/28}{Neu} +% Damit die Fontumschaltung mit dem einen Befehl funktioniert, wird +% werden Makros ben"otigt, in denen die passenden Fontvariablen +% gespeichert sind und ggf. zus"atzliche Makros f"ur Warnungen. +% \begin{macrocode} +\newcommand*{\scr@fnt@descriptionlabel}{\descfont} +\newcommand*{\scr@fnt@title}{\titlefont} +\newcommand*{\scr@fnt@sectioning}{\sectfont} +%<*!scrlettr> +\newcommand*{\scr@fnt@part}{\size@part} +\newcommand*{\scr@fnt@partnumber}{\size@partnumber} +%\newcommand*{\scr@fnt@chapter}{\size@chapter} +\newcommand*{\scr@fnt@section}{\size@section} +\newcommand*{\scr@fnt@subsection}{\size@subsection} +\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection} +\newcommand*{\scr@fnt@paragraph}{\size@paragraph} +\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph} +\newcommand*{\scr@fnt@instead@minisec}{sectioning} +% +\newcommand*{\scr@fnt@pagenumber}{\pnumfont} +\let\scr@fnt@pagination=\scr@fnt@pagenumber +\newcommand*{\scr@fnt@pagehead}{\headfont} +\newcommand*{\scr@fnt@wrn@pagehead}[1]{% + font selection of elements `pagehead' and `pagefoot'\MessageBreak + changed, because you wanted to change font selection\MessageBreak + of element `#1'% +} +\let\scr@fnt@pagefoot=\scr@fnt@pagehead +\let\scr@fnt@wrn@pagefoot=\scr@fnt@wrn@pagehead +%<*!scrlettr> +\newcommand*{\scr@fnt@caption}{\capfont} +\newcommand*{\scr@fnt@captionlabel}{\caplabelfont} +% +%\newcommand*{\scr@fnt@subject}{\subject@font} +%\newcommand*{\scr@fnt@backaddress}{\baddr@font} +%\newcommand*{\scr@fnt@fromaddress}{\faddr@font} +%\newcommand*{\scr@fnt@fromname}{\fname@font} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Inhaltverzeichnis, Abbildungsverzeichnis und +% Tabellenverzeichnis} +% +% Diese Verzeichnisse existieren bei Briefen nicht. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{macro}{\tableofcontents} +% \begin{macro}{\@pnumwidth} +% \begin{macro}{\@tocrmarg} +% \begin{macro}{\@dotsep} +% \begin{Counter}{tocdepth} +% F"ur das Inhaltsverzeichnis m"ussen die Eintr"age f"ur die +% unterschiedlichen Kapiteleinteilungen definiert werden. +% \begin{macrocode} +\newcommand*\@pnumwidth{1.55em} +\newcommand*\@tocrmarg {2.55em} +\newcommand*\@dotsep{4.5} +%\setcounter{tocdepth}{2} +%\setcounter{tocdepth}{3} +% \end{macrocode} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\toc@heading} +% \changes{v2.3h}{1995/01/21}{Befehl, zum Setzen der "Uberschrift des +% Inhaltsverzeichnisses.} +% \begin{macrocode} +\newcommand*\toc@heading{\section*{\contentsname + \@mkboth{\contentsname}{\contentsname}}} +% \end{macrocode} +% \end{macro} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}.} +% \changes{v2.8l}{2001/08/16}{Gruppe eingef"ugt und \cs{parskip} auf 0 +% gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} bearbeiten} +% \begin{macro}{\before@starttoc} +% \changes{v2.8q}{2001/11/14}{Neu} +% Dieses Makro f"uhrt im Falle von |tocleft| am Anfang eines +% Verzeichnisses alle notwendigen "Anderungen durch, um das +% Verzeichnis entsprechend zu handhaben. +% \begin{macro}{\scr@dottedtocline} +% \changes{v2.9k}{2003/01/03}{auch das dritte Argument wird ge"andert} +% \begin{macro}{\scr@numberline} +% \begin{macro}{\last@l@number} +% Daf"ur werden ein paar Hilfsmakros ben"otigt, die vorsichtshalber +% global vordefiniert werden. +% \begin{macrocode} +\newcommand*{\scr@dottedtocline}{}% +\newcommand*{\scr@numberline}{}% +\newcommand*{\last@l@number}{}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@l@number} +% \changes{v2.8q}{2001/11/14}{Neu} +% In diesem Makro wird w"ahrend der Erstellung des +% Inhaltsverzeichnisses die aktuelle Breite der Gliederungsnummer +% gespeichert. +% \begin{macro}{\set@l@number} +% \changes{v2.8q}{2001/11/14}{Neu} +% Dieses Makro ist daf"ur verantwortlich, dass zum einen |\@tempdima| +% f"ur den Aufruf von |\numberline| auf den richtigen Wert gesetzt +% wird, zum anderen wird die aktuelle gr"o"ste Breite der +% Gliederungsnummer hier angepasst. +% \begin{macrocode} +\newcommand*{\@l@number}{} +\newcommand*{\set@l@number}[1]{% + \settowidth{\@tempdima}{#1\enskip}% + \ifdim\@tempdima >\@l@number\relax% + \xdef\@l@number{\the\@tempdima}% + \fi% + \ifdim\@tempdima >\last@l@number \else% + \setlength{\@tempdima}{\last@l@number}% + \fi% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\newcommand*{\before@starttoc}[1]{ + \let\scr@dottedtocline=\@dottedtocline% + \renewcommand*{\@dottedtocline}[3]{% + \scr@dottedtocline{##1}{\z@}{\last@l@number}}% + \let\scr@numberline=\numberline% + \renewcommand*{\numberline}[1]{% + \set@l@number{##1}\scr@numberline{##1}}% + \gdef\@l@number{\z@}% + \@ifundefined{#1@l@number}{% + \def\last@l@number{2em}% + }{% + \expandafter\let\expandafter\last@l@number + \expandafter=\csname#1@l@number\endcsname% + }% + } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\after@starttoc} +% \changes{v2.8q}{2001/11/14}{Neu} +% Dieses Makro schreibt am Ende den entsprechenden Eintrag in die +% \texttt{aux}-Datei. +% \begin{macrocode} +\newcommand*{\after@starttoc}[1]{% + \protected@write\@auxout{}{% + \string\gdef\expandafter\string\csname#1@l@number\endcsname{% + \@l@number}}% + } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\toc@l@number} +% \changes{v2.8q}{2001/11/14}{Neu} +% Dieses Makro wird innerhalb von |\tableofcontents| "uber +% |\before@starttoc| und |\after@starttoc| in der \texttt{aux}-Datei +% global definiert. Aus Sicherheitsgr"unden wird es hier global +% vordefiniert. +% \begin{macrocode} +\newcommand*{\toc@l@number}{} +% \end{macrocode} +% \end{macro} +% \changes{v2.9k}{2003/01/02}{Option \texttt{tocleft} wird nun auch +% bei Klasse \textsf{scrartcl} beachtet} +% \begin{macrocode} +\newcommand*{\tableofcontents}{% + \begingroup +%<*scrartcl> + \toc@heading% + \@parskipfalse\@parskip@indent% + \if@tocleft\before@starttoc{toc}\fi% + \@starttoc{toc}% + \if@tocleft\after@starttoc{toc}\fi% +% +%<*scrreprt|scrbook> + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}}% + \@parskipfalse\@parskip@indent% + \if@tocleft\before@starttoc{toc}\fi% + \@starttoc{toc}% + \if@tocleft\after@starttoc{toc}\fi% + \if@restonecol\twocolumn\fi +% + \endgroup +} +% \end{macrocode} +% +% \begin{macro}{\l@part} +% Nat"urlich werden auch Makros ben"otigt, um die Eintr"age in das +% Inhaltsverzeichnis zu formatieren. Beginnend mit den Eintr"agen f"ur +% \cs{part}. +% \begin{macrocode} +\newcommand*\l@part[2]{% + \ifnum \c@tocdepth >-2\relax +% \addpenalty{\@secpenalty}% +% \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% +% \end{macrocode} +% \changes{v2.5e}{1998/07/17}{Ge"anderte part-Formatierung ragte in +% den linken Rand} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% \begin{macrocode} + \setlength\@tempdima{2em}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth +% \end{macrocode} +% \changes{v2.5c}{1997/11/25}{Formatierung bei Zeilenumbruch im +% part-Eintrag korrigiert} +% \changes{v2.5e}{1998/07/17}{Beinhaltes \cs{sectfont} eine +% Gr"o"senangabe, so wird diese +% "uberschrieben} +% \begin{macrocode} + \leavevmode\sectfont\large + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par +%<*scrartcl> + \if@compatibility + \global\@nobreaktrue +% \end{macrocode} +% \changes{v2.3g}{1996/01/14}{Fehlendes Kommentarzeichen erg"anzt.} +% \begin{macrocode} + \everypar{\global\@nobreakfalse\everypar{}}% + \else +% + \penalty\@highpenalty +% \fi + \endgroup + \fi} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@chapter} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% Kapiteleintr"age gibt es nat"urlich nicht bei der Artikel-Klasse. +% \begin{macrocode} +%<*scrreprt|scrbook> +\newcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{1.5em}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \sectfont + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@section} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% Bei der Artikel-Klasse folgt die Formatierung f"ur +% \cs{section}-Eintr"age, an Stelle der Eintr"age f"ur \cs{chapter} +% der Buch- oder der Bericht-Klasse. Bei diesen handelt es sich hier +% stattdessen um eine normale Ebene. +% \begin{macrocode} +%<*scrartcl> +\newcommand*\l@section[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty{\@secpenalty}% + \addvspace{1.0em \@plus\p@}% + \setlength\@tempdima{1.5em}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \sectfont + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \endgroup + \fi} +% +%<*scrreprt|scrbook> +\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}} +% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@subsection} +% \begin{macro}{\l@subsubsection} +% \begin{macro}{\l@paragraph} +% \begin{macro}{\l@subparagraph} +% Die "ubrigen Ebenen werden normal behandelt. +% \begin{macrocode} +%<*scrartcl> +\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +% +%<*scrreprt|scrbook> +\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} +\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} +\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}} +\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\float@listhead} +% \changes{v2.8b}{2001/06/26}{Neu} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% In Absprache mit Anselm Lingnau, dem Autor vor \texttt{float.sty}, +% wird ab Version 2.8b \cs{float@headings} zum Setzen des +% Kolumnentitels bei den Verzeichnissen verwendet, die +% \texttt{float.sty} f"ur neu definierte floats zur Verf"ugung +% stellt. Dabei definiert \texttt{float.sty} die Anweisung nur, wenn +% sie nicht bereits existiert. Die Zusammenarbeit wird dadurch +% verbessert. Da Anselm sich in letzter Minute entschlossen hat, das +% Makro \cs{float@listhead} zu nennen, wurde dies in Version 2.8g +% angepasst. +% +% \begin{macrocode} +\newcommand*{\float@listhead}[1]{% +% \section*{#1}% +% \chapter*{#1}% + \@mkboth{#1}{#1}% +% \end{macrocode} +% \changes{v2.8q}{2001/11/14}{Dynamische Anpassung an die Nummer} +% Dies ist der passende Ort, um die Breite, die f"ur die Nummer des +% Gleitobjekts ben"otigt wird zu ermitteln und anzupassen, falls dies +% ge"unscht wird. Dazu findet eine lokale Umdefinierung von +% |\@starttoc| statt. Die Umdefinierung ist deshalb lokal, weil alle +% mir bekannten Verzeichnisse von Gleitobjekten innerhalb einer Gruppe +% ausgegeben werden. +% \begin{macrocode} + \if@dynlist% + \newcommand*{\scr@starttoc}{}% + \let\scr@starttoc=\@starttoc% + \renewcommand*{\@starttoc}[1]{% + \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% + \fi% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listoffigures} +% \begin{macro}{\lof@heading} +% \changes{v2.3h}{1995/01/21}{Befehl, zum Setzen der "Uberschrift des +% Abbildungsverzeichnisses.} +% \changes{v2.4d}{1996/04/11}{\cs{addsec} durch \cs{section*} ersetzt.} +% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% \begin{macrocode} +\newcommand*\lof@heading{\float@listhead{\listfigurename}} +% \end{macrocode} +% \end{macro} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}.} +% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei scrartcl.} +% \changes{v2.8l}{2001/08/16}{Gruppe eingef"ugt und \cs{parskip} auf 0 +% gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \begin{macro}{\l@figure} +% \begin{macrocode} +\newcommand*\listoffigures{% + \begingroup% +%<*scrartcl> + \lof@heading% + \@parskipfalse\@parskip@indent% + \@starttoc{lof}% +% +%<*scrreprt|scrbook> + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \lof@heading% + \@parskipfalse\@parskip@indent% + \@starttoc{lof}% + \if@restonecol\twocolumn\fi +% + \endgroup +} +\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\listoftables} +% \begin{macro}{\lot@heading} +% \changes{v2.3h}{1995/01/21}{Befehl zum Setzen der "Uberschrift des +% Tabellenverzeichnisses.} +% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch \cs{listtablename} +% ersetzt.} +% \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}} +% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in +% \cs{float@listhead}} +% \begin{macrocode} +\newcommand*\lot@heading{\float@listhead{\listtablename}} +% \end{macrocode} +% \end{macro} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}.} +% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei scrartcl.} +% \changes{v2.8l}{2001/08/16}{Gruppe eingef"ugt und \cs{parskip} auf 0 +% gesetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \begin{macro}{\l@table} +% \begin{macrocode} +\newcommand*\listoftables{% + \begingroup +%<*scrartcl> + \lot@heading% + \@parskipfalse\@parskip@indent% + \@starttoc{lot}% +% +%<*scrreprt|scrbook> + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \lot@heading% + \@parskipfalse\@parskip@indent% + \@starttoc{lot}% + \if@restonecol\twocolumn\fi +% + \endgroup +} +\let\l@table\l@figure +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Das Literaturverzeichnis} +% +% Dieses Verzeichnis existiert bei Briefen nicht. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{environment}{thebibliography} +% \begin{macro}{\setbibpreamble} +% \changes{v2.6c}{2000/06/10}{Neuer Befehl eingef"uhrt} +% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} durch \cs{def} +% ersetzt zur Erh"ohung der +% \texttt{natbib}-Kompatibilit"at} +% \begin{macro}{\bibpreamble} +% \changes{v2.6c}{2000/06/10}{Neues Makro eingef"uhrt} +% \changes{v2.6d}{2000/07/20}{Makro funktioniert nachdem \cs{let} +% durch \cs{newcommand*} ersetzt wurde} +% \changes{v2.8q}{2002/01/10}{Wieder \cs{let}} +% \cs{bibpreamble} kann vom Benutzer mit \cs{setbibpreamble} auf +% einen Text gesetzt werden, der nach der "Uberschrift eingef"ugt +% wird. Dasselbe Makro wird von \texttt{natbib.sty} als \cs{relax} +% definiert; aus Kompatibilit"atsgr"unden wird hier vergleichbar +% verfahren und \cs{def} statt \cs{renewcommand} verwendet. +% \changes{v2.7j}{2001/05/27}{Setzen der Pr"aambel in die +% theindex-Umgebung verschoben} +% Au"serdem wird ab Version 2.7j die Pr"aambel nicht mehr in +% \cs{bib@heading} gesetzt, sondern in der +% \texttt{thebibliography}-Umgebung. Dies dient ebenfalls der +% Kompatibilit"at mit natbib. +% \begin{macrocode} +\newcommand*{\bibpreamble}{\relax} +\let\bibpreamble\relax +\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\bib@heading} +% \changes{v2.3h}{1995/01/21}{Befehl zum Setzen der "Uberschrift des +% Literaturverzeichnisses.} +% \changes{v2.6c}{2000/06/10}{Die Preambel wird gesetzt.} +% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet.} +% \changes{v2.7j}{2001/06/27}{Setzen der Pr"aambel in die +% thebibliography-Umgebung verschoben} +% \begin{macrocode} +\newcommand*\bib@heading{% +%<*scrartcl> + \section*{\refname} + \@mkboth{\refname}{\refname} +% +%<*scrbook|scrreprt> + \chapter*{\bibname} + \@mkboth{\bibname}{\bibname} +% +} +% \end{macrocode} +% \end{macro} +% \changes{v2.2a}{1995/02/01}{In \texttt{scrartcl} \cs{bibname} +% vollst"andig durch \cs{refname} ersetzt.} +% \changes{v2.3g}{1996/01/14}{Implementierung von openbib ge"andert.} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} +% \begin{Length}{bibindent} +% Nun werden noch die Umgebung f"ur das Literaturverzeichnis und der Befehl +% f"ur die einzelnen Eintr"age definiert. +% \begin{macrocode} +\newdimen\bibindent +\bibindent=1.5em +% \end{macrocode} +% \end{Length} +% \changes{v2.8q}{2002/01/10}{Leere Pr"aambel erkennen und gesondert +% behandeln} +% \changes{v2.9o}{2003/03/06}{\cs{bibpreamle} statt \cs{bibpreamble} +% mit \cs{@empty} vergleichen} +% \begin{macrocode} +\newenvironment{thebibliography}[1]{% +% \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else +% \setchapterpreamble{\bibpreamble}% +% \fi\fi + \bib@heading% +% \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else +% \noindent\bibpreamble\par\nobreak +% \fi\fi + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand*\theenumiv{\@arabic\c@enumiv}}% + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} +{\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\newblock} +% \changes{v2.3g}{1996/01/14}{Grundeinstellung ge"andert.} +% \begin{macrocode} +\newcommand*\newblock{\hskip .11em\@plus.33em\@minus.07em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@openbib@code} +% \changes{v2.3g}{1996/01/14}{Neues Makro.} +% \begin{macrocode} +\let\@openbib@code\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Index} +% Dieses Verzeichnis existiert bei Briefen nicht. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \begin{environment}{theindex} +% \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt \texttt{plain}} +% \begin{macro}{\index@preamble} +% \changes{v2.6c}{2000/06/10}{Neues internes Makro eingef"uhrt} +% \begin{macro}{\setindexpreamble} +% \changes{v2.6c}{2000/06/10}{Neuer Befehl eingef"uhrt} +% \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let} +% durch \cs{newcommand*} ersetzt wurde} +% Analog zu \cs{bibpreamble} kann \cs{index@preamble} vom Benutzer mit +% \cs{setindexpreamble} auf einen Text gesetzt werden, der nach +% der Index"uberschrift eingef"ugt wird. Hier wird ein echtes internes +% Makro verwendet, da nicht auf Kompatibilit"at geachtet werden +% mu"s. +% \begin{macrocode} +\newcommand*{\index@preamble}{\relax} +\newcommand{\setindexpreamble}[1]{\renewcommand*{\index@preamble}{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\idx@heading} +% \changes{v2.3h}{1995/01/21}{Befehl zum Setzen der "Uberschrift +% des Indexes} +% \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt +% behandelt} +% \changes{v2.4g}{1996/11/04}{Index auch bei scrartcl wieder +% zweispaltig} +% \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble} +% eingef"ugt} +% \changes{v2.7j}{2001/05/27}{Setzen der Pr"aambel in die +% theindex-Umgebung verschoben} +% \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch +% \cs{if@openright} ersetzt} +% Bis Version 2.7a sah diese Definition so aus: +% \begin{verbatim} +% \newcommand*{\idx@heading}{% +% \if@twoside\cleardoublepage\else\clearpage\fi% +% \@mkboth{\indexname}{\indexname}% +% \twocolumn[% +% \section*% +% \@makeschapterhead% +% {\indexname}\index@preamble] +% } +% \end{verbatim} +% Dagegen ist grunds"atzlich nichts zu sagen. Allerdings gibt es seit +% Version 2.7b das die neue Methode der Kapitel-Preambel, die extra +% eingef"uhrt wurde, um die \texttt{hyperref}-Links -- insbesondere +% den des Index -- zumindest bei Verwendung von \texttt{hpdftex.def} +% zu verbessern. Deshalb wurde die Implementierung entsprechend +% abge"andert. Au"serdem wurde das Setzen der Pr"aambel aus +% Konsistenzgr"unden in Version 2.7j "ubereinstimmten mit der +% \texttt{thebibliography}-Umgebung in die \texttt{theindex}-Umgebung +% verschoben. +% \begin{macrocode} +\newcommand*{\idx@heading}{% +% \if@openright\cleardoublepage\else\clearpage\fi% +% \twocolumn[\section*{\indexname}] +% \twocolumn[\chapter*{\indexname}] + \@mkboth{\indexname}{\indexname}% +} +% \end{macrocode} +% \end{macro} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{idx@heading}} +% \changes{v2.7j}{2001/05/27}{Setzen der Pr"aambel in die +% theindex-Umgebung verschoben} +% Ein Index ist ebenfalls m"oglich. Dieser ist wie "ublich definiert. +% \begin{macrocode} +\newenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \columnseprule \z@ + \columnsep 35\p@ +% \setchapterpreamble{\index@preamble} + \idx@heading% +% \index@preamble\par\nobreak + \thispagestyle{\indexpagestyle}\parindent\z@ + \setlength{\parskip}{\z@ \@plus .3\p@} + \setlength{\parfillskip}{\z@ \@plus 1fil} + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand*\@idxitem {\par\hangindent 40\p@} +% \end{macrocode} +% \begin{macro}{\subitem} +% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart Speicher} +% \begin{macro}{\subsubitem} +% \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart Speicher} +% \begin{macro}{\indexspace} +% \begin{macrocode} +\newcommand*\subitem {\@idxitem \hspace*{20\p@}} +\newcommand*\subsubitem{\@idxitem \hspace*{30\p@}} +\newcommand*\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{environment} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Fu"snoten} +% +% \begin{macro}{\footnoterule} +% Fu"snoten sind etwas abweichend definiert. +% \changes{v2.3a}{1995/07/08}{\cs{@width} verwendet} +% \changes{v2.8q}{2002/02/06}{\cs{raggedbottom}-Verbesserung +% eingef"ugt} +% Insbesondere wird im Fall, dass \cs{raggedbottom} verwendet wird, +% die Fu"snotenlinie nach unten gedr"uckt. Dies funktioniert nur dann +% nicht, wenn Abbildungen oder Tabellen mit der Option "`\texttt{b}"' +% an das Ende der Seite gesetzt werden. \cs{raggedbottom} wird daran +% erkannt, dass \cs{@textbottom} nicht \cs{relax} ist. Das kann +% nat"urlich auch einmal schief gehen, ist dann aber auch nicht ganz +% so tragisch. +% \begin{macrocode} +\renewcommand*\footnoterule{% + \kern-3\p@ + \ifx\@textbottom\relax\else\vskip \z@ \@plus.0005fil\fi + \hrule\@width.4\columnwidth + \kern 2.6\p@} +%\@addtoreset{footnote}{chapter} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\deffootnote} +% \changes{v2.4l}{1997/02/06}{Neues Makro zur Definition der +% Gestalt von Fu"snoten.} +% \changes{v2.9b}{2002/08/05}{Absatzeinzug korrigiert} +% \changes{v2.9l}{2003/01/28}{\cs{edef}\cs{@tempa} ersetzt} +% \changes{v2.9q}{2004/01/31}{\cs{ftn@font} erlaubt aus Gr"unden der +% Kompatibilität mit dem \textsl{footnote} Paket kein Argument mehr} +% Dieses Makro erlaubt einen optionalen und erwartet drei weitere +% Parameter. Der erste, optionale gibt den Einzug der ersten Zeile des +% Fu"snotentextes vom linken Rand an. Die Fu"snotenmarkierungen werden +% rechtsb"undig in diesen Einzug gesetzt. Der zweite, also erste nicht +% optionale Parameter gibt den Einzug jeder weiteren Zeile des +% Fu"snotentextes vom linken Rand an. Fehlt der optionale Parameter so +% ist er gleich diesem. Der dritte, also zweite nicht optionale +% Parameter gibt den zus"atzlichen Einzug jedes weiteren Absatzes +% einer Fu"snote an. Der letzte Parameter schlie"slich bestimmt die +% Ausgabe der Fu"snotenmarkierung in der Fu"snote. Diese wird +% zus"atzlich in eine \verb|\hbox| gesetzt. +% \begin{macrocode} +\newcommand\deffootnote[4][]{% + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#2} + \parshape \@ne #2 \@tempdima}% + \else + \addtolength{\@tempdimc}{#2}% + \addtolength{\@tempdimc}{-#1}% + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#1} + \@tempdimb = \hsize + \addtolength{\@tempdimb}{-#2} + \parshape \tw@ #1 \@tempdima #2 \@tempdimb}% + \fi + \par + \parindent\@tempdimc\noindent + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1} +% \end{macrocode} +% \begin{macro}{\@@makefnmark} +% \changes{v2.4l}{1997/02/06}{Neues Makro zum Setzen der +% Fu"snotenmarkierung im Text} +% \begin{macrocode} + \def\@@makefnmark{\hbox{\ftnm@font{#4}}} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +} +% \end{macrocode} +% \begin{macro}{\ftn@font} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\scr@fnt@footnote} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\ftnm@font} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\scr@fnt@footnotenumber} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\scr@fnt@footnotenlabel} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\scr@fnt@instead@footnotetext} +% \changes{v2.8q}{2001/11/16}{Neu} +% Das erste Makro gibt die Schrift an, in der die Fu"snote gesetzt +% wird. Davon abweichend kann mit dem zweiten Makro die Schriftart +% f"ur die Fu"snotennummer getrennt angegeben werden. Aufgrund der +% Definition kann auch ein Makro verwendet werden, das ein Argument +% erwartet. +% \begin{macrocode} +\newcommand*{\ftn@font}{\normalfont} +\newcommand*{\scr@fnt@footnote}{\ftn@font} +\newcommand*{\ftnm@font}{} +\newcommand*{\scr@fnt@footnotenumber}{\ftnm@font} +\newcommand*{\scr@fnt@footnotelabel}{\ftnm@font} +\newcommand*{\scr@fnt@instead@footnotetext}{footnote} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\deffootnotemark} +% \changes{v2.4l}{1997/02/06}{Neues Makro zur Definition der +% Fu"snotenmarkierung im Text} +% \begin{macrocode} +\newcommand*\deffootnotemark[1]{\def\@makefnmark{\hbox{\ftntm@font{#1}}}} +% \end{macrocode} +% \begin{macro}{\ftntm@font} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\scr@fnt@footnotereference} +% \changes{v2.8q}{2001/11/16}{Neu} +% \begin{macro}{\scr@fnt@footnoteref} +% \changes{v2.8q}{2001/11/16}{Neu} +% Dies ist die Schriftart der Fu"snotenreferenz im Text. Auch hier kann +% ggf. ein Makro verwendet werden, das ein Argument erwartet. +% \begin{macrocode} +\newcommand*{\ftntm@font}{} +\newcommand*{\scr@fnt@footnotereference}{\ftntm@font} +\newcommand*{\scr@fnt@footnoteref}{\ftntm@font} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\thefootnotemark} +% \changes{v2.4l}{1997/02/06}{Neues Makro, damit \cs{@thefnmark} auf +% Anwenderebene verf"ugbar wird.} +% \begin{macrocode} +\newcommand*{\thefootnotemark}{\@thefnmark} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\textsuperscript} +% \changes{v2.4l}{1997/02/06}{Neues Makro, damit \cs{@textsuperscript} auf +% Anwenderebene verf"ugbar wird.} +% \changes{v2.5g}{1999/10/09}{Da \cs{textsuperscript} bereits +% existiert, wird es nicht mehr +% umdefiniert. Die dadurch entstehende +% Inkompatibilit"at wird in Kauf +% genommen.} +% Das Makro ist im Kernel vorhanden. Die Umdefinition sah einst wie +% folgt aus: +% \begin{verbatim} +% \let\textsuperscript\@textsuperscript +% \end{verbatim} +% \end{macro} +% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur +% Fu"snotengestaltgebung.} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingef"ugt} +% \begin{macro}{\@makefnmark} +% \begin{macrocode} +\deffootnote[1em]{1.5em}{1em} + {\textsuperscript{\thefootnotemark}} +\deffootnotemark{\textsuperscript{\thefootnotemark}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Kleinigkeiten} +% +% \begin{macro}{textsubscript} +% \changes{v2.8h}{2001/07/19}{Neu} +% \begin{macro}{@textsubscript} +% \changes{v2.8h}{2001/07/19}{Neu} +% Im \LaTeX-Kern wird zwar ein Makro \cs{textsuperscript} definiert, +% um Texte hochstellen zu k"onnen, die entsprechende Anweisung zum +% Tiefstellen fehlt jedoch. Das wird hier nachgeholt, wobei nahezu +% unver"andert auf die Definition aus dem \LaTeX-Kern zur"uckgegriffen +% wird. +% \begin{macrocode} +\DeclareRobustCommand*\textsubscript[1]{% + \@textsubscript{\selectfont#1}} +\newcommand{\@textsubscript}[1]{% + {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Standardbezeichnungen} +% +% Diese werden von |german.sty| ohnehin "uberschrieben. +% \begin{macro}{\contentsname} +% \begin{macro}{\listfigurename} +% \begin{macro}{\listtablename} +% \begin{macro}{\refname} +% \begin{macro}{\bibname} +% \begin{macro}{\indexname} +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% \begin{macro}{\partname} +% \begin{macro}{\chaptername} +% \begin{macro}{\appendixname} +% \begin{macro}{\abstractname} +% \begin{macro}{\today} +% \begin{macrocode} +%<*!scrlettr> +\newcommand*\contentsname{Contents} +\newcommand*\listfigurename{List of Figures} +\newcommand*\listtablename{List of Tables} +%\newcommand*\refname{References} +%\newcommand*\bibname{Bibliography} +\newcommand*\indexname{Index} +\newcommand*\figurename{Figure} +\newcommand*\tablename{Table} +\newcommand*\partname{Part} +%\newcommand*\chaptername{Chapter} +\newcommand*\appendixname{Appendix} +\newcommand*\abstractname{Abstract} +% +\newcommand*\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} +% \end{macrocode} +% +% \begin{macro}{\captionsenglish} +% \begin{macro}{\captionsUSenglish} +% \begin{macro}{\captionsamerican} +% \begin{macro}{\captionsbritish} +% \begin{macro}{\captionsUKenglish} +% \begin{macro}{\captionsgerman} +% \begin{macro}{\captionsaustrian} +% \begin{macro}{\captionsngerman} +% \begin{macro}{\captionsfrench} +% \begin{macro}{\captionsitalian} +% \begin{macro}{\captionsspanish} +% \begin{macro}{\captionscroatian} +% \changes{v2.8q}{2001/10/05}{Sprachspende von Branka +% Lon\v{c}arevi\'{c}} +% \begin{macro}{\captionsdutch} +% \changes{v2.8q}{2002/02/01}{Sprachspende von Henk Jongbloets} +% Bei |scrlttr2| gibt es eine gro"se Anzahl von Label-Variablen, die es +% in den Standard-classes nicht gibt, die also auch nicht in +% Sprachanpassungen wie |german.sty| oder |ngerman.sty| vorhanden sind. +% Deshalb ist es notwendig diese Labels hier neu zu definieren. +% \begin{macro}{\providecaptionname} +% \changes{v2.8q}{2001/11/08}{Neu} +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die ge"anderte +% ist, wird die "Anderung sofort aktiviert.} +% \begin{macro}{\newcaptionname} +% \changes{v2.8q}{2001/11/08}{Neu} +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die ge"anderte +% ist, wird die "Anderung sofort aktiviert.} +% \begin{macro}{\renewcaptionname} +% \changes{v2.8q}{2001/11/08}{Neu} +% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die ge"anderte +% ist, wird die "Anderung sofort aktiviert.} +% Doch bevor dies geschieht, werden erst einmal drei Benutzerkommandos +% definiert, mit denen einer Sprache, so ein Begriff zugef"ugt werden +% kann. +% \begin{macrocode} +\newcommand*{\providecaptionname}[3]{% + \@ifundefined{captions#1}{% + \@ifundefined{cap@info@#1@done}{% + \ClassInfo{% + scrlttr2% + }{% + No captions found for `#1'\MessageBreak + --> skipped% + }% + \expandafter\let\csname cap@info@#1@done\endcsname\@empty}{}% + }{% + \begingroup% + \let\@tempa\endgroup% + \csname captions#1\endcsname% + \ifx #2\undefined% + \def\@tempb{#1}% + \ifx\@tempb\languagename + \def\@tempa{\endgroup% + \expandafter\g@addto@macro\csname captions#1\endcsname{% + \def#2{#3}}% + \csname captions#1\endcsname + }% + \else + \def\@tempa{\endgroup% + \expandafter\g@addto@macro\csname captions#1\endcsname{% + \def#2{#3}}% + }% + \fi + \else + \ClassInfo{% + scrlttr2% + }{% + `\string#2' at language `#1' already + defined\MessageBreak + --> skipped% + }% + \fi + \@tempa + }% +} +\newcommand*{\newcaptionname}[3]{% + \@ifundefined{captions#1}{% + \ClassInfo{% + scrlttr2% + }{% + No captions found for `#1' --> defining% + }% + \@namedef{captions#1}{}% + }{}% + \begingroup% + \csname captions#1\endcsname% + \ifx #2\undefined\else% + \ClassError{% + scrlttr2% + }{% + `\string#2' at language `#1' already defined% + }{% + You've told me to define `\string#2' at language + `#1',\MessageBreak + but it is already defined.\MessageBreak + It will be redefined, if you'll continue.% + } + \fi + \endgroup% + \expandafter\g@addto@macro\csname captions#1\endcsname{% + \def#2{#3}}% + \begingroup + \def\@tempb{#1}% + \ifx\@tempb\languagename + \def\@tempa{\endgroup\csname captions#1\endcsname}% + \else + \let\@tempa\endgroup + \fi + \@tempa +} +\newcommand*{\renewcaptionname}[3]{% + \@ifundefined{captions#1}{% + \ClassError{% + scrlttr2% + }{% + No captions found for `#1'% + }{% + You've told me to redefine the caption `\string#2' at language + `#1',\MessageBreak + but `\expandafter\string\csname captions#1\endcsname' is not + defined.\MessageBreak + If you'll continue it will be defined.% + } + \@namedef{captions#1}{}% + }{}% + \begingroup% + \csname captions#1\endcsname% + \ifx #2\undefined% + \ClassError{% + scrlttr2% + }{% + `\string#2' not defined at language `#1'% + }{% + You've told me to redefine `\string#2' at language + `#1',\MessageBreak + but it is not defined.\MessageBreak + If you'll continue it will be defined.% + } + \fi + \endgroup + \expandafter\g@addto@macro\csname captions#1\endcsname{% + \def#2{#3}}% + \begingroup + \def\@tempb{#1}% + \ifx\@tempb\languagename + \def\@tempa{\endgroup\csname captions#1\endcsname}% + \else + \let\@tempa\endgroup + \fi + \@tempa +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% F"ur das Datum wird gleiches nicht ben"otigt, da hier direkt mit +% |\providecommand|, |\newcommand| und |\renewcommand| gearbeitet +% werden kann. +% \begin{macro}{\g@addnumerical@date} +% Intern wird bei der Briefklasse aber ein Makro ben"otigt, mit dem an +% existierende Datumsumschaltungen -- und nur an existierende -- +% weitere Befehle angeh"angt werden k"onnen. +% \begin{macrocode} +%<*scrlettr> +\newcommand*{\g@addnumerical@date}[2]{% + \@ifundefined{date#1}{% + \ClassInfo{% + scrlttr2% + }{% + no date found for language `#1'\MessageBreak + --> skipped% + } + }{% + \expandafter\g@addto@macro\csname date#1\endcsname{% + \let\sym@date=\today% + \def\num@date{#2}% + \def\today{\if@orgdate\sym@date\else\num@date\fi}% + } + } + } +% +% \end{macrocode} +% \end{macro} +% +% Weil es in fr"uheren Versionen zu Problemen damit gekommen ist, +% werden diese jedoch erst bei |\begin{document}| definiert. Dabei +% wird |\providecaptionname| verwendet, so dass sie auch schon vor +% |\begin{document}| mit |\newcaptionname| anderslautend definiert +% werden k"onnen. +% \begin{table} +% \centering +% \begin{tabular}{ll} +% Sprache & Spender \\\hline\\[-1.6ex] +% English & Frank Neukam, Michael Dewey, Markus Kohm \\ +% Deutsch & Frank Neukam, Markus Kohm \\ +% Franz"osisch & Frank Neukam, Henk Jongbloets \\ +% Italienisch & Simone Naldi \\ +% Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\ +% Kroatisch & Branka Lon\v{c}arevi\'{c} \\ +% Holl"andisch & Henk Jongbloets \\ +% \end{tabular} +% \caption{Liste der unterst"utzten Sprachen und der +% \emph{Sprachspender}} +% \end{table} +% Eine Besonderheit stellt die englische Sprache dar. Es wird +% versucht, diese als Notersatz immer zu definieren. +% \begin{macrocode} +%<*scrlettr> +\AtBeginDocument{ + \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}% + \providecaptionname{english}\yourrefname{Your ref.}% + \providecaptionname{english}\yourmailname{Your letter of}% + \providecaptionname{english}\myrefname{Our ref.}% + \providecaptionname{english}\customername{Customer no.}% + \providecaptionname{english}\invoicename{Invoice no.}% + \providecaptionname{english}\subjectname{Subject}% + \providecaptionname{english}\ccname{cc}% + \providecaptionname{english}\enclname{encl}% + \providecaptionname{english}\headtoname{To}% + \providecaptionname{english}\headfromname{From}% + \providecaptionname{english}\datename{Date}% + \providecaptionname{english}\pagename{Page}% + \providecaptionname{english}\phonename{Phone}% + \providecaptionname{english}\faxname{Fax}% + \providecaptionname{english}\emailname{Email}% + \providecaptionname{english}\wwwname{Url}% + \providecaptionname{english}\bankname{Bank account}% + \providecaptionname{USenglish}\yourrefname{Your ref.}% + \providecaptionname{USenglish}\yourmailname{Your letter of}% + \providecaptionname{USenglish}\myrefname{Our ref.}% + \providecaptionname{USenglish}\customername{Customer no.}% + \providecaptionname{USenglish}\invoicename{Invoice no.}% + \providecaptionname{USenglish}\subjectname{Subject}% + \providecaptionname{USenglish}\ccname{cc}% + \providecaptionname{USenglish}\enclname{encl}% + \providecaptionname{USenglish}\headtoname{To}% + \providecaptionname{USenglish}\headfromname{From}% + \providecaptionname{USenglish}\datename{Date}% + \providecaptionname{USenglish}\pagename{Page}% + \providecaptionname{USenglish}\phonename{Phone}% + \providecaptionname{USenglish}\faxname{Fax}% + \providecaptionname{USenglish}\emailname{Email}% + \providecaptionname{USenglish}\wwwname{Url}% + \providecaptionname{USenglish}\bankname{Bank account}% + \providecaptionname{american}\yourrefname{Your ref.}% + \providecaptionname{american}\yourmailname{Your letter of}% + \providecaptionname{american}\myrefname{Our ref.}% + \providecaptionname{american}\customername{Customer no.}% + \providecaptionname{american}\invoicename{Invoice no.}% + \providecaptionname{american}\subjectname{Subject}% + \providecaptionname{american}\ccname{cc}% + \providecaptionname{american}\enclname{encl}% + \providecaptionname{american}\headtoname{To}% + \providecaptionname{american}\headfromname{From}% + \providecaptionname{american}\datename{Date}% + \providecaptionname{american}\pagename{Page}% + \providecaptionname{american}\phonename{Phone}% + \providecaptionname{american}\faxname{Fax}% + \providecaptionname{american}\emailname{Email}% + \providecaptionname{american}\wwwname{Url}% + \providecaptionname{american}\bankname{Bank account}% + \providecaptionname{british}\yourrefname{Your ref.}% + \providecaptionname{british}\yourmailname{Your letter of}% + \providecaptionname{british}\myrefname{Our ref.}% + \providecaptionname{british}\customername{Customer no.}% + \providecaptionname{british}\invoicename{Invoice no.}% + \providecaptionname{british}\subjectname{Subject}% + \providecaptionname{british}\ccname{cc}% + \providecaptionname{british}\enclname{encl}% + \providecaptionname{british}\headtoname{To}% + \providecaptionname{british}\headfromname{From}% + \providecaptionname{british}\datename{Date}% + \providecaptionname{british}\pagename{Page}% + \providecaptionname{british}\phonename{Phone}% + \providecaptionname{british}\faxname{Fax}% + \providecaptionname{british}\emailname{Email}% + \providecaptionname{british}\wwwname{Url}% + \providecaptionname{british}\bankname{Bank account}% + \providecaptionname{UKenglish}\yourrefname{Your ref.}% + \providecaptionname{UKenglish}\yourmailname{Your letter of}% + \providecaptionname{UKenglish}\myrefname{Our ref.}% + \providecaptionname{UKenglish}\customername{Customer no.}% + \providecaptionname{UKenglish}\invoicename{Invoice no.}% + \providecaptionname{UKenglish}\subjectname{Subject}% + \providecaptionname{UKenglish}\ccname{cc}% + \providecaptionname{UKenglish}\enclname{encl}% + \providecaptionname{UKenglish}\headtoname{To}% + \providecaptionname{UKenglish}\headfromname{From}% + \providecaptionname{UKenglish}\datename{Date}% + \providecaptionname{UKenglish}\pagename{Page}% + \providecaptionname{UKenglish}\phonename{Phone}% + \providecaptionname{UKenglish}\faxname{Fax}% + \providecaptionname{UKenglish}\emailname{Email}% + \providecaptionname{UKenglish}\wwwname{Url}% + \providecaptionname{UKenglish}\bankname{Bank account}% + \providecaptionname{german}\yourrefname{Ihr Zeichen}% + \providecaptionname{german}\yourmailname{Ihr Schreiben vom}% + \providecaptionname{german}\myrefname{Unser Zeichen}% + \providecaptionname{german}\customername{Kundennummer}% + \providecaptionname{german}\invoicename{Rechnungsnummer}% + \providecaptionname{german}\subjectname{Betrifft}% + \providecaptionname{german}\ccname{Kopien an}% + \providecaptionname{german}\enclname{Anlagen}% + \providecaptionname{german}\headtoname{An}% + \providecaptionname{german}\headfromname{Von}% + \providecaptionname{german}\datename{Datum}% + \providecaptionname{german}\pagename{Seite}% + \providecaptionname{german}\phonename{Telephon}% + \providecaptionname{german}\faxname{Fax}% + \providecaptionname{german}\emailname{E-Mail}% + \providecaptionname{german}\wwwname{URL}% + \providecaptionname{german}\bankname{Bankverbindung}% + \providecaptionname{ngerman}\yourrefname{Ihr Zeichen}% + \providecaptionname{ngerman}\yourmailname{Ihr Schreiben vom}% + \providecaptionname{ngerman}\myrefname{Unser Zeichen}% + \providecaptionname{ngerman}\customername{Kundennummer}% + \providecaptionname{ngerman}\invoicename{Rechnungsnummer}% + \providecaptionname{ngerman}\subjectname{Betrifft}% + \providecaptionname{ngerman}\ccname{Kopien an}% + \providecaptionname{ngerman}\enclname{Anlagen}% + \providecaptionname{ngerman}\headtoname{An}% + \providecaptionname{ngerman}\headfromname{Von}% + \providecaptionname{ngerman}\datename{Datum}% + \providecaptionname{ngerman}\pagename{Seite}% + \providecaptionname{ngerman}\phonename{Telefon}% + \providecaptionname{ngerman}\faxname{Fax}% + \providecaptionname{ngerman}\emailname{E-Mail}% + \providecaptionname{ngerman}\wwwname{URL}% + \providecaptionname{ngerman}\bankname{Bankverbindung}% + \providecaptionname{austrian}\yourrefname{Ihr Zeichen}% + \providecaptionname{austrian}\yourmailname{Ihr Schreiben vom}% + \providecaptionname{austrian}\myrefname{Unser Zeichen}% + \providecaptionname{austrian}\customername{Kundennummer}% + \providecaptionname{austrian}\invoicename{Rechnungsnummer}% + \providecaptionname{austrian}\subjectname{Betrifft}% + \providecaptionname{austrian}\ccname{Kopien an}% + \providecaptionname{austrian}\enclname{Anlagen}% + \providecaptionname{austrian}\headtoname{An}% + \providecaptionname{austrian}\headfromname{Von}% + \providecaptionname{austrian}\datename{Datum}% + \providecaptionname{austrian}\pagename{Seite}% + \providecaptionname{austrian}\phonename{Telefon}% + \providecaptionname{austrian}\faxname{Fax}% + \providecaptionname{austrian}\emailname{E-Mail}% + \providecaptionname{austrian}\wwwname{URL}% + \providecaptionname{austrian}\bankname{Bankverbindung}% + \providecaptionname{french}\yourrefname{Vos r\'ef\'erences}% + \providecaptionname{french}\yourmailname{Votre lettre du}% + \providecaptionname{french}\myrefname{Nos r\'ef\'erences}% + \providecaptionname{french}\customername{Num\'ero de client}% + \providecaptionname{french}\invoicename{Num\'ero de facture}% + \providecaptionname{french}\subjectname{Concernant}% + \providecaptionname{french}\ccname{Copie \`a}% + \providecaptionname{french}\enclname{Annexes}% + \providecaptionname{french}\headtoname{A}% + \providecaptionname{french}\headfromname{De}% + \providecaptionname{french}\datename{Date}% + \providecaptionname{french}\pagename{Page}% + \providecaptionname{french}\phonename{T\'el\'ephone}% + \providecaptionname{french}\faxname{T\'el\'efax}% + \providecaptionname{french}\emailname{E-mail}% + \providecaptionname{french}\wwwname{URL}% + \providecaptionname{french}\bankname{Compte en banque}% + \providecaptionname{italian}\yourrefname{Vs./Rif.}% + \providecaptionname{italian}\yourmailname{Vs.~lettera del}% + \providecaptionname{italian}\myrefname{Ns./Rif.}% + \providecaptionname{italian}\customername{Nr.~cliente}% + \providecaptionname{italian}\invoicename{Nr.~fattura}% + \providecaptionname{italian}\subjectname{Oggetto}% + \providecaptionname{italian}\ccname{Per conoscenza}% + \providecaptionname{italian}\enclname{Allegato}% + \providecaptionname{italian}\headtoname{A}% + \providecaptionname{italian}\headfromname{}% TODO: translate it + \providecaptionname{italian}\datename{Data}% + \providecaptionname{italian}\pagename{Pagina}% + \providecaptionname{italian}\phonename{}% TODO: translate it + \providecaptionname{italian}\faxname{}% TODO: translate it + \providecaptionname{italian}\emailname{}% TODO: translate it + \providecaptionname{italian}\wwwname{}% TODO: translate it + \providecaptionname{italian}\bankname{}% TODO: translate it + \providecaptionname{spanish}\yourrefname{Su ref.}% + \providecaptionname{spanish}\yourmailname{Su carta de}% + \providecaptionname{spanish}\myrefname{Nuestra ref.}% + \providecaptionname{spanish}\customername{No. de cliente}% + \providecaptionname{spanish}\invoicename{No. de factura}% + \providecaptionname{spanish}\subjectname{Asunto}% + \providecaptionname{spanish}\ccname{Copias}% + \providecaptionname{spanish}\enclname{Adjunto}% + \providecaptionname{spanish}\headtoname{A}% + \providecaptionname{spanish}\headfromname{De}% + \providecaptionname{spanish}\datename{Fecha}% + \providecaptionname{spanish}\pagename{P\'agina}% + \providecaptionname{spanish}\phonename{Tel\'efono}% + \providecaptionname{spanish}\faxname{Fax}% + \providecaptionname{spanish}\emailname{Email}% or Correo electr\'onico + \providecaptionname{spanish}\wwwname{URL}% or P\`agina web + \providecaptionname{spanish}\bankname{Cuenta bancaria}% + \providecaptionname{croatian}\yourrefname{Va\v{s} znak}% + \providecaptionname{croatian}\yourmailname{Va\v{s}e pismo od}% + \providecaptionname{croatian}\myrefname{Na\v{s} znak}% + \providecaptionname{croatian}\customername{Broj kupca}% + \providecaptionname{croatian}\invoicename{Broj fakture}% + \providecaptionname{croatian}\subjectname{Predmet}% + \providecaptionname{croatian}\ccname{Kopija}% + \providecaptionname{croatian}\enclname{Privitak}% + \providecaptionname{croatian}\headtoname{Prima}% + \providecaptionname{croatian}\headfromname{\v{S}alje}% + \providecaptionname{croatian}\datename{Nadnevak}% + \providecaptionname{croatian}\pagename{Stranica}% + \providecaptionname{croatian}\phonename{Telefon}% + \providecaptionname{croatian}\faxname{Fax}% + \providecaptionname{croatian}\emailname{E-Mail}% + \providecaptionname{croatian}\wwwname{URL}% + \providecaptionname{croatian}\bankname{Bankovna veza}% + \providecaptionname{dutch}\yourrefname{Uw kenmerk}% + \providecaptionname{dutch}\yourmailname{Uw brief van}% + \providecaptionname{dutch}\myrefname{Ons kenmerk}% + \providecaptionname{dutch}\customername{Klant No.}% + \providecaptionname{dutch}\invoicename{Rekening No.}% + \providecaptionname{dutch}\subjectname{Onderwerp}% + \providecaptionname{dutch}\ccname{Kopie aan}% + \providecaptionname{dutch}\enclname{Bijlage(n)}% + \providecaptionname{dutch}\headtoname{Aan}% + \providecaptionname{dutch}\headfromname{Van}% + \providecaptionname{dutch}\datename{Datum}% + \providecaptionname{dutch}\pagename{Pagina}% + \providecaptionname{dutch}\phonename{Telefoon}% + \providecaptionname{dutch}\faxname{Fax}% + \providecaptionname{dutch}\emailname{E--mail}% + \providecaptionname{dutch}\urlname{URL}% + \providecaptionname{dutch}\bankname{Bankrekening}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dateenglish} +% \begin{macro}{\dateUSenglish} +% \begin{macro}{\dateamerican} +% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish +% definiert} +% \begin{macro}{\datebritish} +% \changes{v2.4c}{1997/11/25}{british identisch mit english +% definiert} +% \begin{macro}{\dateUKenglish} +% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english +% definiert} +% \begin{macro}{\dategerman} +% \begin{macro}{\dateaustrian} +% \begin{macro}{\datengerman} +% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german} +% \begin{macro}{\datefrench} +% \begin{macro}{\dateitalian} +% \changes{v2.3e}{1996/05/31}{Ich hoffe, da"s das stimmt} +% \begin{macro}{\datespanish} +% \changes{v2.4c}{1997/11/25}{Ich hoffe, da"s das stimmt} +% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr +% zwingend} +% \begin{macro}{\datecroatian} +% \changes{v2.8q}{2001/05/10}{Neu} +% \begin{macro}{\datedutch} +% \changes{v2.8q}{2002/02/01}{Neu} +% Dar"uber hinaus ist auch das Datumsformat sprachabh"angig. Dies wird +% hier ebenfalls beachtet. +% \begin{macrocode} + \g@addnumerical@date{english}{% + \number\day/\number\month/\number\year} + \g@addnumerical@date{british}{% + \number\day/\number\month/\number\year} + \g@addnumerical@date{UKenglish}{% + \number\day/\number\month/\number\year} + \g@addnumerical@date{USenglish}{% + \number\month/\number\day/\number\year} + \g@addnumerical@date{american}{% + \number\month/\number\day/\number\year} + \g@addnumerical@date{german}{% + \number\day.\,\number\month.\,\number\year} + \g@addnumerical@date{ngerman}{% + \number\day.\,\number\month.\,\number\year} + \g@addnumerical@date{austrian}{% + \number\day.\,\number\month.\,\number\year} + \g@addnumerical@date{french}{% + \number\day.\,\number\month.\,\number\year} + \g@addnumerical@date{italian}{% + \number\day.\,\number\month.\,\number\year} + \g@addnumerical@date{spanish}{% + \number\day.\,\number\month.\,\number\year} + \g@addnumerical@date{croatian}{% + \number\day.\,\number\month.\,\number\year.} + \g@addnumerical@date{dutch}{% + \number\day.\,\number\month.\,\number\year} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% Zum Schlu"s findet noch die eigentliche Auswahl statt. Diese orientiert +% sich nun an der Auswahl nach german.sty 2.5b und verwendet keine festen +% Sprachzuordnungen mehr. Daf"ur sind nun keine Erweiterungen f"ur andere +% Sprachen mehr m"oglich. +% \changes{v2.2c}{1995/03/20}{Im Sprachenvergleich fehlten die "`="' +% hinter \cs{language}} +% \changes{v2.4c}{1997/11/25}{Sprachauswahl um american, british, +% UKenglish und spanish erweitert} +% \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert} +% \changes{v2.5b}{2000/01/20}{Reaktivierung der Sprache geschieht +% nun via \cs{languagename}, soweit dies m"oglich ist} +% \changes{v2.5e}{2000/07/14}{Workaround f"ur Sprache nohyphenation +% durch Format mit Babel-Erweiterung aber kein Babel package +% geladen} +% \begin{macrocode} + \captionsenglish + \dateenglish +% \end{macrocode} +% \changes{v2.9i}{2002/09/04}{Workaround f"ur den +% \texttt{hyphen.cfg}-Bug von Babel} +% Wird die \texttt{hyphen.cfg} von Babel verwendet, wird aber das +% \textsl{babel}-Paket nicht geladen, so ist \cs{languagename} h"aufig +% nicht korrekt, so dass dann \cs{selectlanguage} mit +% \cs{languagename} als Argument schief geht. Daher hier ein +% Workaround f"ur das Problem. +% \begin{macrocode} + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname date\languagename\endcsname\relax + \ClassWarningNoLine{% + scrlttr2% + }{% + \string\language\space is \the\language, \string\languagename\space is + `\languagename'\MessageBreak + but \expandafter\string\csname + date\languagename\endcsname\space not defined!\MessageBreak + This seems to be a bug at you're `hyphen.cfg'.\MessageBreak + I'l undefine \string\languagename\space to avoid errors% + }% + \let\languagename=\undefined + \fi + \ifx\languagename\undefined + \ClassWarningNoLine{scrlttr2}{\string\languagename\space not + defined, using \string\language.\MessageBreak + This may result in use of wrong language!\MessageBreak + You should use a compatible language + package\MessageBreak + (e.g. `Babel', `german', `ngerman', ...)} + \ifx\l@american\undefined\else\ifnum\language=\l@american + \captionsamerican + \dateamerican + \fi\fi + \ifx\l@british\undefined\else\ifnum\language=\l@british + \captionsbritish + \datebritish + \fi\fi + \ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish + \captionsUKenglish + \dateUKenglish + \fi\fi + \ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish + \captionsUSenglish + \dateUSenglish + \fi\fi + \ifx\l@austrian\undefined\else\ifnum\language=\l@austrian + \captionsaustrian + \dateaustrian + \fi\fi + \ifx\l@german\undefined\else\ifnum\language=\l@german + \captionsgerman + \dategerman + \fi\fi + \ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman + \captionsngerman + \datengerman + \fi\fi + \ifx\l@french\undefined\else\ifnum\language=\l@french + \captionsfrench + \datefrench + \fi\fi + \ifx\l@italian\undefined\else\ifnum\language=\l@italian + \captionsitalian + \dateitalian + \fi\fi + \ifx\l@spanish\undefined\else\ifnum\language=\l@spanish + \captionsspanish + \datespanish + \fi\fi + \ifx\l@croatian\undefined\else\ifnum\language=\l@croatian + \captionscroatian + \datecroatian + \fi\fi + \ifx\l@dutch\undefined\else\ifnum\language=\l@dutch + \captionsdutch + \datedutch + \fi\fi + \else + \edef\@tempa{nohyphenation} + \ifx\languagename\@tempa + \ClassWarningNoLine{% + scrlttr2% + }{% + You've selected language `\languagename'.\MessageBreak + Maybe your LaTeX format contains Babel extension\MessageBreak + but you have not selected a language using\MessageBreak + Babel package.\MessageBreak + Please select another language!\MessageBreak + Only as a workaround english captions and date\MessageBreak + will be used% + }% + \else + \expandafter\selectlanguage\expandafter{\languagename} + \ClassInfo{% + scrlttr2% + }{% + used language is `\languagename'.\MessageBreak + Supported languages are `english', `UKenglish',\MessageBreak + `british', `american', `USenglish',\MessageBreak + `german', `ngerman', `austrian',\MessageBreak + `dutch', `italian', `spanish', `croatian'% + } + \fi + \fi + } +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Erweiterung der Internationalisierung} +% +% Dergleichen gibt es bei Briefen nicht. +% \begin{macrocode} +%<*!scrlettr> +% \end{macrocode} +% +% \changes{v2.2c}{1995/05/25}{Anpassung an CJK von Werner Lemberg.} +% +% Die Standardnamen wie |\figurename| etc. sind nicht immer +% ausreichend, da manche Sprachen Z"ahlw"orter vor oder nach dem +% jeweiligen Z"ahler einf"ugen m"ussen (man denke da sogar im +% Deutschen an "`Abbildung~1"' und "`Erste Abbildung"'). Desweiteren +% werden bei manchen Sprachen die Zwischenr"aume anders gesetzt +% bzw. sogar ganz unterdr"uckt. +% +% Es gibt drei Ebenen, die man modifizieren kann, um verschiedenste +% Sprachen zu implementieren: Ebene~1 besteht aus den hinl"anglich +% bekannten Makros wie |\figurename| und alle weiteren Makros, die +% z.\,B. |german.sty| modifiziert. Desweiteren k"onnen die Makros +% |\sectfont| etc. etwaige zus"atzliche Fonts aktivieren. Ebene~2 ist +% die zus"atzliche Adaptierung von den Z"ahlern selbst (|\thesection| +% k"onnte z.B. chinesische Schriftzeichen ansprechen anstelle von +% arabischen Ziffern). Die allgemeinste Form der dritten Ebene +% besteht aus den Makros |\chaptermarkformat|, |\sectionmarkformat|, +% |\subsectionmarkformat|, |\partformat|, |\chapterformat|, +% |\figureformat|, |\tableformat| und |\captionformat|, welche die +% "Anderung der Reihenfolge von Z"ahler und Titel sowie die genaue +% Kontrolle der Zwischenr"aume etc. erm"oglichen. +% +% F"ur die g"angigen Sprachen k"onnen alle Makros f"ur die dritte +% Ebene identisch definiert werden. Bei Verwendung von "`exotischen"' +% Sprachen, aber auch speziellen Darstellungen in den g"angigen +% Sprachen k"onnen diese Makros umdefiniert werden. +% +% Das Konzept f"ur der Internationalisierung mit der dritten Ebene wurde +% urspr"unglich von Werner Lemberg\footnote{Werner Lemberg ist im InterNet +% unter \texttt{a7621gac@awiuni11.bitnet} zu erreichen.} entwickelt. +% Die "`caption files"' seines CJK-Pakets (\textbf{C}hinesisch, +% \textbf{J}apanisch, \textbf{K}oreanisch) bauen auf diesem Konzept auf. +% Damit ist \textsf{KOMA-Script} f"ur alle m"oglichen Sprachanpassungen +% bestens ger"ustet. +% +% \begin{macro}{\if@altsecnumformat} +% \changes{v2.3c}{1995/08/06}{Einf"uhrung von +% \cs{if@altsecnumformat}} +% \begin{macro}{\@altsecnumformattrue} +% \begin{macro}{\@altsecnumformatfalse} +% Dieses Hilfsmakro wird f"ur die Umschaltung auf Duden-Regel~6 bei der +% Numerierung ben"otigt. +% \begin{macro}{\if@autodot} +% \changes{v2.8e}{2001/07/10}{Neu} +% \begin{macro}{\@autodottrue} +% \begin{macro}{\@autodotfalse} +% Damit die Umschaltung auch wieder zur"uck auf Regel~5 automatisch +% erfolgen kann, wird ein zweiter Schalter ben"otigt. +% \begin{macrocode} +\newif\if@altsecnumformat\@altsecnumformatfalse +\newif\if@autodot\@autodotfalse +% \end{macrocode} +% \begin{macro}{\@maybeautodot} +% \changes{v2.8e}{2001/07/10}{Neu} +% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der +% Darstellung eines Z"ahlers entschieden. Diese wird dem Makro als +% Argument "ubergeben (|\thepart|, |\thechapter| etc.). Durch +% Verwendung einer Gruppe, werden alle Definitionen lokal gehalten. +% \begin{macrocode} +\newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup% + \expandafter\@@maybeautodot #1\@stop\endgroup\fi} +% \end{macrocode} +% \begin{macro}{\@@maybeautodot} +% \changes{v2.8e}{2001/07/10}{Neu} +% Die expandierte Darstellung wird dann auf Darstellungsbefehle f"ur +% Z"ahler gescannt. +% \begin{macrocode} +\newcommand*{\@@maybeautodot}[1]{% + \ifx #1\@stop\let\@@maybeautodot\relax% + \else% + \ifx #1\Alph \aftergroup\@autodottrue\fi% + \ifx #1\alph \aftergroup\@autodottrue\fi% + \ifx #1\Roman \aftergroup\@autodottrue\fi% + \ifx #1\roman \aftergroup\@autodottrue\fi% + \ifx #1\@Alph \aftergroup\@autodottrue\fi% + \ifx #1\@alph \aftergroup\@autodottrue\fi% + \ifx #1\@Roman \aftergroup\@autodottrue\fi% + \ifx #1\@roman \aftergroup\@autodottrue\fi% + \ifx #1\romannumeral \aftergroup\@autodottrue\fi% + \fi% + \@@maybeautodot} +% \end{macrocode} +% \begin{macro}{\scr@sect} +% \begin{macro}{\@sect} +% Damit auch alle mit |startsection| definierten Gliederungsebenen bei +% der Entscheidung ber"ucksichtigt werden, muss ein internes Makro des +% \LaTeX-Kerns erweitert werden. F"ur die Ebenen |part| und |chapter| +% wird dies direkt in der Definition der Befehle erledigt. +% \begin{macrocode} +\let\scr@sect\@sect +\renewcommand*{\@sect}[1]{\stepcounter{#1}% + \expandafter\@maybeautodot\csname the#1\endcsname% + \addtocounter{#1}{-1}\scr@sect{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% Dabei soll die Umstellung beim zweiten TeX-Lauf bereits am Anfang +% aktiv sein. Deshalb wird die Information am Ende in die aux-Datei +% geschrieben. +% \changes{v2.9k}{2003/01/12}{es wird direkt in \cs{@mainaux} geschrieben} +% \begin{macrocode} +\AtEndDocument{% + \if@autodot\if@filesw\immediate\write\@mainaux{% + \string\global\string\@altsecnumformattrue} + \fi\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\chaptermarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer erh"oht.} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingef"ugt} +% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt +% \cs{chapappifprefix}} +% \begin{macro}{\sectionmarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer erh"oht.} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% \begin{macro}{\subsectionmarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer erh"oht.} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% Diese drei Makros werden f"ur die Markierungen innerhalb der pagestyles +% in |\chaptermark|, |\sectionmark| und |\subsectionmark| verwendet. +% Die drei Makros sind bewu"st unabh"angig voneinander definiert. +% \begin{macro}{\autodot} +% \changes{v2.7}{2001/01/03}{Neues Makro \cs{autodot}.} +% \changes{v2.7}{2001/01/03}{Abstand von \cs{quad} auf \cs{enskip} +% verringert.} +% Innerhalb der Makros wird ein Makro verwendet, das automatisch einen +% Punkt setzt, falls dies nach dem Duden als erforderlich angesehen +% wird. +% \begin{macrocode} +\newcommand*\autodot{\if@altsecnumformat.\fi} +%<*scrreprt|scrbook> +\newcommand*\chaptermarkformat {\chapappifchapterprefix{\ }% + \thechapter\autodot\enskip} +\newcommand*\sectionmarkformat {\thesection\autodot\enskip} +% +%<*scrartcl> +\newcommand*\sectionmarkformat {\thesection\autodot\enskip} +\newcommand*\subsectionmarkformat {\thesubsection\autodot\enskip} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\partformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% \changes{v2.5f}{1999/02/14}{"Uberfl"ussiges Leerzeichen am Ende +% entfernt} +% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot} +% wieder eingef"ugt} +% \begin{macro}{\chapterformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% \changes{v2.7}{2000/01/03}{Einfaches Leerzeichen durch \cs{enskip} +% ersetzt.} +% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingef"ugt} +% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt +% \cs{chapappifprefix}} +% \begin{macro}{\chapappifprefix} +% \changes{v2.8}{2001/06/15}{Neu} +% \changes{v2.8o}{2001/09/19}{obsolet} +% \begin{macro}{\chapappifchapterprefix} +% \changes{v2.8o}{2001/09/19}{Neu} +% \changes{v2.8o}{2001/09/19}{Argument ist nicht optional} +% \begin{macro}{\chapapp} +% \changes{v2.8}{2001/06/15}{Neu} +% \begin{macro}{\figureformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% \begin{macro}{\tableformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% \begin{macro}{\captionformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6.} +% Diese f"unf Makros werden nun innerhalb der entsprechenden +% "Uberschriften, Unterschriften, Titel etc. verwendet. +% \begin{macrocode} +\newcommand*{\partformat}{\partname~\thepart\autodot} +%<*scrreprt|scrbook> +\newcommand*{\chapterformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} +% +\newcommand*{\figureformat}{\figurename~\thefigure% +% \autodot% + } +\newcommand*{\tableformat}{\tablename~\thetable% +% \autodot% +} +\newcommand*{\captionformat}{:\ } +% \end{macrocode} +% Das in |\chapterformat| verwendete Makro |\chapappifchapterprefix| setzt +% abh"angig von |\if@chapterprefix| noch das Makro |\chapapp| gefolgt +% vom obliatorischen Argument. |\chapapp| macht |\@chapapp| auf +% Anwenderebene verf"ugbar. Der Vorteil des neuen +% |\chapappifchapterprefix| gegen"uber dem alten |\chapappifprefix| +% ist, dass nun beim Umdefinieren von |\chapterformat| und +% |\chaptermarkformat| wieder |\renewcommand| verwendet werden kann +% und beim Umschalten in den Anhang die Kopfzeile korrekt ist, weil +% das Makro nun nicht mehr gesch"utzt ist, sondern direkt expandiert. +% \begin{macrocode} +%<*scrbook|scrreprt> +\newcommand*{\chapappifprefix}[1][]{% + \ClassWarning{% +% scrbook% +% scrreprt% + }{% + Please don't use obsolete command + \string\chapappifprefix.\MessageBreak + The new command \string\chapappifchapterprefix\space has + an\MessageBreak + obligatory instead of an optional argument. Use that\MessageBreak + new command% + }% + \if@chapterprefix\chapapp#1\fi} +\newcommand*{\chapappifchapterprefix}[1]{\if@chapterprefix\chapapp#1\fi} +\newcommand*{\chapapp}{\@chapapp} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Dieses Makro wird bei allen "Uberschriften mit |\@startsection| +% verwendet. +% \begin{macro}{\@seccntformat} +% \changes{v2.3c}{1995/08/06}{CJK erweitert} +% \changes{v2.9p}{2004/01/07}{\cs{protect} eingef"ugt} +% \begin{macro}{\othersectionlevelsformat} +% \changes{v2.7}{2000/01/03}{F"ur alle "ubrigen Gliederungsebenen +% ebenfalls ein Makro auf Anwenderebene +% eingef"uhrt.} +% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt.} +% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt} +% Wobei ein Hilfsmakro eingesetzt wird, das auf Anwenderseite umdefiniert +% werden kann. +% \begin{macrocode} +\newcommand*{\othersectionlevelsformat}[1]{% + \csname the#1\endcsname\autodot\enskip} +\renewcommand*{\@seccntformat}{\protect\othersectionlevelsformat} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Die Brief-Umgebung} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{environment}{letter} +% \changes{v2.8q}{2002/01/16}{optionales Argument hinzugef"ugt} +% \changes{v2.8q}{2002/01/16}{Fu"snotenz"ahler wird zur"uckgesetzt} +% \changes{v2.9d}{2002/08/12}{Fu"snotenz"ahler wird korrekt zur"uckgesetzt} +% Diese Umgebung ist etwas anders definiert, als normalerweise von +% \LaTeX gewohnt. Mit ihr k"onnen innerhalb eines Dokuments beliebig +% viele Briefe erzeugt werden. Eine der Abweichungen von der +% Standardklasse besteht darin, dass als optionales Argument Optionen +% gesetzt werden k"onnen. +% \begin{macro}{\stopletter} +% \begin{macro}{\@processto} +% \changes{v2.9r}{2004/06/16}{robust gegen leeren Empf"anger} +% \begin{macro}{\@xproc} +% Die Adresse, die als Argument der Briefumgebung +% "ubergeben wird, muss in Name und Adresse zerlegt werden. +% \begin{macrocode} +\newenvironment{letter}[2][]{% +% \end{macrocode} +% Als erstes wird eine neue Seite begonnen. Dies kann ggf. auch eine +% neue rechte Seite sein. Danach werden alle relevanten Z"ahler +% und Strafpunkte zur"uckgesetzt und der obligatorische Parameter +% ausgewertet. +% \begin{macrocode} + \newpage + \if@twoside\ifodd\c@page\else + \thispagestyle{empty}\null\newpage\fi\fi + \setcounter{page}{\@ne}% + \setcounter{footnote}{0}% + \interlinepenalty=200\@processto{#2}% +% \end{macrocode} +% Dann werden ggf. die "ubergebenen Optionen ausgef"uhrt. +% \begin{macrocode} + \KOMAoptions{#1}% +% \end{macrocode} +% Zum Schluss werden die per \cs{AtBeginLetter} angegeben Anweisungen +% ausgef"uhrt. +% \begin{macrocode} + \@beginletterhook + }{% + \stopletter\@@par\pagebreak\@@par% + } +\newcommand*{\stopletter}{} +\newcommand{\@processto}[1]{% + \ifx\relax#1\relax\else + \expandafter\@xproc#1\\\@nil\ifkomavarempty{toaddress}{}{% + \expandafter\@xproc#1\@nil}% + \fi +} +\newcommand*{\@xproc}{} +\long\def\@xproc#1\\#2\@nil{% + \setkomavar{toname}{#1}\setkomavar{toaddress}{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\fname@font} +% \changes{v2.8q}{2002/01/28}{Neu} +% Die Schriftart, die f"ur den Absendername verwendet +% wird. Voreingestellt ist keine "Anderung. +% \begin{macrocode} +\newcommand*{\fname@font}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\faddress@font} +% \changes{v2.8q}{2002/01/28}{Neu} +% Die Schriftart, die f"ur den Absender verwendet wird. Voreingestellt +% ist keine "Anderung. +% \begin{macrocode} +\newcommand*{\faddr@font}{} +% \end{macrocode} +% \end{macro} +% \end{environment} +% +% \begin{macro}{\AtBeginLetter} +% \changes{v2.8n}{2001/09/08}{Neu} +% \begin{macro}{\@beginletterhook} +% \changes{v2.8n}{2001/09/08}{Neu} +% Wie oben zu sehen, wurde in den Anfang der Briefumgebung ein Haken +% eingef"ugt. Dieser wird auch tats"achlich intern genutzt. Er +% funktioniert prinzipiell wie der |\AtBeginDocument|-Haken. Zun"achst +% macht der Haken rein gar nichts. +% \begin{macrocode} +\newcommand{\AtBeginLetter}{\g@addto@macro\@beginletterhook} +\newcommand{\@beginletterhook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsection{Briefspezifische Feld-Variablen} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% +% \begin{macro}{\newkomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% Bei Briefen gibt es eine ganze Reihe von speziellen Variablen. An +% dieser Stelle sei als Beispiel nur das Feld "`Ihr Zeichen"` +% genannt. Es ist nahezu unm"oglich alle diese Felder +% vorherzusehen. Daher wurde in der neuen Briefklasse ein neuer +% Mechanismus zur Definition solcher Felder geschaffen. Es wird +% zwischen zwei Arten von Feldern unterschieden: +% \begin{itemize} +% \item Felder f"ur die Gesch"aftszeile +% \item Felder f"ur sonstige Verwendung +% \end{itemize} +% Felder k"onnen aber auch nachtr"aglich zur Gesch"aftszeile +% hinzugef"ugt werden. Die Sternvariante von \cs{newkomavar} f"uhrt +% dies jedoch automatisch durch. +% \begin{macro}{\@newkomavar} +% Da mit einer Sternvariante gearbeitet wird, wird ein Hilfsmakro +% ben"otigt. Das Makro erh"alt ein optionales und +% ein obligatorisches Argument. Das optionale Argument ist dabei die +% Voreinstellung f"ur den \emph{Ausgabenamen} des Feldes, der +% ggf. ausgegeben werden soll. Das obligatorische Argument ist +% \emph{Name} des Feldes, "uber den das Feld angesprochen wird. +% Das Makro definiert zwei weitere Makros: \cs{\emph{scr@Name}@var} und +% \cs{scr@\emph{Name}@name}. +% \begin{macrocode} +\newcommand*{\newkomavar}{% + \@ifstar {\@tempswatrue\@newkomavar}{\@tempswafalse\@newkomavar}} +\newcommand*{\@newkomavar}[2][\relax]{% + \@ifundefined{scr@#2@name}{% + \@ifundefined{scr@#2@var}{% + \begingroup + \def\@tempa{#1}\def\@tempb{\relax}% + \ifx\@tempa\@tempb\endgroup\else + \endgroup\@namedef{scr@#2@name}{#1}% + \fi% + \expandafter\let\csname scr@#2@var\endcsname=\@empty + \if@tempswa\addtoreffields{#2}\fi + }{% + \ClassError{% + scrlttr2% + }{% + This should never happen% + }{% + The contents of the KOMA-Script variable `#2'\MessageBreak + is undefined, but the name of the variable is + defined.\MessageBreak + This should never happen. So someone crashs me!% + } + } + }{% + \ClassError{% + scrlttr2% + }{% + Variable `#2' already defined% + }{% + I'll ignore this command, if you'll continue.% + } + } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\setkomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% Nat"urlich wird auch ein Befehl ben"otigt, um die Feldvariablen +% zu setzen und ihnen ggf. einen neuen Namen f"ur die Ausgabe zu +% geben. Der \emph{Name} der Feldvariable wird als obligatorisches +% erstes Argument "ubergeben. +% \begin{macro}{\@setkomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% Da dann zwischen einer Sternvariante und einer normalen +% unterschieden werden soll wird ein Hilfsmakro ben"otigt. +% \begin{macro}{\@setkomaname} +% \changes{v2.8q}{2002/01/14}{Neu} +% Die Sternvariante definiert nur den Ausgabename neu. +% \begin{macro}{\@@setkomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% Da in der normalen Variante nach dem Stern ein optionales Argument +% folgen kann, wird mit einem weiteren Hilfsmakro gearbeitet. Der +% \emph{Ausgabename} wird dabei als optionales, zweites Argument +% "ubergeben. Der \emph{Inhalt} wird als obligatorisches, drittes +% Argument "ubergeben. +% \begin{macrocode} +\newcommand*{\setkomavar}{% + \@ifstar {\@setkomaname}{\@setkomavar}} +\newcommand*{\@setkomavar}[1]{% + \@ifnextchar [%] + {\@@setkomavar{#1}}{\@@setkomavar{#1}[\relax]}} +\newcommand*{\@setkomaname}[2]{% + \@ifundefined{scr@#1@var}{% + \@komavar@err{set}{#1}% + }{% + \@namedef{scr@#1@name}{#2}% + }% + } +\newcommand*{\@@setkomavar}{} +\long\def\@@setkomavar#1[#2]#3{% + \@ifundefined{scr@#1@var}{% + \@komavar@err{set}{#1}% + }{% + \@namedef{scr@#1@var}{#3}% + \begingroup + \def\@tempa{#2}\def\@tempb{\relax}% + \ifx\@tempa\@tempb\endgroup\else + \endgroup\@namedef{scr@#1@name}{#2}% + \fi + } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@komavar@err} +% \changes{v2.8q}{2002/01/14}{Neu} +% Dieses Makro wird intern in den Makros \cs{setkomavar} und +% \cs{usekomavar} verwendet. +% \begin{macrocode} +\newcommand*{\@komavar@err}[2]{% + \ClassError{% + scrlttr2% + }{% + KOMA-Script variable not defined% + }{% + You've tried to #1 the not defined KOMA-Script variable + `#2'.\MessageBreak + You have to define the variable using \string\newkomavar\space + before\MessageBreak + you do this.% + }% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\usekomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% \changes{v2.9i}{2002/09/04}{robust} +% Selbstverst"andlich wird auch ein Makro ben"otigt, um auf den +% Inhalt oder den Ausgabename einer Variablen zugreifen zu +% k"onnen. Mit der normalen Variante wird dabei der Inhalt, mit der +% Sternvariante der Name ausgegeben. +% \begin{macro}{\@usekomavar} +% \changes{v2.8q}{2002/01/14}{Neu} +% \changes{v2.9i}{2002/09/04}{optionales Argument} +% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument +% eingefügt} +% \begin{macro}{\@usekomaname} +% \changes{v2.8q}{2002/01/14}{Neu} +% \changes{v2.9i}{2002/09/04}{optionales Argument} +% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument +% eingefügt} +% Da mir einer Sternvariante gearbeitet wird, werden zwei Hilfsmakros +% ben"otigt. +% \begin{macrocode} +\DeclareRobustCommand*{\usekomavar}{% + \@ifstar {\@usekomaname}{\@usekomavar}} +\newcommand*{\@usekomavar}[2][\@firstofone]{% + \@ifundefined{scr@#2@var}{% + \@komavar@err{use}{#2}% + }{% + #1{\@nameuse{scr@#2@var}}% + }% + } +\newcommand*{\@usekomaname}[2][\@firstofone]{% + \@ifundefined{scr@#2@var}{% + \@komavar@err{use}{#2}% + }{% + #1{\@nameuse{scr@#2@name}}% + }% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifkomavarempty} +% \changes{v2.8q}{2002/01/14}{Neu} +% \changes{v2.9i}{2002/09/04}{Leerzeichen rausgeworfen} +% \changes{v2.9i}{2002/09/04}{robust} +% Es gibt auch noch ein Makro, um zu testen, ob eine KOMA-Script +% Variable oder deren Name leer ist. Die Sternvariante ist wieder f"ur +% den Namen zust"andig. +% \begin{macro}{\if@komavarempty} +% \changes{v2.8q}{2002/01/14}{Neu} +% Da mit einer Sternvariante gearbeitet wird, wird wieder ein +% Hilfsmakro verwendet. +% \begin{macrocode} +\DeclareRobustCommand*{\ifkomavarempty}{% + \begingroup + \@ifstar {\@tempswatrue\@ifkomavarempty}% + {\@tempswafalse\@ifkomavarempty}% + } +\newcommand{\@ifkomavarempty}[3]{% + \@ifundefined{scr@#1@var}{% + \endgroup\@komavar@err{use}{#1}% + }{% + \if@tempswa\endgroup + \@ifundefined{scr@#1@name}{#2}{% + \expandafter\ifx\csname scr@#1@name\endcsname\@empty + #2% + \else + #3% + \fi + }% + \else\endgroup + \expandafter\ifx\csname scr@#1@var\endcsname\@empty + #2% + \else + #3% + \fi + \fi + }% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{KOMAvar}{signature} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{place} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{location} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{backaddress} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{specialmail} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{title} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{fromlogo} +% \changes{v2.8q}{2002/01/28}{Neu} +% Zun"achst besitzt die Briefklasse einige Variablen, die von Haus aus +% nicht "uber einen Ausgabenamen verf"ugen, weil sie "ublicherweise +% ohne Ausgabe einer Bezeichung verwendet werden. Diese Variablen +% haben teilweise auch keinen vordefinierten Inhalt. Der Inhalt +% muss erst vom Anwender gesetzt werden. Teilweise gibt es aber auch +% einen vordefinierten Inhalt, der von anderen Variablen abh"angt. +% \begin{macrocode} +\newkomavar{signature} +\setkomavar{signature}{\usekomavar{fromname}} +\newkomavar{place} +\newkomavar{location} +\newkomavar{backaddress} +\setkomavar{backaddress}{% + \ifkomavarempty{fromname}{}{% + \strut\ignorespaces\usekomavar{fromname}% + \ifkomavarempty{fromaddress}{}{\\}}% + \ifkomavarempty{fromaddress}{}{% + \strut\ignorespaces\usekomavar{fromaddress}}% + } +\newkomavar{specialmail} +\newkomavar{title} +\newkomavar{fromlogo} +% \end{macrocode} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% +% \begin{KOMAvar}{placeseparator} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{subjectseparator} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{ccseparator} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{enclseparator} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{backaddressseparator} +% \changes{v2.8q}{2002/01/22}{Neu} +% \begin{KOMAvar}{phoneseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% \begin{KOMAvar}{faxseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% \begin{KOMAvar}{emailseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% \begin{KOMAvar}{urlseparator} +% \changes{v2.8q}{2002/03/25}{Neu} +% Daneben gibt es einige Trennzeichen. Diese haben ggf. als +% Ausgabenamen das Feld, f"ur das sie als Trennzeichen dienen. Die +% Trennzeichen sind vordefiniert. +% \begin{macrocode} +\newkomavar[\usekomavar{place}]{placeseparator} +\setkomavar{placeseparator}{,~} +\newkomavar[\subjectname]{subjectseparator} +\setkomavar{subjectseparator}{: } +\newkomavar[\ccname]{ccseparator} +\setkomavar{ccseparator}{: } +\newkomavar[\enclname]{enclseparator} +\setkomavar{enclseparator}{: } +\newkomavar{backaddressseparator} +\setkomavar{backaddressseparator}{,~} +\newkomavar[\phonename]{phoneseparator} +\setkomavar{phoneseparator}{:~} +\newkomavar[\faxname]{faxseparator} +\setkomavar{faxseparator}{:~} +\newkomavar[\emailname]{emailseparator} +\setkomavar{emailseparator}{:~} +\newkomavar[\wwwname]{urlseparator} +\setkomavar{urlseparator}{:~} +% \end{macrocode} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% +% \begin{KOMAvar}{fromname} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{fromaddress} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{fromemail} +% \changes{v2.8q}{2002/01/28}{Neu} +% \begin{KOMAvar}{fromurl} +% \changes{v2.8q}{2002/01/28}{Neu} +% \begin{KOMAvar}{frombank} +% \changes{v2.8q}{2002/01/28}{Neu} +% \begin{KOMAvar}{toname} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{toaddress} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{fromphone} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{fromfax} +% \changes{v2.8q}{2002/01/28}{Neu} +% \begin{KOMAvar}{yourmail} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{yourref} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{myref} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{customer} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{invoice} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{subject} +% \changes{v2.8q}{2002/01/16}{Neu} +% \begin{KOMAvar}{date} +% \changes{v2.8q}{2002/01/16}{Neu} +% Desweiteren gibt es einige Variable, die auch einen Ausgabenamen +% haben, weil dieser "ublicherweise vorangestellt wird. Eine +% Besonderheit stellt dabei \texttt{subject} dar. Der Ausgabename +% beinhaltet dabei n"amlich auch die Trennzeichen, die hinter dem +% Namen "ublicherweise stehen. Diese sind wiederum ein Variable, deren +% Name der Ausgabename des Feldes ist. Will man also nur den Namen +% aber nicht die Trennzeichen "andern, so "andert man statt dem Namen +% von \texttt{subject} den Namen von \texttt{subjectseparator}. +% "Ahnlich ist es mit \texttt{toaddress} und +% \texttt{fromaddress}. Dort ist der Wert von \texttt{toname} +% bzw. \texttt{fromname} der Ausgabename. Bei \texttt{toaddress} und +% \texttt{fromaddress} wird davon jedoch intern kein Gebrauch +% gemacht. Die Variable \texttt{date} wird bereits so vordefiniert, +% dass auch weiterhin \cs{date} funktioniert. +% \begin{macrocode} +\newkomavar[\headfromname]{fromname} +\newkomavar[\usekomavar{fromname}]{fromaddress} +\newkomavar[\headtoname]{toname} +\newkomavar[\usekomavar{toname}]{toaddress} +\newkomavar[\usekomavar*{phoneseparator}% + \usekomavar{phoneseparator}]{fromphone} +\newkomavar[\usekomavar*{faxseparator}% + \usekomavar{faxseparator}]{fromfax} +\newkomavar[\usekomavar*{emailseparator}% + \usekomavar{emailseparator}]{fromemail} +\newkomavar[\usekomavar*{urlseparator}% + \usekomavar{urlseparator}]{fromurl} +\newkomavar[\bankname]{frombank} +\newkomavar[\yourrefname]{yourref} +\newkomavar[\yourmailname]{yourmail} +\newkomavar[\myrefname]{myref} +\newkomavar[\customername]{customer} +\newkomavar[\invoicename]{invoice} +\newkomavar[\usekomavar*{subjectseparator}% + \usekomavar{subjectseparator}]{subject} +\newkomavar[\datename]{date} +\setkomavar{date}{\@date} +% \end{macrocode} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% \end{KOMAvar} +% +% \begin{macro}{\firsthead} +% \changes{v2.8q}{2002/01/28}{\cs{@alignfrom} auf 10000 gesetzt} +% \begin{macro}{\firstfoot} +% \begin{macro}{\nexthead} +% \begin{macro}{\nextfoot} +% Bei der Gelegenheit werden auch gleich die Befehle zum Setzen +% der Felder f"ur die Kopf- und Fu"szeilen der ersten und aller +% weiterer Seiten eines Briefes definiert. +% \begin{macrocode} +\newcommand{\firsthead}[1]{% + \renewcommand*{\@alignfrom}{10000}% + \renewcommand*{\@firsthead}{\noindent#1}% + } +\newcommand{\firstfoot}[1]{% + \renewcommand*{\@firstfoot}{\noindent#1}% + } +\newcommand{\nexthead}[1]{% + \renewcommand*{\@nexthead}{\noindent#1}% + } +\newcommand{\nextfoot}[1]{% + \renewcommand*{\@nextfoot}{\noindent#1}% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Briefspezifische Schalter und Befehle f"ur Faltmarken, +% Adressfeld und Titel} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% +% \begin{macro}{\foldmarkson} +% \begin{macro}{\foldmarksoff} +% Diese Befehle dienen nur der Kompatibilit"at mit der alten +% \texttt{scrlettr.cls}. +% \begin{macrocode} +\newcommand*{\foldmarkson}{% + \@ObsoleteCommand{\foldmarkson}{foldmarks=on}} +\newcommand*{\foldmarksoff}{% + \@ObsoleteCommand{\foldmarksoff}{foldmarks=off}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addrfieldon} +% \begin{macro}{\addrfieldoff} +% Diese Befehle dienen nur der Kompatibilit"at mit der alten +% \texttt{scrlettr.cls}. +% \begin{macrocode} +\newcommand*{\addrfieldon}{% + \@ObsoleteCommand{\addrfieldon}{addrfield=on}} +\newcommand*{\addrfieldoff}{% + \@ObsoleteCommand{\addrfieldoff}{addrfield=off}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\subjecton} +% \begin{macro}{\subjectoff} +% Diese Befehle dienen nur der Kompatibilit"at mit der alten +% \texttt{scrlettr.cls}. +% \begin{macrocode} +\newcommand*{\subjecton}{% + \@ObsoleteCommand{\subjecton}{subject=titled}} +\newcommand*{\subjectoff}{% + \@ObsoleteCommand{\subjectoff}{subject=untitled}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\subjectafteron} +% \begin{macro}{\subjectafteroff} +% \changes{v2.4a}{1997/06/06}{Neue Befehle \cs{subjectafteron} und +% \cs{subjectafteroff}.} +% Diese Befehle dienen nur der Kompatibilit"at mit der alten +% \texttt{scrlettr.cls}. +% \begin{macrocode} +\newcommand*{\subjectafteron}{% + \@ObsoleteCommand{\subjectafteron}{subject=afteropening}} +\newcommand*{\subjectafteroff}{% + \@ObsoleteCommand{\subjectafteroff}{subject=beforeopening}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Briefspezifische L"angen} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% Zu Berechnung der Feldpositionen werden verschiedene +% Dimensions-Variablen ben"otigt. Um jedoch nicht unn"otig viele +% L"angenregister zu verbrauchen, wird hier mit einer +% Pseudo-L"angen-Arithmetik gearbeitet. +% +% \begin{macro}{\@newplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% \changes{v2.8q}{2001/10/06}{Kompatibilit"at zu \texttt{scrlettr.cls} +% aufgegeben} +% Dieses Makro definiert eine neue Pseude-L"ange und setzt sie auf den +% Wert 0. Eine Pseudo-L"ange ist ein Makro, das eine L"ange enth"alt. +% \begin{macrocode} +\newcommand*{\@newplength}[1]{% + \@ifundefined{ltr@len@#1}{% + \expandafter\let\csname ltr@len@#1\endcsname=\z@% + }{% + \ClassError{scrlttr2}{% + pseudo-length \expandafter\string\csname ltr@len@#1\endcsname + already defined% + }{% + You tried to define a new pseudo-length using + \string\@newplength\MessageBreak + which is already defined. Try another name or + better\MessageBreak + Don't use this KOMA-Script internal macro} + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\useplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Nat"urlich muss auf eine solche Pseudo-L"ange auch wieder lesend +% zugeriffen werden k"onnen. Wir definieren dies hier so, dass es +% au"serdem m"oglich ist, ein Vorzeichen zu verwenden. Ein Faktor ist +% allerdings nicht m"oglich. +% \begin{macrocode} +\newcommand*{\useplength}[1]{% + \expandafter\number\expandafter\csname ltr@len@#1\endcsname} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setlengthtoplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Eine echte L"ange soll auf das Vielfache einer Pseudo-L"ange gesetzt +% werden. Dabei wird der Faktor als optionaler Parameter "ubergeben. +% Der erste obligatorische Parameter ist die L"ange, der zweite +% obligatorische Parameter ist die Pseudo-L"ange. +% \begin{macrocode} +\newcommand*{\setlengthtoplength}[3][]{% + \setlength{#2}{\useplength{#3}}% + \setlength{#2}{#1#2}} +% \end{macrocode} +% +% \begin{macro}{\@setplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Nat"urlich wird ebenfalls eine M"oglichkeit ben"otigt, einer +% Pseudo-L"ange einen Wert zuzuweisen. Dies geschieht unter lokaler +% Anwendung einer L"ange, damit sichergestellt ist, dass eine +% L"angenangabe "ubergeben wird. Dabei wird das zuvor definierte Makro +% \cs{setlengthtoplength} verwendet. +% \begin{macrocode} +\newcommand*{\@setplength}[3][]{% + \begingroup% + \setlength{\@tempskipa}{#3}% + \setlength{\@tempskipa}{#1\@tempskipa}% + \edef\@tempa{\noexpand\endgroup% + \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*% + \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}% + }% + \@tempa% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addtolengthplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Wenn wir schon dabei sind, soll statt dem Setzen auch das Addieren +% funktionieren. Hier ist die Erschwernis, dass der Faktor nur f"ur +% die Pseudo-L"ange und nicht f"ur das Endergebnis gelten soll. +% \begin{macrocode} +\newcommand*{\addtolengthplength}[3][]{% + \begingroup% + \setlengthtoplength[{#1}]{\@tempskipa}{#3}% + \edef\@tempa{\endgroup% + \noexpand\addtolength{#2}{\the\@tempskipa}}% + \@tempa% + } +% \end{macrocode} +% +% \begin{macro}{\@addtoplength} +% \changes{v2.8q}{2001/10/06}{Neu} +% Ebenso wird ein Makro ben"otigt, mit dem zu einer Pseudo-L"ange das +% Vielfache eines Wertes addiert werden kann. +% \begin{macrocode} +\newcommand*{\@addtoplength}[3][]{% + \begingroup% + \setlength{\@tempskipa}{#3}% + \setlength{\@tempskipa}{#1\@tempskipa}% + \addtolengthplength{\@tempskipa}{#2}% + \edef\@tempa{\noexpand\endgroup% + \noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*% + \noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}% + }% + \@tempa% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ltr@len@foldmarkhpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der Faltmarken von der linken Papierkante. +% \begin{macrocode} +\@newplength{foldmarkhpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@tfoldmarkvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% \begin{macro}{\ltr@len@bfoldmarkvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der oberen und unteren Faltmarken von der oberen Papierkante. +% \begin{macrocode} +\@newplength{tfoldmarkvpos} +\@newplength{bfoldmarkvpos} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\ltr@len@toaddrvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand des Adressfensters von der oberen Papierkante. +% \begin{macrocode} +\@newplength{toaddrvpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@backaddrheight} +% \changes{v2.8q}{2001/10/06}{Neu} +% H"ohe der R"ucksendeadresse. +% \begin{macrocode} +\@newplength{backaddrheight} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@toaddrhpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand des Adressfeldes von der linken Papierkante bzw. wenn +% negativ von der rechten Papierkante. +% \begin{macrocode} +\@newplength{toaddrhpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@specialmailindent} +% \changes{v2.8q}{2002/03/25}{Neu} +% Abstand der Versandtart vom linken Rand des Adressfensters. +% \begin{macrocode} +\@newplength{specialmailindent} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@specialmailrightindent} +% \changes{v2.8q}{2002/03/25}{Neu} +% Abstand der Versandtart vom rechten Rand des Adressfensters. +% \begin{macrocode} +\@newplength{specialmailrightindent} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@toaddrindent} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der Adresse vom linken Rand des Adressfensters. +% \begin{macrocode} +\@newplength{toaddrindent} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@toaddrwidth} +% \changes{v2.8q}{2001/10/06}{Neu} +% Breite des Adressfensters +% \begin{macrocode} +\@newplength{toaddrwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@toaddrheight} +% \changes{v2.8q}{2001/10/06}{Neu} +% H"ohe des Adressfensters ohne R"ucksendeadresse +% \begin{macrocode} +\@newplength{toaddrheight} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@locwidth} +% \changes{v2.8q}{2001/10/06}{Neu} +% Breite des Feldes neben dem Adressfenster +% \begin{macrocode} +\@newplength{locwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand der Gesch"aftszeile von der Papieroberkante. +% \begin{macrocode} +\@newplength{refvpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refwidth} +% \changes{v2.8q}{2001/10/06}{Neu} +% Breite der Gesch"aftszeile. +% \begin{macrocode} +\@newplength{refwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refhpos} +% \changes{v2.9l}{2003/01/28}{Neu} +% Horizontale Position der Gesch"aftszeile. +% \begin{macrocode} +\@newplength{refhpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@refaftervskip} +% \changes{v2.8q}{2001/10/09}{Neu} +% Abstand nach der Gesch"aftszeile. +% \begin{macrocode} +\@newplength{refaftervskip} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@sigbeforevskip} +% \changes{v2.8q}{2001/10/09}{Neu} +% Raum f"ur die Unterschrift. +% \begin{macrocode} +\@newplength{sigbeforevskip} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@sigindent} +% \changes{v2.8q}{2001/10/06}{Neu} +% Horizontaler Einzug des Schlussgru"ses und der Signatur. +% \begin{macrocode} +\@newplength{sigindent} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@@firstfootvpos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand des Fu"ses der ersten Seite von der Papieroberkante. +% \begin{macrocode} +\@newplength{firstfootvpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@firstfootwidth} +% \changes{v2.8q}{2001/10/06}{Neu} +% Breite des Fu"ses der ersten Seite. +% \begin{macrocode} +\@newplength{firstfootwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\set@ltr@len@firstheadvspos} +% \changes{v2.8q}{2001/10/06}{Neu} +% Abstand des Kopfes der ersten Seite von der Papoeroberkante. +% \begin{macrocode} +\@newplength{firstheadvpos} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@firstheadwidth} +% \changes{v2.8q}{2001/10/06}{Neu} +% Breite des Kopfes der ersten Seite. +% \begin{macrocode} +\@newplength{firstheadwidth} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltr@len@fromrulewidth} +% \changes{v2.8q}{2002/01/28}{Neu} +% Die L"ange einer eventuell gesetzten Linie im Absender. Negative +% Werte bedeuten, dass die L"ange automtaisch bestimmt wird. +\@newplength{fromrulewidth} +\@setplength{fromrulewidth}{0pt} +% \end{macro} +% +% F"ur alle Positionen gibt es Standardwerte. Diese Stellen sind leider +% extrem druckerabh"angig. Es ist daher "au"serst wichtig, da"s der +% Druckertreiber richtig eingestellt wird. Dazu kann die Testseite aus +% dem Standardpaket verwendet werden. +% +% Wichtig: Ab Version 2.8n sind alle vertikalen Abst"ande relativ zum +% oberen Papierrand. Au"serdem gibt es zwei Varianten, eine +% ausgewogene und eine, bei der mehr Platz f"ur den Brieftext der +% ersten Seite bleibt. +% +% \begin{macro}{\LoadLetterOption} +% \changes{v2.8q}{2001/10/08}{Neu} +% Bei der neuen Briefklasse existiert eine Anweisung, mit der eine +% \emph{\textbf{l}etter-\texttt{c}lass-\texttt{o}ption}-Datei geladen +% werden kann. Das Laden wird mit entsprechender Information in der +% \texttt{log}-Datei vermerkt. Damit in der Datei interne Makros +% verwendet werden k"onnen, mu"s der catcode von "`@"' entsprechend +% gesetzt sein. Damit der Befehl sowohl in der Pr"aambel als auch in +% weiteren Optionen-Dateien oder in der Klasse selbst verwendet werden +% kann, muss der catcode am Ende wieder restauriert werden. Dabei muss +% etwas trickreich gearbeitet werden, damit tats"achlich eine +% Schachtelung m"oglich ist. So erfolgt die Umschaltung des catcodes +% immer nur beim ersten Aufruf innerhalb einer Schachtel. +% \begin{macrocode} +\newcommand*{\LoadLetterOption}[1]{% + \@ifundefined{@restore@catcode@level} + {\let\@restore@catcode@level=\z@}{} + \ifnum\@restore@catcode@level =\z@ + \ifnum\catcode`\@=11 + \let\@restore@catcode\relax + \else + \@tempcnta=\catcode`\@ + \edef\@restore@catcode{% + \noexpand\catcode`\noexpand\@=\the\@tempcnta}% + \makeatletter + \fi + \fi + \@tempcnta=\@restore@catcode@level\relax + \advance\@tempcnta by \@ne\relax + \edef\@restore@catcode@level{\the\@tempcnta} + \InputIfFileExists{#1.lco}{% + \ClassInfo{% + scrlttr2% + }{Letter-Class-Option `#1' loaded} + }{% + \ClassError{% + scrlttr2% + }{% + Letter-Class-Option file `#1.lco' not found% + }{% + You've told me to load the Letter-Class-Option `#1'. So I have + to load\MessageBreak + the file `#1.lco'. But the file isn't available.} + } + \@tempcnta=\@restore@catcode@level\relax + \advance\@tempcnta by \m@ne\relax + \edef\@restore@catcode@level{\the\@tempcnta} + \ifnum\@tempcnta =\z@ + \@restore@catcode + \fi + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LetterOptionNeedsPapersize} +% \changes{v2.8q}{2001/10/17}{Neu} +% Es besteht die M"oglichkeit, in \texttt{lco}-Dateien eine bestimmte +% Papiergr"o"se zu fordern. Dazu wird der Name der \texttt{lco}-Datei +% und die geforderte Papiergr"ose als Parameter "ubergeben. Stimmt die +% Papiergr"o"se nicht "uberein, so wird bei \cs{opening} eine Warnung +% ausgegeben. +% \begin{macro}{\@PapersizeWarning} +% \changes{v2.8q}{2002/03/25}{Neu (intern)} +% \begin{macro}{\@@PapersizeWarning} +% \changes{v2.8q}{2002/03/25}{Neu (intern)} +% \begin{macro}{\LOPNP@size} +% \changes{v2.8q}{2002/03/25}{Neu (intern)} +% \begin{macro}{\LOPNP@option} +% \changes{v2.8q}{2002/03/25}{Neu (intern)} +% Zur einfacheren Realisierung wird mit vier internen Hilfsmakros +% gearbeitet. +% \begin{macrocode} +\newcommand*{\LOPNP@option}{} +\newcommand*{\LOPNP@size}{} +\newcommand*{\@PapersizeWarning}{ + \begingroup% + \edef\@tempc{\noexpand\@tempswatrue + \noexpand\ifdim\paperwidth=\the\paperwidth\noexpand\else + \noexpand\@tempswafalse\noexpand\fi + \noexpand\ifdim\paperheight=\the\paperheight\noexpand\else + \noexpand\@tempswafalse\noexpand\fi + \noexpand\@@PapersizeWarning + } + \def\@tempb{letter}\ifx\LOPNP@size\@tempb% + \setlength{\paperheight}{11in}\setlength{\paperwidth}{8.5in}% + \else\def\@tempb{legal}\ifx\LOPNP@size\@tempb% + \setlength{\paperheight}{14in}\setlength{\paperwidth}{8.5in}% + \else\def\@tempb{executive}\ifx\LOPNP@size\@tempb% + \setlength{\paperheight}{10.5in}\setlength{\paperwidth}{7.25in}% + \else% + \def\ta@opt@err{% + \ClassError{% + scrlttr2% + }{papersize `\LOPNP@size' undefined}{% + You've told me to check for paper size + `\LOPNP@size'\MessageBreak + at letter option file `\LOPNP@option.lco',\MessageBreak + but this paper size is not supported.\MessageBreak + See the KOMA-Script manual for informations about known + paper sizes.}% + } + \let\@headlines\ta@opt@err% + \expandafter\x@@paper\LOPNP@size paperpaper\x@@paper% + \fi\fi\fi + \@tempc + \endgroup% +} +\newcommand*{\@@PapersizeWarning}{% + \if@tempswa\else% + \ClassWarningNoLine{% + scrlttr2% + }{% + Letter option file `\LOPNP@option.lco'\MessageBreak + needs paper size `\LOPNP@size'.\MessageBreak + Current paper size is not `\LOPNP@size'!\MessageBreak + You should add `paper=\LOPNP@size' at the\MessageBreak + option list of \string\documentclass!\MessageBreak + Maybe you know what you are doing,\MessageBreak + so I do not change this myself} + \fi + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\newcommand*{\LetterOptionNeedsPapersize}[2]{% + \edef\LOPNP@size{#2}\edef\LOPNP@option{#1}% + } +% \end{macrocode} +% \end{macro} +% +% Als Voreinstellung wird schoneinmal die Datei \texttt{DIN.lco} +% geladen. +% \begin{macrocode} +\LoadLetterOption{DIN} +% \end{macrocode} +% +% Der Inhalt dieser Dateien folgt. Es handelt sich im Wesentlichen um +% das Setzen der Pseudo-L"angen. In einigen F"allen werden aber auch +% zus"atzlich Befehle (um)definiert. +% \begin{macrocode} +% +% +%<*lco> +% \end{macrocode} +% +% Die Maße f"ur einige Optionen wurden nicht von mir selbst +% recherchiert: +% \begin{center} +% \begin{tabular}{ll} +% \texttt{lco}-Datei & Recherchiert von \\\hline\\[-1.6ex] +% DIN & mir \\ +% DINmtext & mir \\ +% KOMAold & mir \\ +% SNleft & Roger Luethi \\ +% SN & Roger Luethi \\ +% \end{tabular}{ll} +% \end{center} +% +% Zun"achst wird gepr"uft, ob "uberhaupt die richtige Klasse geladen +% ist. +% \begin{macrocode} +\@ifundefined{scr@fromname@var}{% + \GenericWarning{(% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% + .lco)\@spaces\@spaces\@spaces\@spaces\@spaces\@spaces}{% + Letter-class-option +% DIN +% DINmtext +% SN +% SNold +% SNleft +% KOMAold + Warning:\space + This letter class option file was made only\MessageBreak + to be used with KOMA-Script letter class\MessageBreak + `scrlttr2'. Use with other classes may result\MessageBreak + in a lot of errors\@gobble + } +}{} +% \end{macrocode} +% +% Dann wird gepr"uft, ob das richtige Papierformat vorhanden ist. +% \begin{macrocode} +%<*DIN|DINmoretext|SN|SNold|SwissLeft|KOMAold> +\LetterOptionNeedsPapersize{% +% DIN% +% DINmtext% +% SN% +% SNold% +% SNleft% +% KOMAold% + } + {a4} +% +% \end{macrocode} +% +% Dann werden die Werte gesetzt. +% \begin{macrocode} +\@setplength{foldmarkhpos}{3.5mm} +%\@setplength{tfoldmarkvpos}{105mm} +%\@setplength{tfoldmarkvpos}{87mm} +%\@setplength{tfoldmarkvpos}{103.5mm} +%\@setplength{bfoldmarkvpos}{210mm} +%\@setplength{bfoldmarkvpos}{192mm} +%\@setplength{bfoldmarkvpos}{202.5mm} +%\@setplength{toaddrvpos}{45mm} +%\@setplength{toaddrvpos}{27mm} +%\@setplength{toaddrvpos}{35.5mm} +%\@setplength{toaddrvpos}{49mm} +%\@setplength{refvpos}{98.5mm} +%\@setplength{refvpos}{80.5mm} +%\@setplength{refvpos}{89mm} +%\@setplength{refvpos}{89.5mm} +%\@setplength{refaftervskip}{\baselineskip} +%\@setplength[2]{refaftervskip}{\baselineskip} +%\@setplength{toaddrhpos}{20mm} +%\@setplength{toaddrhpos}{-8mm} +%\@setplength{toaddrhpos}{1in} +%\@addtoplength{toaddrhpos}{\oddsidemargin} +%\@setplength{toaddrwidth}{85mm} +%\@setplength{toaddrwidth}{90mm} +%\@setplength{toaddrwidth}{100mm} +%\@setplength{toaddrwidth}{70mm} +%\@setplength{toaddrheight}{40mm} +\@setplength{toaddrindent}{\z@} +\@setplength{specialmailindent}{\fill} +\@setplength{specialmailrightindent}{1em} +\@setplength{locwidth}{\z@} +%\@setplength{backaddrheight}{5mm} +%\@setplength{firstheadvpos}{8mm} +%\@setplength{firstheadvpos}{6mm} +%\@setplength{firstheadwidth}{\textwidth} +%<*!KOMAold> +\@setplength{firstheadwidth}{\paperwidth} +\ifdim \useplength{toaddrhpos}>\z@ + \@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}} +\else + \@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}} +\fi +% +\@setplength{firstfootwidth}{\useplength{firstheadwidth}} +%\@setplength{firstfootvpos}{\paperheight} +%\@addtoplength{firstfootvpos}{-2cm} +%\@setplength{firstfootvpos}{1in} +%\@addtoplength{firstfootvpos}{\topmargin} +%\@addtoplength{firstfootvpos}{\headheight} +%\@addtoplength{firstfootvpos}{\headsep} +%\@addtoplength{firstfootvpos}{\textheight} +%\@addtoplength{firstfootvpos}{\footskip} +% \end{macrocode} +% Bei der Breite der Gesch"aftszeile brauchen wir wieder eine +% Sonderl"osung, damit die Option "`wide"' auch sp"ater noch gesetzt +% werden kann. Also verwenden wir hier den Wert 0 als mit der +% Bedeutung "`ist bei \cs{opening} zu berechnen. +% \begin{macrocode} +\@setplength{refwidth}{0pt} +\@setplength{sigindent}{0mm} +\@setplength{sigbeforevskip}{2\baselineskip} +%\let\raggedsignature=\centering +%\let\raggedsignature=\raggedright +%<*DINmoretext> +\renewcommand*{\@firsthead}{\noindent + \parbox[b]{\useplength{firstheadwidth}}{\centering% + \usekomafont{fromaddress}{% + \ifkomavarempty{fromname}{}{% + \usekomafont{fromname}% + {\ignorespaces\usekomavar{fromname}\\[-8pt] + \rule{\useplength{firstheadwidth}}{.4pt}\\ + }% + }% + \ifkomavarempty{fromaddress}{}{% + \def\\{,\ \@ogobble} + \ignorespaces\usekomavar{fromaddress}% + }% + }% + }% + } +% +% \end{macrocode} +% +% Au"serdem gibt es noch die Kompatibilit"atseinstellungen, die +% ebenfalls von \texttt{KOMAold} aktiviert werden. +% \begin{macrocode} +%<*KOMAold> +\def\yourref{\setkomavar{yourref}} +\def\yourmail{\setkomavar{yourmail}} +\def\myref{\setkomavar{myref}} +\def\customer{\setkomavar{customer}} +\def\invoice{\setkomavar{invoice}} +\@ifundefined{scr@refitemi@var}{\newkomavar{refitemi}}{} +\def\refitemi{\setkomavar{refitemi}} +\def\refitemnamei{\setkomavar*{refitemi}} +\@ifundefined{scr@refitemii@var}{\newkomavar{refitemii}}{} +\def\refitemii{\setkomavar{refitemii}} +\def\refitemnameii{\setkomavar*{refitemii}} +\@ifundefined{scr@refitemiii@var}{\newkomavar{refitemiii}}{} +\def\refitemiii{\setkomavar{refitemiii}} +\def\refitemnameiii{\setkomavar*{refitemiii}} +\l@addto@macro{\defaultreffields}{% + \addtoreffields{refitemi}% + \addtoreffields{refitemii}% + \addtoreffields{refitemiii}% + } +\addtoreffields{refitemi}% +\addtoreffields{refitemii}% +\addtoreffields{refitemiii}% +\def\toname{\usekomavar{toname}} +\def\toaddress{\usekomavar{toaddress}} +\@ifundefined{scr@branch@var}{\newkomavar{branch}}{} +\def\branch{\setkomavar{branch}} +\def\frombranch{\usekomavar{branch}} +\def\signature{\setkomavar{signature}} +\def\fromsig{\usekomavar{signature}} +\def\name{\setkomavar{fromname}} +\def\fromname{\usekomavar{fromname}} +\def\address{\setkomavar{fromaddress}} +\def\fromaddress{\usekomavar{fromaddress}} +\def\location{\setkomavar{location}} +\def\fromlocation{\usekomavar{location}} +\def\backaddress{\setkomavar{backaddress}} +\def\@tempa{% + \ifkomavarempty{fromname}{}{% + \strut\ignorespaces\usekomavar{fromname}% + \ifkomavarempty{fromaddress}{}{\\}}% + \ifkomavarempty{fromaddress}{}{% + \strut\ignorespaces\usekomavar{fromaddress}}% + } +\ifx\@tempa\scr@backaddress@var% + \setkomavar{backaddress}{} +\fi +\def\frombackaddress{\usekomavar{backaddress}} +\def\telephone{\setkomavar{fromphone}} +\def\telephonenum{\usekomavar{fromphone}} +\def\specialmail{\setkomavar{specialmail}} +\def\@specialmail{\usekomavar{specialmail}} +\def\title{\setkomavar{title}} +\def\@title{\usekomavar{title}} +\def\subject{\setkomavar{subject}} +\def\@subject{\usekomavar{subject}} +\def\place{\setkomavar{place}} +\def\fromplace{\usekomavar{place}} +\let\ccnameseparator=\scr@ccseparator@var +\setkomavar{ccseparator}{\ccnameseparator} +\let\enclnameseparator=\scr@enclseparator@var +\setkomavar{enclseparator}{\enclnameseparator} +\setkomafont{fromname}{\scshape} +% +% \end{macrocode} +% +% \begin{macrocode} +% +%<*class> +% \end{macrocode} +% +% +% \subsection{Serienbriefe und Adressdateien} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{macro}{\adrentry} +% \changes{v2.8q}{2002/05/19}{\cs{adrentry} verwendet das neue +% \cs{addrentry}} +% \begin{macro}{\adrchar} +% \changes{v2.8q}{2002/05/19}{\cs{adrchar} verwendet das neue +% \cs{addrchar}} +% Serienbriefe werden mit Hilfe der Funktionen |\adrentry| und +% |\adrchar| und einer Adressdatei realisiert. Dar"uber hinaus +% werden mit diesen Befehlen Abk"urzungen f"ur Adressen definiert. +% Durch die Definition mit Hilfe von \cs{addrentry} bzw. \cs{addrchar} +% m"ussen vom Anwender f"ur neue Anwendungen nur die neuen Befehle +% umdefiniert werden. +% \begin{macrocode} +\newcommand*{\adrentry}[7]{% + \addrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{}} +\newcommand*{\adrchar}{\addrchar} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addrentry} +% \changes{v2.8n}{2001/09/06}{Neu} +% \begin{macro}{\addrchar} +% \changes{v2.8n}{2001/09/06}{Neu} +% Diese Makros erm"oglichen ab Version 2.8n die Verwendung von bis zu +% 9 Argumenten. +% \begin{macrocode} +\newcommand*{\addrentry}[9]{\def\@tempa{#1}\ifx \@tempa\@empty \else + \def\@tempa{#2}\ifx \@tempa\@empty + \expandafter\def\csname #9\endcsname{#1\\#3} + \else + \expandafter\def\csname #9\endcsname{#2 #1\\#3} + \fi \fi} +\newcommand*{\addrchar}[1]{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Befehle in der Briefumgebung} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +% +% \begin{macro}{\stopbreaks} +% \begin{macro}{\startbreaks} +% \begin{macro}{\@nobreakvspace} +% \begin{macro}{\@nobreakvspacex} +% \begin{macro}{\@nobreakcr} +% Innerhalb von Briefen wird der Umbruch etwas anders gehandhabt. +% Dadurch soll der Brieftext besser positioniert werden. +% \begin{macrocode} +\newcommand*{\stopbreaks}{\interlinepenalty \@M + \def\par{\@@par\nobreak}\let\\=\@nobreakcr + \let\vspace\@nobreakvspace} +\newcommand*{\@nobreakvspace}{% + \@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} +\newcommand*{\@nobreakvspacex}[1]{\ifvmode\nobreak\vskip #1\relax\else + \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} +\newcommand*{\@nobreakcr}{% + \vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} +\newcommand*{\startbreaks}{\let\\=\@normalcr + \interlinepenalty 200\def\par{\@@par\penalty 200}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\move@topt} +% \changes{v2.8n}{2001/09/07}{Neu} +% F"ur die folgenden Aktionen wird ein Makro ben"otigt, mit dem man +% vertikal von der relativen Seitenposition zur relativen +% Papierposition gelangen kann. +% \begin{macrocode} +\newcommand*{\move@topt}{% + \null\vskip -1in\vskip -\topmargin% + \vskip -\headheight\vskip -\headsep% + \vskip -\topskip% + \ignorespaces% + } +% \end{macrocode} +% \begin{macro}{\move@frompt} +% \changes{v2.8n}{2001/09/07}{Neu} +% Nat"urlich wird auch ein Makro ben"otigt, um vertikal von einer +% relativen Papierposition wieder auf die relative Seitenposition +% zur"uck zu gelangen. +% \begin{macrocode} +\newcommand*{\move@frompt}{% + \vskip 1in\vskip \topmargin% + \vskip \headheight\vskip \headsep% + \vskip \topskip% + \vskip -\baselineskip% + \ignorespaces% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\move@topl} +% \changes{v2.8n}{2001/09/07}{Neu} +% F"ur die folgenden Aktionen wird au"serdem ein Makro ben"otigt, mit +% dem man horizontal von der relativen Seitenposition zur relativen +% Papierposition gelangen kann. +% \begin{macrocode} +\newcommand*{\move@topl}{% + \null\hskip -1in% + \ifodd\value{page}\hskip -\oddsidemargin\else\hskip -\evensidemargin\fi + \ignorespaces% + } +% \end{macrocode} +% \begin{macro}{\move@frompl} +% \changes{v2.8n}{2001/09/07}{Neu} +% Nat"urlich wird auch ein Makro ben"otigt, um horizontal von einer +% relativen Papierposition wieder auf die relative Seitenposition +% zur"uck zu gelangen. +% \begin{macrocode} +\newcommand*{\move@frompl}{% + \hskip 1in% + \ifodd\value{page}\hskip \oddsidemargin\else\hskip \evensidemargin\fi% + \ignorespaces% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\vb@t@z} +% \changes{v2.8n}{2001/09/07}{Neu} +% Ausserdem wird ein vertikales "Aquivalent zu |\rlap| ben"otigt. +% \begin{macrocode} +\newcommand*{\vb@t@z}[1]{{% + \setbox0\vbox to\z@{#1\vss}% + \setlength{\parskip}{\z@}\setlength{\baselineskip}{\z@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \setlength{\@tempdima}{\ht0}\addtolength{\@tempdima}{\dp0}% + \box0\vskip-\@tempdima% + }} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@foldmarks} +% F"ur die Faltmarken m"ussen nicht nur Abst"ande definiert werden, es +% wird auch ein Befehl ben"otigt, um die Faltmarken zu setzen. +% \begin{macro}{\@foldmark} +% \changes{v2.8n}{2001/09/07}{Neu} +% Das geht am einfachsten, wenn wir auch einen Befehl haben, mit dem +% man eine einzelne Faltmarke relativ zur aktuellen Position setzen +% kann. Dies geschieht mit Hilfe von |\rlap|, damit die horizontale +% Position unver"andert bleibt. Als Parameter werden der vertikale +% Abstand zur aktuellen Position und die L"ander der Marke +% "ubergeben. +% \begin{macrocode} +\newcommand*{\@foldmark}[2]{% + \vskip #1% + \vb@t@z{\rlap{\move@topl\hskip\useplength{foldmarkhpos}% + \rule{#2}{.2pt}}}% + \vskip -#1\ignorespaces% +} +\newcommand*{\@foldmarks}{% + \if@fold% + \typeout{Foldmarks: yes}% + \move@topt + \@foldmark{\useplength{tfoldmarkvpos}}{2mm} + \@foldmark{.5\paperheight}{4mm} + \@foldmark{\useplength{bfoldmarkvpos}}{2mm} + \move@frompt + \else + \typeout{Foldmarks: no}% + \fi% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\@savevbox} +% \changes{v2.8n}{2001/09/07}{Neu} +% \changes{v2.8q}{2001/10/30}{zus"atzlich ein optionales Argument} +% \begin{macro}{\if@savevbox@warning} +% \begin{macro}{\@savevbox@warningtrue} +% \begin{macro}{\@savevbox@warningfalse} +% \changes{v2.8q}{2001/10/30}{Neu} +% Wenn eine der vertikalen Boxen in \cs{opening} zu einer +% \texttt{overbox \string\vbox\space} Meldung f"uhrt, weiss letztlich +% niemand, welche Box daf"ur verantwortlich war. Deshalb definieren +% wir hier ein Makro, das ggf. eine Meldung ausgibt, die erkl"art, +% welches Element die Ursache war und was man tun kann. Das erste +% Argument ist dabei die Sollh"ohe der Box, das zweite Argument ist +% der Boxinhalt, das dritte Argument is der Name des Elements, das zu +% hoch ist, das vierte der Name der Elementh"ohe und das f"unfte +% schlie"slich der Befehl, mit dem das Element vom Anwender definiert +% werden kann. Das optionale Argument wird nur bei der Ausgabe mit +% ausgegeben, findet jedoch bei der Berechnung keine +% Ber"ucksichtigung. +% \begin{macrocode} +\newif\if@savevbox@warning\@savevbox@warningtrue +\newcommand{\@savevbox}[6][]{% + \begingroup% + \vbox to #2{#1#3}% + \if@savevbox@warning\@savevbox@warningfalse% + \setbox0\vbox{#3}% + \setlength{\@tempdima}{#2}% + \setlength{\@tempdimb}{\ht0}\addtolength{\@tempdimb}{\dp0}% + \ifdim \@tempdimb>\@tempdima% + \addtolength{\@tempdimb}{-\@tempdima}% + \ClassWarning{% + scrlttr2% + }{% + #4 is \the\@tempdimb\space too high.\MessageBreak + You have to change `\string#5'\MessageBreak + or you have to define a smaller\MessageBreak + #4 using \string#6.\MessageBreak + Because of this too high #4\MessageBreak + you've got an overfull \string\vbox\space message% + }% + \fi% + \fi% + \endgroup% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\@firstheadfootfield} +% \changes{v2.8n}{2001/09/08}{Neu} +% \changes{v2.8q}{2001/10/30}{\cs{parfillskip} lokal auf 0 gesetzt} +% \changes{v2.8q}{2001/10/30}{Fu"s explizit in eine Box gesetzt} +% \changes{v2.9l}{2003/01/23}{Positionierung verbessert} +% Ab Version 2.8n werden Kopf und Fu"s der ersten Seite nicht mehr per +% Seitenstil \texttt{firstpage} gesetzt, sondern mit einem speziellen +% Feld. Dabei wird auch beachtet, dass dieses Feld im Kopf eine +% bestimmte aber beschr"ankte H"ohe hat. Diese H"ohe ist unabh"angig +% von der normalen Kopfh"ohe und richtet sich stattdessen nach der +% Position des Adressfeldes. +% \begin{macrocode} +\newcommand*{\@firstheadfootfield}{% + \typeout{Head of first page}% + \move@topt\vskip\useplength{firstheadvpos}% + \vb@t@z{% + \rlap{\move@topl + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}% + \hskip\@tempskipa + \vbox{\hsize\useplength{firstheadwidth}% + \setlength{\@tempskipa}{\useplength{toaddrvpos}}% + \addtolengthplength[-1]{\@tempskipa}{firstheadvpos}% + \addtolength{\@tempskipa}{-\baselineskip}% +% \end{macrocode} +% Da sich einige -- beispielsweise |briefkopf.sty| -- darauf +% verlassen, dass |\textwidth| die Breite des Briefkopfes ist, wird +% diese L"ange lokal entsprechend gesetzt. Au"serdem wird daf"ur +% gesorgt, dass |\parfillskip| hier nicht ber"ucksichtigt wird. +% \begin{macrocode} + \setlength{\textwidth}{\useplength{firstheadwidth}}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \@savevbox{\@tempskipa}{\@firsthead\vskip \z@ \@plus .00001fil}% + {head of first page}{firstheadvpos}{\firsthead}% + }% + }% + }% + \vskip-\useplength{firstheadvpos}\move@frompt + \typeout{Foot of first page}% + \move@topt + \vb@t@z{% + \rlap{\move@topl + \setlength\@tempskipa{.5\paperwidth}% + \addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}% + \hskip\@tempskipa% + \vbox{\hsize\useplength{firstfootwidth}% + \vskip\useplength{firstfootvpos}% +% \end{macrocode} +% Da sich einige -- beispielsweise |briefkopf.sty| -- darauf +% verlassen, dass |\textwidth| die Breite des Brieffu"ses ist, wird +% diese L"ange lokal entsprechend gesetzt. Au"serdem wird daf"ur +% gesorgt, dass |\parfillskip| hier nicht ber"ucksichtigt wird. +% \begin{macrocode} + \setlength{\textwidth}{\useplength{firstfootwidth}}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \vbox{\hsize\useplength{firstfootwidth}\@firstfoot}% + }% + }% + }% + \move@frompt% + {% + \setlength{\@tempdima}{1in}\addtolength{\@tempdima}{\topmargin}% + \addtolength{\@tempdima}{\headheight}% + \addtolength{\@tempdima}{\headsep}% + \addtolength{\@tempdima}{\textheight}% + \addtolength{\@tempdima}{\footskip}% + \addtolengthplength[-1]{\@tempdima}{firstfootvpos}% + \ifdim\@tempdima>\z@\enlargethispage{-\@tempdima}% + \else\if@enlargefp\enlargethispage{-\@tempdima}\fi\fi + }% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@addrfield} +% \changes{v2.8q}{2002/04/01}{\cs{parfillskip} lokal ge"andert} +% \changes{v2.8q}{2002/06/03}{Sonderbehandlung f"ur Adressfeld +% rechts} +% \changes{v2.9o}{2003/02/20}{\cs{noindent} eingef"ugt bei +% \texttt{specialmail}} +% Dasselbe gilt auch f"ur das Adressfeld f"ur Fensterumschl"age. Die +% R"ucksendeadresse und die Briefart wird dabei unterstrichen. +% \begin{macrocode} +\newcommand*{\@addrfield}{% + \if@afield + \begingroup% + \if@baddr + \ifkomavarempty{backaddress}{% + \let\@tempa\@empty\let\@tempb\@empty + }{% + \def\@tempa{backaddress}\def\@tempb{,\space}% + }% + \else + \let\@tempa\@empty\let\@tempb\@empty + \fi + \ifkomavarempty{specialmail}{}{% + \edef\@tempa{\@tempa\@tempb specialmail}\def\@tempb{,\space}% + }% + \typeout{Address (\@tempa\@tempb addressee)}% + \endgroup% + \move@topt\vskip\useplength{toaddrvpos}% + \vb@t@z{{\setlength{\parfillskip}{\z@ \@plus 1fil}% + \rlap{\move@topl + \setlengthtoplength{\@tempskipa}{toaddrhpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% + \fi + \hskip\@tempskipa + \@addtoplength{toaddrheight}{\useplength{backaddrheight}}% + \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}% + \@savevbox[\vss]{\useplength{backaddrheight}}{% + \hsize\useplength{toaddrwidth}% + \if@baddr + \ifkomavarempty{backaddress}{}{{% + \noindent% + \def\\{\usekomavar{backaddressseparator}\@ogobble}% + \underline{\scriptsize\usekomafont{backaddress}% + \usekomavar{backaddress}}}}% + \fi + }{backaddress}{backaddrheight}{\setkomavar}% + \ifkomavarempty{specialmail}{}{% + \vbox{\hsize\useplength{toaddrwidth}% + \noindent\hspace*{\useplength{specialmailindent}}% + \underline{\usekomavar{specialmail}}% + \hspace*{\useplength{specialmailrightindent}}}% + }% + \vfil% + \noindent\hskip\useplength{toaddrindent}% + \setlength{\@tempdima}{\useplength{toaddrwidth}}% + \addtolengthplength[-2]{\@tempdima}{toaddrindent}% + \vbox{\hsize\@tempdima% + \noindent\usekomavar{toname}\\\usekomavar{toaddress}}% + \vfil\null}% + {address field}{toaddrheight} + {\begin{letter} or you\MessageBreak + have to define a smaller special purpose using\MessageBreak + \string\specialmail} + }}}% + \vskip-\useplength{toaddrvpos}\move@frompt + \else + \typeout{Address: No}% + \fi + } +% \end{macrocode} +% \begin{macro}{\@ogobble} +% \changes{v2.8q}{2002/01/22}{Neu} +% In obiger Definition wird das Makro \cs{@ogobble} verwendet, um +% einen optionalen Parameter zu vernichten, falls dieser existiert. +% \begin{macrocode} +\newcommand*{\@ogobble}[1][]{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@locfield} +% \changes{v2.8o}{2001/09/17}{\cs{noindent} eingef"ugt} +% \changes{v2.8q}{2002/02/07}{\cs{noindent} nach dem Logo} +% \changes{v2.8q}{2002/07/23}{Berechnung der Breite hierher +% verschoben} +% \changes{v2.8q}{2002/06/03}{Sonderbehandlung f"ur Adressfeld +% rechts} +% Das "`locfield"' wird unabh"angig von der Adresse gesetzt. +% \begin{macrocode} +\newcommand*{\@locfield}{% + \ifdim \useplength{locwidth}=\z@% + \@setplength{locwidth}{\paperwidth}% + \ifdim \useplength{toaddrhpos}>\z@ + \@addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}% + \else + \@addtoplength[2]{locwidth}{\useplength{toaddrhpos}}% + \fi + \@addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}% + \if@bigloc% + \@setplength[.66667]{locwidth}{\useplength{locwidth}}% + \else% + \@setplength[.5]{locwidth}{\useplength{locwidth}}% + \fi% + \fi% + \ifnum 1=\@alignfrom + \if@logo + \ifkomavarempty{location}{% + \setkomavar{location}{\null}}{}% + \fi + \fi + \ifkomavarempty{location}{% + \typeout{Location field: empty}% + }{% + \typeout{Location field: yes}% + \move@topt\vskip\useplength{toaddrvpos}% + \vb@t@z{\rlap{% + \move@topl + \setlengthtoplength[-]{\@tempskipa}{toaddrhpos}% + \ifdim \@tempskipa<\z@ + \addtolength{\@tempskipa}{\paperwidth}% + \else + \addtolengthplength{\@tempskipa}{locwidth}% + \fi + \hskip\@tempskipa + \llap{% + \@savevbox{\useplength{toaddrheight}}{% + \noindent\hsize\useplength{locwidth}% + \ifnum 1=\@alignfrom + \if@logo + \ifkomavarempty{fromlogo}{}{% + {\raggedleft\noindent\usekomavar{fromlogo}\\ + \vskip\parskip}\noindent}% + \fi + \fi + \usekomavar{location}\vskip \z@ \@plus .00001fil} + {location field}{toaddrheight}{\setkomavar}% + }}% + }% + \vskip-\useplength{toaddrvpos}\move@frompt + }% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@datefield} +% \changes{v2.8q}{2002/01/14}{Schalter \cs{if@tempwa} wird bereits +% hier auf \texttt{true} gesetzt} +% Je nachdem, welche Felder definiert sind, mu"s eine gesch"aftsm"a"siger +% Standardbrief oder ein eher pers"onliches Aussehen gew"ahlt werden. +% \begin{macro}{\@set@reffield} +% Einzelne Felder werden mit Hilfe dieses Makros gesetzt. Als +% Parameter wird der Name des Feldes "ubergeben. Es wird dann davon +% ausgegangen, dass der Name des Feldes in der jeweiligen Sprache im +% Makro \verb|\|\texttt{\emph{\#1}}\verb|name| und der Wert des Feldes +% in \verb|\var|\texttt{\emph{\#1}} zu finden ist. +% \begin{macrocode} +\newcommand*{\@set@reffield}[1]{% + \ifkomavarempty{#1}{}{% + \settowidth{\@tempdima}{\strut\usekomavar{#1}}% + \setbox0\hbox{\strut\scriptsize\sffamily\usekomavar*{#1}}% + \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi + \if@tempswa\enskip\hfill\fi + \parbox[t]{\@tempdima}{\noindent\raggedright + \strut\box0\\\strut\usekomavar{#1}}% + \@tempswatrue + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@set@reffields} +% \changes{v2.8q}{2002/01/14}{Neu} +% Dieses Makro enth"alt alle Aufrufe von \cs{@set@reffield}, die +% durchzuf"uhren sind. Das Makro kann mit Hilfe von +% \cs{addtoreffields} erweitert werden. +% \begin{macrocode} +\newcommand*{\@set@reffields}{}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\addtoreffields} +% Dieses Makro erwartet als obligatorisches Argument den Namen einer +% KOMA-Script Variable. Der Befehl arbeitet lokal zur aktuellen +% Umgebung. +% \begin{macrocode} +\newcommand*{\addtoreffields}[1]{% + \l@addto@macro{\@set@reffields}{\@set@reffield{#1}}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\removereffields} +% \changes{v2.8q}{2002/01/14}{Neu} +% Es gibt auch einen Befehl, um alle Felder aus der Gesch"aftszeile zu +% entfernen. +% \begin{macrocode} +\newcommand*{\removereffields}{% + \renewcommand*{\@set@reffields}{}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\defaultreffields} +% \changes{v2.8q}{2002/01/14}{Neu} +% Ebenso ein Befehl, um die "ublichen Felder zu setzen. +% \begin{macrocode} +\newcommand*{\defaultreffields}{% + \removereffields + \addtoreffields{yourref}% + \addtoreffields{yourmail}% + \addtoreffields{myref}% + \addtoreffields{customer}% + \addtoreffields{invoice}% +} +% \end{macrocode} +% Genau diesen Befehl rufen wir auch gleich auf: +% \begin{macrocode} +\defaultreffields +% \end{macrocode} +% \end{macro} +% +% \changes{v2.3e}{1996/05/31}{Abstand zwischen Ort und Datum +% eingef"ugt} +% \changes{v2.8o}{2001/09/18}{f"ur den Brieftyp \texttt{KOMAold} +% anschlie"send einen zus"atzlichen vertikalen Abstand +% eingef"ugt} +% \changes{v2.8q}{2001/11/13}{\cs{rlap} eingef"ugt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.8q}{2002/01/14}{Leertests entfernt, da in +% \cs{@set@reffield} bereits enthalten} +% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refwidth} an +% die Dokumentation angepasst} +% \changes{v2.9l}{2003/01/28}{Berechnung von \texttt{refhpos} +% hinzugef"ugt} +% \begin{macrocode} +\newcommand*{\@datefield}{{\@parskipfalse\@parskip@indent + \ifdim\useplength{refwidth}=\z@ + \if@refwide + \@setplength{refwidth}{\paperwidth}% + \ifdim \useplength{toaddrhpos}>\z@ + \@setplength{refhpos}{\useplength{toaddrhpos}}% + \else + \@setplength[-]{refhpos}{\useplength{toaddrhpos}}% + \fi + \@addtoplength[-2]{refwidth}{\useplength{refhpos}}% + \else + \@setplength{refwidth}{\textwidth}% + \@setplength{refhpos}{\oddsidemargin}% + \@addtoplength{refhpos}{1in}% + \fi + \else\ifdim\useplength{refhpos}=\z@ + \begingroup +% \end{macrocode} +% Wir bestimmen zun"achst, um wieviel die Gesch"aftszeile schmaler ist +% als der Textbereich. +% \begin{macrocode} + \setlength\@tempdima{\textwidth}% + \addtolengthplength[-]{\@tempdima}{refwidth}% +% \end{macrocode} +% Dann wird bestimmt, wie gro"s der linke Rand tatsächlich ist. +% \begin{macrocode} + \setlength\@tempdimb{\oddsidemargin}% + \addtolength\@tempdimb{1in}% +% \end{macrocode} +% Ebenso wird bestimmt, wie gro"s der linke und rechte Rand zusammen +% sind. +% \begin{macrocode} + \setlength{\@tempdimc}{\paperwidth}% + \addtolength{\@tempdimc}{-\textwidth}% +% \end{macrocode} +% Jetzt wird aus dem Gesamtrand der Gesch"aftszeile der linke Rand der +% Gesch"aftszeile so bestimmt, dass das Randverh"altnis dabei +% unver"andert bleibt. Dabei erlauben wir uns eine gewisse +% Rechenungenauigkeit beim Verhältnis. +% \begin{macrocode} + \divide\@tempdimb by 32768\relax + \divide\@tempdimc by 32768\relax + \ifdim\@tempdimc=\z@\else + \multiply\@tempdima by\@tempdimb + \divide\@tempdima by\@tempdimc + \fi + \edef\@tempa{\noexpand\endgroup + \noexpand\@setplength{refhpos}{\the\@tempdima}}% + \@tempa + \fi\fi + \@tempswafalse + \move@topt\vskip\useplength{refvpos}% +% \end{macrocode} +% Jetzt erfolgt noch die Absatzeinzugkorrektur. Danach kommt die +% eigentliche Arbeit +% \begin{macrocode} + \rlap{\noindent\move@topl\hskip\useplength{refhpos}% + \vbox{\hsize\useplength{refwidth}% + \noindent\@set@reffields + \ifkomavarempty{date}{% + \if@tempswa + \typeout{Reference line(s): with fields but without date}% + \else + \typeout{Reference line(s): no}% + \aftergroup\aftergroup\aftergroup\@tempswatrue + \fi + }{% + \if@tempswa + \typeout{Reference line(s): with fields and date}% + \settowidth{\@tempdima}{\strut\usekomavar{date}}% + \setbox0\hbox{\scriptsize\sffamily\usekomavar*{date}}% + \ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi + \enskip\hfill + \parbox[t]{\@tempdima}{\noindent\raggedright% + \strut\box0\\\strut\usekomavar{date}} + \else + \typeout{Reference line: only place and date}% + \enskip\hfill + \ifkomavarempty{place}{}{% + \usekomavar{place}\usekomavar{placeseparator}}% + \usekomavar{date}% + \@tempswatrue + \fi + }% + }% + }% + \if@tempswa\vskip-\baselineskip\fi + \vskip\useplength{refaftervskip}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@maketitle} +% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} f"ur den +% \cs{title}} +% \changes{v2.8p}{2001/09/22}{\cs{titlefont} an Stelle von +% \cs{sectfont}} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.9t}{2004/09/16}{\cs{par} in Gr"o"se und Schrift des Titels} +% \begin{macro}{\@subjfield} +% \changes{v2.8q}{2001/10/19}{\cs{centerline} durch \cs{centering} +% ersetzt} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.8q}{2002/01/31}{wird mit h"angendem Einzug gesetzt} +% +% Der eigentliche Titel wir mit |\@maketitle| gesetzt. Dies sollte +% jedoch ebenso wie beim Betreff (|\@subjfield|) \emph{nicht} manuell +% geschehen. +% \begin{macrocode} +\newcommand*{\@maketitle}{% + \ifkomavarempty{title}{% + \typeout{Title: no}% + }{% + \typeout{Title: yes}% + {\@parskipfalse\@parskip@indent% + \centering\LARGE\titlefont\usekomavar{title}\par}% + \vskip\baselineskip% + }% + } +\newcommand*{\@subjfield}{{\@parskipfalse\@parskip@indent% + \ifkomavarempty{subject}{% + \typeout{Subject: no}% + }{% + \if@subjafter% + \typeout{Subject: after opening}% + \centering% + \else% + \typeout{Subject: before opening}% + \noindent% + \fi% + {\usekomafont{subject}\if@subj\@hangfrom{\usekomavar*{subject}}\fi% + {\usekomavar{subject}}\par}\vskip2\baselineskip% + }% + }% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\opening} +% \changes{v2.8n}{2001/09/08}{Komplett "uberarbeitet} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.8q}{2002/03/25}{\cs{@PapersizeWarning}} +% Denn beim Er"offnungsgru"s mit |\opening| wird neben s"amtlichen +% Feldern auch der Titel und der Betreff gesetzt. +% \begin{macrocode} +\newcommand{\opening}[1]{% + \@PapersizeWarning + \@gen@firsthead + \@mkboth{\scr@fromname@var}{\scr@subject@var}% + \thispagestyle{empty}\noindent + \@foldmarks\@firstheadfootfield\@addrfield\@locfield\@datefield + \@maketitle + \if@subjafter\else\@subjfield\fi + {\@parskipfalse\@parskip@indent\noindent#1\par}% + {\setlength{\@tempdima}{\baselineskip}% + \addtolength{\@tempdima}{-\parskip} + \ifdim \@tempdima>\z@\vskip\@tempdima\fi} + \if@subjafter\@subjfield\fi% + \@afterindentfalse\@afterheading + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\closing} +% \changes{v2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf +% \cs{empty} getestet sondern direkt eingesetzt} +% \changes{v2.3b}{1996/01/14}{Abstand zwischen Schlu"sgru"s und +% Signatur erh"oht} +% \changes{v2.5d}{2000/06/10}{Abstand zwischen Schlu"sgru"s und +% Signatur variabel} +% \changes{v2.8q}{2001/11/13}{% +% \cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.8q}{2002/02/05}{nicht mehr \cs{long}} +% \changes{v2.8q}{2002/02/05}{darf \texttt{\cmd{\\}[\dots]} +% enthalten} +% Au"ser dem Er"offnungsgru"s mit |\opening| gibt es nat"urlich auch +% einen Schlu"sgru"s mit |\closing|, bei dem au"serdem die +% Unterschrift u."a. gesetzt wird. +% \begin{macro}{\presig@skip} +% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% Schlu"sgru"s und Signatur beinhaltet} +% \changes{v2.8q}{2001/10/09}{Ersetzt durch Pseudo-L"ange +% sigbeforevskip} +% \end{macro} +% \begin{macro}{\setpresigskip} +% \changes{v2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% Schlu"sgru"s und Signatur setzt} +% \changes{v2.8q}{2001/10/09}{Mit Hilfe der neuen Pseudo-L"angen definiert} +% Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen +% Schlu"sgru"s und Signatur. Da der Wert "uber ein Benutzerinterface +% per |\setpresigskip| gesetzt wird, mu"s hier kein kostbares +% L"angenregister (skip oder dim) verschwendet werden, sondern ein +% Makro reicht aus. In |\setpresigskip| wird allerdings noch +% sichergestellt, da"s die Fehlermeldung bei falschem Parameter +% m"oglichst nicht erst bei Verwendung auftritt. +% \begin{macrocode} +\newcommand*{\setpresigskip}{\@setplength{sigbeforevskip}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@xtrimtempa} +% \changes{v2.8q}{2002/02/05}{Neu (intern)} +% \begin{macro}{\@@xtrimtempa} +% \changes{v2.8q}{2002/02/05}{Neu (intern)} +% Die beiden internen Macros werden ben"otigt, um beim Zerlegen eines +% mit \texttt{\cmd{\\}[\cs{dots}]} zusammengesetzten Arguments das +% optionale Argument in eckigen Klammern abzutrennen. Das Ergebnis +% steht anschlie"send in \cs{@tempa}. +% \begin{macrocode} +\newcommand*{\@xtrimtempa}{% + \@ifnextchar [{\@@xtrimtempa}{\@@xtrimtempa[]}} +\newcommand*{\@@xtrimtempa}{} +\def\@@xtrimtempa[#1]#2\@nil{\def\@tempa{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@tempdimaismaxwidthof} +% \changes{v2.8q}{2002/02/05}{Neu (intern)} +% Das Makro zerlegt ein mit \texttt{\cmd{\\}[\cs{dots}]} +% zusammengesetzten Arguments und merkt in \cs{@tempdima} die L"ange +% des l"angsten Elements. \cs{@tempdima} enth"alt beim Aufruf die +% minimale L"ange. +% \begin{macrocode} +\newcommand*{\@tempdimaismaxwidthof}{} +\def\@tempdimaismaxwidthof#1\\#2\@nil{% + \settowidth{\@tempdimb}{\strut\ignorespaces#1}% + \ifdim\@tempdima<\@tempdimb\setlength{\@tempdima}{\@tempdimb}\fi + \def\@tempa{#2}\ifx\@tempa\@empty + \let\@tempb\relax + \else + \expandafter\@xtrimtempa\@tempa\@nil + \def\@tempb{\expandafter\@tempdimaismaxwidthof\@tempa\@nil}% + \fi + \@tempb + } +% \end{macrocode} +% \end{macro} +% Jetzt endlich zum eigentichen Befehl. +% \changes{v2.9r}{2004/01/28}{L"angenbegrenzung auf \cs{hsize}} +% \changes{v2.9r}{2004/01/28}{das Argument darf leer sein} +% \begin{macrocode} +\newcommand*{\closing}[1]{{\@parskipfalse\@parskip@indent\nobreak\par% + \nobreak\vskip\baselineskip% + \stopbreaks\noindent% + \setlength{\@tempdima}{0pt}% + \expandafter\@tempdimaismaxwidthof\scr@signature@var\\\@nil + \expandafter\@tempdimaismaxwidthof\strut\ignorespaces#1\\\@nil + \setlength{\@tempdimb}{\hsize}% + \addtolength{\@tempdimb}{-\useplength{sigindent}}% + \ifdim\@tempdima>\@tempdimb\setlength{\@tempdima}{\@tempdimb}\fi% + \hspace{\useplength{sigindent}}% + \parbox{\@tempdima}{\raggedsignature\strut\ignorespaces% + #1\strut\\[\useplength{sigbeforevskip}] + \strut\usekomavar{signature}\strut}}\par + \nobreak\vskip\baselineskip% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps} +% \changes{v2.8n}{2001/09/08}{Komplett "uberarbeitet} +% Ebenfalls m"oglich ist ein Postscriptum. Dieser Befehl erwartet +% das Postscriptum nicht als Argument, sondern schaltet zum Nachtext +% um. +% \begin{macrocode} +\newcommand\ps{\par% + \ifdim\parskip=\z@% + \vskip\baselineskip% + \fi\startbreaks\noindent\ignorespaces% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cc} +% Dar"uber hinaus gibt es noch einen Verteiler. Dieser wird +% sauber formatiert. +% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} +% ersetzt} +% \changes{v2.8n}{2001/09/08}{Komplett "uberarbeitet} +% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst} +% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf +% \texttt{1em plus 1fil} ge"andert} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macrocode} +\newcommand*{\cc}[1]{\par% + \ifdim\parskip=\z@% + \vskip\baselineskip% + \fi\noindent% + \begingroup + \parbox[t]{\textwidth}{% + \ifkomavarempty{ccseparator}{}{% + \@hangfrom{% + \strut\usekomavar*{ccseparator}\usekomavar{ccseparator}}% + }% + \ignorespaces #1\strut}% + \setlength{\parfillskip}{\z@ \@plus 1fil}\par + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\encl} +% Auch Anlagen werden ordentlich gesetzt. +% \changes{v2.4a}{1997/06/06}{der Doppelpunkt bei den Anlagen wird +% nur noch gesetzt, wenn \cs{enclname} nicht leer ist} +% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt} +% \changes{v2.8n}{2001/09/08}{Komplett "uberarbeiten} +% \changes{v2.8q}{2002/01/31}{Fehlendes \% erg"anzt} +% \changes{v2.9o}{2003/04/22}{\cs{parfillskip} angepasst} +% \changes{v2.9q}{2004/04/26}{\cs{parfillskip} auf +% \texttt{1em plus 1fil} ge"andert} +% \changes{v2.9r}{2004/05/25}{\cs{parfillskip} auf +% \texttt{\cs{z@} plus 1fil} ge"andert} +% \begin{macrocode} +\newcommand*{\encl}[1]{\par% + \ifdim\parskip=\z@% + \vskip\baselineskip% + \fi\noindent% + \begingroup + \parbox[t]{\textwidth}{% + \ifkomavarempty*{enclseparator}{}{% + \@hangfrom{% + \strut\usekomavar*{enclseparator}\usekomavar{enclseparator}}% + }% + \ignorespaces #1\strut}% + \setlength{\parfillskip}{\z@ \@plus 1fil}\par + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Grundeinstellungen} +% +% \begin{macrocode} +%\pagestyle{plain} +%\pagestyle{headings} +\pagenumbering{arabic} % Arabic page numbers +%<*!scrbook> +%\if@twoside +%\else + \raggedbottom +%\fi +% +%<*!scrlettr> +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else + \onecolumn +\fi +% +% \end{macrocode} +% +% \subsection{Das war es fast} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \section{Nochmal generell} +% +% \input{scrlogo.dtx} +% +% +% \setlength{\IndexMin}{.25\textheight} +% \IndexPrologue{\section*{Index} +% \markboth{Index}{Index} +% Die kursiven Zahlen geben die Seiten an, auf denen +% der entsprechende Eintrag beschrieben ist. +% Die unterstrichenden Zahlen geben die Stelle der +% Definition des Eintrags an. +% Alle anderen Zahlen benennen Stellen, an denen der +% entsprechende Eintrag verwendet ist. +% \vspace{1em}\noindent} +% +% \setlength{\GlossaryMin}{.25\textheight} +% \GlossaryPrologue{\section*{"Anderungsverzeichnis} +% \markboth{"Anderungsverzeichnis}{"Anderungsverzeichnis} +% \addcontentsline{toc}{section}{"Anderungsverzeichnis} +% Die erste Version des \textsf{KOMA-Script} Pakets +% stammt vom 7.\,Juli~1994. Es werden nur die +% "Anderungen ab diesem Zeitpunkt dokumentiert.\par% +% \vspace{1em}\noindent} +% +% \Finale +% +\endinput +% +% Ende der Datei `scrclass.dtx' + +%%% Local Variables: +%%% mode: latex +%%% mode: font-lock +%%% Text-master: scrclass.ins +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrclass.ins b/Master/texmf-dist/source/latex/koma-script/scrclass.ins new file mode 100644 index 00000000000..5b95d2f98cb --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrclass.ins @@ -0,0 +1,298 @@ +\let\ifbeta\iffalse +%% +%% This file will generate fast loadable files from the dtx files in this +%% bundle when run through LaTeX or TeX. +%% +%% This file is part of the LaTeX2e KOMA-Script bundle +%% --------------------------------------------------- +%% +%% 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: +%% +%% Copyright 1994-2004 Markus Kohm, Frank Neukam and the individual authors. +%% All rights reserved. For further copyright information see the file +%% readme.txt or liesmich.txt, and any other copyright indicated in this +%% file. +%% +%% Permission is granted to distributed verbatim copies of this file +%% together with all other files of the KOMA-script bundle (as mentioned +%% in readme.txt and liesmich.txt). +%% +%% No other permissions to copy or distribute this file in any form +%% are granted and in particular no permission to modify its contents. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{scrclass.ins} +\input docstrip.tex + +\keepsilent +\askforoverwritetrue + +\preamble +\endpreamble + +\ifToplevel{\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.3c or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname + \fi + \ifx\askonceonly\undefined\else\askonceonly\fi +} + +\declarepreamble\MKpreamble + +Copyright (C) 1994-2004 Markus Kohm. + +All rights reserved. For further copyright information see the file +LEGAL.TXT or LEGALDE.TXT. + +This file is part of the LaTeX2e KOMA-Script bundle. +---------------------------------------------------- + +The KOMA-Script bundle bases on the Script-family created by +Frank Neukam 1993 and the standard documents classes created +by the LaTeX3-Team 1994-1996. +------------------------------------------------------------------------ + + 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 documentation. + +Please do not request updates from us directly. Distribution is +done through Mail-Servers, Mailboxes 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 readme.txt +and liesmich.txt. See LEGAL.TXT or LEGALDE.TXT for further +information. + +If you receive only some of these files from someone, complain! + +You are NOT ALLOWED to distribute this file alone. + +\endpreamble +\declarepreamble\MKJMpreamble + +Copyright (C) 1996-2004 Markus Kohm and Jens-Uwe Morawski. + +All rights reserved. For further copyright information see the file +LEGAL.TXT or LEGALDE.TXT. + +This file is part of the LaTeX2e KOMA-Script bundle. +---------------------------------------------------- + +The KOMA-Script bundle bases on the Script-family created by +Frank Neukam 1993 and the standard documents classes created +by the LaTeX3-Team 1994-1996. +------------------------------------------------------------------------ + + 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 documentation. + +Please do not request updates from us directly. Distribution is +done through Mail-Servers, Mailboxes 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 readme.txt +and liesmich.txt. See LEGAL.TXT or LEGALDE.TXT for further +information. + +If you receive only some of these files from someone, complain! + +You are NOT ALLOWED to distribute this file alone. + +\endpreamble +\declarepreamble\MKFNpreamble + +Copyright (C) 1994-2004 Markus Kohm and Frank Neukam. + +All rights reserved. For further copyright information see the file +LEGAL.TXT or LEGALDE.TXT. + +This file is part of the LaTeX2e KOMA-Script bundle. +---------------------------------------------------- + +The KOMA-Script bundle bases on the Script-family created by +Frank Neukam 1993 and the standard documents classes created +by the LaTeX3-Team 1994-1996. +------------------------------------------------------------------------ + + 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 documentation. + +Please do not request updates from us directly. Distribution is +done through Mail-Servers, Mailboxes 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 readme.txt +and liesmich.txt. See LEGAL.TXT or LEGALDE.TXT for further +information. + +If you receive only some of these files from someone, complain! + +You are NOT ALLOWED to distribute this file alone. + +\endpreamble +\declarepreamble\AKMKFNpreamble + +Copyright (C) 1994-2004 Axel Kielhorn, Markus Kohm and Frank Neukam. + +All rights reserved. For further copyright information see the file +LEGAL.TXT or LEGALDE.TXT. + +This file is part of the LaTeX2e KOMA-Script bundle. +---------------------------------------------------- + +The KOMA-Script bundle bases on the Script-family created by +Frank Neukam 1993 and the standard documents classes created +by the LaTeX3-Team 1994-1996. +------------------------------------------------------------------------ + + 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 documentation. + +Please do not request updates from us directly. Distribution is +done through Mail-Servers, Mailboxes 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 readme.txt +and liesmich.txt. See LEGAL.TXT or LEGALDE.TXT for further +information. + +If you receive only some of these files from someone, complain! + +You are NOT ALLOWED to distribute this file alone. + +\endpreamble + +%% File generation: + +\generate{% + \usepreamble\MKFNpreamble + \file{scrartcl.cls}{\from{scrclass.dtx}{class,scrartcl% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{scrreprt.cls}{\from{scrclass.dtx}{class,scrreprt% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{scrbook.cls}{\from{scrclass.dtx}{class,scrbook% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{typearea.sty}{\from{scrclass.dtx}{package,typearea% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \usepreamble\MKpreamble + \file{scrlfile.sty}{\from{scrclass.dtx}{package,scrlfile% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{scrlttr2.cls}{\from{scrclass.dtx}{class,scrlettr% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{DIN.lco}{\from{scrclass.dtx}{lco,DIN% + \ifbeta,beta\fi}} + \file{DINmtext.lco}{\from{scrclass.dtx}{lco,DINmoretext% + \ifbeta,beta\fi}} + \file{SN.lco}{\from{scrclass.dtx}{lco,SN% + \ifbeta,beta\fi}} +% \file{SNold.lco}{\from{scrclass.dtx}{lco,SNold% +% \ifbeta,beta\fi}} + \file{SNleft.lco}{\from{scrclass.dtx}{lco,SwissLeft% + \ifbeta,beta\fi}} + \file{KOMAold.lco}{\from{scrclass.dtx}{lco,KOMAold% + \ifbeta,beta\fi}} +} + +\generate{% + \usepreamble\MKJMpreamble + \file{scraddr.sty}{\from{scraddr.dtx}{scraddr% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} +} + +\generate{% + \usepreamble\AKMKFNpreamble + \file{scrlettr.cls}{\from{scrlettr.dtx}{scrlettr% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} +} + +%\generate{% +% \usepreamble\MKpreamble +% \file{script.sty}{\from{script20.dtx}{script}} +% \file{script_s.sty}{\from{script20.dtx}{small}} +% \file{script_l.sty}{\from{script20.dtx}{letter}}} + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\ifbeta +\Msg{* THIS IS A BETA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} +\Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!} +\Msg{* PLEASE INSTALL THE RELEASE YOU CAN FIND AT CTAN!} +\Msg{*} +\else +\Msg{* To finish the installation you have to move some} +\Msg{* files into a directory searched by TeX.} +\Msg{* See INSTALL.TXT (english) or INSTALLD.TXT (german)} +\Msg{* for more information.} +\Msg{*} +\Msg{* You may also produce the implementation-documentation,} +\Msg{* but you don't need. To produce it, run the files} +\Msg{* `scrclass.dtx' and `scrlettr.dtx' through LaTeX after} +\Msg{* finishing the installation.} +\Msg{*} +\Msg{* To find the manual read readme.txt (english) or} +\Msg{* liesmich.txt (german).} +\Msg{*} +\Msg{* Happy TeXing} +\fi +\Msg{***********************************************************} +} + +\endinput +%% +%% end of file `scrclass.ins' diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/adressen.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/adressen.tex new file mode 100644 index 00000000000..47a81991133 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/adressen.tex @@ -0,0 +1,254 @@ +\ProvidesFile{adressen.tex}[2003/04/16 KOMA-Script Anleitung] +% ============================================================================ +% adressen.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% adressen.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: scraddr Paket +% Autoren: Jens-Uwe Morawski +% Inhalt: Zugriff auf Adressen mit Hilfe von scraddr +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% + +\chapter{Adressdateien mit \Package{scraddr} erschließen}\label{cha:scraddr} +\BeginIndex{Package}{scraddr} + +\section{Überblick}\label{sec:scraddr.overview} +Das Paket \Package{scraddr} ist eine kleine Beigabe zur +\KOMAScript-Briefklasse. +Ziel ist, die Benutzung von Adressdateien zu vereinfachen +und ihre Anwendung flexibler zu gestalten. +Im Grunde stellt das Paket nur einen Lademechanismus für Adressdateien +bereit, die aus \Macro{adrentry}- und neueren \Macro{addrentry}-Einträgen +bestehen, wie sie im vorhergehenden Kapitel beschrieben sind. + +\begin{Declaration} +\Macro{InputAddressFile}\Parameter{Dateiname} +\end{Declaration}% +\BeginIndex{Cmd}{InputAddressFile}% +% +Der Befehl \Macro{InputAddressFile} ist der zentrale Ladebefehl +von \Package{scraddr}. +Er erwartet als obligatorisches Argument den +Namen der einzulesenden Adressdatei.\Index{Adressdatei} +Wird diese Datei nicht gefunden, wird ein Fehler ausgegeben. + +Für jeden Eintrag dieser Adressdatei wird eine Reihe von Makros generiert, +die es ermöglichen, auf die Daten der Adressdatei zuzugreifen. +Zur Erinnerung nochmals der Aufbau eines Eintrags. +\begin{Declaration}% + + \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + + \Parameter{Telefon}\Parameter{F1}\Parameter{F2}% + + \Parameter{Kommentar}\Parameter{Kürzel}\\ + % + %oder\\ + % + \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + + \Parameter{Telefon}\Parameter{F1}\Parameter{F2}% + + \Parameter{F3}\Parameter{F4}\Parameter{Kürzel}% +\end{Declaration}% + +Die Zugriffsbefehle sind mit englischen, den Argumenten entsprechenden, +Bezeichnungen versehen. +\begin{Declaration} +\Macro{Name}\Parameter{Kürzel}\\ +\Macro{FirstName}\Parameter{Kürzel}\\ +\Macro{LastName}\Parameter{Kürzel}\\ +\Macro{Address}\Parameter{Kürzel}\\ +\Macro{Telephone}\Parameter{Kürzel}\\ +\Macro{FreeI}\Parameter{Kürzel}\\ +\Macro{FreeII}\Parameter{Kürzel}\\ +\Macro{Comment}\Parameter{Kürzel}\\ +\Macro{FreeIII}\Parameter{Kürzel}\\ +\Macro{FreeIV}\Parameter{Kürzel} +\end{Declaration}% +\BeginIndex{Cmd}{Name}\BeginIndex{Cmd}{FirstName}\BeginIndex{Cmd}{LastName}% +\BeginIndex{Cmd}{Address}\BeginIndex{Cmd}{Telephone}\BeginIndex{Cmd}{FreeI}% +\BeginIndex{Cmd}{FreeII}\BeginIndex{Cmd}{FreeIII}\BeginIndex{Cmd}{FreeIV} +\BeginIndex{Cmd}{Comment}% +% +Der Zugriff erfolgt anhand des Kürzels im letzten Argument eines +Eintrags, das heißt Argument Nummer 8 +für \Macro{adrentry}-Einträge beziehungsweise Argument Nummer 9 +für \Macro{addrentry}-Einträge. Das bedeutet auch, dass dieses Argument +nicht leer sein darf. +Um eine sichere Funktionsweise zu garantieren, empfiehlt es sich, +das Kürzel nur als Folge Buchstaben aufzubauen, +wobei jedoch keine Umlaute benutzt werden dürfen. + +Weiterhin ist zu beachten, dass bei mehrmaligem Auf"|treten +eines Kürzels in den Einträgen die Angaben beim +letzten Auf"|treten die gültigen sind. + +\EndIndex{Cmd}{InputAddressFile}% +\EndIndex{Cmd}{Name}\EndIndex{Cmd}{FirstName}\EndIndex{Cmd}{LastName}% +\EndIndex{Cmd}{Address}\EndIndex{Cmd}{Telephone}\EndIndex{Cmd}{FreeI}% +\EndIndex{Cmd}{FreeII}\EndIndex{Cmd}{FreeIII}\EndIndex{Cmd}{FreeIV}% +\EndIndex{Cmd}{Comment}% + +\section{Benutzung}\label{sec:scraddr.usage} + +Um das Paket benutzen zu können, ist eine gültige +Adressdatei zu erstellen. +Diese, hier \emph{lotr.adr} genannt, könnte beispielsweise +folgendermaßen aussehen: +\begin{verbatim} + \addrentry{Beutlin}{Frodo}% + {Der Bühl\\ Beutelsend/Hobbingen im Auenland}{}% + {Bilbo Beutlin}{Rauchen von Pfeifenkraut}% + {der Ringträger}{Bilbo's Erbe}{FRODO} + \adrentry{Gamdschie}{Samweis}% + {Beutelhaldenweg 3\\Hobbingen im Auenland}{}% + {Rosie Kattun}{Knullen}% + {des Ringträgers treuester Gefährte}{SAM} + \adrentry{Bombadil}{Tom}% + {Im Alten Wald}{}% + {Goldbeere}{trällern von Nonsensliedern}% + {Meister von Wald, Wasser und Berg}{TOM} +\end{verbatim} + +Das vierte Argument, die Telefonnummer, wurde hier leer gelassen. +Erstens macht es in dem Zusammenhang keinen Sinn, und zweitens sollte +dies ja auch möglich sein. + +Mit dem oben beschriebenen Ladebefehl lesen wir die Adressdatei +in unser Briefdokument ein: +\begin{verbatim} + \InputAddressFile{lotr} +\end{verbatim} + +Mit Hilfe der vorgestellten Makros können wir dann einen Brief +an den alten \textsc{Tom Bombadil} schreiben, in dem wir ihn +fragen, ob er sich noch an zwei Gefährten aus alter Zeit +erinnern kann. +\begin{verbatim} + \begin{letter}{\Name{TOM}\\\Address{TOM}} + \opening{Lieber \FirstName{TOM} \LastName{TOM},} + + oder \FreeIII{TOM}, wie Dich Deine geliebte + \FreeI{TOM} nennt. + Kannst Du Dich noch an einen Herrn \LastName{FRODO}, + genauer gesagt \Name{FRODO}, denn es gab ja auch noch + den Herrn \FreeI{FRODO}, erinnern. + Er war \Comment{FRODO} im dritten Zeitalter und + \FreeIV{FRODO}. + Begleitet wurde er von \Name{SAM}, \Comment{SAM}. + + Beider Vorlieben waren sehr weltlich. + Der \FirstName{FRODO} genoss das \FreeII{FRODO}, sein + Gefährte schätzte eine gute Mahlzeit mit \FreeII{SAM}. + + Weißt du noch? Mithrandir hat Dir bestimmt viel + von ihnen erzählt. + \closing{\glqq O Frühling und Sommerzeit + und danach wieder Frühling!\\ + O Wind auf dem Wasserfall + und Lachen des Laubes!\grqq} + \end{letter} +\end{verbatim} + +Die Zusammensetzung aus +\Macro{FirstName}\Parameter{Kürzel} \Macro{LastName}\Parameter{Kürzel} +kann direkt mittels \Macro{Name}\Parameter{Kürzel} erhalten werden. + +Das fünf"|te und sechste Argument von \Macro{adrentry} und +\Macro{addrentry} steht zur freien Verfügung. +Mit den Makros \Macro{FreeI} und \Macro{FreeII} kann auf +diese Inhalte zugegriffen werden. Im vorliegenden Fall wurde +das fünf"|te Argument für die Person benutzt, die der Person des +Eintrags am nächsten steht. Das sechste Argument +enthält im Beispiel die besondere Vorliebe der jeweiligen Person. +Das siebente Argument ist ebenfalls ein freier Eintrag. Der Zugriff +erfolgt per \Macro{Comment} oder \Macro{FreeIII}. +Der Zugriff auf das vierte freie Argument mittels \Macro{FreeIV} +ist nur für \Macro{addrentry}-Einträge gültig. +Bei \Macro{adrentry}-Einträgen liefert das eine Warnung. +\EndIndex{Package}{scraddr} + +\section{Paketoptionen für Warnungen} + +Wie oben bereits beschrieben, führt die Benutzung des +Zugriffbefehls \Macro{FreeIV} zu einem Fehler, wenn der +Befehl auf Datensätze aus \Macro{adrentry}-Einträgen +angewendet wird. + +Die hier im Folgenden aufgeführten Paketoptionen legen +fest, wie in solchen Situationen reagiert werden soll. +Dabei ist es möglich, im Bereich von \emph{Ignorieren} bis +\emph{Abbruch} verschiedene Möglichkeiten zu wählen. +Eine dieser Paketoptionen kann beim Laden des Pakets im +optionalen Argument des \Macro{usepackage}-Befehls +übergeben werden. Die standardmäßige Einstellung für +das Paket \Package{scraddr} ist die Option +\Option{adrFreeIVshow}. + +\begin{Declaration} +\Option{adrFreeIVempty}\\ +\Option{adrFreeIVshow}\\ +\Option{adrFreeIVwarn}\\ +\Option{adrFreeIVstop} +\end{Declaration} +% +\BeginIndex{Option}{adrFreeIVempty}\BeginIndex{Option}{adrFreeIVshow} +\BeginIndex{Option}{adrFreeIVwarn}\BeginIndex{Option}{adrFreeIVstop} +% +\begin{labeling}[\,--]{\Option{adrFreeIVempty}} +\item[\Option{adrFreeIVempty}] + Der Befehl \Macro{FreeIV} wird einfach ignoriert. +\item[\Option{adrFreeIVshow}] + Die Warnung \glqq(entry FreeIV undefined at \PName{Kürzel})\grqq{} + wird in den Text geschrieben. +\item[\Option{adrFreeIVwarn}] + In der Log-Datei erscheint eine Warnung. +\item[\Option{adrFreeIVstop}] + Der \LaTeX{}-Lauf wird mit einer Fehlermeldung unterbrochen. +\end{labeling} +\EndIndex{Option}{adrFreeIVempty}\EndIndex{Option}{adrFreeIVshow} +\EndIndex{Option}{adrFreeIVwarn}\EndIndex{Option}{adrFreeIVstop} + +\section{Autoren} +\label{sec:scraddr.autoren} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die Vorlage +dafür geliefert. +% In folgener Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item \textbf{Jens-Uwe Morawski} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/adrkonv.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/adrkonv.tex new file mode 100644 index 00000000000..5568c314271 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/adrkonv.tex @@ -0,0 +1,104 @@ +\ProvidesFile{adrkonv.tex}[2002/08/23 KOMA-Script Anleitung] +% ============================================================================ +% adrkonv.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% adrkonv.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Adresskonverter +% Autoren: Jens-Uwe Morawski (JUM) +% Thomas Neumann (thn) +% Inhalt: Adresskonvertierung mit addrconv +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% + +\chapter{Adressdateien aus Adressdatenbanken}% +\label{cha:addrconv}% +\index{Adressdatei}% +\index{Adressdatenbank}% +\IndexPackage{addrconv} + +In früheren Versionen von \KOMAScript{} war das Paket +\Package{addrconv} ein fester Bestandteil des +\KOMAScript{}-Systems. +Die hauptsächliche Verflechtung mit \KOMAScript{} +bestand darin, dass mit Hilfe dieses Paketes aus +Adressdatenbanken im \BibTeX-Format Adressdateien +für die \KOMAScript-Briefklasse oder für das +\Package{scraddr}-Paket erstellt werden konnten. + +\begin{small} +\begin{verbatim} + @address{HMUS, + name = {Hans Mustermann}, + title = {Mag. art.}, + city = {Heimstatt}, + zip = 01234, + country = {Germany}, + street = {Mauerstra{\ss}e 1}, + phone = {01234 / 5 67 89}, + note = {Alles nur Erfindung}, + key = {HMUS}, + } +\end{verbatim} +\end{small} + +Aus Einträgen, wie dem obenstehenden, können mit Hilfe +von \BibTeX{} und verschiedenen \BibTeX-Stilen die +Adressdateien erstellt werden. +Weiterhin gibt es spezielle \LaTeX-Dateien, die es ermöglichen, +aus den Adressdateien Telefon- und Adressverzeichnisse +zu erstellen. + +Das Paket \Package{addrconv} war aber eigentlich ein +eigenständiger Teil, der auch noch über die Belange +von \KOMAScript{} hinaus Möglichkeiten bietet. +Deshalb wird \Package{addrconv}, wie bereits in der +letzten Ausgabe von \KOMAScript{} angekündigt, ab dieser +Version und in zuküftigen Versionen nicht mehr enthalten +sein. +Das Paket \Package{adrconv}, nur ein \emph{d}, ersetzt +\Package{addrconv} vollständig. +Es muss, falls nicht bereits in Ihrer \TeX-Distribution enthalten, +von \cite{package:adrconv} separat bezogen und installiert werden. + +\section{Autoren} +\label{sec:addrconv.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die Vorlage +dafür geliefert. +% In folgener Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item \textbf{Jens-Uwe Morawski} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/brief.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/brief.tex new file mode 100644 index 00000000000..fb2923e7315 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/brief.tex @@ -0,0 +1,4016 @@ +\ProvidesFile{brief.tex}[2004/09/17 KOMA-Script Anleitung (Neue Briefklasse)] +% ============================================================================ +% brief.tex +% Copyright (c) 2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% brief.tex +% Copyright (c) 2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Die neue Briefklasse +% Autoren: Markus Kohm (MJK) +% Korrektur: Torsten Krueger +% Inhalt: Kapitel mit der Anleitung zur neuen Briefklasse +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% + +\chapter{Die neue Briefklasse \Class{scrlttr2}} +\label{cha:scrlttr2} + +\BeginIndex{Class}{scrlttr2}\BeginIndex{}{Briefe}% +\begin{Explain} +Seit der Ausgabe vom Juni 2002 beinhaltet \KOMAScript{} eine komplett +neue Briefklasse\ChangedAt{v2.8q}{\Class{scrlttr2}}. Obwohl einige +Teile davon mit den Klassen aus \autoref{cha:maincls} +übereinstimmen, sind Briefe doch etwas ganz anderes als Artikel, +Berichte, Bücher oder Ähnliches. Schon allein deshalb gibt es für die +Briefklasse ein eigenes Kapitel. Aber auch aus einem anderen Grund ist +ein eigenes Kapitel für \Class{scrlttr2} gerechtfertigt. Die Klasse +wurde von Grund auf neu entwickelt. Sie hat daher auch ein komplett +anderes Bedienkonzept als alle anderen mir bekannten Klassen. Die neue +Art der Bedienung ist möglicherweise etwas ungewohnt, bietet jedoch +nicht nur dem geübten Anwender einige Vorteile. + + +\section{Rückblick auf die alte Briefklasse} +\label{sec:scrlttr2.scrlettr} + +Die alte Briefklasse \Class{scrlettr}\IndexClass{scrlettr} +ist obsolet. Sie sollte für neue Briefe besser nicht mehr verwendet +werden. Sie wird nicht mehr weiterentwickelt und es findet daher auch +nur noch sehr eingeschränkter Support dafür statt. Wer dennoch +unbedingt die Anleitung zur alten Briefklasse benötigt, kann diese in +\File{scrlettr.dtx} finden. Am besten führt man dazu einige +\LaTeX-Läufe mit jener Datei durch, also beispielsweise: +\begin{verbatim} + latex scrlettr.dtx + latex scrlettr.dtx + latex scrlettr.dtx +\end{verbatim} +Man erhält so die Datei \File{scrlettr.dvi} mit der Anleitung. + +Um den Umstieg von der alten auf die neue Klasse zu erleichtern, +existiert außerdem eine Kompatibilitätsoption. Grundsätzlich ist in +der neuen Klasse die gesamte alte Funktionalität enthalten. Ohne die +Kompatibilitätsoption ist jedoch die Benutzerschnittstelle eine andere +und auch die Voreinstellungen stimmen nicht überein. Näheres zu +besagter Option ist \autoref{sec:scrlttr2.options} und +\autoref{sec:scrlttr2.fromscrlettr} zu entnehmen. +\end{Explain} + + +\section{Die Optionen} +\label{sec:scrlttr2.options} + +Die Briefklasse \Class{scrlttr2} bedient sich für die Optionen des +\Package{keyval}\IndexPackage{keyval}-Paketes. Dieses ist Bestandteil +des \Package{graphics}-Paketes (siehe \cite{package:graphics}). Da +jenes Paket zur \emph{required}-Sektion von \LaTeX{} gehört, sollte es +Bestandteil jeder \LaTeX-Verteilung sein. Sollte Ihre +\TeX-Distribution zwar \LaTeX{}, nicht jedoch das \Package{graphics}- +und \Package{keyval}-Paket enthalten, beschweren Sie sich bitte beim +zuständigen \TeX-Distributor. Wenn Sie \Class{scrlttr2} verwenden +wollen, wird Ihnen in einem solchen Fall nichts anderes übrig bleiben, +als das \Package{graphics}-Paket zu installieren. + +\begin{Explain} + Das Besondere am \Package{keyval}-Paket ist, dass Optionen Werte + erhalten können. Dadurch werden nicht nur wesentlich weniger + Optionen benötigt, sondern gegebenfalls auch weniger optionale + Argumente. Sie werden dies bei der Beschreibung der + \Environment{letter}-Umgebung in \autoref{sec:scrlttr2.addressee} + feststellen. Das \Package{keyval}-Paket wird von der Klasse + automatisch geladen. Sollten Sie Optionen an das Paket übergeben + müssen, so verwenden Sie hierfür bitte die Anweisung + \Macro{PassOptionsToPackage} vor \Macro{documentclass}. +\end{Explain} + + +\subsection{Spätere Optionenwahl} +\label{sec:scrlttr2.options.late} +\BeginIndex{}{Optionen}% + +In diesem Abschnitt wird auf eine Besonderheit der neuen Briefklasse +vorgegriffen. Der Sinn dieser Besonderheit wird eigentlich erst klar, +wenn der Aufbau einer Briefdatei mit mehreren Briefen und eine weitere +Besonderheit von \Class{scrlttr2} verstanden ist. Um jedoch die Anzahl +der Vorwärtsverweise überschaubar zu halten, erschien es sinnvoll, +diese bereits hier zu beschreiben. + +\begin{Declaration} + \Macro{KOMAoptions}\Parameter{Optionenliste} +\end{Declaration} +\BeginIndex{Cmd}{KOMAoptions}% +Eine Besonderheit der \Class{scrlttr2}-Klasse besteht darin, dass +viele Optionen auch noch nach dem Laden der Klasse geändert werden +können. Dazu dient diese Anweisung, der die gewünschten Optionen und +deren Werte als Argument übergeben werden. Mehrere Optionen können +dabei genau wie beim optionalen Argument von \Macro{documentclass} mit +Komma voneinander getrennt aufgelistet werden. Sollte eine Option nur +beim Laden der Klasse, also als optionales Argument von +\Macro{documentclass} erlaubt sein, so wird in der Beschreibung der +jeweiligen Option explizit darauf hingewiesen. + +\begin{Explain} +Falls man in der \PName{Optionenliste} eine Option auf einen +unzulässigen Wert setzt, so stoppt \LaTeX{} mit einer +Fehlermeldung. Durch Eingabe von "`\texttt{h}"' erhält man dann eine +Hilfe, in der auch die möglichen Werte für die entsprechende Option +angegeben sind. +\end{Explain} +% +\EndIndex{Cmd}{KOMAoptions}% +\EndIndex{}{Optionen}% + + +\subsection{Optionen für den Satzspiegel} +\label{sec:scrlttr2.typeareaOptions} +\BeginIndex{}{Satzspiegel} + +Die \Class{scrlttr2}-Klasse stützt sich im Gegensatz zur alten +\Class{scrlettr}-Klasse und in Übereinstimmung mit den übrigen +\KOMAScript-Klassen zur Festlegung des Satzspiegels auf das +\Package{typearea}-Paket\IndexPackage{typearea} (siehe +\autoref{cha:typearea}). Das Paket wird von der Klasse automatisch +geladen. Die Steuerung des Paketes übernimmt die Klasse. Die dazu +benötigten Optionen werden in diesem Abschnitt erwähnt. + +\begin{Declaration} + \Option{paper}=\PName{Format} +\end{Declaration} +\BeginIndex{Option}{paper}% +\BeginIndex{}{Papierformat}% +Mit dieser Option wird das Papierformat angegeben. Es werden theoretisch +alle Papierformate unterstützt, die das \Package{typearea}-Paket +kennt. Dabei ist jedoch das Postfix \PValue{paper} bei der Angabe des +Wertes \PName{Format} wegzulassen. Für das Letterformat verwenden Sie +also beispielsweise den Wert \PValue{letter}. Die Formate der ISO A-, +B-, C- und D-Reihe sind mit Kleinbuchstaben zu übergeben, +beispielsweise \PValue{a4} für ISO A4. Siehe hierzu auch +\autoref{sec:typearea.paperTypes}. + +\begin{Explain} + Obwohl jedes von \Package{typearea} einstellbare Format verwendbar + ist, kann es bei der Ausgabe der ersten Briefseite mit manchen + Formaten zu unerwünschten Ergebnissen kommen. Das liegt aber nicht + am Konzept der Klasse, sondern daran, dass derzeit nur + Parametersätze für ISO A4 existieren. Leider gibt es keine + allgemeingültigen Regeln, um die Position von Anschriftfeldern und + Ähnlichem für beliebige Papierformate zu berechnen. Es ist jedoch + möglich, auch für andere Papierformate Parametersätze zu erstellen. + Näheres dazu ist \autoref{sec:lcoFile} zu entnehmen. +\end{Explain} +% +\EndIndex{Option}{paper}% +\EndIndex{}{Papierformat}% + + +\begin{Declaration} + \Option{BCOR}=\PName{Länge}\\ + \Option{DIV}=\PName{Wert}\\ + \Option{headlines}=\PName{Anzahl} +\end{Declaration} +\BeginIndex{Option}{BCOR}% +\BeginIndex{Option}{DIV}% +\BeginIndex{Option}{headlines}% +Die Optionen für den Divisor, die Bindekorrektur\Index{Bindekorrektur} +und die Anzahl der Kopfzeilen wird direkt in die entsprechenden +Optionen für das \Package{typearea} Paket übersetzt und an dieses +Paket weitergeleitet. Werden die Optionen nicht als Klassenoptionen +sondern mit \Macro{KOMAoptions} gesetzt, so wird die Anweisung +\Macro{typearea} aus dem \Package{typearea}-Paket verwendet. Siehe +dazu auch \autoref{sec:typearea.options}. +% +\EndIndex{Option}{BCOR}% +\EndIndex{Option}{DIV}% +\EndIndex{Option}{headlines}% + + +\begin{Declaration} + \Option{enlargefirstpage} +\end{Declaration} +\BeginIndex{Option}{enlargefirstpage}% +Wie später erklärt wird, fällt die erste Seite eines Briefes immer aus +dem normalen Satzspiegel. \Class{scrlttr2} stellt Mechanismen bereit, +um die Höhe und vertikale Ausrichtung von Kopf und Fuß der ersten +Seite unabhängig von den Folgeseiten bestimmen zu können. Würde +dadurch der Fuß der ersten Seite in den Textbereich\Index{Textbereich} +ragen, so wird der Textbereich der ersten Seite automatisch mit Hilfe +von \Macro{enlargethispage}\IndexCmd{enlargethispage} verkleinert. +Soll der Textbereich umgekehrt auch vergrößert werden, falls der Fuß +der ersten Seite dies erlaubt, so kann das mit dieser Option erreicht +werden. Es passt dann bestenfalls etwas mehr Text auf die erste Seite. +Siehe hierzu auch die Erklärung zur Pseudolänge +\PLength{firstfootvpos} in \autoref{sec:scrlttr2.firstFoot}. Die +Option versteht die Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{enlargefirstpage}% + +\begin{table} + \centering + \begin{tabular}{ll} + Wert & Bedeutung \\\hline\\[-1.75ex] + \PValue{true} & aktiviert die Option \\ + \PValue{on} & aktiviert die Option \\ + \PValue{false}& deaktiviert die Option \\ + \PValue{off} & deaktiviert die Option \\ + \end{tabular} + \caption{Standardwerte für einfache Schalter in der Klasse + \Class{scrlttr2}} + \label{tab:scrlttr2.simpleSwitchValues} +\end{table} + +% +\EndIndex{}{Satzspiegel}% + + +\subsection{Optionen für das Layout} +\label{sec:scrlttr2.layout} + +In diesem Unterabschnitt werden alle Optionen zusammengefasst, die +sich im weiter gefassten Sinne auf das Layout und nicht auf den +Satzspiegel auswirken. Genaugenommen sind natürlich alle +Satzspiegeloptionen (siehe \autoref{sec:scrlttr2.typeareaOptions}) +Layoutoptionen. Teilweise gilt dies auch umgekehrt. + + +\begin{Declaration} + \Option{twoside} +\end{Declaration}% +\BeginIndex{Option}{oneside}% +Doppelseitige\Index{doppelseitig} Briefe ergeben in den Augen des +Autors wenig Sinn. Deshalb schaltet die Option \Option{twoside} auch +nur teilweise auf ein doppelseitiges Layout. So wird zwar die +Möglichkeit geschaffen, auf linken und rechten Seiten mit einem +unterschiedlichen Rand\Index{Rand} zu arbeiten, diese Möglichkeit wird +jedoch nicht genutzt. Die Option hat also mehr die Bedeutung: +\emph{Aktiviere die Möglichkeiten eines zweiseitigen Dokuments aber + behalte bis auf weiteres und so weit wie + möglich das einseitige Layout bei.} % +Die Option versteht die Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben +sind. Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{twoside}% + +Übrigens werden zweispaltige Briefe nicht unterstützt, da absolut kein +Sinn darin gesehen wird. + + +\begin{Declaration} + \Option{cleardoublepage}=\PName{Stil} +\end{Declaration} +\BeginIndex{Option}{cleardoublepage}% +Will man, dass mit der \Macro{cleardoublepage}-Anweisung eingefügte +Leerseiten im Kopf- und Fuß nur eine Seitenzahl oder gar nichts +aufweisen, so kann das mit Hilfe dieser Option eingestellt werden. Es +stehen drei verschiedene Stile zur Verfügung: +\begin{description} +\item[\PValue{empty}] schaltet für die Leerseite auf den + Seitenstil\Index{Seitenstil} \PValue{empty}\IndexPagestyle{empty}. +\item[\PValue{plain}] schaltet für die Leerseite auf den Seitenstil + \PValue{plain}\IndexPagestyle{plain}. +\item[\PValue{standard}] behält für die Leerseite den aktuellen + Seitenstil bei. +\end{description} +Die Seitenstile werden in \autoref{sec:scrlttr2.pageStyle} näher +erläutert. Voreingestellt ist \PValue{standard}. +% +\EndIndex{Option}{cleardoublepage}% + + +\begin{Declaration} + \Option{headsepline}\\ + \Option{footsepline} +\end{Declaration} +\BeginIndex{Option}{headsepline}% +\BeginIndex{Option}{footsepline}% +Mit Hilfe dieser beiden Optionen kann eine +Trennlinie\Index{Trennlinie}\Index{Linie} unter dem +Kopf\Index{Seitenkopf} oder über dem Fuß\Index{Seitenfuß} von +Folgeseiten eingeschaltet werden. Folgeseiten im Sprachgebrauch dieser +Anleitung sind alle Briefseiten, abgesehen von der ersten. Die +Optionen \Option{headsepline} und \Option{footsepline} verstehen die +Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist \PValue{false}. Wird eine Option wie in der +Deklaration ohne Wert verwendet, so entspricht dies dem Wert +\PValue{true}, die Trennlinie wird also aktiviert. Bei Verwendung als +Option in \Macro{documentclass} wird zusätzlich die Option +\Option{headinclude} beziehungsweise \Option{footinclude} an das Paket +\Package{typearea} übergeben (siehe \autoref{sec:typearea.options}). +% +\EndIndex{Option}{headsepline}% +\EndIndex{Option}{footsepline}% + + +\begin{Declaration} + \Option{mpinclude}\\ + \Option{mpexclude} +\end{Declaration} +\BeginIndex{Option}{mpinclude}% +\BeginIndex{Option}{mpexclude}% +Diese beiden Optionen des \Package{typearea}-Paketes sollten nicht +zusammen mit der \Class{scrlttr2}-Klasse verwendet werden, da +insbesondere die erste Briefseite diese Option nicht +berücksichtigt. Um Beschwerden vorzugreifen, wird daher bei Verwendung +dieser Option eine Warnung ausgegeben. Wenn Sie experimentierfreudig +sind, können Sie aber gerne ausprobieren, wie sich insbesondere +\Option{mpinclude} zusammen mit anderen Optionen auf die Klasse +auswirkt. +% +\EndIndex{Option}{mpinclude}% +\EndIndex{Option}{mpexclude}% + + +\begin{Declaration} + \Option{pagenumber}=\PName{Position} +\end{Declaration} +\BeginIndex{Option}{pagenumber}% +Mit Hilfe dieser Option kann bestimmt werden, ob und wo eine +Seitenzahl auf Folgeseiten gesetzt werden soll. +Folgeseiten\Index{Folgeseite} sind alle Briefseiten ohne +Briefkopf\Index{Briefkopf}. Die Option wirkt sich auf die +Seitenstile\Index{Seitenstil} \PValue{headings} und \PValue{plain} +aus. Sie beeinflusst außerdem die Voreinstellung der Seitenstile des +\Package{scrpage2}-Paketes, soweit sie vor dem Laden dieses Paketes +gesetzt wird (siehe \autoref{cha:scrpage}). Es gibt Werte, die sich +nur auf die horizontale Position auswirken, Werte, die nur die +vertikale Position beeinflussen, und Werte, die zugleich die vertikale +und die horizontale Position festlegen. Mögliche Werte sind: +\begin{labeling}[~--]{\PValue{footcentered}} + \item[\PValue{bot}] Seitenzahl im Fuß ohne Änderung der + horizontalen Position + \item[\PValue{botcenter}] Seitenzahl zentriert im Fuß + \item[\PValue{botcentered}] wie \PValue{botcenter} + \item[\PValue{botleft}] Seitenzahl links im Fuß + \item[\PValue{botmiddle}] wie \PValue{botcenter} + \item[\PValue{botright}] Seitenzahl rechts im Fuß + \item[\PValue{center}] Seitenzahl zentriert ohne Änderung der + vertikalen Position + \item[\PValue{centered}] wie \PValue{center} + \item[\PValue{false}] keine Seitenzahl + \item[\PValue{foot}] wie \PValue{bot} + \item[\PValue{footcenter}] wie \PValue{botcenter} + \item[\PValue{footcentered}] wie \PValue{botcenter} + \item[\PValue{footleft}] wie \PValue{botleft} + \item[\PValue{footmiddle}] wie \PValue{botcenter} + \item[\PValue{footright}] wie \PValue{botright} + \item[\PValue{head}] Seitenzahl im Kopf ohne Änderung der + horizontalen Position + \item[\PValue{headcenter}] Seitenzahl zentriert im Kopf + \item[\PValue{headcentered}] wie \PValue{headcenter} + \item[\PValue{headleft}] Seitenzahl links im Kopf + \item[\PValue{headmiddle}] wie \PValue{headcenter} + \item[\PValue{headright}] Seitenzahl rechts im Kopf + \item[\PValue{left}] Seitenzahl links ohne Änderung der + vertikalen Position + \item[\PValue{middle}] wie \PValue{center} + \item[\PValue{no}] wie \PValue{false} + \item[\PValue{off}] wie \PValue{false} + \item[\PValue{right}] Seitenzahl rechts ohne Änderung der + vertikalen Position + \item[\PValue{top}] wie \PValue{head} + \item[\PValue{topcenter}] wie \PValue{headcenter} + \item[\PValue{topcentered}] wie \PValue{headcenter} + \item[\PValue{topleft}] wie \PValue{headleft} + \item[\PValue{topmiddle}] wie \PValue{headcenter} + \item[\PValue{topright}] wie \PValue{headright} +\end{labeling} +Voreingestellt ist \PValue{botcenter}. +% +\EndIndex{Option}{pagenumber}% + + +\begin{Declaration} + \Option{parskip}=\PName{Wert} +\end{Declaration}% +\BeginIndex{Option}{parskip}% +\begin{Explain}% + Gerade bei Briefen erlebt man häufig, dass diese nicht mit + Einrückung der ersten Zeile eines + Absatzes\Index{Absatz}\Index{Absatzeinzug}, sondern mit + Abstand\Index{Absatzabstand} zwischen den Absätzen gesetzt werden. + Hier spielt die Tradition eine große Rolle. Offenbar fiel es früher + der durchschnittlichen Sekretärin leichter, auf der Schreibmaschine + zweimal den Hebel zur Zeilenschaltung zu betätigen als eine + Einrückung mittels gut gesetztem Tabulator oder Leertaste zu setzen. + Da korrekter Blocksatz\Index{Blocksatz} mit einer Schreibmaschine + kaum möglich war, wurden und werden Briefe auch heute noch häufig im + Flattersatz gesetzt. + + Typografen wie Jan Tschichold vertreten jedoch die Auf"|fassung, dass + für Briefe, die mit den Mitteln des modernen Schriftsatzes erstellt + werden, diese Mittel auch ebenso gut genutzt werden sollten wie für + andere Dokumente. Unter diesen Umständen sollten also auch Briefe + mit Absatzeinrückung und im Blocksatz erstellt werden. Der Autor von + \Class{scrlttr2} schließt sich dieser Auf"|fassung weitgehend an, will + den Anwender aber nicht über Gebühr einschränken. +\end{Explain} +Da es immer wieder ernst gemeinte Anfragen dazu gibt, bietet +\Class{scrlttr2} nicht nur die Möglichkeit, Absätze durch Einrückung +der ersten Zeile, sondern alternativ durch einen Abstand zwischen den +Absätzen zu kennzeichnen. Dabei kann zwischen einer halben und einer +ganzen Zeile Abstand gewählt werden. Bei Absatzabstand empfiehlt es +sich, dafür zu sorgen, dass die letzte Zeile eines Absatzes nicht +komplett gefüllt wird. Dadurch wird die Erkennung des Absatzes weiter +erleichtert. All diese Möglichkeiten werden über die Werte der Option +\Option{parskip} gesteuert: +\begin{labeling}[~--]{\PValue{half*}} +\item[\PValue{false}] Absatzeinzug statt Absatzabstand; die letzte + Zeile eines Absatzes darf beliebig gefüllt sein +\item[\PValue{full}] eine Zeile Abstand zwischen Absätzen; in der + letzten Zeile eines Absatzes muss mindestens 1\Unit{em} Platz frei + bleiben +\item[\PValue{full*}] eine Zeile Abstand zwischen Absätzen; in der + letzten Zeile eines Absatzes muss mindestens ein Viertel frei + bleiben +\item[\PValue{full+}] eine Zeile Abstand zwischen Absätzen; in der + letzten Zeile eines Absatzes muss mindestens ein Drittel frei + bleiben +\item[\PValue{full-}] eine Zeile Abstand zwischen Absätzen; die letzte + Zeile eines Absatzes darf beliebig gefüllt sein +\item[\PValue{half}] eine halbe Zeile Abstand zwischen Absätzen; in + der letzten Zeile eines Absatzes muss mindestens 1\Unit{em} Platz + frei bleiben +\item[\PValue{half*}] eine halbe Zeile Abstand zwischen Absätzen; in + der letzten Zeile eines Absatzes muss mindestens ein Viertel frei + bleiben +\item[\PValue{half+}] eine halbe Zeile Abstand zwischen Absätzen; in + der letzten Zeile eines Absatzes muss mindestens ein Drittel frei + bleiben +\item[\PValue{half-}] eine halbe Zeile Abstand zwischen Absätzen; die + letzte Zeile eines Absatzes darf beliebig gefüllt sein +\item[\PValue{off}] wie \PValue{false} +\item[\PValue{on}] wie \PValue{full} +\item[\PValue{true}] wie \PValue{full} +\end{labeling} +Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{parskip}% + + + +\subsection{Optionen für die Schriftwahl} +\label{sec:scrlttr2.fontOptions} + +Optionen für die Schriftwahl sind Optionen, die sich auf die Größe der +Grundschrift oder der Schrift einzelner Teile auswirken. Theoretisch +wären auch Optionen, die sich auf die Schriftart auswirken, Optionen +für die Schriftwahl. Derzeit gibt es in \Class{scrlttr2} aber nur eine +Option, die sich auf die Schriftgröße auswirkt. + + +\begin{Declaration} + \Option{fontsize}=\PName{Größe} +\end{Declaration} +\BeginIndex{Option}{fontsize}% +Während bei den Hauptklassen die +Schriftgröße\Index{Schriftgroesse=Schriftgröße} des Dokuments mit +\Option{10pt}, \Option{11pt} usw. gewählt wird, gibt man bei +\Class{scrlttr2} die gewünschte \PName{Größe} als Wert dieser Option +an. Die Funktionalität ist aber ansonsten gleich. Diese Option kann +nur bei \Macro{documentclass} nicht, jedoch bei \Macro{KOMAoptions} +angegeben werden. Voreingestellt ist \PValue{12pt}. +% +\EndIndex{Option}{fontsize}% + + +\subsection{Optionen für Briefkopf und Anschrift} +\label{sec:scrlttr2.headoptions} +\BeginIndex{}{Briefkopf}\BeginIndex{}{Anschrift}% + +Die \Class{scrlttr2}-Klasse bietet eine ganze Reihe von Erweiterungen +für die Gestaltung des Briefkopfes. Dadurch wird das Paket +\Package{briefkopf}, das immer ohne Support war, obsolet. Darüber +hinaus existieren gegenüber der Standardbriefklasse Erweiterungen zur +Gestaltung der Anschrift. Diese Fähigkeiten waren jedoch weitgehend +schon in der obsoleten \Class{scrlettr} Klasse zu finden. + +\begin{Declaration} + \Option{fromalign} +\end{Declaration} +\BeginIndex{Option}{fromalign}% +Diese Option bestimmt, wo der Absender\Index{Absender} im Briefkopf +der ersten Seite platziert werden soll. Gleichzeitig dient diese +Option als zentraler Schalter, um die Erweiterungen der +Briefkopfgestaltung überhaupt zu aktivieren oder zu deaktivieren. Sind +die Erweiterungen deaktiviert, so bleiben diverse andere Optionen ohne +Wirkung. Dies ist bei den jeweiligen Optionen angegeben. Mögliche +Werte für \Option{fromalign} sind: +\begin{labeling}[~--]{\PValue{centered}} +\item[\PValue{center}] Absender wird zentriert; ein Logo wird + gegebenenfalls am Anfang der erweiterten Absenderangabe platziert; + die Erweiterungen der Briefkopfgestaltung werden aktiviert. +\item[\PValue{centered}] wie \PValue{center} +\item[\PValue{false}] die Standardgestalt für den Absender wird + verwendet; die Erweiterungen der Briefkopfgestaltung werden + deaktiviert. +\item[\PValue{left}] Absender steht linksbündig; ein Logo wird + gegebenenfalls rechtsbündig platziert; die Erweiterungen der + Briefkopfgestaltung werden aktiviert. +\item[\PValue{middle}] wie \PValue{center} +\item[\PValue{no}] wie \PValue{false} +\item[\PValue{off}] wie \PValue{false} +\item[\PValue{right}] Absender steht rechtsbündig; ein Logo wird + gegebenenfalls linksbündig platziert; die Erweiterungen der + Briefkopfgestaltung werden aktiviert. +\end{labeling} +Voreingestellt ist der Wert \PValue{left}. +% +\EndIndex{Option}{fromalign}% + + +\begin{Declaration} + \Option{fromrule} +\end{Declaration} +\BeginIndex{Option}{fromrule}% +Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung +(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit +ihrer Hilfe kann eine Linie\Index{Linie}\Index{Absender} innerhalb des +Absenders platziert werden. Die Option versteht folgende Werte: +\begin{labeling}[~--]{\PValue{afteraddress}} +\item[\PValue{afteraddress}] Linie unterhalb des kompletten Absenders +\item[\PValue{aftername}] Linie direkt unter dem Namen des Absenders +\item[\PValue{below}] wie \PValue{afteraddress} +\item[\PValue{false}] keine Linie +\item[\PValue{no}] wie \PValue{false} +\item[\PValue{off}] wie \PValue{false} +\item[\PValue{on}] wie \PValue{afteraddress} +\item[\PValue{true}] wie \PValue{afteraddress} +\item[\PValue{yes}] wie \PValue{afteraddress} +\end{labeling} +Voreingestellt ist der Wert \PValue{false}. Es können nicht +gleichzeitig mehrere Linien aktiviert werden. +% +\EndIndex{Option}{fromrule}% + + +\begin{Declaration} + \Option{fromphone} +\end{Declaration} +\BeginIndex{Option}{fromphone}% +Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung +(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit +ihrer Hilfe kann bestimmt werden, ob die Telefonnummer\Index{Telefon} +im Absender\Index{Absender} gesetzt werden soll. Die Option versteht +die Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{fromphone}% + + +\begin{Declaration} + \Option{fromfax} +\end{Declaration} +\BeginIndex{Option}{fromfax}% +Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung +(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit +ihrer Hilfe kann bestimmt werden, ob die Telefaxnummer\Index{Fax} im +Absender\Index{Absender} gesetzt werden soll. Die Option versteht die +Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{fromfax}% + + +\begin{Declaration} + \Option{fromemail} +\end{Declaration} +\BeginIndex{Option}{fromemail}% +Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung +(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit +ihrer Hilfe kann bestimmt werden, ob die E-Mail-Adresse\Index{E-Mail} +im Absender\Index{Absender} gesetzt werden soll. Die Option versteht +die Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{fromemail}% + + +\begin{Declaration} + \Option{fromurl} +\end{Declaration} +\BeginIndex{Option}{fromurl}% +Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung +(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit +ihrer Hilfe kann bestimmt werden, ob die +URL\Index{URL}\Index{WWW}\Index{Homepage} im Absender\Index{Absender} +gesetzt werden soll. Die Option versteht die Standardwerte für +einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues} +angegeben sind. Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{fromurl}% + + +\begin{Declaration} + \Option{fromlogo} +\end{Declaration} +\BeginIndex{Option}{fromlogo}% +Diese Option gehört zu den Erweiterungen der Briefkopfgestaltung +(siehe Option \Option{fromalign} am Anfang dieses Abschnitts). Mit +ihrer Hilfe kann bestimmt werden, ob das Logo\Index{Logo} im Briefkopf +gesetzt werden soll. Die Option versteht die Standardwerte für +einfache Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues} +angegeben sind. Bezüglich der Platzierung des Logos siehe ebenfalls +die Erklärung zu Option \Option{fromalign} am Anfang dieses +Abschnitts. Voreingestellt ist \PValue{false}. +% +\EndIndex{Option}{fromlogo}% + + +\begin{Declaration} + \Option{addrfield} +\end{Declaration} +\BeginIndex{Option}{addrfield}% +Mit dieser Option kann gewählt werden, ob ein Anschriftfeld gesetzt +werden soll oder nicht. Voreingestellt ist die Verwendung eines +Anschriftfeldes. Die Option versteht die Standardwerte für einfache +Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues} +angegeben sind. Voreingestellt ist \PValue{true}. +% +\EndIndex{Option}{addrfield}% + + +\begin{Declaration} + \Option{backaddress} +\end{Declaration} +\BeginIndex{Option}{backaddress}% +Mit dieser Option kann gewählt werden, ob eine +Rücksendeadresse\Index{Rücksendeadresse} für Fensterbriefumschläge im +Anschriftfeld gesetzt werden soll oder nicht. Voreingestellt ist die +Verwendung einer Rücksendeadresse. Wird kein Anschriftfeld gesetzt +(siehe Option \Option{addrfield}), so wird auch keine Rücksendeadresse +gesetzt. Die Option versteht die Standardwerte für einfache Schalter, +die in \autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist \PValue{true}. +% +\EndIndex{Option}{backaddress}% + + +\begin{Declaration} + \Option{subject} +\end{Declaration} +\BeginIndex{Option}{subject}% +Mit dieser Option kann zum einen gewählt werden, ob der +Betreff\Index{Betreff} mit einem Titel versehen werden soll oder +nicht. Der Titel stimmt mit der Bezeichnung der Variablen +\PName{subject} überein (siehe \autoref{tab:scrlttr2.subjectTerm}). +Zum anderen kann über diese Option gewählt werden, ob der Betreff vor +oder nach der Anrede gesetzt werden soll. Mögliche Werte für diese +Option sind: +\begin{labeling}[~--]{\PValue{beforeopening}} +\item[\PValue{afteropening}] Betreff nach der Anrede setzen +\item[\PValue{beforeopening}] Betreff vor der Anrede setzen +\item[\PValue{titled}] Betreff mit Titel versehen +\item[\PValue{untitled}] Betreff nicht mit Titel versehen +\end{labeling} +Voreingestellt sind \PValue{beforeopening} und \PValue{untitled}. +% +\EndIndex{Option}{subject}% + + +\begin{Declaration} + \Option{locfield} +\end{Declaration} +\BeginIndex{Option}{locfield}% +Neben dem Anschriftfeld setzt \Class{scrlttr2} noch ein Feld mit +erweiterter Absenderangabe. Dieses Feld kann beispielsweise für +Bankverbindungen und Ähnliches verwendet werden. Je nach Einstellung +der Option \Option{fromalign} wird es außerdem für das Logo des +Absenders mit verwendet. Die Breite dieses Feldes kann beispielsweise +in einer \File{lco}-Datei (siehe \autoref{sec:lcoFile}) gesetzt +werden. Wird dort die Breite 0 gesetzt, so kann über die Option +\Option{locfield} zwischen zwei unterschiedlichen Voreinstellungen für +die Breite dieses Feldes gewählt werden. Siehe hierzu auch die +Erklärungen zur Pseudolänge \Variable{locwidth} in +\autoref{sec:scrlttr2.locationField}. Mögliche Werte für die Option +sind: +\begin{labeling}[~--]{\PValue{narrow}} +\item[\PValue{narrow}] schmales Feld für Absenderergänzungen +\item[\PValue{wide}] breites Feld für Absenderergänzungen +\end{labeling} +Voreingestellt ist \PValue{narrow}. +% +\EndIndex{Option}{locfield}% + + +\begin{Declaration} + \Option{foldmarks} +\end{Declaration} +\BeginIndex{Option}{foldmarks}% +Mit dieser Option können +Faltmarken\Index{Faltmarken}\Index{Falzmarken} für Seitenhalbierung +und Seitendrittelung aktiviert oder deaktiviert werden. Die genaue +Position der Faltmarken für die Seitendrittelung ist von den +Einstellungen des Anwenders beziehungsweise der \File{lco}-Dateien +(siehe \autoref{sec:lcoFile}) abhängig. Es muss sich dabei nicht +zwingend um eine echte Drittelung handeln. Die Option versteht die +Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist mit \PValue{true} das Setzen der Faltmarken. +% +\EndIndex{Option}{foldmarks}% + + +\begin{Declaration} + \Option{numericaldate} +\end{Declaration} +\BeginIndex{Option}{numericaldate}% +Mit dieser Option kann zwischen der sprachabhängigen +Standarddarstellung des Datums\Index{Datum}\Index{Geschäftszeile} und +einem kurzen, rein nummerischen Datum umgeschaltet werden. Die +Standarddarstellung wird nicht von \KOMAScript{} bereitgestellt. Sie +kann wahlweise von einem Paket wie +\Package{german}\IndexPackage{german}, +\Package{babel}\IndexPackage{babel} oder auch +\Package{isodate}\IndexPackage{isodate} stammen. Das kurze +nummerische Datum wird hingegen von \Class{scrlttr2} selbst erzeugt. +Die Option versteht die Standardwerte für einfache Schalter, die in +\autoref{tab:scrlttr2.simpleSwitchValues} angegeben sind. +Voreingestellt ist mit \PValue{false} die Verwendung der +Standarddarstellung. Dies ist übrigens eine Änderung gegenüber der +obsoleten Klasse \Class{scrlettr}, bei der es die nun nicht mehr +unterstützte Option \Option{orgdate} mit gegenteiliger Bedeutung gab. +% +\EndIndex{Option}{numericaldate}% + + +\begin{Declaration} + \Option{refline} +\end{Declaration} +\BeginIndex{Option}{refline}% +Bei \Class{scrlttr2} können Kopf, Fuß, Anschrift und des Feld mit der +Absenderergänzung links und rechts aus dem normalen Satzspiegel +herausragen. Über diese Option kann nun gewählt werden, ob dies auch +für die Geschäftszeile\Index{Geschäftszeile} gelten soll. Die +Geschäftszeile enthält normalerweise zumindest das Datum, kann aber +auch weitere Angaben aufnehmen. Mögliche Werte für diese Option sind: +\begin{labeling}[~--]{\PValue{narrow}} +\item[\PValue{narrow}] Geschäftszeile hält den Satzspiegel ein +\item[\PValue{wide}] Geschäftszeile richtet sich nach Anschrift und + Absenderergänzung +\end{labeling} +Voreingestellt ist \PValue{narrow}. +% +\EndIndex{Option}{refline}% + +% +\EndIndex{}{Briefkopf}\EndIndex{}{Anschrift} + + +\subsection{Optionen für die Formatierung} +\label{sec:scrlttr2.formatingOptions} + +Optionen für die Formatierung sind solche, welche die Form oder +Formatierung einer Ausgabe beeinflussen und nicht in einen anderen +Abschnitt eingeordnet werden können. Es sind also sozusagen die +\emph{sonstigen Optionen}. + + +\begin{Declaration} + \Option{draft} +\end{Declaration} +\BeginIndex{Option}{draft}% +Diese Option schaltet zwischen einem fertigen +Dokument\Index{Endfassung} und einem Dokument im +Entwurfsstadium\Index{Entwurf} um. Insbesondere werden beim +Einschalten der Option \Option{draft} kleine schwarze Kästchen +aktiviert, die im Falle von überlangen Zeilen am Zeilenende ausgegeben +werden. Diese Kästchen erleichtern dem ungeübten Auge, Absätze +ausfindig zu machen, die manueller Nachbearbeitung bedürfen. +Demgegenüber erscheinen bei abgeschalteter \Option{draft}-Option keine +solche Kästchen. Die Option versteht die Standardwerte für einfache +Schalter, die in \autoref{tab:scrlttr2.simpleSwitchValues} +angegeben sind. Voreingestellt ist wie üblich \PValue{false}. Ich +empfehle jedoch dringend, beim Entwurf eines Briefes wie beim Entwurf +jedes Dokuments den Draft-Modus zu wählen, die Option \Option{draft} +also zu setzen. +% +\EndIndex{Option}{draft}% + + +\subsection{Die \emph{Letter-Class-Option}-Dateien} +\label{sec:lcoFile} + +\BeginIndex{}{lco=\File{lco}}\BeginIndex{}{Letter-Class-Option}% +Normalerweise wird man Einstellungen wie den Abstand des Adressfeldes +von der oberen Papierkante nicht in jedem Brief neu wählen. +Stattdessen wird man einen ganzen Satz von Parametern für bestimmte +Gelegenheiten immer wieder verwenden. Ganz Ähnliches gilt für die +verwendeten Briefköpfe und den Fußbereich der ersten Seite. Es ist +deshalb sicher sinnvoll, diese Einstellungen in einer eigenen Datei zu +speichern. Die Briefklasse \Class{scrlttr2} bietet hierfür die +\File{lco}-Dateien an. Die Endung \File{lco} ist eine Abkürzung für +\emph{\emph{l}etter \emph{c}lass \emph{o}ption}, also +Briefklassenoption. + +In \File{lco}-Dateien können alle Anweisungen verwendet werden, die +auch an der Stelle im Dokument verwendet werden könnten, an der die +\File{lco}-Datei geladen wird. Außerdem könnten interne Anweisungen +verwendet werden, die für Paketautoren freigegeben sind. Bei +\Class{scrlttr2} sind dies inbesondere die Anweisungen +\Macro{@newplength}\IndexCmd{@newplength}, +\Macro{@setplength}\IndexCmd{@setplength} und +\Macro{@addtoplength}\IndexCmd{@addtoplength} (siehe +\autoref{sec:scrlttr2.pseudoLength}). + +\KOMAScript{} liegen bereits einige \File{lco}-Dateien bei. Die +Dateien \File{DIN.lco}, \File{DINmtext.lco}, \File{SNleft.lco} und +\File{SN.lco} dienen dazu \Class{scrlttr2} an verschiedene +Normen\Index{Norm} anzupassen. Sie können sehr gut als Vorlage für +eigene Parametersätze verwendet werden. Die Datei \File{KOMAold.lco} +dient hingegen dazu, die Kompatibilität zu \Class{scrlettr}, der alten +Briefklasse, zu verbessern. Da hierbei auch auf Anweisungen +zurückgegriffen wird, die nicht für Paketautoren freigegeben sind, +sollte man sie nicht als Vorlage für eigene \File{lco}-Dateien +verwenden. Eine Liste aller vordefinierten \File{lco}-Dateien ist in +\autoref{tab:lcoFiles} zu finden. + +\begin{Explain} + Wenn Sie einen Parametersatz für eine Briefnorm, die bisher nicht + von \KOMAScript{} unterstützt wird, erstellt haben, so sind Sie + ausdrücklich gebeten, diesen Parametersatz an die Supportaddresse + von \KOMAScript{} zu schicken. Bitte geben Sie dabei auch die + Erlaubnis zur Weiterverbreitung unter den Lizenzbedingungen von + \KOMAScript{} (siehe dazu die Datei \File{LEGALDE.TXT}). Wenn Sie + zwar über die notwendigen Maße aus einer bisher nicht unterstützen + Briefnorm verfügen, sich jedoch nicht in der Lage sehen, selbst eine + passende \File{lco}-Datei zu erstellen, so können Sie sich ebenfalls + mit mir in Verbindung setzen. Aktuelle Adressen zu diesem Zweck + finden Sie in der jeweils neuesten Ausgabe der + \KOMAScript\textsf{-News} oder in + \autoref{sec:introduction.authors}. Beispiele für teilweise sehr komplexe + \File{lco}-Dateien finden sich unter Anderem unter \cite{homepage} und in + \cite{DANTE:TK0203:MJK}. +\end{Explain} + +\begin{Declaration} + \Macro{LoadLetterOption}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{LoadLetterOption}% +Normalerweise werden \File{lco}-Dateien direkt über +\Macro{documentclass} geladen. Dazu gibt man den Namen der +\File{lco}-Datei ohne die Endung als Option\Index{Optionen} an. Das Laden der +\File{lco}-Datei erfolgt dann direkt nach der Klasse. + +Es ist jedoch auch möglich, eine \File{lco}-Datei zu einem späteren +Zeitpunkt und sogar innerhalb einer anderen \File{lco}-Datei zu laden. +Dazu dient die Anweisung \Macro{LoadLetterOption}. Der \PName{Name} +der \File{lco}-Datei wird dieser ebenfalls ohne Endung als Parameter +übergeben. +\begin{Example} + Sie erstellen ein Dokument, in dem mehrere Briefe enthalten + sind. Die Mehrzahl der Briefe soll nach DIN erstellt werden. Also + beginnen Sie: + \begin{small} +\begin{verbatim} + \documentclass{scrlttr2} +\end{verbatim} + \end{small} + Allerdings soll bei einem Brief stattdessen die Variante + \File{DINmtext} verwendet werden. Bei dieser steht das Adressfeld + weiter oben, damit mehr Text auf die erste Seite passt. Dafür ist + die Faltung so angepasst, dass das Adressfeld bei + DIN~C6/5-Umschlägen trotzdem in das Adressfenster passt. Sie + erreichen das so: + \begin{small} +\begin{verbatim} + \begin{letter}{Markus Kohm\\ + Fichtenstraße 63\\68535 Edingen-Neckarhausen} + \LoadLetterOption{DINmtext} + \opening{Hallo,} +\end{verbatim} + \end{small} + Da der Aufbau der ersten Seite erst mit \Macro{opening} wirklich + beginnt, genügt es, wenn die \File{lco}-Datei vor \Macro{opening} + geladen wird. Dies muss also inbesondere nicht vor + \Macro{begin}\PParameter{letter} erfolgen. Die Änderungen durch das + Laden der \File{lco}-Datei sind dann auch lokal zu dem + entsprechenden Brief. +\end{Example} + +\begin{Explain} +Wird eine \File{lco}-Datei über \Macro{documentclass} geladen, so +darf sie übrigens trotzdem den Namen einer Option haben. Voraussetzung +ist jedoch, dass es sich nicht um eine Option handelt, die einen Wert +erwartet. Es wäre jedoch möglich, einer \File{lco}-Datei etwa den +Namen \File{fromalign=left.lco} zu geben. Diese würde dann immer geladen, +wenn als Option bei \Macro{documentclass} die Option +\Option{fromalign} auf den Wert \PValue{left} gesetzt +würde. Zugegeben, dies ist eher von akademischem Interesse. Natürlich +können Sie diesen Automatismus nur nutzen, wenn das von Ihnen +verwendete Betriebs- und Dateisystem derartige Dateinamen erlaubt. Ist +das nicht der Fall, müssen Sie einen anderen Datei\-namen wählen und +gegebenenfalls die entsprechende Option zusätzlich angeben. +\end{Explain} + +\begin{Example} + Sie wollen nicht immer wieder ihre Absenderangaben neu + eingeben. Deshalb erstellen Sie eine \File{lco}-Datei, die alle + Angaben enthält, beispielsweise: + \begin{small} +\begin{verbatim} + \ProvidesFile{mkohm.lco}[2002/02/25 letter class option] + \setkomavar{fromname}{Markus Kohm} + \setkomavar{fromaddress}{Fichtenstra\ss e 63\\ + 68535 Edingen-Neckarhausen} +\end{verbatim} + \end{small} + Die dabei verwendete Anweisung \Macro{setkomavar} und das Prinzip der + Variablen wird in Abschnitt~\ref{sec:scrlttr2.variables} genauer erläutert + werden. Für das Beispiel hier ist die genaue Funktion der Anweisung + unerheblich. Von Bedeutung ist lediglich, was man mit \File{lco}-Dateien + machen kann, weniger, wie dies konkret zu erreichen ist. Beachten Sie + jedoch, dass hier für "`ß"' die \TeX-Schreibweise \Macro{ss} verwendet + wurde. Dies hat seinen Grund darin, dass unmittelbar nach + \Macro{documentclass} weder ein Paket für die Eingabecodierung, + beispielsweise für Unix mit + \Macro{usepackage}\PValue{[latin1]}\PParameter{inputenc} oder für Windows + mit \Macro{usepackage}\PValue{[ansinew]}\PParameter{inputenc}, noch ein + Paket zur Sprachumschaltung, beispielsweise für die neue deutsche + Rechtschreibung mit \Macro{usepackage}\PParameter{ngerman}, geladen ist. + + Wenn Sie allerdings immer mit derselben Eingabecodierung arbeiten, + können Sie auch diese in Ihre Datei mit aufnehmen. Das Ganze sähe + dann beispielsweise so aus: + \begin{small} +\begin{verbatim} + \ProvidesFile{mkohm.lco}[2002/02/25 letter class option] + \RequirePackage[latin1]{inputenc} + \setkomavar{fromname}{Markus Kohm} + \setkomavar{fromaddress}{Fichtenstraße 63\\ + 68535 Edingen-Neckarhausen} +\end{verbatim} + \end{small} + Dieses Vorgehen hat aber den entscheidenden Nachteil, dass die + \File{lco}-Datei \File{mkohm} dann nicht mehr innerhalb des Dokuments + geladen werden kann. Wenn Sie also auch Briefe verschiedener Absender in + einer Datei haben wollen, sollten Sie davon absehen, in den entsprechenden + \File{lco}-Dateien Pakete zu laden. + + Nehmen wir weiter an, dass ich Briefe grundsätzlich mit der Vorgabe + \File{KOMAold} schreibe. Dann erweitere ich die Datei + \File{mkohm.lco} noch um die Zeile: + \begin{small} +\begin{verbatim} + \LoadLetterOption{KOMAold} +\end{verbatim} + \end{small} + + Wie dem auch sei, stellen Sie zukünftig meine Absenderdaten mit + \begin{small} +\begin{verbatim} + \documentclass[mkohm]{scrlttr2} +\end{verbatim} + \end{small} + ein. +\end{Example} + +In \autoref{tab:lcoFiles} finden Sie übrigens eine Liste aller +vordefinierten \File{lco}-Dateien. Falls Sie einen Drucker verwenden, +der einen sehr großen unbedruckbaren Rand links oder rechts besitzt, +werden Sie mit der Option \Option{SN}\IndexOption{SN} möglicherweise +Probleme bekommen. Da die Schweizer Norm SN~101\,130 vorsieht, dass +das Adressfeld 8\,mm vom rechten Papierrand gesetzt wird, werden bei +Schweizer Briefen auch die Kopfzeile und die Absenderergänzung mit +einem entsprechend geringen Abstand zum Papierrand gesetzt. Dies +betrifft ebenfalls die Geschäftszeile bei der Einstellung +\Option{refline}\PValue{=wide} (siehe +\autoref{sec:scrlttr2.headoptions}). Sollten Sie damit ein +Problem haben, erstellen Sie sich eine eigene \File{lco}-Datei, die +zunächst \Option{SN} lädt und in der \PLength{toaddrhpos} (siehe +\autoref{sec:scrlttr2.addressee}) dann auf einen kleineren Wert +gesetzt wird. Verringern Sie dann außerdem \PLength{toaddrwidth} +entsprechend. +% +\EndIndex{Cmd}{LoadLetterOption}% + +\begin{table} + \centering + \begin{tabular}{lp{.7\textwidth}} + \File{lco}-Name & Bedeutung und Besonderheiten \\\hline\\[-2ex] + \Option{DIN}\IndexOption[indexmain]{DIN}% + & Parametersatz für Briefe im Format A4 nach + DIN~676; geeignet für Fensterbriefumschläge in den + Formaten C4, C5, C6 und C6/5 (C6 lang)\\ + \Option{DINmtext}\IndexOption[indexmain]{DINmtext}% + & Parametersatz für Briefe im Format A4 nach DIN~676, + wobei die Alternative für mehr Text auf der ersten + Briefseite verwendet wird; nur geeignet für + Fensterbriefumschläge in den Formaten C6 und C6/5 + (C6 lang)\\ + \Option{KOMAold}\IndexOption[indexmain]{KOMAold}% + & Parametersatz für Briefe im Format A4 mit + Annäherung an das Aussehen von Briefen der + obsoleten Briefklasse \Class{scrlettr}; geeignet + für Fensterbriefumschläge in den Formaten C4, C5, + C6 und C6/5 (C6 lang); es werden einige + zusätzliche Anweisungen zur Verbesserung der + Kompatibilität mit der obsoleten + Briefklasse \Class{scrlettr}\IndexClass{scrlettr} + definiert; \Class{scrlttr2} verhält sich mit + dieser \File{lco}-Datei möglicherweise nicht genau + wie bei Verwendung der übrigen + \File{lco}-Dateien\\ + \Option{SN}\IndexOption[indexmain]{SN}% + & Parametersatz für Schweizer Briefe nach + SN~010\,130 mit Anschrift rechts; geeignet für + Schweizer Fensterbriefumschläge in den Formaten + C4, C5, C6 und C6/5 (C6 lang)\\ + \Option{SNleft}\IndexOption[indexmain]{SNleft}% + & Parametersatz für Schweizer Briefe mit Anschrift + links; geeignet für Schweizer + Fensterbriefumschläge mit dem Fenster links in den + Formaten C4, C5, C6 und C6/5 (C6 lang)\\ + \end{tabular} + \caption{Vordefinierte \File{lco}-Dateien} + \label{tab:lcoFiles} +\end{table} + +\begin{Explain} +\begin{Declaration} + \Macro{LetterOptionNeedsPapersize}% + \Parameter{Optionsname}\Parameter{Papiergröße} +\end{Declaration} +\BeginIndex{Cmd}{LetterOptionNeedsPapersize}% +Wie bereits in \autoref{sec:scrlttr2.typeareaOptions} erwähnt wurde, +existieren derzeit nur Parametersätze und \File{lco}-Dateien für +A4-Papier. Damit man bei Verwendung einer anderen +\PName{Papiergröße}\Index{Papierformat} zumindest gewarnt wird, ist in +jeder mit \KOMAScript{} ausgelieferten \File{lco}-Datei eine Anweisung +\Macro{LetterOptionNeedsPapersize} zu finden. Als erstes Argument wird +dabei der Name der \File{lco}-Datei ohne die Endung "`\File{.lco}"' +übergeben. Als zweites Argument wird die Papiergröße übergeben, für +die diese \File{lco}-Datei gedacht ist. + +Werden nacheinander mehrere \File{lco}-Dateien geladen, so kann jede +dieser \File{lco}-Dateien eine Anweisung +\Macro{LetterOptionNeedsPapersize} enthalten. Innerhalb von +\Macro{opening} wird jedoch nur auf die jeweils letzte angegebene +\PName{Papiergröße} geprüft. Wie das nachfolgende Beispiel zeigt, ist +es daher für den versierten Anwender leicht möglich, +\File{lco}-Dateien mit Parametersätzen für andere Papierformate zu +schreiben. Wer allerdings nicht vor hat, selbst solche +\File{lco}-Dateien zu schreiben, der kann die Erklärung zu dieser +Anweisung gleich wieder vergessen und auch das Beispiel überspringen. + +\begin{Example} + Nehmen wir einmal an, dass Sie A5-Papier in normaler Ausrichtung, + also hochkant oder portrait, für Ihre Briefe verwenden. Nehmen wir + weiter an, dass Sie diese in normale Fensterbriefumschläge im Format + C6 stecken. Damit wäre prinzipiell die Position des Adressfeldes die + gleiche wie bei einem normalen Brief in A4 nach DIN. Der Unterschied + besteht im Wesentlichen darin, dass das A5-Papier nur einmal + gefaltet werden muss. Sie wollen deshalb verhindern, dass die obere + und die untere Faltmarke gesetzt wird. Dies erreichen Sie am + einfachsten, indem sie die Marken außerhalb des Papiers platzieren. + \begin{small} +\begin{verbatim} + \ProvidesFile{paper=a5.lco}[2002/05/02 letter class option] + \LetterOptionNeedsPapersize{paper=a5}{a5} + \@setplength{tfoldmarkvpos}{\paperheight} + \@setplength{bfoldmarkvpos}{\paperheight} +\end{verbatim} + \end{small} + Außerdem muss natürlich die Position des Seitenfußes + \PLength{firstfootvpos} angepasst werden. Ich überlasse es dem Leser, + dafür einen geeigneten Wert zu ermitteln. Mit einer solchen + \File{lco}-Datei ist es lediglich wichtig, dass andere + \File{lco}-Dateioptionen wie \File{SN} vor dem Setzen der + Papiergröße, also vor dem Laden von "`\File{paper=a5.lco}"', + angegeben werden. Das erscheint Ihnen kompliziert? Nur bis Sie es + zum ersten Mal gemacht haben. Außerdem: Wie oft schreiben Sie Briefe + in einem anderen Format als A4? +\end{Example} +% +\EndIndex{Cmd}{LetterOptionNeedsPapersize} +\end{Explain} + +Die \File{lco}-Datei \File{DIN} wird übrigens immer als erste +\File{lco}-Datei geladen. Dies wird getan, damit alle Pseudo-Längen +mehr oder weniger sinnvoll vordefiniert sind. + +Beachten Sie bitte noch, dass es nicht möglich ist, innerhalb einer +\File{lco}-Datei mittels \Macro{PassOptionsToPackage} Optionen an +Pakete zu übergeben, die von der Klasse bereits geladen +sind. Normalerweise betrifft dies nur die Pakete \Package{typearea}, +\Package{scrlfile} und \Package{keyval}. +% +\EndIndex{}{lco=\File{lco}}\EndIndex{}{Letter-Class-Option}% + + +\section{Generelle Dokumenteigenschaften} +\label{sec:scrlttr2.general} + +Einige Dokumenteigenschaften sind keinem speziellen Abschnitt des +Dokuments wie dem Briefkopf oder dem Brief"|text zugeordnet. Ein Teil +dieser Eigenschaften wurde bereits im +\autoref{sec:scrlttr2.options} erläutert oder erwähnt. + + +\subsection{Änderung der verwendeten Schriftart} +\label{sec:scrlttr2.font} + +\BeginIndex{}{Schriftart}\BeginIndex{}{Schriftgroesse=Schriftgröße}% +\begin{Explain} +Bezüglich der Anweisungen zum Setzen, Erweitern und Abfragen der +Schrift eines bestimmten Elements verweise ich hier auf die +Anweisungen aus \autoref{sec:maincls.font}. Diese Anweisungen +funktionieren in \Class{scrlttr2} ganz genauso. Die Elemente, die auf +diese Weise beeinflusst werden können, entnehmen Sie bitte +\autoref{tab:scrlttr2.elementsWithoutText}. +% +\begin{table} + \centering% + \begin{tabular}{lp{.6\linewidth}} + Element & Beschreibung \\\hline\\[-2ex] + \PValue{backaddress}\IndexFontElement[indexmain]{backaddress} + & \raggedright Rücksendeadresse für einen Fensterbriefumschlag + \tabularnewline[.75ex] + \PValue{descriptionlabel}\IndexFontElement[indexmain]{descriptionlabel} + & \raggedright Labels, also das optionale Argument von + \Macro{item}, in einer \Environment{description}-Umgebung + \tabularnewline[.75ex] + \PValue{fromaddress}\IndexFontElement[indexmain]{fromaddress} + & \raggedright Absenderadresse im Briefkopf + \tabularnewline[.75ex] + \PValue{fromname}\IndexFontElement[indexmain]{fromname} + & \raggedright Name des Absenders im Briefkopf abweichend von + \PValue{fromaddress} + \tabularnewline[.75ex] + \PValue{pagefoot}\IndexFontElement[indexmain]{pagefoot} + & \raggedright Eigentlich der Fuß einer Seite, jedoch auch der + Kopf der Seite + \tabularnewline[.75ex] + \PValue{pagehead}\IndexFontElement[indexmain]{pagehead} + & \raggedright Eigentlich der Kopf einer Seite, jedoch auch der + Fuß der Seite + \tabularnewline[.75ex] + \PValue{pagenumber}\IndexFontElement[indexmain]{pagenumber} + & \raggedright Seitenangabe im Kopf oder Fuß, die mit + \Macro{pagemark} gesetzt wird + \tabularnewline[.75ex] + \PValue{subject}\IndexFontElement[indexmain]{subject} + & \raggedright Betreff in der Brieferöffnung + \tabularnewline[.75ex] + \PValue{title}\IndexFontElement[indexmain]{title} + & \raggedright Titel in der Brieferöffnung + \tabularnewline[.75ex] + \end{tabular} + \caption{Elemente, deren Schrift bei der Klasse + \Class{scrlttr2} mit \Macro{setkomafont} und \Macro{addtokomafont} + verändert werden kann} + \label{tab:scrlttr2.elementsWithoutText} +\end{table} +\end{Explain} +% +\EndIndex{}{Schriftart}\EndIndex{}{Schriftgroesse=Schriftgröße}% + + +\subsection{Seitenstil} +\label{sec:scrlttr2.pageStyle} +Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. +Siehe hierzu auch \autoref{sec:maincls.pageStyle} und +\autoref{cha:scrpage}. + +\begin{Declaration} + \Macro{pagestyle}\PParameter{empty}\\ + \Macro{pagestyle}\PParameter{plain}\\ + \Macro{pagestyle}\PParameter{headings}\\ + \Macro{pagestyle}\PParameter{myheadings}\\ + \Macro{thispagestyle}\Parameter{lokaler Seitenstil} +\end{Declaration} +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadigs}% +\BeginIndex{}{Seitenstil}% +Bei Briefen mit \Class{scrlttr2} wird zwischen vier verschiedenen +Seitenstilen unterschieden. +\begin{description} +\item[empty] ist der Seitenstil, bei dem Kopf- und Fußzeile von + Folgeseiten vollständig leer bleiben. Dieser Seitenstil wird auch + automatisch für die erste Briefseite verwendet, da auf dieser Seite + Kopf und Fuß über \Macro{opening} mit anderen Mitteln gesetzt + werden. +\item[plain] ist der Seitenstil, bei dem auf Folgeseiten keinerlei + Kolumnentitel verwendet, sondern nur eine Seitenangabe ausgegeben + wird. Wo diese gesetzt wird, hängt von der Option + \Option{pagenumber} ab (siehe \autoref{sec:scrlttr2.layout}). +\item[headings] ist der Seitenstil für automatische Kolumnentitel auf + Folgeseiten. Dabei werden als automatisch gesetzte Marken der + Absendername aus der Variablen \PValue{fromname} und der Betreff aus + der Variablen \PValue{subject} verwendet (siehe + \autoref{sec:scrlttr2.firstHead} und + \autoref{sec;scrlttr2.titleSubject}). Wo genau diese Marken + und die Seitenangabe ausgegeben werden, hängt von der Option + \Option{pagenumber} ab (siehe \autoref{sec:scrlttr2.layout}). + Der Autor kann die Marken aber auch noch nach \Macro{opening} + manuell beeinflussen. +\item[myheadings] ist der Seitenstil für manuelle Kolumnentitel auf + Folgeseiten. Dies entspricht weitgehend \PValue{headings}, + allerdings müssen hier die Marken vom Anwender gesetzt werden. Er + verwendet dazu die Anweisungen \Macro{markboth}\IndexCmd{markboth} + und \Macro{markright}\IndexCmd{markright}. +\end{description} +Folgeseiten im Sprachgebrauch dieser Anleitung sind alle Briefseiten +abgesehen von der ersten. + +Die Form der Seitenstile wird außerdem durch die Optionen +\Option{headsepline}\IndexOption{headsepline} und +\Option{footsepline}\IndexOption{footsepline} beeinflusst (siehe +\autoref{sec:scrlttr2.layout}). Der Seitenstil ab der aktuellen +Seite wird mit \Macro{pagestyle} umgeschaltet. Demgegenüber verändert +\Macro{thispagestyle} nur den Seitenstil der aktuellen Seite. Die +Briefklasse verwendet \Macro{thispagestyle}\PParameter{empty} selbst +innerhalb von \Macro{opening}\IndexCmd{opening} für die erste +Briefseite. +% +\EndIndex{Cmd}{pagestyle}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{plain}% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{myheadigs}% +\EndIndex{}{Seitenstil}% + +\BeginIndex[indexother]{}{Schriftart}% +Um die Schriftart von Kopf und Fuß der Seite oder der Seitenangabe zu +ändern, verwenden Sie die Benutzerschnittstelle, die in +\autoref{sec:maincls.font} beschrieben ist. Für den Kopf und den +Fuß ist dabei das gleiche Element zuständig, das Sie wahlweise mit +\PValue{pagehead} oder \PValue{pagefoot} benennen können. Das Element +für die Seitenzahl innerhalb des Kopfes oder Fußes heißt +\PValue{pagenumber}. Die Voreinstellungen sind in +\autoref{tab:maincls.defaultFontsHeadFoot} zu finden. Beachten Sie +dazu auch das Beispiel aus \autoref{sec:maincls.pageStyle}. +% +\EndIndex[indexother]{}{Schriftart}% + +\begin{Declaration} + \Macro{clearpage}\\ + \Macro{cleardoublepage}\\ + \Macro{cleardoublestandardpage}\\ + \Macro{cleardoubleplainpage}\\ + \Macro{cleardoubleemptypage} +\end{Declaration}% +\BeginIndex{Cmd}{clearpage}% +\BeginIndex{Cmd}{cleardoublepage}% +\BeginIndex{Cmd}{cleardoublestandardpage}% +\BeginIndex{Cmd}{cleardoubleplainpage}% +\BeginIndex{Cmd}{cleardoubleemptypage}% +Siehe hierzu \autoref{sec:maincls.pageStyle}\Index{Seitenstil}, wobei +die Arbeitsweise von \Macro{cleardoublepage} bei \Class{scrlttr2} von +der Option \Option{cleardoublepage} abhängt, die in +\autoref{sec:scrlttr2.layout} näher beschrieben ist. +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% + + + +\subsection{Variablen} +\label{sec:scrlttr2.variables} + +\BeginIndex{}{Variablen}% +Neben Optionen, Anweisungen (oder Befehlen), Umgebungen, Zählern und +Längen wurden in \KOMAScript{} bereits zusätzlich Elemente eingeführt. +Eine typische Eigenschaft eines Elements ist eine Schriftart und die +Möglichkeit, diese zu ändern (siehe \autoref{sec:maincls.font}). An +dieser Stelle werden nun zusätzlich Variablen eingeführt. Variablen +haben einen Namen, über den sie angesprochen werden und einen Inhalt. +Der Inhalt einer Variablen kann zeitlich bzw. räumlich getrennt von +ihrer Verwendung gesetzt werden, so wie der Inhalt einer Anweisung +getrennt von ihrer Ausführung definiert werden kann. Ein +Hauptunterschied einer Variablen zu einer Anweisung besteht darin, +dass eine Anweisung normalerweise eine Aktion auslöst, während der +Inhalt einer Variablen normalerweise aus einem Text besteht, der dann +von einer Anweisung ausgegeben wird. Außerdem kann eine Variable +zusätzlich eine Bezeichnung besitzen, die ebenfalls gesetzt und +ausgegeben werden kann. + +Dieser Abschnitt beschränkt sich bewusst auf die Einführung des +Begriffs der Variablen. Die zur Verdeutlichung verwendeten Beispiele +sind ohne tiefere Bedeutung. Konkretere Anwendungsbeispiele gibt es +bei der Erläuterung der in der Briefklasse bereits definierten und von +ihr verwendeten Variablen in den nachfolgenden +Abschnitten. \autoref{tab:scrlttr2.variables} gibt eine +Übersicht über alle in \Class{scrlttr2} definierten Variablen. + +\begin{table} + \centering + \begin{tabular}{lp{.6\linewidth}} + Variable & Bedeutung \\\hline\\[-2ex] + \Variable{backaddress} + & Rücksendeadresse für Fensterbriefumschläge\\ + \Variable{backaddressseparator} + & Trennzeichen innerhalb der Rücksendeadresse\\ + \Variable{ccseparator} + & Trennzeichen zwischen Verteilertitel und Verteiler\\ + \Variable{customer} + & Geschäftszeilenfeld "`Kundennummer"'\\ + \Variable{date} + & Datum\\ + \Variable{emailseparator} + & Trennzeichen zwischen E-Mail-Bezeichner und E-Mail-Adresse\\ + \Variable{enclseparator} + & Trennzeichen zwischen Anlagetitel und Anlagen\\ + \Variable{faxseparator} + & Trennzeichen zwischen Faxbezeichner und Faxnummer\\ + \Variable{fromaddress} + & Absenderadresse ohne Absendername\\ + \Variable{frombank} + & Bankverbindung des Absenders\\ + \Variable{fromemail} + & E-Mail-Adresse des Absenders\\ + \Variable{fromfax} + & Faxnummer des Absenders\\ + \Variable{fromlogo} + & Anweisungen zum Setzen des Absenderlogos\\ + \Variable{fromname} + & vollständiger Absendername\\ + \Variable{fromphone} + & Telefonnummer des Absenders\\ + \Variable{fromurl} + & eine URL des Absenders\\ + \Variable{invoice} + & Geschäftszeilenfeld "`Rechnungsnummer"'\\ + \Variable{location} + & erweiterte Absenderangabe\\ + \Variable{myref} + & Geschäftszeilenfeld "`Mein Zeichen"'\\ + \Variable{place} + & Ort\\ + \Variable{placeseparator} + & Trennzeichen zwischen Ort und Datum\\ + \Variable{phoneseparator} + & Trennzeichen zwischen Telefonbezeichner und Telefonnummer\\ + \Variable{signature} + & Signatur unter Unterschrift und Grußformel\\ + \Variable{specialmail} + & Versandart\\ + \Variable{subject} + & Betreff\\ + \Variable{subjectseparator} + & Trennzeichen zwischen Betreff"|titel und Betreff\\ + \Variable{title} + & Brief"|titel\\ + \Variable{toname} + & vollständiger Empfängername\\ + \Variable{toaddress} + & Empfängeradresse ohne Empfängername\\ + \Variable{yourmail} + & Geschäftszeilenfeld "`Ihr Schreiben"'\\ + \Variable{yourref} + & Geschäftszeilenfeld "`Ihr Zeichen"'\\ + \end{tabular} + \caption{Von der Klasse \Class{scrlttr2} unterstützte Variablen} + \label{tab:scrlttr2.variables} +\end{table} + + +\begin{Declaration} + \Macro{newkomavar}\OParameter{Bezeichnung}\Parameter{Name}\\ + \Macro{newkomavar*}\OParameter{Bezeichnung}\Parameter{Name}\\ + \Macro{addtoreffields}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{newkomavar}\BeginIndex{Cmd}{newkomavar*}% +\BeginIndex{Cmd}{addtoreffields}% +Mit \Macro{newkomavar} wird eine neue Variable definiert. Diese +Variable wird über \PName{Name} angesprochen. Optional kann eine +\PName{Bezeichnung} für die Variable \PName{Name} angegeben werden. +Mit der Anweisung \Macro{addtoreffields} kann die Variable +\PName{Name} der Geschäftszeile (siehe +\autoref{sec:scrlttr2.refLine}) hinzugefügt werden. Dabei wird +die \PName{Bezeichnung} und der Inhalt der Variablen an das Ende der +Geschäftszeile angehängt, falls ihr Inhalt nicht leer ist. Die +Sternvariante \Macro{newkomavar*} entspricht der Variante ohne Stern +mit anschließendem Aufruf der Anweisung \Macro{addtoreffields}. Bei +der Sternvariante wird die Variable also automatisch zur +Geschäftszeile hinzugefügt. +\begin{Example} + Angenommen, Sie benötigen in der Geschäftszeile ein zusätzliches Feld + für eine Durchwahl. Sie können das Feld dann wahlweise mit + \begin{small} +\begin{verbatim} + \newkomavar[Durchwahl]{myphone} + \addtoreffields{myphone} +\end{verbatim} + \end{small} + oder kürzer mit + \begin{small} +\begin{verbatim} + \newkomavar*[Durchwahl]{myphone} +\end{verbatim} + \end{small} + definieren. +\end{Example} +Im Fall, dass eine Variable für die Geschäftszeile definiert wird, +sollten Sie immer eine Bezeichnung dafür angeben. +% +\EndIndex{Cmd}{newkomavar}\EndIndex{Cmd}{newkomavar*}% +\EndIndex{Cmd}{addtoreffields}% + + +\begin{Declaration} + \Macro{setkomavar}% + \Parameter{Name}\OParameter{Bezeichnung}\Parameter{Inhalt}\\ + \Macro{setkomavar*}\Parameter{Name}\Parameter{Bezeichnung} +\end{Declaration} +\BeginIndex{Cmd}{setkomavar}\BeginIndex{Cmd}{setkomavar*}% +Mit der Anweisung \Macro{setkomavar} wird der \PName{Inhalt} der +Variablen \PName{Name} gesetzt. Dabei kann per optionalem Argument +gleichzeitig auch die \PName{Bezeichnung} der Variablen geändert +werden. Demgegenüber kann mit der Sternvariante \Macro{setkomavar*} +auch nur die \PName{Bezeichnung} der Variablen \PName{Name} gesetzt +werden. +\begin{Example} + Angenommen, Sie haben wie oben eine Variable für die Durchwahl + definiert und wollen nun die Durchwahl setzen. Dies geschieht + einfach mit: + \begin{small} +\begin{verbatim} + \setkomavar{myphone}{-\,11} +\end{verbatim} + \end{small} + Sie wollen außerdem, dass statt "`Durchwahl"' der Begriff + "`Apparat"' ausgegeben wird. Also setzen Sie zusätzlich die + Bezeichnung mit: + \begin{small} +\begin{verbatim} + \setkomavar*{myphone}{Apparat} +\end{verbatim} + \end{small} + oder fassen beide Angaben zu einer Anweisung zusammen: + \begin{small} +\begin{verbatim} + \setkomavar{myphone}[Apparat]{-\,11} +\end{verbatim} + \end{small} + Damit schlagen Sie sozusagen zwei Fliegen mit einer Klappe. +\end{Example} +Übrigens kann mit einem leeren obligatorischen Argument \PName{Inhalt} +der Inhalt der Variable gelöscht werden. Selbstverständlich kann in +gleicher Weise mit einem leeren Argument \PName{Bezeichnung} die +Bezeichnung der Variablen gelöscht werden. +\begin{Example} + Angenommen, Sie haben wie oben eine Variable für die Durchwahl + definiert, wollen nun aber nicht, dass eine Bezeichnung ausgegeben + wird. Dann können Sie diese entweder für sich mit: + \begin{small} +\begin{verbatim} + \setkomavar*{myphone}{} +\end{verbatim} + \end{small} + löschen. Sie können aber auch wieder zwei Fliegen mit einer Klappe + schlagen und verwenden: + \begin{small} +\begin{verbatim} + \setkomavar{myphone}[]{-\,11} +\end{verbatim} + \end{small} + Dadurch wird gleichzeitig der Inhalt der Variablen gesetzt und ihre + Bezeichnung gel"oscht. +\end{Example} +% +\EndIndex{Cmd}{setkomavar}\EndIndex{Cmd}{setkomavar*}% + + +\begin{Declaration} + \Macro{usekomavar}\OParameter{Anweisung}\Parameter{Name}\\ + \Macro{usekomavar*}\OParameter{Anweisung}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{usekomavar}\BeginIndex{Cmd}{usekomavar*}% +In\ChangedAt{v2.9i}{\Class{scrlttr2}} manchen Fällen wird es notwendig +sein, selbst auf den Inhalt oder die Bezeichnung einer Variablen +zuzugreifen, dies also nicht allein der Klasse zu überlassen. Dies +gilt insbesondere dann, wenn Sie eigene Variablen definiert haben, die +jedoch nicht zur Geschäftszeile hinzugefügt werden. Mit der Anweisung +\Macro{usekomavar} können Sie auf den Inhalt der Variablen +\PName{Name} zugreifen, während Sie mit der Sternvariante +\Macro{usekomavar*} ihre Bezeichnung erhalten. + +\begin{Explain} + Die Anweisungen \Macro{usekomavar} und \Macro{usekomavar*} sind + übrigens wie alle Anweisungen, von denen es eine Sternvariante gibt + oder die ein optionales Argument besitzen, nicht voll expandierbar. + Bei Verwendung innerhalb von \Macro{markboth}\IndexCmd{markboth}, + \Macro{markright}\IndexCmd{markright} oder ähnlichen Anweisungen + muss dennoch kein \Macro{protect}\IndexCmd{protect} vorangestellt + werden. Selbstverständlich gilt dies bei Verwendung von + \Package{scrpage2} auch für \Macro{markleft}\IndexCmd{markleft}. + Allerdings können die Anweisungen nicht innerhalb von + \Macro{MakeUppercase} und ähnlichen Anweisungen verwendet werden, + die direkten Einfluss auf ihr Argument haben. Diese Anweisungen + können jedoch als optionales Argument angegeben werden. So erhält + man beispielsweise den Inhalt einer Variable in Großbuchstaben mit + \Macro{usekomavar}\PValue{[\Macro{MakeUppercase}]}\Parameter{Name}. +\end{Explain} +% +\EndIndex{Cmd}{usekomavar}\EndIndex{Cmd}{usekomavar*}% + +\begin{Declaration} + \Macro{ifkomavarempty}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch}\\ + \Macro{ifkomavarempty*}\Parameter{Name}\Parameter{Wahr}\Parameter{Falsch} +\end{Declaration} +\BeginIndex{Cmd}{ifkomavarempty}% +Mit\ChangedAt{v2.9i}{\Class{scrlttr2}} Hilfe diesen Anweisung kann man +feststellen, ob der Inhalt oder die Bezeichnung einer Variablen leer +ist oder nicht. Das \PName{Wahr}-Argument wird nur dann ausgeführt, +wenn der expandierte Inhalt oder die expandierte Bezeichnung der +Variablen \PName{Name} leer ist. Anderenfalls wird das +\PName{Falsch}-Argument ausgeführt. Die Sternvariante der Anweisung +bezieht sich dabei auf die Bezeichnung der Variablen, während die +normale Variante den Inhalt behandelt. + +\begin{Explain} + In diesem Zusammenhang ist wichtig, dass der Inhalt der Variablen + soweit expandiert wird, wie dies mit \Macro{edef} möglich + ist. Bleiben dabei Leerzeichen oder unexpandierbare Makros wie + \Macro{relax} übrig, so gilt der Inhalt auch dann als nicht leer, + wenn die Verwendung der Variablen zu keiner Ausgabe führen würde. + + Auch diese Anweisung kann nicht innerhalb von \Macro{MakeUppercase} + oder ähnlichen Anweisungen verwendet werden. Sie ist jedoch robust + genug, um beispielsweise als Argument von \Macro{markboth} oder + \Macro{footnote} zu funktionieren. +\end{Explain} +% +\EndIndex{Cmd}{ifkomavarempty}% +% +\EndIndex{}{Variablen} + + + +\subsection{Die Pseudolängen} +\label{sec:scrlttr2.pseudoLength} +\BeginIndex{}{Pseudolängen} + +\begin{Explain} + \TeX{} arbeitet mit einem festen Satz an Registern. Es gibt Register + für Tokens, für Boxen, für Zähler, für Abstände (englisch: + \emph{skip}) und für Größen (englisch: \emph{dimension}). Von all + diesen Registern gibt es jeweils 256 Stück. Für \LaTeX{}-Längen, die + mit \Macro{newlength} angefordert werden, werden Abstandsregister + belegt. Sind alle diese Register verbraucht, kann man keine weiteren + Längen definieren. Die Briefklasse \Class{scrlttr2} würde + normalerweise allein für die erste Seite mehr als 20 solche Register + verbrauchen. \LaTeX{} selbst belegt bereits 40 dieser Register. Das + \Package{typearea}-Paket benötigt ebenfalls einige, so dass ein + Viertel der kostbaren Register verbraucht wäre. Aus diesem Grund + werden briefspezifische Längen in \Class{scrlttr2} eben nicht in + Längen, sondern in Makros abgelegt, den Pseudolängen. Der Nachteil + dieses Vorgehens besteht darin, dass man mit diesen Makros nicht so + einfach rechnen kann wie mit echten Längen. + + Wer nun einwenden will, dass \LaTeX{} in der empfohlenen Installation mit + \eTeX{} inzwischen das oben genannte Beschränkungsproblem nicht mehr + besitzt, hat Recht. Allerdings kam diese Entscheidung für \Class{scrlttr2} + ein wenig zu spät. +\end{Explain} + +\iffalse +Eine Liste aller in \Class{scrlttr2} definierten Pseudolängen findet sich in +\autoref{tab:scrlttr2.pseudoLength}. Nähere Beschreibungen zu den einzelnen +Pseudolängen finden sich in den einzelnen Abschnitten dieses Kapitels. Eine +grafische Darstellung der Bedeutungen ist \autoref{fig:scrlttr2.pseudoLength} +zu entnehmen. + +\begin{figure} + \centering + \includegraphics{lengths} + \caption{Schematische Darstellung der Pseudolängen für den Briefbogen} + \label{fig:scrlttr2.pseudoLength} +\end{figure} + +\begin{longtable}{l>{\raggedright}p{.58\linewidth}} + \captionabove{Von der Klasse \Class{scrlttr2} verwendete Pseudolängen}% + \label{tab:scrlttr2.pseudoLength}\tabularnewline + Pseudolänge & Bedeutung \tabularnewline\hline\tabularnewline[-1.5ex] + \endfirsthead + Pseudolänge & Bedeutung \tabularnewline\hline\tabularnewline[-1.5ex] + \endhead + \PLength{foldmarkhpos} + & Abstand der Faltmarken von der linken Papierkante + \tabularnewline[.5\baselineskip] + \PLength{tfoldmarkvpos} + & Abstand der oberen Faltmarke von der oberen Papierkante + \tabularnewline[.5\baselineskip] + \PLength{bfoldmarkvpos} + & Abstand der unteren Faltmarke von der oberen Papierkante + \tabularnewline[.5\baselineskip] + \PLength{firstheadvpos} + & Abstand des Briefkopfes von der oberen Papierkante + \tabularnewline[.5\baselineskip] + \PLength{firstheadwidth} + & Breite des Briefkopfes (es erfolgt eine Zentrierung relativ zur + Papierbreite) + \tabularnewline[.5\baselineskip] + \PLength{fromrulewidth} + & Länge einer optionalen horizontalen Linie im Briefkopf (siehe Option + \Option{fromrule} in \autoref{sec:scrlttr2.layout}) + \tabularnewline[.5\baselineskip] + \PLength{toaddrvpos} + & Abstand des Anschriftfeldes von der oberen Papierkante + \tabularnewline[.5\baselineskip] + \PLength{toaddrhpos} + & Abstand des Anschriftfeldes von der linken Papierkante (falls der Wert + positiv ist) oder negativer Abstand des Anschriftfeldes von der rechten + Papierkante (falls der Wert negativ ist) + \tabularnewline[.5\baselineskip] + \PLength{toaddrindent} + & linker Einzug der Anschrift innerhalb des Anschriftfeldes + \tabularnewline[.5\baselineskip] + \PLength{toaddrwidth} + & Breite des Anschriftfeldes + \tabularnewline[.5\baselineskip] + \PLength{toaddrheight} + & Höhe des Anschriftfeldes + \tabularnewline[.5\baselineskip] + \PLength{backaddrheight} + & Höhe der Rücksendeadresse am oberen Rand des Anschriftfeldes + \tabularnewline[.5\baselineskip] + \PLength{specialmailindent} + & linker Einzug der Versandart innerhalb des Anschriftfeldes + \tabularnewline[.5\baselineskip] + \PLength{specialmailrightindent} + & rechter Einzug der Versandart innerhalb des Anschriftfeldes + \tabularnewline[.5\baselineskip] + \PLength{locwidth} + & Breite des Feldes für die Absenderergänzung (bei einem Wert von 0 wird + die Breite automatisch aufgrund der in \autoref{sec:scrlttr2.headoptions} + beschriebenen Option \Option{locfield} berechnet) + \tabularnewline[.5\baselineskip] + \PLength{refvpos} + & Abstand der Geschäftszeile von der oberen Papierkante + \tabularnewline[.5\baselineskip] + \PLength{refwidth} + & Breite der Geschäftszeile + \tabularnewline[.5\baselineskip] + \PLength{refhpos} + & Abstand der Geschäftszeile von der linken Papierkante (bei einem Wert + von 0 wird automatisch relativ zur Papierbreite zentriert) + \tabularnewline[.5\baselineskip] + \PLength{refaftervskip} + & vertikaler Abstand nach der Geschäftszeile + \tabularnewline[.5\baselineskip] + \PLength{sigbeforevskip} + & vertikaler Abstand zwischen Gruß und Signatur + \tabularnewline[.5\baselineskip] + \PLength{sigindent} + & Einzug der Signatur gegenüber dem Textkörper + \tabularnewline[.5\baselineskip] + \PLength{firstfootvpos} + & Abstand des Brief"|fußes von der oberen Papierkante + \tabularnewline[.5\baselineskip] + \PLength{firstfootwidth} + & Breite des Brief"|fußes (es erfolgt eine Zentrierung relativ zur + Papierbreite) + \tabularnewline +\end{longtable} +\fi + +\begin{Declaration} + \Macro{@newplength}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{@newplength}% +Mit Hilfe dieser Anweisung wird eine neue Pseudolänge definiert. Die +neue Pseudolänge ist dann über ihren \PName{Namen} eindeutig +identifiziert. Es wird sichergestellt, dass jeder \PName{Name} nur +einmal vergeben wird. + +Da der Anwender selbst normalerweise keine eigenen Pseudolängen +definieren muss, handelt es sich bei diesem Befehl um keine +Benutzeranweisung. Sie kann innerhalb des Dokuments nicht, wohl aber +beispielsweise innerhalb einer \File{lco}-Datei verwendet werden. +% +\EndIndex{Cmd}{@newplength}% + +\begin{Declaration} + \Macro{useplength}\Parameter{Name} +\end{Declaration} +\BeginIndex{Cmd}{useplength}% +Mit Hilfe dieser Anweisung wird auf den Wert der Pseudolänge mit dem +angegebenen \PName{Namen} zugegriffen. Dies ist eine der wenigen +Benutzeranweisung rund um Pseudolängen. Natürlich kann diese Anweisung +dennoch auch innerhalb einer \File{lco}-Datei verwendet werden. +% +\EndIndex{Cmd}{useplength}% + +\begin{Declaration} + \Macro{setlengthtoplength}% + \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge}\\ + \Macro{addtolengthplength}% + \OParameter{Faktor}\Parameter{Länge}\Parameter{Pseudolänge} +\end{Declaration} +\BeginIndex{Cmd}{setlengthtoplength}% +\BeginIndex{Cmd}{addtolengthplength}% +\begin{Explain}% + Während man einer Länge einfach einen Faktor voranstellen kann, ist + dies bei Pseudolängen nicht möglich. Angenommen eine Länge + \Macro{Test} hat den Wert 2\Unit{pt}, dann ergibt + \texttt{3\Macro{Test}} den Wert 6\Unit{pt}. Verwendet man + stattdessen eine Pseudolänge, so würde aus + \texttt{3\Macro{useplength}\PParameter{Test}} der Wert 32\Unit{pt}. + Dies ist insbesondere dann lästig, wenn man einer echten + \PName{Länge} den Wert einer \PName{Pseudolänge} zuweisen will. +\end{Explain} +Mit der Anweisung \Macro{setlengthtoplength} kann man einer echten +\PName{Länge} das Vielfache einer \PName{Pseudolänge} zuweisen. +Allerdings wird hier der \PName{Faktor} nicht direkt der +\PName{Pseudolänge} vorangestellt, sondern als optionales Argument +übergeben. Man sollte diese Anweisung auch verwenden, wenn man einer +\PName{Länge} den negativen Wert einer \PName{Pseudolänge} zuweisen +will. Als \PName{Faktor} kann dann wahlweise ein Minuszeichen oder +\PValue{-1} verwendet werden. Die Anweisung +\Macro{addtolengthplength} arbeitet ganz ähnlich. Allerdings wird +hier zur \PName{Länge} das Vielfache der \PName{Pseudolänge} +addiert. +% +\EndIndex{Cmd}{setlengthtoplength}% +\EndIndex{Cmd}{addtolengthplength}% + +\begin{Declaration} + \Macro{@setplength}% + \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert}\\ + \Macro{@addtoplength}% + \OParameter{Faktor}\Parameter{Pseudolänge}\Parameter{Wert} +\end{Declaration} +\BeginIndex{Cmd}{@setplength}% +\BeginIndex{Cmd}{@addtoplength}% +Mit Hilfe der Anweisung \Macro{@setplength} kann einer +\PName{Pseudolänge} das Vielfache eines \PName{Wertes} zugewiesen +werden. Der \PName{Faktor} wird dabei als optionales Argument +übergeben (siehe auch \Macro{setlengthtoplength}). Mit der Anweisung +\Macro{@addtoplength} kann man zu einer \PName{Pseudolänge} einen +\PName{Wert} addieren. Um einer \PName{Pseudolänge} das Vielfache +einer anderen Pseudolänge zuzuweisen oder hinzuzuaddieren, verwendet +man innerhalb von \PName{Wert} die Anweisung \Macro{useplength}. Um +von einer \PName{Pseudolänge} den Wert einer anderen +\PName{Pseudolänge} zu subtrahieren, verwendet man gleichzeitig als +\PName{Faktor} ein Minuszeichen oder \PValue{-1}. + +Da der Anwender selbst normalerweise keine Pseudolängen ändern muss, +handelt es sich bei diesen Befehlen um keine Benutzeranweisungen. Sie +können innerhalb des Dokuments nicht, wohl aber beispielsweise +innerhalb einer \File{lco}-Datei verwendet werden. +% +\EndIndex{Cmd}{@setplength}% +\EndIndex{Cmd}{@addtoplength}% +% +\EndIndex{}{Pseudolängen}% + +\iffalse% noch nicht fertig aer mal hier hingestellt, damit es nicht + % verloren geht. + % Wird mit 99.99999%iger Sicherheit durch MP-Grafiken von + % Stephan Hennig ersetzt werden. +In \autoref{fig:PLengths} findet sich übrigens eine grafische Auflistung aller +in \Class{scrlttr2} definierter Pseudolängen. Die dort getroffenen Annahmen +über die Werte und den Satzspiegel sind von den gewählten Einstellungen +abhängig und deshalb als weitgehend willkürlich zu betrachten. + +\begin{figure}[p] + \centering + \setlength{\unitlength}{0.004\textwidth}% + \makeatletter + \def\MasspfeilD(#1,#2)#3{% + \begingroup + \@tempdima=-#2pt + \advance\@tempdima by #3pt + \put(#1,\strip@pt\@tempdima){\vector(0,-1){#3}} + \endgroup + }% + \def\MasspfeilUD(#1,#2)#3{% + \put(#1,-#2){\vector(0,1){#3}} + \MasspfeilD(#1,#2){#3} + } + \def\MasspfeilDb(#1,#2)#3{% + \put(#1,-#2){\thinlines\line(1,0){4}} + \begingroup + \@tempdimb=#1pt + \advance\@tempdimb by 2pt + \MasspfeilD(\strip@pt\@tempdimb,#2){#3} + \endgroup + }% + \def\MasspfeilUDb(#1,#2)#3{% + \begingroup + \@tempdima=-#2pt + \advance\@tempdima by #3pt + \put(#1,\strip@pt\@tempdima){\line(1,0){4}} + \endgroup + \put(#1,-#2){\thinlines\line(1,0){4}} + \begingroup + \@tempdimb=#1pt + \advance\@tempdimb by 2pt + \MasspfeilUD(\strip@pt\@tempdimb,#2){#3} + \endgroup + }% + \def\MasspfeilR(#1,#2)#3{% + \begingroup + \@tempdima=#1pt + \advance\@tempdima by -#3pt + \put(\strip@pt\@tempdima,-#2){\vector(1,0){#3}} + \endgroup + } + \def\MasspfeilL(#1,#2)#3{% + \begingroup + \@tempdima=#1pt + \advance\@tempdima by #3pt + \put(\strip@pt\@tempdima,-#2){\vector(-1,0){#3}} + \endgroup + } + \def\MasspfeilLR(#1,#2)#3{% + \put(#1,-#2){\vector(1,0){#3}} + \MasspfeilL(#1,#2){#3} + } + \def\MasspfeilLRb(#1,#2)#3{% + \begingroup + \@tempdima=-#2pt + \advance\@tempdima by -2pt + \put(#1,\strip@pt\@tempdima){\thinlines\line(0,1){4}} + \@tempdimb=#1pt + \advance\@tempdimb by #3pt + \put(\strip@pt\@tempdimb,\strip@pt\@tempdima){\thinlines\line(0,1){4}} + \endgroup + \MasspfeilLR(#1,#2){#3} + } + \def\MasspfeilL(#1,#2)#3{% + \begingroup + \@tempdima=#1pt + \advance\@tempdima by #3pt + \put(\strip@pt\@tempdima,-#2){\vector(-1,0){#3}} + \endgroup + } + \makeatother + \begin{picture}(210,297)(0,-297) + \thicklines\sffamily\tiny + \put(0,-297){\framebox(210,297)[l]{}} + \thinlines + % Foldmarks + \MasspfeilDb(7,105){8}% + \put(8,-96){\rotatebox[origin=lB]{90}{tfoldmarkvpos}} + \MasspfeilLRb(0,105){3.5} + \put(1,-102){\rotatebox[origin=lB]{90}{foldmarkhpos}} + \put(3.5,-105){\line(1,0){2}} + \put(3.5,-148.5){\line(1,0){4}} + \put(3.5,-210){\line(1,0){2}} + \MasspfeilDb(7,210){8}% + \put(8,-201){\rotatebox[origin=lB]{90}{bfoldmarkvpos}} + % Kopf + \put(20,-35){\dashbox{1}(170,27)[l]{}} + \MasspfeilDb(15,8){8}% + \put(18,-2){\makebox(0,0)[l]{firstheadvpos}} + % Adressfeld + \put(20,-85){\dashbox{1}(85,40)[l]{}} + \put(20,-50){\dashbox{1}(85,5)[l]{}} % Rücksendeadresse + \put(41,-55){\dashbox{1}(59,4)[l]{}} % Versandart + \put(25,-85){\dashbox{1}(80,30)[l]{}} % Adresse + % Geschäftszeile + \put(31.5,-98.5){\dashbox{1}(147,7)[l]{}} + % Satzspiegel + \put(31.5,-237.6){\dashbox{1}(147,135.1)[l]{}} + \put(51.5,-108.5){\dashbox{1}(107,6)[l]{}}% Titel + \put(31.5,-116.5){\dashbox{1}(147,4)[l]{}}% Betreff + \put(31.5,-128.5){\dashbox{1}(47,4)[l]{}}% Anrede + \put(31.5,-196){\dashbox{1}(147,63,5)[l]{}}% Text + \put(38,-216){\dashbox{1}(50,16)[l]{}}% Gruß und Signatur + \put(38,-204){\dashbox{1}(50,4)[l]{}}% Gruß + \put(42,-216){\dashbox{1}(42,4)[l]{}}% Signatur + % Fuß + \put(20,-278){\dashbox{1}(170,12)[l]{}} + \end{picture} + \caption{Verwendung der Pseudolängen zur Definition des Briefbogens} + \label{fig:PLengths} +\end{figure} +\fi + +\subsection{Der generelle Aufbau eines Briefdokuments} +\label{sec:scrlttr2.document} + +Der generelle Aufbau\Index{Aufbau} eines Briefdokuments weicht etwas +vom Aufbau eines normalen Dokuments ab. Während ein Buchdokument +normalerweise nur ein Buch enthält, kann ein einzelnes Briefdokument +mehrere Briefe enthalten. Wie in \autoref{fig:scrlttr2.document} +veranschaulicht wird, besteht ein Briefdokument aus einem Vorspann, +den einzelnen Briefen und dem Abschluss. + +Der Vorspann beinhaltet dabei alle Einstellungen, die generell alle +Briefe betreffen. Diese können in den Einstellungen der einzelnen +Briefe jedoch zumindest teilweise überschrieben werden. Die einzige +Einstellung, die derzeit nicht innerhalb eines einzelnen Briefes +überschrieben werden kann, ist die Größe der Grundschrift (siehe +Option \Option{fontsize} in +\autoref{sec:scrlttr2.fontOptions}). Ich empfehle, vor +\Macro{begin}\PParameter{document} nur allgemeine Einstellungen wie +das Laden von Paketen und das Setzen von Optionen vorzunehmen. Alle +Einstellungen, die das Setzen einer Variablen oder sonstige +Textangaben beinhalten, sollten nach \Macro{begin}\PParameter{document} +vorgenommen werden. Dies empfiehlt sich umso mehr, wenn das +Babel-Paket\IndexPackage{babel} (siehe \cite{package:babel}) verwendet +wird oder sprachabhängige Variablen von \Class{scrlttr2} verändert +werden sollen. + +Der Abschluss besteht in der Regel nur aus +\Macro{end}\PParameter{document}. Natürlich können Sie dort aber auch +zusätzliche Kommentare einfügen. + +\begin{figure} + \centering\small\setlength{\fboxsep}{1.5ex} + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\ + \dots\\ + {\centering\emph{Einstellungen für alle Briefe}\\} + \dots\\ + \Macro{begin}\PParameter{document}\\ + \dots\\ + {\centering\emph{Einstellungen für alle Briefe}\\} + \dots\\ + }}\\ + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}\Parameter{Empfänger}\\ + \dots\\ + {\centering\emph{Inhalt eines einzelnen Briefs}\\} + \dots\\ + \Macro{end}\PParameter{letter}\\ + }}\\ + \parbox{.667\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\ + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{end}\PParameter{document}\\ + }}\\ + \caption[Genereller Aufbau eines Briefdokuments mit beliebig vielen + einzelnen Briefen]{Genereller Aufbau eines Briefdokuments mit + beliebig vielen einzelnen Briefen (den Aufbau eines einzelnen + Briefes zeigt \autoref{fig:scrlttr2.letter})} + \label{fig:scrlttr2.document} + \vspace{2\abovecaptionskip} + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}% + \OParameter{Optionen}\Parameter{Empfänger}\\ + \dots\\ + {\centering\emph{Einstellungen für diesen Brief}\\} + \dots\\ + \Macro{opening}\Parameter{Anrede}\\ + }}\\ + \fbox{\parbox{.667\linewidth}{\raggedright% + \dots\\ + {\centering\emph{Brief"|text}\\} + \dots\\ + }}\\ + \fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{closing}\Parameter{Grußformel}\\ + \Macro{ps}\\ + \dots\\ + {\centering\emph{Postscriptum}\\} + \dots\\ + \Macro{encl}\Parameter{Anlagen}\\ + \Macro{cc}\Parameter{Verteiler}\\ + \Macro{end}\PParameter{letter}\\ + }}\\ + \caption[Genereller Aufbau eines einzelnen Briefes innerhalb eines + Briefdokuments]{Genereller Aufbau eines einzelnen Briefes + innerhalb eines Briefdokuments (siehe + \autoref{fig:scrlttr2.document})} + \label{fig:scrlttr2.letter} +\end{figure} + +Wie in \autoref{fig:scrlttr2.letter} verdeutlicht wird, bestehen +die einzelnen Briefe wiederum aus einer Einleitung, dem eigentlichen +Brief"|text und einem Schlussteil. In der Einleitung werden alle +Einstellungen vorgenommen, die nur für diesen einen Brief gelten +sollen. Entscheidend ist hierbei, dass diese Einleitung immer mit +\Macro{opening} endet. Ebenso beginnt der Schlussteil immer mit +\Macro{closing}. Gegebenenfalls können die Argumente \PName{Anrede} +und \PName{Grußformel} der beiden Anweisungen leer bleiben, die +Anweisungen müssen jedoch gesetzt werden und haben immer ein Argument. + +\begin{Explain} +Es soll an dieser Stelle nicht verschwiegen werden, dass zwischen den +einzelnen Briefen weitere Einstellungen getroffen werden können. Diese +gelten dann für alle nachfolgenden Briefe. Um Briefdokumente +übersichtlich und wartbar zu halten, sollte man sich jedoch gut +überlegen, ob man zwischen die Briefe tatsächlich weitere generelle +Einstellungen mit beschränkter Gültigkeit setzen will. Ich kann dies +nicht empfehlen. +%\end{Explain} + +Wie bereits erwähnt, können mit Ausnahme der Schriftgröße alle +generellen Einstellungen aus dem Dokumentvorspann auch im Vorspann +einzelner Briefe gesetzt werden. Daher finden sich in diesem Abschnitt +keine weiteren Erklärungen zu den möglichen Einstellungen. Bitte +entnehmen Sie diese dem \autoref{sec:scrlttr2.startLetter}. +\end{Explain} + + +\section{Die Briefeinleitung} +\label{sec:scrlttr2.startLetter} + +In der Briefeinleitung\Index{Einleitung} finden sich alle +Einstellungen für einen Brief sowie alle Angaben zum Aufbau der ersten +Briefseite. Die erste Briefseite übernimmt innerhalb eines Briefes +nicht nur die Rolle der Titelei, sondern besteht aus vielen +unterschiedlichen Teilen. + + +\subsection{Briefkopf} +\label{sec:scrlttr2.firstHead} +\BeginIndex{}{Briefkopf}% + +Unter dem Briefkopf verstehen wir alle Angaben, die den Absender +betreffen und die über der Anschrift stehen. Normalerweise würde man +erwarten, dass diese über den Seitenstil gesetzt werden. Bei der alten +Briefklasse \Class{scrlettr} war dies auch so. Bei \Class{scrlttr2} +wird der Briefkopf jedoch unabhängig vom Seitenstil von der Anweisung +\Macro{opening} ausgegeben. +% Fuellmaterial +\iftrue% +Dabei wird der Briefkopf absolut positioniert, ist also vom +Satzspiegel unabhängig. Die erste Seite eines Briefes, also die Seite +mit dem Briefkopf, wird tatsächlich mit dem Seitenstil \PValue{empty} +gesetzt.% +\fi +% Ende des Fuellmaterials + +\begin{Declaration} + \PLength{firstheadvpos} +\end{Declaration} +\BeginIndex{PLength}{firstheadvpos}% +Die Pseudolänge \PLength{firstheadvpos} gibt den Abstand des +Briefkopfes von der oberen Papierkante an. Der Wert wird in den +vordefinierten \File{lco}-Dateien unterschiedlich gesetzt. Ein +typischer Wert ist 8\Unit{mm}. +% +\EndIndex{PLength}{firstheadvpos} + +\begin{Declaration} + \PLength{firstheadwidth} +\end{Declaration} +\BeginIndex{PLength}{firstheadwidth}% +Die Pseudolänge \PLength{firstheadwidth} gibt die Breite des +Briefkopfes an. Der Wert wird in den vordefinierten \File{lco}-Dateien +unterschiedlich gesetzt. Während er normalerweise von der +Papierbreite und dem horizontalen Abstand der Empfängeradresse vom +linken Papierrand abhängt, entspricht er bei \Option{KOMAold} der +Breite des Satzspiegels. +% +\EndIndex{PLength}{firstheadwidth}% + + +\begin{Declaration} + \Variable{fromname}\\ + \Variable{fromaddress}\\ + \Variable{fromphone}\\ + \Variable{fromfax}\\ + \Variable{fromemail}\\ + \Variable{fromurl}\\ + \Variable{fromlogo} +\end{Declaration} +\BeginIndex{Variable}{fromname}% +\BeginIndex{Variable}{fromaddress}% +\BeginIndex{Variable}{fromphone}% +\BeginIndex{Variable}{fromfax}% +\BeginIndex{Variable}{fromemail}% +\BeginIndex{Variable}{fromurl}% +\BeginIndex{Variable}{fromlogo}% +Diese Variablen stellen die Absenderangaben\Index{Absender} für den +Briefkopf, also den Kopf der ersten Seite eines Briefes dar. Welche +dieser Variablen tatsächlich für den Briefkopf verwendet werden, kann +bei Verwendung der Briefkopferweiterungen (siehe Option +\Option{fromalign} in \autoref{sec:scrlttr2.headoptions}) über die +entsprechenden Optionen eingestellt werden. Die Variablen +\Variable{fromname} und \Variable{fromaddress} werden im Briefkopf +ebenso wie \Variable{fromlogo}\Index{Logo} ohne Bezeichnung, die +Variablen \Variable{fromphone}\Index{Telefon}, +\Variable{fromfax}\Index{Fax}, \Variable{fromemail}\Index{E-Mail} und +\Variable{fromurl}\Index{URL}\Index{WWW}\Index{Homepage} hingegen mit +ihrer Bezeichnung gesetzt. Die Bezeichnungen sind +\autoref{tab:scrlttr2.fromTerm} zu entnehmen. +% +\begin{table} + \centering + \begin{tabular}{ll} + Name & Bezeichnung \\\hline\\[-2ex] + \Variable{fromemail} & + \Macro{usekomavar*}\PParameter{emailseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{emailseparator} + \\ + \Variable{fromfax} & + \Macro{usekomavar*}\PParameter{faxseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{faxseparator} \\ + \Variable{fromname} & + \Macro{headfromname} \\ + \Variable{fromphone} & + \Macro{usekomavar*}\PParameter{phoneseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{phoneseparator} + \\ + \Variable{fromurl} & + \Macro{usekomavar*}\PParameter{urlseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{urlseparator} + \\ + \end{tabular} + \caption{Vordefinierte Bezeichnungen der Absenderangaben im + Briefkopf} + \label{tab:scrlttr2.fromTerm} +\end{table} + +Ein wichtiger Hinweis betrifft noch die Absenderadresse. Innerhalb der +Absenderadresse werden einzelne Teilangaben durch doppelten Backslash +voneinander getrennt. Solche Teilangaben sind beispielsweise Straße +und Hausnummer, Postleitzahl und Ort oder eine Länderangabe. Dieser +doppelte Backslash wird je nach Verwendung der Absenderadresse +unterschiedlich interpretiert und ist nicht zwangsläufig als +Zeilenumbruch zu verstehen. Absätze, vertikale Abstände und Ähnliches +sind innerhalb der Absenderangaben normalerweise nicht gestattet. Man +muss \Class{scrlttr2} schon sehr genau kennen, um sie gegebenenfalls +sinnvoll einsetzen zu können. + +Für das Logo kann übrigens auch eine externe Abbildung geladen werden. +Dazu setzt man als Inhalt der Variablen \Variable{fromlogo} +beispielsweise eine \Macro{includegraphics}-Anweisung. +Selbstverständlich muss dann im Vorspann des Briefdokuments (siehe +\autoref{sec:scrlttr2.document}) auch das \Package{graphics}- oder +\Package{graphicx}-Paket geladen werden (siehe +\cite{package:graphics}). +% +\EndIndex{Variable}{fromname}% +\EndIndex{Variable}{fromaddress}% +\EndIndex{Variable}{fromphone}% +\EndIndex{Variable}{fromfax}% +\EndIndex{Variable}{fromemail}% +\EndIndex{Variable}{fromurl}% +\EndIndex{Variable}{fromlogo}% + +\begin{Declaration} + \Variable{phoneseparator}\\ + \Variable{faxseparator}\\ + \Variable{emailseparator}\\ + \Variable{urlseparator} +\end{Declaration} +\BeginIndex{Variable}{phoneseparator}% +\BeginIndex{Variable}{faxseparator}% +\BeginIndex{Variable}{emailseparator}% +\BeginIndex{Variable}{urlseparator}% +\Index{Telefon}\Index{Fax}\Index{E-Mail}% +\Index{URL}\Index{WWW}\Index{Homepage}% +In diesen Variablen sind Trennzeichen\Index{Trennzeichen} definiert. +Sie werden gegebenenfalls in den Absenderangaben des Briefkopfes +verwendet (siehe \autoref{tab:scrlttr2.fromTerm}). Als Besonderheit +haben sie außerdem eine Bezeichnung. Die Bezeichnungen werden +ebenfalls in den Absenderangaben des Briefkopfes verwendet. Der +vordefinierte Inhalt und die Bezeichnung der Trennzeichen sind +\autoref{tab:scrlttr2.fromSeperator} zu entnehmen. +\begin{table} + \centering + \begin{tabular}{lll} + Name & Bezeichnung & Inhalt \\\hline\\[-2ex] + \Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ + \Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ + \Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ + \Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ + \end{tabular} + \caption{Vordefinierte Bezeichnungen und Inhalte der Trennzeichen + für die Absenderangaben im Briefkopf} + \label{tab:scrlttr2.fromSeperator} +\end{table} +% +\EndIndex{Variable}{phoneseparator}% +\EndIndex{Variable}{faxseparator}% +\EndIndex{Variable}{emailseparator}% +\EndIndex{Variable}{urlseparator}% + + +\begin{Declaration} + \Macro{firsthead}\Parameter{Aufbau} +\end{Declaration} +\BeginIndex{Cmd}{firsthead}% +In den meisten Fällen werden die Möglichkeiten, die \Class{scrlttr2} +über Optionen und obige Variablen für die Gestaltung des Briefkopfes +bietet, vollkommen ausreichen. In einigen wenigen Fällen will man +jedoch den Briefkopf freier gestalten können. In diesen Fällen muss +man auf die Möglichkeiten der vordefinierten Briefköpfe, die per +Option ausgewählt werden können, verzichten. Stattdessen gestaltet man +sich seinen Briefkopf frei. Dazu definiert man den gewünschten +\PName{Aufbau} mit der Anweisung \Macro{firsthead}. Innerhalb von +\Macro{firsthead} können beispielsweise mit Hilfe der +\Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere Boxen +neben- und untereinander gesetzt werden. Einem versierten Anwender +sollte es so möglich sein, seinen eigenen Briefkopf zu gestalten. +Natürlich kann \PName{Aufbau} auch Zugriffe auf Variablen mit +Hilfe von \Macro{usekomavar} nehmen. +% +\EndIndex{Cmd}{firsthead}% +% +\EndIndex{}{Briefkopf}% + + +\subsection{Brief"|fuß} +\label{sec:scrlttr2.firstFoot}% +\BeginIndex{}{Brieffuss=Brief\/fuß}% + +So wie die erste Seite eines Briefes einen eigenen Briefkopf enthält, +so enthält diese Seite auch einen eigenen Fuß\Index{Fuss=Fuß}. Auch dieser +wird nicht über den Seitenstil, sondern direkt von \Macro{opening} +ausgegeben. + + +\begin{Declaration} + \PLength{firstfootvpos} +\end{Declaration} +\BeginIndex{PLength}{firstfootvpos}% +Diese Pseudolänge gibt den Abstand des Fußes der ersten Briefseite von +der Oberkante des Papiers an. Der Wert wird in den vordefinierten +\File{lco}-Dateien unterschiedlich gesetzt. Es wird außerdem dafür +gesorgt, dass der Textbereich nicht in den Fuß hineinragt. Hierzu +wird auf der ersten Seite gegebenenfalls die Höhe des Textbereiches mit +Hilfe von \Macro{enlargethispage} verkleinert. Mit Hilfe der Option +\Option{enlargefirstpage} kann dafür gesorgt werden, dass die Höhe des +Textbereiches umgekehrt gegebenenfalls auch vergrößert wird. Damit kann +dann der Abstand zwischen Textbereich und Fuß der ersten Seite +auf den Wert der Länge \Length{footskip} verringert werden. Siehe +hierzu auch \autoref{sec:scrlttr2.typeareaOptions}. +% +\EndIndex{PLength}{firstfootvpos}% + + +\begin{Declaration} + \PLength{firstfootwidth} +\end{Declaration} +\BeginIndex{PLength}{firstfootwidth}% +Diese Pseudolänge gibt die Breite des Fußes der ersten Briefseite +an. Der Wert wird in den vordefinierten \File{lco}-Dateien in +Abhängigkeit der Pseudolänge \PLength{firstheadwidth} gesetzt. +% +\EndIndex{PLength}{firstfootwidth}% + + +\begin{Declaration} + \Macro{firstfoot}\Parameter{Aufbau} +\end{Declaration} +\BeginIndex{Cmd}{firstfoot}% +Der Fuß der ersten Seite ist in der Voreinstellung leer. Es besteht +jedoch die Möglichkeit einen \PName{Aufbau} mit Hilfe der Anweisung +\Macro{firstfoot} zu definieren. Dies geschieht genau wie die +Definition des Kopfes mit Hilfe von \Macro{firsthead}. +\begin{Example} + Sie wollen den Inhalt der Variablen \Variable{frombank}, also die + Bankverbindung im Fuß der ersten Seite ausgeben. Der doppelte + Backslash soll dabei durch ein Komma ersetzt werden: + \begin{small} +\begin{verbatim} + \firstfoot{% + \parbox[b]{\linewidth}{% + \centering\def\\{, }\usekomavar{frombank}% + }% + } +\end{verbatim} + \end{small} + Natürlich können Sie für das Trennzeichen auch eine eigene Variable + definieren. Ich überlasse dem Leser dies als Übung. + + Heutzutage hat man recht häufig, dass eine Art Brief"|fuß als + Gegengewicht zum Briefkopf verwendet wird. So etwas kann + beispielsweise wie folgt definiert werden: + \begin{small} +\begin{verbatim} + \firstfoot{% + \parbox[t]{\textwidth}{\footnotesize + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{Gesellschafter:}\\ + Hugo Mayer\\ + Bernd Müller + \end{tabular}% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{Geschäftsführerin:}\\ + Liselotte Mayer\\[1ex] + \multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\ + Hinterdupfeldingen + \end{tabular}% + \ifkomavarempty{frombank}{}{% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{\usekomavar*{frombank}:}\\ + \usekomavar{frombank} + \end{tabular}% + }% + }% + } +\end{verbatim} + \end{small} + Das Beispiel stammt übrigens ursprünglich von Torsten Krüger. Mit + \begin{small} +\begin{verbatim} + \setkomavar{frombank}{Konto 12\,345\,678\\ + bei der HansWurstBank\\ + BLZ 876\,543\,21} +\end{verbatim} + \end{small} + kann die Bankverbindung passend dazu gesetzt werden. Möglicherweise + muss für einen solch hohen Fuß noch die Position des Fußes nach + oben verschoben werden. Dies können Sie gegebenenfalls über die + Pseudolänge \PLength{firstfootvpos}\IndexPLength{firstfootvpos} + erreichen, die weiter oben in diesem Abschnitt beschrieben ist. +\end{Example} +% +\EndIndex{Cmd}{firstfoot}% +% +\EndIndex{}{Brieffuss=Brief\protect\/fuß}% + + +\subsection{Anschrift} +\label{sec:scrlttr2.addressee}% +\BeginIndex{}{Anschrift}% + +Unter der Anschrift versteht man normalerweise nur den Namen und die +Adresse des Empfängers. Als erste Erweiterung zur Anschrift kann die +Versandart betrachtet werden, die etwa bei Einschreiben oder +Infobriefen zur Anwendung kommt. Bei Fensterbriefumschlägen wird auch +die sogenannte Rücksendeadresse zur Anschrift gezählt, da sie im +Anschriftfenster zu sehen sein wird. Die Anschrift folgt unmittelbar +auf den Briefkopf. + + +\begin{Declaration} + \PLength{toaddrvpos}\\ + \PLength{toaddrhpos} +\end{Declaration} +\BeginIndex{PLength}{toaddrvpos}% +\BeginIndex{PLength}{toaddrhpos}% +Diese Pseudolängen geben den Abstand des Anschriftfensters eines +Fensterbriefumschlags vom oberen und vom linken Rand des Papiers an. +Sie werden in den vordefinierten \File{lco}-Dateien unterschiedlich +eingestellt. Für \PLength{toaddrhpos} gilt außerdem eine +Besonderheit. Ist der Wert negativ, so ist sein Betrag der Abstand des +Anschriftfeldes vom rechten Rand des Papiers. Sie finden dies +beispielsweise bei \Option{SN}. Am kleinsten ist der Wert +\PLength{toaddrvpos} bei \Option{DINmtext}. Hier kann es schnell +passieren, dass der Briefkopf in das Anschriftfenster ragt. Ob das +Anschriftfenster überhaupt gesetzt wird, hängt von der Option +\Option{addrfield} ab (siehe \autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{toaddrhpos}% +\EndIndex{PLength}{toaddrvpos}% + + +\begin{Declaration} + \PLength{toaddrwidth} +\end{Declaration} +\BeginIndex{PLength}{toaddrwidth}% +Diese Pseudolänge gibt die Breite des Anschriftfensters an. Diese wird +in den vordefinierten \File{lco}-Dateien entsprechend der +unterschiedlichen Normen unterschiedlich eingestellt. Typische Werte +liegen zwischen 70\Unit{mm} und 100\Unit{mm}. +\begin{Example} + Angenommen, Sie haben das Problem, dass Ihr Drucker einen sehr + breiten unbedruckbaren rechten oder linken Rand von 15\Unit{mm} + besitzt. Dadurch kann bei Option \Option{SN} der Briefkopf, die + Absenderergänzung und die Anschrift nicht komplett gedruckt + werden. Sie erstellen daher eine neue \File{lco}-Datei mit folgendem + Inhalt: + \begin{small} +\begin{verbatim} + \ProvidesFile{SNmmarg.lco}[2002/06/04 v0.1 my own lco] + \LoadLetterOption{SN} + \@addtoplength{toaddrwidth}{-\useplength{toaddrhpos}} + \@setplength{toaddrhpos}{-15mm} + \@addtoplength{toaddrwidth}{\useplength{toaddrhpos}} + \endinput +\end{verbatim} + \end{small} + Bis Sie sich einen Drucker mit kleineren Rändern zugelegt haben, + verwenden Sie dann \Option{SNmmarg} an Stelle von \Option{SN}. +\end{Example} +% +\EndIndex{PLength}{toaddrwidth}% + + +\begin{Declaration} + \PLength{toaddrindent} +\end{Declaration} +\BeginIndex{PLength}{toaddrindent}% +Manchmal will man, dass die Anschrift nicht am linken Rand des +Anschriftfensters beginnt, sondern ein wenig eingezogen wird. Der Wert +dieses Einzugs kann über die Pseudolänge \PLength{toaddrindent} +festgelegt werden. Typischerweise ist dieser Wert jedoch 0\Unit{pt}. +% +\EndIndex{PLength}{toaddrindent}% + + +\begin{Declaration} + \Variable{backaddress}\\ + \Variable{backaddressseparator}\\ + \PLength{backaddrheight} +\end{Declaration} +\BeginIndex{Variable}{backaddress}% +\BeginIndex{Variable}{backaddressseparator}% +\BeginIndex{PLength}{backaddrheight}% +Bei Fensterbriefumschlägen wird der Absender häufig in einer kleinen +Schrift einzeilig über der Empfängeradresse ausgegeben. Diese +Absenderangabe nennt man Rücksendeadresse. Die Rücksendeadresse wird +mit einer horizontalen Linie abgetrennt. Der Inhalt der +Rücksendeadresse\Index{Rücksendeadresse} wird normalerweise aus den +Variablen \Variable{fromname} und \Variable{fromaddress} automatisch +gebildet. Innerhalb der Rücksendeadresse werden doppelte Backslash +durch den Inhalt der Variablen \Variable{backaddressseparator} +ersetzt. Vordefiniert ist hierbei ein Komma, gefolgt von einem nicht +umbrechbaren Leerzeichen. Die Höhe, die innerhalb des +Anschriftfensters für die Rücksendeadresse zur Verfügung steht, ist in +der Pseudolänge \PLength{backaddrheight} abgelegt. Der Wert wird in +den vordefinierten \File{lco}-Dateien typischerweise auf 5\Unit{mm} +eingestellt. Ob die Rücksendeadresse überhaupt gesetzt wird, bestimmt +der Anwender mit den Optionen \Option{addrfield} und +\Option{backaddress} (siehe \autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{backaddrheight}% +\EndIndex{Variable}{backaddress}% +\EndIndex{Variable}{backaddressseparator}% + + +\begin{Declaration} + \Variable{specialmail}\\ + \PLength{specialmailindent}\\ + \PLength{specialmailrightindent} +\end{Declaration} +\BeginIndex{Variable}{specialmail}% +\BeginIndex{PLength}{specialmailindent}% +\BeginIndex{PLength}{specialmailrightindent}% +Zwischen Rücksendeadresse und Empfängeradresse kann noch eine +optionale Versandart\Index{Versandart} gesetzt werden. Diese wird +genau dann gesetzt, wenn die Variable \Variable{specialmail} einen +Inhalt hat. Die Ausrichtung wird mit Hilfe der Pseudolängen +\PLength{specialmailindent} und \PLength{specialmailrightindent} +festgelegt. Diese geben den linken und rechten Einzug der Zeile an. In +den vordefinierten \File{lco}-Dateien ist \PLength{specialmailindent} +auf den dehnbaren Wert \Macro{fill} gesetzt, während +\PLength{specialmailrightindent} auf 1\Unit{em} eingestellt ist. Damit +wird die Versandart 1\Unit{em} vom rechten Rand des Anschriftfensters +gesetzt. +% +\EndIndex{PLength}{specialmailindent}% +\EndIndex{PLength}{specialmailrightindent}% +\EndIndex{Variable}{specialmail}% + + +\begin{Declaration} + \Variable{toname}\\ + \Variable{toaddress} +\end{Declaration} +\BeginIndex{Variable}{toname}% +\BeginIndex{Variable}{toaddress}% +Diese beiden Variablen, die den Namen und die Adresse des Empfängers +beinhalten, werden normalerweise nicht direkt vom Anwender gesetzt. +Vielmehr gewinnt sie \Class{scrlttr2} direkt aus dem +\PName{Empfänger}-Argument der +\Environment{letter}-Umgebung\IndexEnv{letter}. Beachten Sie auch hier +den wichtigen Hinweis zur Absenderadresse aus +\autoref{sec:scrlttr2.firstHead}. +% +\EndIndex{Variable}{toname}% +\EndIndex{Variable}{toaddress}% + + +\begin{Declaration} + \Macro{begin}% + \PParameter{letter}\OParameter{Optionen}\Parameter{Anschrift} +\end{Declaration} +\BeginIndex{Env}{letter}% +Die Briefumgebung ist nur einer der zentralen Dreh- und Angelpunkte +der Briefklasse. Als Besonderheit kann man bei \Class{scrlttr2} der +Briefumgebung zusätzliche \PName{Optionen} mit auf den Weg geben. +Diese werden dann intern per \Macro{KOMAoptions}-Anweisung ausgeführt. +Die \PName{Anschrift} wird als obligatorischer Parameter an die +Umgebung übergeben. Dabei dient der doppelte Backslash als +Trennzeichen zwischen einzelnen Teilen der \PName{Anschrift}. Diese +einzelnen Teile werden im Anschriftfeld als einzelne Zeilen +ausgegeben. Dennoch sollte der doppelte Backslash hier nicht als +fester Zeilenumbruch verstanden werden. Absätze, vertikaler Leerraum +und Ähnliches sind in der Anschrift nicht erlaubt. Sie können zu +unerwarteten Effekten und Fehlermeldungen führen. Dies ist übrigens +bei der Standardbriefklasse genauso. Die +\Environment{letter}-Umgebung beginnt den Brief selbst noch nicht. +Dies geschieht erst mit der \Macro{opening}-Anweisung. +\EndIndex{Env}{letter}% + + +\begin{Declaration} + \Macro{AtBeginLetter}\Parameter{Anweisungen} +\end{Declaration} +\BeginIndex{Cmd}{AtBeginLetter}% +Wie in \cite{latex:clsguide} erwähnt, gibt es bei \LaTeX{} die +Möglichkeit, an bestimmten Stellen während des \LaTeX-Laufs eines +Dokuments zusätzliche \PName{Anweisungen} ausführen zu lassen. Diesem +Zweck dienen beispielsweise die Anweisungen \Macro{AtBeginDocument} +und \Macro{AtEndOfClass}. Man nennt solche Eingriffspunkte auch +\emph{hooks}, also Haken\Index{Haken}. Die Klasse \Class{scrlttr2} +fügt einen weiteren Haken hinzu, der mit \Macro{AtBeginLetter} mit +Fleisch versehen werden kann. Wie man schon daran erkennt, dass +Anweisungen für die Haken nicht in \cite{latex:usrguide} sondern in +\cite{latex:clsguide} dokumentiert sind, sind diese Anweisungen +eigentlich eher für Paket- und Klassenautoren gedacht. Bei der +Briefklasse kann es jedoch eine sinnvolle Anwendung für +\Macro{AtBeginLetter} auch auf Benutzerebene geben. Das folgende +Beispiel zeigt dies. +% +\begin{Example} + Angenommen, Sie haben mehrere Briefe in einem Dokument. Sie verwenden + außerdem eine eigene Anweisung, um in den Briefen einen Fragebogen + zu setzen. Dabei werden die Fragen automatisch mit Hilfe eines + Zählers nummeriert. Da \Class{scrlttr2} dieser Zähler nicht bekannt + ist, würde er auch im Gegensatz etwa zur Seitenzahl am Anfang eines + neuen Briefes nicht zurückgesetzt. Wenn jeder Brief zehn Fragen + beinhaltet, hätte damit die erste Frage im fünften Brief die Nummer + 41 statt der Nummer 1. Sie lösen das, indem Sie \Class{scrlttr2} + mitteilen, dass am Anfang jeden Briefes der Zähler zurückgesetzt + werden soll: + \begin{small} +\begin{verbatim} + \newcounter{Frage} + \newcommand{\Frage}[1]{% + \refstepcounter{Frage}\par + \@hangfrom{\makebox[2em][r]{\theFrage:~}}{#1}} + \AtBeginLetter{\setcounter{Frage}{0}} +\end{verbatim} + \end{small} + Damit hat dann auch die erste Frage im 1001. Brief wieder die Nummer + 1. Selbstverständlich gehören die entsprechenden Definitionen und + Anweisungen entweder mit \Macro{makeatletter} und + \Macro{makeatother} geklammert (siehe \cite{DANTE:FAQ}) in den + Vorspann des Briefdokuments (siehe + \autoref{sec:scrlttr2.document} sowie + \autoref{fig:scrlttr2.document}) oder in ein eigenes Paket + oder eine \File{lco}-Datei (siehe \autoref{sec:lcoFile}). +\end{Example} +% +\EndIndex{Cmd}{AtBeginLetter}% +% +\EndIndex{}{Anschrift}% + +\subsection{Absenderergänzungen} +\label{sec:scrlttr2.locationField} + +Insbesondere bei Geschäftsbriefen reicht der Platz im Briefkopf und im +Seitenfuß oftmals nicht aus, um alle Angaben des Absenders +unterzubringen. Für die zusätzlichen Informationen wird oft der Platz +neben der Anschrift genutzt. In dieser Anleitung wird dieses Feld +\emph{Absenderergänzung} genannt. + + +\begin{Declaration} + \PLength{locwidth} +\end{Declaration} +\BeginIndex{PLength}{locwidth}% +Diese Pseudolänge \PLength{locwidth} gibt die Breite der +Absenderergänzung an. Ihr Wert wird in den vordefinierten +\File{lco}-Dateien typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert +nimmt eine Sonderstellung ein. Er bedeutet nicht, dass die +Absenderergänzung die Breite Null besitzen soll. Vielmehr wird bei +diesem Wert die tatsächliche Breite erst bei \Macro{opening} an Hand +der Breite des Papiers, der Breite des Anschriftfensters und dem +Abstand des Anschriftfensters vom linken Rand gesetzt. Dabei findet +auch die Option \Option{locfield} (siehe +\autoref{sec:scrlttr2.headoptions}) Berücksichtigung. +% +\EndIndex{PLength}{locwidth} + + +\begin{Declaration} + \Variable{location} +\end{Declaration} +\BeginIndex{Variable}{location}% +Der Inhalt der Absenderergänzung wird mit der Variablen +\Variable{location} festgelegt. Für den Inhalt dieser Variablen dürfen +auch Formatieranweisungen wie \Macro{raggedright} verwendet werden. Es +ist zu beachten, dass je nach Einstellung der Optionen +\Option{fromalign} und \Option{fromlogo} ein Teil der +Absenderergänzung bereits durch das Logo belegt wird (siehe +\autoref{sec:scrlttr2.headoptions}). +% +\begin{Example} + Angenommen, Sie wollen in der Absenderergänzung die Gesellschafter, + den Geschäftsführer und den Gerichtsstand Ihrer Firma angeben. Dies + kann beispielsweise wie folgt geschehen: + \begin{small} +\begin{verbatim} + \KOMAoptions{locfield=wide} + \setkomavar{location}{\raggedright + \textbf{Gesellschafter:}\\ + \quad Hugo Mayer\\ + \quad Bernd Müller\\[1ex] + \textbf{Geschäftsführerin:}\\ + \quad Liselotte Mayer\\[1ex] + \textbf{Gerichtsstand:}\\ + \quad Hinterdupfeldingen + } +\end{verbatim} + \end{small} + Die Option \Option{locfield=wide} setzen Sie, damit die ganzen + Angaben horizontal auch wirklich passen. Solche Angaben können Sie + übrigens auch zusammen mit den allgemeinen Absenderangaben in Ihre + eigene \File{lco}-Datei packen. +\end{Example} +% +\EndIndex{Variable}{location}% + + +\subsection{Geschäftszeile} +\label{sec:scrlttr2.refLine}% +\BeginIndex{}{Geschäftszeile}% + +Insbesondere bei Geschäftsbriefen findet sich häufig eine Zeile mit +Angaben wie Namenskürzeln\Index{Kürzel}, Durchwahl\Index{Durchwahl}, +Kunden-\Index{Kundennummer} und Rechnungsnummer\Index{Rechnungsnummer} +oder zur Bezugnahme auf ein früheres Schreiben. Diese Zeile wird in +dieser Anleitung \emph{Geschäftszeile} genannt. Die Geschäftszeile +kann auch länger als eine Zeile sein und wird nur gesetzt, wenn +mindestens eine der Variablen für die Geschäftszeile nicht leer ist. +Es werden auch nur die Felder gesetzt, die nicht leer sind. Um ein +scheinbar leeres Feld zu setzen, muss man der entsprechenden Variablen +einen scheinbar leeren Inhalt, beispielsweise ein festes Leerzeichen +oder \Macro{null}, geben. Wird auf die Geschäftszeile verzichtet, so +werden an ihrer Stelle Bezeichnung und Inhalt der Variablen +\Variable{date} ausgegeben. + + +\begin{Declaration} + \PLength{refvpos} +\end{Declaration} +\BeginIndex{PLength}{refvpos}% +Diese Pseudolänge gibt den Abstand der Geschäftszeile von der Oberkante +des Papiers an. Ihr Wert wird in den vordefinierten \File{lco}-Dateien +unterschiedlich eingestellt. Typische Werte liegen zwischen +80{,}5\Unit{mm} und 98{,}5\Unit{mm}. +% +\EndIndex{PLength}{refvpos}% + + +\begin{Declaration} + \PLength{refwidth} +\end{Declaration} +\BeginIndex{PLength}{refwidth}% +Diese Pseudolänge gibt die Breite an, die für die Geschäftszeile zur +Verfügung steht. Ihr Wert wird in den vordefinierten +\File{lco}-Dateien typischerweise auf 0\Unit{pt} gesetzt. Dieser Wert +hat eine besondere Bedeutung. Es wird damit keineswegs festgelegt, +dass für die Geschäftszeile keine Breite zur Verfügung steht. Vielmehr +bedeutet der Wert, dass die verfügbare Breite erst innerhalb von +\Macro{opening} ermittelt wird. Die dort ermittelte Breite richtet +sich dann nach der Einstellung der Option \Option{refline} (siehe +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{refwidth}% + + +\begin{Declaration} + \PLength{refaftervskip} +\end{Declaration} +\BeginIndex{PLength}{refaftervskip}% +Diese Pseudolänge gibt den vertikalen Abstand an, der nach der +Geschäftszeile eingefügt werden soll. Der Wert wird in den +vordefinierten \File{lco}-Dateien eingestellt. Er wirkt sich +unmittelbar auf die Höhe des Textbereiches der ersten Seite aus. Der +typische Wert liegt zwischen einer und zwei Zeilen. +% +\EndIndex{PLength}{refaftervskip}% + + +\begin{Declaration} + \Variable{place}\\ + \Variable{placeseparator} +\end{Declaration} +\BeginIndex{Variable}{place}% +\BeginIndex{Variable}{placeseparator}% +Wie bereits in der Einleitung dieses Abschnitts erwähnt wurde, kann +die Geschäftszeile auch entfallen. Dies geschieht, wenn alle Variablen +der Geschäftszeile bis auf das Datum leer sind. In diesem Fall wird +statt des Datums\Index{Datum} der Inhalt der Variablen für den +Ort\Index{Ort}, \Variable{place}, und der Inhalt der Variablen für das +Trennzeichens\Index{Trennzeichen}, \Variable{placeseparator}, gefolgt +vom Inhalt der Variablen für das Datum, \Variable{date}, gesetzt. Der +vordefinierte Inhalt des Trennzeichens ist dabei ein Komma gefolgt von +einem nicht umbrechbaren Leerzeichen. Ist der Ort leer, so wird auch +das Trennzeichen nicht gesetzt. Der vordefinierte Inhalt der Variablen +\Variable{date} ist \Macro{today}\IndexCmd{today} und hängt von der +Einstellung der Option \Option{numericaldate} ab (siehe +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{Variable}{place}% +\EndIndex{Variable}{placeseparator}% + + +\begin{Declaration} + \Variable{yourref}\\ + \Variable{yourmail}\\ + \Variable{myref}\\ + \Variable{customer}\\ + \Variable{invoice} \\ + \Variable{date} +\end{Declaration} +\BeginIndex{Variable}{yourref}% +\BeginIndex{Variable}{yourmail}% +\BeginIndex{Variable}{myref}% +\BeginIndex{Variable}{customer}% +\BeginIndex{Variable}{invoice}% +\BeginIndex{Variable}{date}% +Bei diesen Variablen handelt es sich um typische Felder der +Geschäftszeile. Ihre Bedeutung entnehmen Sie bitte +\autoref{tab:scrlttr2.variables} auf +\autopageref{tab:scrlttr2.variables}. Jede dieser Variablen hat +außerdem eine vordefinierte Bezeichnung, die in +\autoref{tab:scrlttr2.reflineTerm} zu finden ist. Die Breite des +Feldes, das zu jeder Variablen in der Geschäftszeile gehört, passt +sich automatisch der Bezeichnung und dem Inhalt an. +% +\begin{table} + \centering + \begin{tabular}{lll} + Name & Bezeichnung & bei deutscher Sprache \\ + \hline\\[-2ex] + \Variable{yourref} & \Macro{yourrefname} & Ihr Zeichen \\ + \Variable{yourmail} & \Macro{yourmailname} & Ihr Schreiben vom \\ + \Variable{myref} & \Macro{myrefname} & Unser Zeichen \\ + \Variable{customer} & \Macro{customername} & Kundennummer \\ + \Variable{invoice} & \Macro{invoicename} & Rechnungsnummer \\ + \Variable{date} & \Macro{datename} & Datum \\\hline + \end{tabular} + \caption{Vordefinierte Bezeichnungen der typischen Variablen der + Geschäftszeile unter Verwendung sprachabhängiger Anweisungen} + \label{tab:scrlttr2.reflineTerm} +\end{table} +% +\EndIndex{Variable}{yourref}% +\EndIndex{Variable}{yourmail}% +\EndIndex{Variable}{myref}% +\EndIndex{Variable}{customer}% +\EndIndex{Variable}{invoice}% +\EndIndex{Variable}{date}% +% +\EndIndex{}{Geschäftszeile}% + + +\subsection{Titel und Betreff} +\label{sec;scrlttr2.titleSubject} +Geschäftsbriefe werden häufig mit einem Betreff versehen. Dieser +Betreff beschreibt kurz den Vorgang oder den Aspekt, um den es sich +handelt. In der Regel sollte ein Betreff möglichst kurz und prägnant +sein und nicht über mehrere Zeilen gehen. Neben dem Betreff kann ein +Brief auch noch mit einem Titel versehen werden. Von einem Titel wird +normalerweise nur bei Mahnungen, Rechnungen und Ähnlichem Gebrauch +gemacht. + + +\begin{Declaration} + \Variable{title} +\end{Declaration} +\BeginIndex{Variable}{title}% +Bei \Class{scrlttr2} kann ein Brief zusätzlich mit einem +Titel\Index{Titel} versehen werden. Der Titel wird zentriert und in +der Schriftgröße \Macro{LARGE} nach der Geschäftszeile ausgegeben. Die +für das Element \PValue{title} als +\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries} voreingestellte +Schriftart kann mit Hilfe der Schnittstelle, die in +\autoref{sec:maincls.font} beschrieben ist, geändert werden. Dabei +sind auch Größenangaben erlaubt. +\begin{Example} + Angenommen, Sie schreiben eine Mahnung. Sie setzen einen + entsprechenden Titel: + \begin{small} +\begin{verbatim} + \setkomavar{title}{Mahnung} +\end{verbatim} + \end{small} + Damit sollte der Empfänger die Mahnung auch als solche erkennen. +\end{Example} +% +\EndIndex{Variable}{title} + + +\begin{Declaration} + \Variable{subject}\\ + \Variable{subjectseparator} +\end{Declaration} +\BeginIndex{Variable}{subject}% +\BeginIndex{Variable}{subjectseparator}% +Soll ein Betreff\Index{Betreff} gesetzt werden, so geschieht dies, +indem man den Inhalt der Variablen \Variable{subject} entsprechend +festlegt. Je nach Einstellung der Option \Option{subject} kann dem +Betreff eine Bezeichnung vorangestellt werden und die vertikale +Position des Betreffs verändert werden (siehe +\autoref{sec:scrlttr2.headoptions}). Die vordefinierte Bezeichnung +ist \autoref{tab:scrlttr2.subjectTerm} zu entnehmen. Der vordefinierte +Inhalt des Trennzeichens\Index{Trennzeichen} +\Variable{subjectseparator} besteht aus einem Doppelpunkt, gefolgt von +einem Leerzeichen. +% +\begin{table} + \centering + \begin{tabular}{lll} + Name & Bezeichnung \\\hline\\[-2ex] + \Variable{subject} & + \Macro{usekomavar*}\PParameter{subjectseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{subjectseparator} + \\ + \Variable{subjectseparator} & + \Macro{subjectname} \\ + \end{tabular} + \caption{Vordefinierte Bezeichnungen der Variablen für den Betreff} + \label{tab:scrlttr2.subjectTerm} +\end{table} + +Der Betreff wird in einer eigenen Schriftart\Index{Schriftart} +gesetzt. Um diese zu ändern, verwenden Sie die Benutzerschnittstelle, +die in \autoref{sec:maincls.font} beschrieben ist. Für das Element +\PValue{subject} ist +\Macro{normalfont}\Macro{normalcolor}\Macro{bfseries} die in der +Klasse \Class{scrlttr2} voreingestellte Schrift. +\begin{Example} + Angenommen, Sie schreiben als Vereinsvorstandes einen Brief an ein + anderes Mitglied des Vorstands, in dem es um vereinsinterne + Angelegenheiten geht. Sie wollen dabei im Betreff deutlich machen, + dass es sich um einen Betreff handelt, ohne dass Sie eine + Bezeichnung mit Trennzeichen voranstellen. Sie könnten das wie folgt + lösen: + \begin{small} +\begin{verbatim} + \setkomavar{subject}[Betrifft ]{% + vereinsinterne Angelegenheiten} +\end{verbatim} + \end{small} + Sie können es sich aber auch einfach machen: + \begin{small} +\begin{verbatim} + \setkomavar{subject}[]{% + Betrifft vereinsinterne Angelegenheiten} +\end{verbatim} + \end{small} + Außerdem wollen Sie, dass der Betreff nicht nur fett sondern + auch in einer serifenlosen Schriftart erscheint: + \begin{small} +\begin{verbatim} + \addtokomafont{subject}{\sffamily} +\end{verbatim} + \end{small} + Wie Sie sehen, ist das alles ganz einfach zu lösen. +\end{Example} +% +\EndIndex{Variable}{subject}% +\EndIndex{Variable}{subjectseparator}% + + +\subsection{Andere Angaben} +Sie finden hier Variablen und Einstellungen, die keinem anderen +Bereich der Briefeinleitung zugeordnet werden konnte, die jedoch in +diesen Abschnitt gehören. + +\begin{Declaration} + \PLength{tfoldmarkvpos}\\ + \PLength{bfoldmarkvpos} +\end{Declaration} +\BeginIndex{PLength}{tfoldmarkvpos}% +\BeginIndex{PLength}{bfoldmarkvpos}% +Die Briefklasse \Class{scrlttr2} kennt insgesamt drei +Faltmarken\Index{Faltmarken}\Index{Falzmarken}. Die mittlere Faltmarke +dient der Halbierung der Seite und wird deshalb immer in der Mitte der +Seitenhöhe ausgegeben. Die Position der oberen Faltmarke vom oberen +Papierrand wird von der Pseudolänge \PLength{tfoldmarkvpos} bestimmt, +die der unteren Faltmarke von der Pseudolänge \PLength{bfoldmarkvpos}. +Diese beiden Faltmarken dienen nicht der exakten Drittelung des +Papiers beim Falten. Stattdessen soll das Papier mit ihrer Hilfe so +geknickt werden können, dass das Feld für die Anschrift in einem +Fensterbriefumschlag zu sehen ist. Die Einstellungen sind daher in den +vordefinierten \File{lco}-Dateien unterschiedlich gewählt. Eine +Besonderheit stellt \Option{DINmtext} dar. Hier wird zwingend von +einem Briefumschlag im Format C6/5 (auch "`C6 lang"' genannt) +ausgegangen. Briefe, die mit dieser Option erstellt wurden, sind weder +für Umschläge im Format C5 noch für Umschläge im Format C4 geeignet. +% +\EndIndex{PLength}{tfoldmarkvpos}% +\EndIndex{PLength}{bfoldmarkvpos}% + + +\begin{Declaration} + \PLength{foldmarkhpos} +\end{Declaration} +\BeginIndex{PLength}{foldmarkhpos}% +Diese Pseudolänge gibt den Abstand aller drei +Faltmarken\Index{Faltmarken}\Index{Falzmarken} vom linken Papier\-rand +an. Normalerweise sind das 3{,}5\Unit{mm}. Sie können den Wert aber +auch in Ihrer eigenen \File{lco}-Datei ändern, falls Sie einen Drucker +verwenden, der einen breiteren unbedruckbaren linken Rand hat. Die +obere und die untere Faltmarke sind übrigens 2\Unit{mm} lang, während +die mittlere Faltmarke 4\Unit{mm} lang ist. Die Dicke aller drei +Faltmarken ist mit 2\Unit{pt} gleich groß. Derzeit ist es nicht +vorgesehen, die Länge oder Dicke der Faltmarken zu ändern. Ob die +Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option +\Option{foldmarks} ab (siehe \autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{foldmarkhpos}% + + +\begin{Declaration} + \Variable{frombank} +\end{Declaration} +\BeginIndex{Variable}{frombank}% +Diese Variable nimmt derzeit eine Sonderstellung ein. Sie wird intern +bisher nicht verwendet. Sie kann jedoch beispielsweise vom Anwender +verwendet werden, um die Bankverbindung\Index{Bankverbindung} in das +Absenderergänzungsfeld oder den Fuß zu setzen. +% +\EndIndex{Variable}{frombank}% + + +\begin{Declaration} + \Macro{nexthead}\Parameter{Aufbau}\\ + \Macro{nextfoot}\Parameter{Aufbau} +\end{Declaration} +\BeginIndex{Cmd}{nexthead}% +\BeginIndex{Cmd}{nextfoot}% +In den meisten Fällen werden die Möglichkeiten, die \Class{scrlttr2} +über Optionen und Variablen für die Gestaltung des +Seitenkopfes\Index{Kopf} und -fußes\Index{Fuß} auf +Folgeseiten\Index{Folgeseite} zur Verfügung stellt, vollkommen +ausreichen. Dies umso mehr, als man zusätzlich mit \Macro{markboth} +und \Macro{markright} die Möglichkeit hat, die Angaben zu ändern, die +\Class{scrlttr2} in den Kopf setzt. Folgeseiten im Sprachgebrauch +dieser Anleitung sind alle Briefseiten abgesehen von der ersten. Die +Anweisungen \Macro{markboth}\IndexCmd{markboth} und +\Macro{markright}\IndexCmd{markright} können insbesondere mit dem +Seitenstil\Index{Seitenstil} +\PValue{myheadings}\IndexPagestyle{myheadings} verwendet werden. Bei +Verwendung des Paketes \Package{scrpage2}\IndexPackage{scrpage2} gilt +dies natürlich auch für den Seitenstil +\PValue{scrheadings}\IndexPagestyle{scrheadings}. Dort steht außerdem +die Anweisung \Macro{markleft}\IndexCmd{markleft} zur Verfügung. + +In einigen wenigen Fällen will man jedoch den Kopf oder Fuß der +Folgeseiten ähnlich dem Briefkopf freier gestalten können. In diesen +Fällen muss man auf die Möglichkeiten der vordefinierten Köpfe und +Füße, die per Option ausgewählt werden können, verzichten. Stattdessen +gestaltet man sich den Kopf und Fuß der Folgeseiten frei. Dazu +definiert man den gewünschten \PName{Aufbau} mit der Anweisung +\Macro{nexthead} beziehungsweise \Macro{nextfoot}. Innerhalb von +\Macro{nexthead} und \Macro{nextfoot} können beispielsweise mit Hilfe +der \Macro{parbox}-Anweisung (siehe \cite{latex:usrguide}) mehrere +Boxen neben- und untereinander gesetzt werden. Einem versierten +Anwender sollte es so möglich sein, eigene Seitenköpfe und -füße zu +gestalten. Natürlich kann \PName{Aufbau} auch Zugriffe auf +Variablen mit Hilfe von \Macro{usekomavar} nehmen. +% +\EndIndex{Cmd}{nexthead}% +\EndIndex{Cmd}{nextfoot}% + + +\section{Der Text} +\label{sec:scrlttr2.text} + +Im Gegensatz zu einem Artikel, einem Bericht oder einem Buch besitzt +ein Brief normalerweise keine Kapitel- oder Abschnittseinteilung, +keine Gleitumgebungen mit Tabellen und Abbildungen. Daher hat er auch +weder Inhaltsverzeichnis noch Verzeichnisse für Gleitumgebung, +Literatur, Index, Glossary oder Ähnliches. Der Brief"|text besteht im +Wesentlichen aus einer Anrede und dem eigentlichen Text. Er wird +gefolgt von einem Schlussgruß und eventuell einem Nachsatz und +verschiedenen Auf"|listungen nach dem Gruß. + + +\subsection{Anrede} +\label{sec:scrlttr2.opening} + +\begin{Explain} +Bei maschinell erstellen Briefen wurde früher häufig auf eine Anrede +verzichtet. Das lag daran, dass die Möglichkeiten für Serienbriefe in +den Anfängen der maschinell erzeugten Briefe noch sehr gering +waren. Heute sind persönliche Anreden auch bei massenhaft erzeugten +Werbebriefen üblich. +\end{Explain} + +\begin{Declaration} + \Macro{opening}\Parameter{Anrede} +\end{Declaration} +\BeginIndex{Cmd}{opening}% +Dies ist eine der wichtigsten Anweisungen in \Class{scrlttr2}. +Vordergründig wird damit die \PName{Anrede}\Index{Anrede} des Briefes, +beispielsweise "`Sehr geehrter Herr Huber,"', gesetzt. Tatsächlich +setzt diese Anweisung aber auch die +Faltmarken\Index{Faltmarken}\Index{Falzmarken}, den +Briefkopf\Index{Briefkopf}, die Anschrift\Index{Anschrift}, die +Absenderergänzung, die Geschäftszeile\Index{Geschäftszeile}, den +Titel\Index{Titel}, den Betreff\Index{Betreff} und den +Seitenfuß\Index{Kopf}\Index{Fuß}, also die Mehrzahl der Felder, die +mit Optionen und Variablen eingestellt werden. Kurz gesagt: ohne +Anrede kein Brief. +% +\EndIndex{Cmd}{opening}% + + +\subsection{Fußnoten} +\label{sec:scrlttr2.footnotes} + +Fußnoten\Index{Fussnoten=Fußnoten} sollte man in Briefen noch sehr +viel sparsamer verwenden als in anderen Dokumenten. Dennoch verfügt +\Class{scrlttr2} bezüglich der Fußnoten über alle Mechanismen, die in +\autoref{sec:maincls.footnotes} auch für die Hauptklassen beschrieben +sind. Diese werden daher hier nicht erneut aufgeführt. + + +\subsection{Listen} +\label{sec:scrlttr2.lists} + +Listen\Index{Listen} haben in Briefen die gleiche Berechtigung wie in +anderen Dokumenten auch. Deshalb verfügt \Class{scrlttr2} +diesbezüglich über dieselben Möglichkeiten, die in +\autoref{sec:maincls.lists} auch für die Hauptklassen beschrieben +sind. Diese werden daher hier nicht erneut aufgeführt. + + +\subsection{Randnotizen} +\label{sec:scrlttr2.marginNotes} + +Randnotizen\Index{Randnotizen} sind in Briefen eher unüblich. Daher +wird in \Class{scrlttr2} die Option \Option{mpinclude} auch nicht +aktiv unterstützt. Dennoch verfügt die Klasse bezüglich der +Randnotizen über alle Mechanismen, die in +\autoref{sec:maincls.marginNotes} auch für die Hauptklassen +beschrieben sind. Diese werden daher hier nicht erneut aufgeführt. + + +\subsection{Textauszeichnung} +\label{sec:scrlttr2.emphasis} + +Textauszeichnungen\Index{Schriftart} haben in Briefen denselben +Stellenwert wie in anderen Dokumenten. Obwohl eher das Gegenteil zu +beobachten ist, empfehle ich daher auch in Briefen insbesondere mit +aktiven Auszeichnungen eher sparsam umzugehen. Auch Briefe sollen +gelesen werden. Ein Brief in dem jedes Wort in einer anderen Schrift +erscheint, kann nicht gelesen werden. + +Die Briefklasse \Class{scrlttr2} verfügt über dieselben Möglichkeiten +der Textauszeichnung, die in \autoref{sec:maincls.emphasis} für +die Hauptklassen beschrieben sind. Diese werden daher hier nicht +erneut aufgeführt. + + +\section{Der Schlussteil} +\label{sec:scrlttr2.backend} + +Der Schlussteil eines Briefes besteht immer aus einer +Grußfloskel\Index{Gruß}. Selbst bei maschinell erstellten Briefen ohne +Unterschrift\Index{Unterschrift} findet sich diese in der Regel. +Manchmal besteht sie dann aus einem Satz wie "`Dieser Brief wurde +maschinell erstellt und ist ohne Unterschrift gültig"'. Manchmal wird +ein solcher Satz als Signatur\Index{Signatur} verwendet. Auf die +Grußformel können noch ein Nachsatz und verschiedene Auf"|listungen +folgen. + + +\subsection{Schlussgruß} +\label{sec:scrlttr2.closing} + +Der Schlussgruß\Index{Gruß} eines Briefes besteht aus mehreren Teilen. +Neben der Grußformel selbst gibt es noch die Unterschrift und die +Signatur, eine Art Erläuterung zur Unterschrift. + +\begin{Declaration} + \Variable{signature} +\end{Declaration} +\BeginIndex{Variable}{signature}% +Die Variable \Variable{signature}\Index{Signatur} nimmt eine Art +Erläuterung zur Unterschrift\Index{Unterschrift} auf. Ihr Inhalt ist +mit \Macro{usekomavar}\PParameter{fromname} vordefiniert. Eine solche +Erläuterung kann auch mehrzeilig sein. Die einzelnen Zeilen sollten +dann mit doppeltem Backslash voneinander getrennt werden. Absätze +innerhalb der Erläuterung sind jedoch nicht gestattet. +% +\EndIndex{Variable}{signature}% + +\begin{Declaration} + \Macro{closing}\Parameter{Grußfloskel} +\end{Declaration} +\BeginIndex{Cmd}{closing}% +Mit der Anweisung \Macro{closing} wird nicht nur die +\PName{Grußfloskel}\Index{Gruß}, sondern auch der Inhalt der Variablen +\Variable{signature} unter den Brief gesetzt. Die \PName{Grußfloskel} +kann auch mehrzeilig sein. Die einzelnen Zeilen sollten dann mit +doppeltem Backslash voneinander getrennt werden. Absätze innerhalb +der \PName{Grußfloskel} sind jedoch nicht gestattet. +% +\EndIndex{Cmd}{closing}% + + +\begin{Declaration} + \PLength{sigindent}\\ + \PLength{sigbeforevskip}\\ + \Macro{raggedsignature} +\end{Declaration} +\BeginIndex{PLength}{sigindent}% +\BeginIndex{PLength}{sigbeforevskip}% +\BeginIndex{Cmd}{raggedsignature}% +Grußfloskel\Index{Gruß}\Index{Signatur} und Erläuterung der +Unterschrift\Index{Unterschrift} werden innerhalb einer Box gesetzt. +Die Breite dieser Box wird durch die längste Zeile innerhalb von +Grußfloskel und Erläuterung bestimmt. + +Die Box wird mit dem Einzug gesetzt, der durch die Pseudolänge +\PLength{sigindent} bestimmt ist. In den vordefinierten +\File{lco}-Dateien ist der Einzug auf 0\Unit{mm} gesetzt. + +Durch den Befehl \Macro{raggedsignature} wird die Ausrichtung innerhalb +der Box bestimmt. In den vordefinierten \File{lco}-Dateien ist die +Anweisung entweder auf \Macro{centering} (alle außer \Option{KOMAold}) +oder auf \Macro{raggedright} (\Option{KOMAold}) gesetzt. Um innerhalb +der Box beispielsweise eine linksbündige oder rechtsbündige +Ausrichtung zu erhalten, kann der Befehl in gleicher Weise umdefiniert +werden wie \Macro{raggedsection} (siehe das entprechende Beispiel in +\autoref{sec:maincls.structure}). + +Zwischen Grußfloskel und Erläuterung wird ein vertikaler Abstand +eingefügt, der mit der Pseudolänge \PLength{sigbeforevskip} festgelegt +ist. In den vordefinierten \File{lco}-Dateien ist der Wert auf zwei +Zeilen eingestellt. In diese Lücke setzen Sie dann Ihre Unterschrift. +\begin{Example} + Sie schreiben als Vorstand des Vereins "`Rotkehlchen e.\,V."' einen + Brief an die Mitglieder. Dabei wollen Sie einerseits nochmals + verdeutlichen, dass Sie im Namen des Vorstands schreiben, zum + anderen wollen sie ihre Position im Vorstand mit angeben. Dies ist + beispielsweise wie folgt möglich: + \begin{small} +\begin{verbatim} + \setkomavar{signature}{Karl-Heinz zu Bammern Krähenfeld\\ + {\small (2. Vorsitzender "`Rotkehlchen e.\,V."')}} + \closing{Mit freundlichen Grüßen\\ + (für den Vorstand)} +\end{verbatim} + \end{small} + Natürlich können Sie das Setzen der Variablen \Variable{signature} + auch in eine Ihrer privaten \File{lco}-Dateien aufnehmen. Ansonsten + empfiehlt es sich, auch diese Variable in der Briefeinleitung (siehe + \autoref{sec:scrlttr2.startLetter}) zu setzen. +\end{Example} +% +\EndIndex{PLength}{sigindent}% +\EndIndex{PLength}{sigbeforevskip}% +\EndIndex{Cmd}{raggedsignature}% + + + +\subsection{Nachsatz, Verteiler und Anlagen} +\label{sec:scrlttr2.afterClosing} + +Nach dem Gruß können bei Briefen noch eine ganze Reihe von Angaben +folgen. Neben dem Postskriptum gehören dazu vor allem Verteiler und +ein Hinweis auf Anlagen. + +\begin{Declaration} + \Macro{ps} +\end{Declaration}% +\BeginIndex{Cmd}{ps}% +\begin{Explain}% + Als Briefe noch von Hand geschrieben wurden, war das Postskriptum + sehr beliebt. Es handelte sich bei diesen Nachsätzen ursprünglich um + Angaben, die im eigentlichen Brief vergessen wurden. Bei Briefen, + die mit \LaTeX{} geschrieben werden, ist es natürlich einfach, + Vergessenes nachträglich in den Brief einzuarbeiten. Trotzdem ist + das Postskriptum noch immer sehr beliebt, kann man damit doch sehr + schön noch einmal auf ganz andere äußerst wichtige oder eigentlich + ganz unwichtige Dinge hinweisen. +\end{Explain} +Diese Anweisung schaltet lediglich auf das +Postskriptum\Index{Postskriptum} um. Dazu wird ein neuer Absatz +begonnen und ein vertikaler Abstand -- in der Regel zur Signatur -- +eingefügt. Auf die Anweisung \Macro{ps} kann beliebiger Text folgen. +Dabei muss der Anwender auch selbst entscheiden, ob er den Nachsatz +etwa mit der Abkürzung "`PS:"', die übrigens ohne Punkt gesetzt wird, +beginnen will. Die Klasse \Class{scrlttr2} setzt diese Abkürzung weder +automatisch noch optional. +% +\EndIndex{Cmd}{ps} + + +\begin{Declaration} + \Macro{cc}\Parameter{Verteiler}\\ + \Variable{ccseparator} +\end{Declaration} +\BeginIndex{Cmd}{cc}% +\BeginIndex{Variable}{ccseparator}% +Ein \PName{Verteiler}\Index{Verteiler} kann mit der Anweisung +\Macro{cc} gesetzt werden. Der \PName{Verteiler} wird der Anweisung +dabei als Argument übergeben. Wenn der Inhalt der Variablen +\Variable{ccseparator}\Index{Trennzeichen} nicht leer ist, wird dem +\PName{Verteiler} die Bezeichnung und der Inhalt dieser Variablen +vorangestellt. Der \PName{Verteiler} selbst wird dann um die +entsprechende Breite eingerückt ausgegeben. Es empfiehlt sich, den +\PName{Verteiler} \Macro{raggedright} zu setzen und die einzelnen +Angaben durch doppelte Backslash voneinander zu trennen. +\begin{Example} + Sie wollen angeben, dass Ihr Brief an alle Vereinsmitglieder und den + Vorstand geht: + \begin{small} +\begin{verbatim} + \cc{% + der Vorstand\\ + alle Vereinsmitglieder} +\end{verbatim} + \end{small} + Diese Anweisung schreiben Sie unter die \Macro{closing}-Anweisung + aus dem vorherigen Beispiel oder unter ein eventuelles Postskriptum. +\end{Example} +Vor dem Verteiler wird automatisch ein Abstand eingefügt. +% +\EndIndex{Cmd}{cc}% +\EndIndex{Variable}{ccseparator}% + + +\begin{Declaration} + \Macro{encl}\Parameter{Anlagen}\\ + \Variable{enclseparator} +\end{Declaration} +\BeginIndex{Cmd}{encl}% +\BeginIndex{Variable}{enclseparator}% +Die \PName{Anlagen}\Index{Anlagen} sind genauso aufgebaut wie der +Verteiler. Der einzige Unterschied besteht darin, dass die Einleitung +hier von der Bezeichnung und dem Inhalt der Variablen +\Variable{enclseparator}\Index{Trennzeichen} bestimmt wird. +% +\EndIndex{Cmd}{encl}% +\EndIndex{Variable}{enclseparator}% + + + +\section{Unterstützung verschiedener Sprachen} +\label{sec:scrlttr2.languages}% +\BeginIndex{}{Sprachen}% + +Die Klasse \Class{scrlttr2} unterstützt viele Sprachen. Dazu zählen +Deutsch (\PValue{german} für alte deutsche Rechtschreibung, +\PValue{ngerman} für neue deutsche Rechtschreibung und +\PValue{austrian} für Österreichisch), Englisch (\PValue{english} ohne +Angabe ob amerikanisches oder britisches Englisch, \PValue{american} und +\PValue{USenglish} für Amerikanisch, \PValue{british} und +\PValue{UKenglish} für Britisch), Französisch, Italienisch, Spanisch, +Holländisch und Kroatisch. + +\subsection{Sprachauswahl und -umschaltung} +\label{sec:scrlttr2.switchLanguage} +\Index[indexmain]{Sprachumschaltung}\Index[indexmain]{Sprachauswahl} + +Zwischen den Sprachen wird bei Verwendung des +\Package{babel}-Paketes\IndexPackage{babel} (siehe \cite{package:babel}) mit +der Anweisung \Macro{selectlanguage}\Parameter{Sprache} gewechselt. Andere +Pakete wie \Package{german}\IndexPackage{german} (siehe \cite{package:german}) +und \Package{ngerman}\IndexPackage{ngerman} (siehe \cite{package:ngerman}) +besitzen diese Anweisung ebenfalls. In der Regel erfolgt eine +Sprachumschaltung jedoch bereits aufgrund des Ladens eines solchen Paketes. +\iffalse +Näheres entnehmen Sie bitte der jeweiligen Anleitung. +\fi + +\begin{Explain} + Erlauben Sie mir noch einen Hinweis zu den Sprachumschaltpaketen. Das Paket + \Package{french}\IndexPackage{french} (siehe \cite{package:french}) nimmt + neben der Umdefinierung der Begriffe aus + \autoref{sec:scrlttr2.languageTerms} weitere Änderungen vor. So definiert es + etwa die Anweisung \Macro{opening} um. Dabei geht es einfach davon aus, dass + \Macro{opening} immer wie in der Standardbriefklasse \Class{letter} + definiert ist. Dies ist bei \Class{scrlttr2} jedoch nicht der Fall. Das + Paket \Package{french} zerstört deshalb die Definition aus \Class{scrlttr2} + und arbeitet nicht korrekt mir \KOMAScript{} zusammen. Ich betrachte dies + als Fehler des Paketes \Package{french}. + + Wird das Paket \Package{babel}\IndexPackage{babel} für die Umschaltung auf + die Sprache \PValue{french} verwendet und ist gleichzeitig das Paket + \Package{french} installiert, so ergeben sich genau dieselben Probleme, weil + in diesem Fall Teile des Paketes \Package{french} verwendet werden. +\iffalse + Ist das + Paket \Package{french} nicht installiert, ergibt sich das Problem mit + \Package{babel} nicht. Ebenfalls existiert das Problem nicht, wenn man bei + \Package{babel} an Stelle der Sprache \PValue{french} eine der Sprachen + \PValue{acadian}, \PValue{canadien}, \PValue{francais} oder \PValue{frenchb} + verwendet. +\fi + Ich empfehle daher die Verwendung von + \Macro{usepackage}\OParameter{\PValue{frenchb}}\PParameter{babel}, um auf + französische Sprache umzuschalten. + +\iffalse + Es ist nicht auszuschließen, dass mit anderen Sprachen und Paketen ähnliche + Probleme auf"|treten. Für Deutsch sind solche Probleme jedoch nicht bekannt + und treten weder mit den Paketen \Package{german}\IndexPackage{german} oder + \Package{ngerman}\IndexPackage{ngerman} noch mit \Package{babel} auf. +\fi +\end{Explain} + +\begin{Declaration} + \Macro{captionsenglish}\\ + \Macro{captionsUSenglish}\\ + \Macro{captionsamerican}\\ + \Macro{captionsbritish}\\ + \Macro{captionsUKenglish}\\ + \Macro{captionsgerman}\\ + \Macro{captionsngerman}\\ + \Macro{captionsaustrian}\\ + \Macro{captionsfrench}\\ + \Macro{captionsitalian}\\ + \Macro{captionsspanish}\\ + \Macro{captionsdutch}\\ + \Macro{captionscroatian} +\end{Declaration} +\BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish} +\BeginIndex{Cmd}{captionsamerican}\BeginIndex{Cmd}{captionsbritish} +\BeginIndex{Cmd}{captionsUKenglish}\BeginIndex{Cmd}{captionsgerman} +\BeginIndex{Cmd}{captionsngerman} +\BeginIndex{Cmd}{captionsaustrian}\BeginIndex{Cmd}{captionsfrench} +\BeginIndex{Cmd}{captionsitalian}\BeginIndex{Cmd}{captionsspanish} +\BeginIndex{Cmd}{captionsdutch}\BeginIndex{Cmd}{captionscroatian} Wird +die Sprache eines Briefes gewechselt, so werden über diese Anweisungen +die Begriffe aus \autoref{sec:scrlttr2.languageTerms} +umdefiniert. Sollte das verwendete Sprachumschaltpaket dies nicht +unterstützen, so können obige Anweisungen notfalls auch direkt verwendet +werden. +% +\EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} +\EndIndex{Cmd}{captionsamerican}\EndIndex{Cmd}{captionsbritish} +\EndIndex{Cmd}{captionsUKenglish}\EndIndex{Cmd}{captionsgerman} +\EndIndex{Cmd}{captionsngerman} +\EndIndex{Cmd}{captionsaustrian}\EndIndex{Cmd}{captionsfrench} +\EndIndex{Cmd}{captionsitalian}\EndIndex{Cmd}{captionsspanish} +\EndIndex{Cmd}{captionsdutch}\EndIndex{Cmd}{captionscroatian} + +\begin{Declaration} + \Macro{dateenglish}\\ + \Macro{dateUSenglish}\\ + \Macro{dateamerican}\\ + \Macro{datebritish}\\ + \Macro{dateUKenglish}\\ + \Macro{dategerman}\\ + \Macro{datengerman}\\ + \Macro{dateaustrian}\\ + \Macro{datefrench}\\ + \Macro{dateitalian}\\ + \Macro{datespanish}\\ + \Macro{datedutch}\\ + \Macro{datecroatian} +\end{Declaration} +\BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} +\BeginIndex{Cmd}{dateamerican}\BeginIndex{Cmd}{datebritish} +\BeginIndex{Cmd}{dateUKenglish}\BeginIndex{Cmd}{dategerman} +\BeginIndex{Cmd}{datengerman} +\BeginIndex{Cmd}{dateaustrian}\BeginIndex{Cmd}{datefrench} +\BeginIndex{Cmd}{dateitalian}\BeginIndex{Cmd}{datespanish} +\BeginIndex{Cmd}{datedutch}\BeginIndex{Cmd}{datecroatian}% +Je nach verwendeter Sprache werden auch die Datumsangaben\Index{Datum} +des nummerischen Datums (siehe Option \Option{numericaldate} in +\autoref{sec:scrlttr2.headoptions}) in unterschiedlicher Form +umgesetzt. Die genauen Angaben können der \autoref{tab:date} +entnommen werden. +% +\begin{table} + \centering + \begin{tabular}{ll} + \Macro{dateenglish} & 1/12/1993\\ + \Macro{dateUSenglish} & 12/1/1993\\ + \Macro{dateamerican} & 12/1/1993\\ + \Macro{datebritish} & 1/12/1993\\ + \Macro{dateUKenglish} & 1/12/1993\\ + \Macro{dategerman} & 1.\,12.\,1993\\ + \Macro{datengerman} & 1.\,12.\,1993\\ + \Macro{dateaustrian} & 1.\,12.\,1993\\ + \Macro{datefrench} & 1.\,12.\,1993\\ + \Macro{dateitalian} & 1.\,12.\,1993\\ + \Macro{datespanish} & 1.\,12.\,1993\\ + \Macro{datedutch} & 1.\,12.\,1993\\ + \Macro{datecroatian} & 1.\,12.\,1993.\\ + \end{tabular} + \caption{Sprachabhängige Ausgabeformate für das Datum} + \label{tab:date} +\end{table} +% +\EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish} +\EndIndex{Cmd}{dateamerican}\EndIndex{Cmd}{datebritish} +\EndIndex{Cmd}{dateUKenglish}\EndIndex{Cmd}{dategerman} +\EndIndex{Cmd}{datengerman} +\EndIndex{Cmd}{dateaustrian}\EndIndex{Cmd}{datefrench} +\EndIndex{Cmd}{dateitalian}\EndIndex{Cmd}{datespanish} +\EndIndex{Cmd}{datedutch}\EndIndex{Cmd}{datecroatian}% + +\subsection{Sprachabhängige Begriffe} +\label{sec:scrlttr2.languageTerms} +\Index[indexmain]{sprachabhaengige Begriffe=sprachabhängige Begriffe} +Bei \Class{scrlttr2} sind, wie bei \LaTeX{} üblich, sprachabhängige +Begriffe in Anweisungen abgelegt, die bei der Sprachumschaltung +umdefiniert werden. + +\begin{Declaration} + \Macro{yourrefname}\\ + \Macro{yourmailname}\\ + \Macro{myrefname}\\ + \Macro{customername}\\ + \Macro{invoicename}\\ + \Macro{subjectname}\\ + \Macro{ccname}\\ + \Macro{enclname}\\ + \Macro{headtoname}\\ + \Macro{headfromname}\\ + \Macro{datename}\\ + \Macro{pagename}\\ + \Macro{phonename}\\ + \Macro{faxname}\\ + \Macro{emailname}\\ + \Macro{wwwname}\\ + \Macro{bankname} +\end{Declaration} +\BeginIndex{Cmd}{yourrefname}\BeginIndex{Cmd}{yourmailname} +\BeginIndex{Cmd}{myrefname} +\BeginIndex{Cmd}{customername}\BeginIndex{Cmd}{invoicename} +\BeginIndex{Cmd}{subjectname} +\BeginIndex{Cmd}{ccname}\BeginIndex{Cmd}{enclname} +\BeginIndex{Cmd}{headtoname}\BeginIndex{Cmd}{headfromname} +\BeginIndex{Cmd}{datename}\BeginIndex{Cmd}{pagename} +\BeginIndex{Cmd}{phonename}\BeginIndex{Cmd}{faxname} +\BeginIndex{Cmd}{emailname}\BeginIndex{Cmd}{wwwname} +\BeginIndex{Cmd}{bankname}% +Die aufgeführten Anweisungen enthalten die jeweiligen sprachtypischen +Begriffe. Diese können für die Realisierung einer weiteren Sprache +oder aber auch zur eigenen freien Gestaltung angepasst werden. Wie +dies geht, wird in \mbox{\autoref{sec:scrlttr2.defLanguageTerms}} +erklärt. Von \Class{scrlttr2} werden die Begriffe erst nach der +Präambel, also bei \Macro{begin}\PParameter{document} gesetzt. Sie +sind daher vorher nicht verfügbar und können vorher auch nicht +geändert werden. In \autoref{tab:scrlttr2.languageTerms} sind die +Voreinstellungen für \Option{english} und \Option{ngerman} zu finden. +% +\begin{table} + \centering + \begin{tabular}{lll} + Anweisung & \Option{english} & \Option{ngerman} \\\hline\\[-2ex] + \Macro{bankname} & Bank account & Bankverbindung \\ + \Macro{ccname} & cc & Kopien an \\ + \Macro{customername} & Customer no. & Kundennummer \\ + \Macro{datename} & Date & Datum \\ + \Macro{emailname} & Email & E-Mail \\ + \Macro{enclname} & encl & Anlagen \\ + \Macro{faxname} & Fax & Fax \\ + \Macro{headfromname} & From & Von \\ + \Macro{headtoname} & To & An \\ + \Macro{invoicename} & Invoice no. & Rechnungsnummer \\ + \Macro{myrefname} & Our ref. & Unser Zeichen \\ + \Macro{pagename} & Page & Seite \\ + \Macro{phonename} & Phone & Telefon \\ + \Macro{subjectname} & Subject & Betrifft \\ + \Macro{wwwname} & Url & URL \\ + \Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\ + \Macro{yourrefname} & Your ref. & Ihr Zeichen \\ + \end{tabular} + \caption[Voreinstellungen für die sprachabhängigen + Begriffe]{Voreinstellungen für die sprachabhängigen Begriffe bei + Verwendung der Sprachen \Option{english} und \Option{ngerman} + soweit nicht durch die Pakete zur Sprachumschaltung bereits + definiert} + \label{tab:scrlttr2.languageTerms} +\end{table} +% +\EndIndex{Cmd}{yourrefname}\EndIndex{Cmd}{yourmailname} +\EndIndex{Cmd}{myrefname} +\EndIndex{Cmd}{customername}\EndIndex{Cmd}{invoicename} +\EndIndex{Cmd}{subjectname} +\EndIndex{Cmd}{ccname}\EndIndex{Cmd}{enclname} +\EndIndex{Cmd}{headtoname}\EndIndex{Cmd}{headfromname} +\EndIndex{Cmd}{datename}\EndIndex{Cmd}{pagename} +\EndIndex{Cmd}{phonename}\EndIndex{Cmd}{faxname} +\EndIndex{Cmd}{emailname}\EndIndex{Cmd}{wwwname} +\EndIndex{Cmd}{bankname} + + +\subsection{Definieren und Ändern sprachabhängiger Begriffe} +\label{sec:scrlttr2.defLanguageTerms} +\Index[indexmain]{Sprachdefinition} +\begin{Explain} + Normalerweise muss man zur Definition oder zur Änderung + sprachabhängier Begriffe die Anweisungen aus + \autoref{sec:scrlttr2.switchLanguage} so umdefinieren, dass + zusätzlich zu den bisherigen Begriffen auch die neuen oder + geänderten definiert werden. Erschwert wird dieses Vorhaben dadurch, + dass beim Laden eines Paketes wie + \Package{german}\IndexPackage{german} oder + \Package{ngerman}\IndexPackage{ngerman} diese Anweisungen von den + Paketen erneut definiert werden. Bei den genannten Paketen geschieht + dies leider in einer Form, die alle zuvor gemachten Änderungen + zunichte macht. Dies ist auch der Grund, warum \Class{scrlttr2} + seine eigenen Änderungen mit Hilfe von \Macro{AtBeginDocument} bis + \Macro{begin}\PParameter{document}, also bis nach dem Laden aller + Pakete, verzögert. Auch der Anwender muss entweder von + \Macro{AtBeginDocument} Gebrauch machen oder aber seine Änderungen + nicht in die Dokumentpräambel, sondern hinter + \Macro{begin}\PParameter{document} einfügen. Die Klasse + \Class{scrlttr2} bietet ihm für die Definition selbst einige + zusätzliche Anweisungen. +\end{Explain} + +\begin{Declaration} + \Macro{providecaptionname}% + \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{newcaptionname}% + \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{renewcaptionname}% + \Parameter{Sprache}\Parameter{Begriff}\Parameter{Inhalt} +\end{Declaration} +\BeginIndex{Cmd}{providecaptionname}% +\BeginIndex{Cmd}{newcaptionname}% +\BeginIndex{Cmd}{renewcaptionname}% +Mit Hilfe dieser drei Anweisungen ist es möglich, einem +\PName{Begriff} in Abhängigkeit der \PName{Sprache} einen +\PName{Inhalt} zuzuweisen. Der \PName{Begriff} ist dabei immer ein +Makro. Die Arbeitsweise der drei Anweisungen unterscheidet sich je +nachdem, ob eine \PName{Sprache} und ein \PName{Begriff} innerhalb der +\PName{Sprache} zum Zeitpunkt des Aufrufs bereits definiert ist. + +Ist eine \PName{Sprache} nicht definiert, so tut +\Macro{providecaptionname} nichts weiter, als dies in der +\File{log}-Datei zu vermerken. Dabei wird für jede Sprache nur einmal +eine entsprechende Information in die \File{log}-Datei +geschrieben. Ist die Sprache definiert, enthält aber bisher keinen +entsprechenden \PName{Begriff}, so wird er mit dem angegebenen +\PName{Inhalt} definiert. Ist der \PName{Begriff} hingegen in der +\PName{Sprache} bereits definiert, so wird er nicht umdefiniert, +sondern ein entsprechender Hinweis in die \File{log}-Datei +geschrieben. + +Die Anweisung \Macro{newcaptionname} verhält sich etwas anders. Ist +die \PName{Sprache} nicht definiert, dann wird sie neu definiert, indem +eine entsprechende Anweisung (siehe +\autoref{sec:scrlttr2.switchLanguage}) definiert wird. Außerdem +wird darüber auch in der \File{log}-Datei informiert. Ist die +\PName{Sprache} definiert, der \PName{Begriff} in dieser +\PName{Sprache} aber noch nicht vorhanden, so wird er mit dem +gewünschten \PName{Inhalt} definiert. Ist der \PName{Begriff} in der +\PName{Sprache} bereits vorhanden, so wird eine Fehlermeldung +ausgegeben. + +Noch einmal anders verhält sich die Anweisung +\Macro{renewcaptionname}. Ist die \PName{Sprache} nicht definiert, so +wird eine Fehlermeldung ausgegeben. Ist die \PName{Sprache} definiert, +der \PName{Begriff} in dieser \PName{Sprache} jedoch nicht, so wird +ebenfalls eine Fehlermeldung ausgegeben. Ist der \PName{Begriff} in +der \PName{Sprache} definiert, so wird er auf den gewünschten +\PName{Inhalt} umdefiniert. + +Die Klasse \Class{scrlttr2} selbst verwendet +\Macro{providecaptionname} um die Begriffe aus +\autoref{sec:scrlttr2.languageTerms} zu definieren. + +\begin{Example} + Möchten Sie statt des Eintrags "`Ihr Schreiben vom"' lieber "`Ihre + Nachricht vom"' in der Geschäftszeile stehen haben, müssen Sie den + Begriff \Macro{yourmailname} wie folgt umdefinieren. + \begin{small} +\begin{verbatim} + \renewcaptionname{ngerman}{\yourmailname}{% + Ihre Nachricht vom} +\end{verbatim} + \end{small} + Da mit \Macro{renewcaptionname} nur bereits vorhandene Begriffe in + vorhandenen Sprachen umdefiniert werden können, müssen Sie diese + Anweisung nach \Macro{begin}\PParameter{document} setzen oder mit + Hilfe von \Macro{AtBeginDocument} verzögern. Außerdem werden Sie + eine Fehlermeldung erhalten, wenn Sie kein Paket zur + Sprachumschaltung auf \PValue{ngerman} verwenden. +\end{Example} +% +\EndIndex{Cmd}{providecaptionname}% +\EndIndex{Cmd}{newcaptionname}% +\EndIndex{Cmd}{renewcaptionname}% +% +\EndIndex{}{Sprachen}% + + +\section{Adressdateien und Serienbriefe} +\label{sec:scrlttr2.addressFile}% +\BeginIndex{}{Adressdatei}\BeginIndex{}{Serienbriefe}% + +Als besonders lästig wird bei Briefen immer das Eintippen der +Adressen und das Erstellen von Serienbriefen betrachtet. Die Klasse +\Class{scrlttr2} bietet hierfür wie schon die obsolete Klasse +\Class{scrlettr} eine gewisse Unterstützung. Eine stark verbesserte +Serienbrief"|funktion ist derzeit in Planung. + +\begin{Declaration} + \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + \Parameter{Telefon}\Parameter{F1}\Parameter{F2}% + \Parameter{Kommentar}\Parameter{Kürzel} +\end{Declaration} +\BeginIndex{Cmd}{adrentry}% +Mit der \Class{scrlttr2}-Klasse können +Adressdateien\Index[indexmain]{Adressdatei} ausgewertet werden. Dies ist +beispielsweise für Serienbriefe sehr nützlich. Eine Adressdatei muss +die Endung \File{.adr} haben und besteht aus einer Reihe von +\Macro{adrentry}-Einträgen. Ein solcher Eintrag besteht aus acht +Elementen und kann beispielsweise wie folgt aussehen: +\begin{small} +\begin{verbatim} + \adrentry{Maier} + {Herbert} + {\Wiesenweg 37\\ 09091 Blumental} + {0\,23\,34 / 91\,12\,74} + {Bauunternehmer} + {} + {kauft alles} + {MAIER} +\end{verbatim} +\end{small} +Die Elemente fünf und sechs, \PValue{F1} und \PValue{F2}, können frei +bestimmt werden. Denkbar wären neben Hinweisen auf das Geschlecht oder +akademische Grade auch der Geburtstag oder das Eintrittsdatum in einen +Verein. Um das Überschreiben von \TeX- oder \LaTeX-Anweisungen zu +vermeiden, ist es empfehlenswert, für \PName{Kürzel} ausschließlich +Großbuchstaben zu verwenden. + +\begin{Example} + Herr Maier gehört zu Ihren engeren Geschäftspartnern. Da Sie eine + rege Korrespondenz mit ihm pflegen, ist es Ihnen auf Dauer zu + mühsam, jedesmal alle Empfängerdaten aufs Neue einzugeben. + \Class{scrlttr2} nimmt Ihnen diese Arbeit ab. Angenommen, Sie haben + Ihre Kundenkontakte in der Datei \File{partner.adr} gespeichert und + Sie möchten Herrn Maier einen Brief schreiben, dann sparen Sie sich + viel Tipparbeit, wenn Sie folgendes eingeben: + \begin{small} +\begin{verbatim} + \input{partner.adr} + \begin{letter}{\MAIER} + Der Brief ... + \end{letter} +\end{verbatim}\end{small} + Achten Sie bitte darauf, dass Ihr \TeX-System auch auf die + \File{.adr}-Dateien zugreifen kann, da sonst eine Fehlermeldung + von \Macro{input} verursacht wird. Entweder Sie legen die Brief- + und Adressdateien im selben Verzeichnis an, oder Sie binden ein + Adressverzeichnis fest in Ihr \TeX-System ein. +\end{Example} +% +\EndIndex{Cmd}{adrentry} + + +\begin{Declaration} + \Macro{addrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse}% + \Parameter{Telefon}\Parameter{F1}\Parameter{F2}\Parameter{F3}% + \Parameter{F4}\Parameter{Kürzel} +\end{Declaration} +\BeginIndex{Cmd}{addrentry}% +Da über die Jahre hinweg immer wieder Klagen aufkamen, dass insgesamt +nur zwei freie Felder zu wenig seien, verfügt \Class{scrlttr2} nun +alternativ über die Anweisung \Macro{addrentry}. Mit dem zusätzlichen +"`\texttt{d}"' im Namen sind hier auch zwei weitere freie Felder +hinzugekommen, dafür ist jedoch der Kommentar entfallen. Ansonsten +kann die Anweisung genau wie \Macro{adrentry} verwendet werden. In +einer \File{adr}-Datei können sowohl \Macro{adrentry}- als auch +\Macro{addrentry}-Anweisungen stehen. Ich weise jedoch darauf hin, +dass Zusatzpakete wie das \Package{adrconv}-Paket von Axel Kielhorn +bisher nicht auf die Verwendung von \Macro{addrentry} ausgelegt sind. +Hier muss der Anwender gegebenenfalls selbst entsprechende +Erweiterungen vornehmen. +% +\EndIndex{Cmd}{addrentry} + + +Neben dem vereinfachten Zugriff auf Kundendaten können die +\File{.adr}-Dateien auch für Serienbriefe\Index[indexmain]{Serienbriefe} +genutzt werden. So ist es ohne die komplizierte Anbindung an +Datenbanksysteme möglich, solche Massenpostsendungen zu erstellen. +% +\begin{Example} + Sie wollen einen Serienbrief an alle Mitglieder Ihres + Anglervereins schicken, um zur nächsten Mitgliederversammlung + einzuladen. + \begin{small} +\begin{verbatim} + \documentclass{scrlttr2} + \usepackage{ngerman} + \usepackage[latin1]{inputenc} + \begin{document} + \renewcommand*{\adrentry}[8]{ + \begin{letter}{#2 #1\\#3} + \opening{Liebe Vereinsmitglieder,} + unsere nächste Mitgliederversammlung findet am + Montag, dem 12.~August 2002, statt. + + Folgende Punkte müssen besprochen werden... + \closing{Petri Heil,} + \end{letter} + } + \input{mitglieder.adr} + \end{document} +\end{verbatim} + \end{small} + Sind in Ihrer \File{adr}-Datei auch \Macro{addrentry}-Anweisungen + enthalten, müssen Sie dafür eine entsprechende Definition vor dem + Einladen der Adressdatei ergänzen: + \begin{small} +\begin{verbatim} + \renewcommand*{\addrentry}[9]{ + \begin{letter}{#2 #1\\#3} + \opening{Liebe Vereinsmitglieder,} + unsere nächste Mitgliederversammlung findet am + Montag, dem 12.~August 2002, statt. + + Folgende Punkte müssen besprochen werden... + \closing{Petri Heil,} + \end{letter} + } +\end{verbatim} + \end{small} + Bei diesem Beispiel wird kein Gebrauch von dem zusätzlichen freien + Feld gemacht. +\end{Example} + +Natürlich kann der Brief"|inhalt auch von den Adressatenmerkmalen +abhängig gemacht werden. Als Bedingungsfelder können die frei +bestimmbaren Elemente fünf oder sechs eines \Macro{adrentry}-Eintrages +genutzt werden. +\begin{Example} + Angenommen, Sie verwenden das Element fünf, um das Geschlecht eines + Vereinsmitgliedes zu hinterlegen (\PValue{m/w}) und das sechste + Element weist auf einen Rückstand der Mitgliedsbeiträge hin. Wollen + Sie nun alle säumigen Mitglieder anschreiben und persönlich anreden, + so hilft Ihnen folgendes Beispiel weiter: + \begin{small} +\begin{verbatim} + \renewcommand*{\adrentry}[8]{ + \ifdim #6sp>0sp\relax + % #6 ist ein Betrag (Gleitkommazahl) größer 0. + % Es werden also die säumigen Mitglieder + % herausgefiltert. + \begin{letter}{#2 #1\\#3} + \if #5m \opening{Lieber #2,} \fi + \if #5w \opening{Liebe #2,} \fi + + Leider mussten wir feststellen, dass du mit der + Zahlung deiner Mitgliedsbeiträge im Rückstand bist. + + Wir möchten Dich bitten, den offenen Betrag von + #6~EUR auf das Vereinskonto einzuzahlen. + \closing{Petri Heil,} + \end{letter} + \fi + } +\end{verbatim} + \end{small} +\end{Example} +Es ist also möglich, den Brieftext auf bestimmte Empfängermerkmale +gezielt abzustimmen und so den Eindruck eines persönlichen +Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch +die maximale Anzahl von zwei freien \Macro{adrentry}-Elementen +beziehungsweise vier freien \Macro{addrentry}-Elementen begrenzt. + + +\begin{Declaration} + \Macro{adrchar}\Parameter{Anfangsbuchstaben}\\ + \Macro{addrchar}\Parameter{Anfangsbuchstaben} +\end{Declaration} +\BeginIndex{Cmd}{adrchar}% +\BeginIndex{Cmd}{addrchar}% +\Index[indexmain]{Adressverzeichnis}\Index[indexmain]{Telefonliste}% +Es ist auch möglich, die Informationen einer \File{.adr}-Datei in +Adressverzeichnisse oder Telefonlisten umzuwandeln. Sie benötigen dazu +zusätzlich das \Package{adrconv}-Paket von Axel Kielhorn (siehe +\cite{package:adrconv}). In diesem Paket sind interaktive +\LaTeX-Dokumente enthalten, mit deren Hilfe sehr einfach entsprechende +Listen erstellt werden können. + +Damit die Listen alphabetisch sortiert ausgegeben werden, muss bereits +die Adressdatei sortiert gewesen sein. Es empfiehlt sich dabei, vor +jedem neuen Anfangsbuchstaben eine Anweisung \Macro{adrchar} mit +diesem Buchstaben als Argument einzufügen. \Class{scrlttr2} selbst +ignoriert diese Anweisung. +% +\begin{Example} + Sie haben folgende, winzige Adressdatei: +% In der folgenden verbatim-Umgebung je nach Umbruchbedarf einzelne +% Elemente löschen oder hinzufügen. MICHAEL und GABRIEL sollten jedoch +% erhalten bleiben. + \begin{small} +\begin{verbatim} + \adrchar{E} + \adrentry{Engel}{Gabriel} + {Wolke 3\\12345 Himmelreich} + {000\,01\,02\,03}{}{}{Erzengel}{GABRIEL} + \adrentry{Engel}{Michael} + {Wolke 3a\\12345 Himmelreich} + {000\,01\,02\,04}{}{}{Erzengel}{MICHAEL} + \adrentry{Engel}{Raphael} + {Wolke 3b\\12345 Himmelreich} + {000\,01\,02\,05}{}{}{Erzengel}{RAPHAEL} + \adrchar{K} + \adrentry{Kohm}{Markus} + {Fichtenstra\ss e 63\\68535 Edingen-Neckarhausen} + {+49~62\,03~1\,??\,??}{}{}{\"Uberhaupt kein Engel} + {KOMA} + \adrchar{T} + \adrentry{Teufel}{Luzifer} + {Hinter der Flamme 1\\66666 H\"ollenschlund} + {}{}{}{Gefallener Engel ohne Telefon}{LUZIFER} +\end{verbatim} + \end{small} + Diese bearbeiten Sie nun unter Verwendung von \File{adrdir.tex} aus + \cite{package:adrconv}. Seite~3 des Ergebnisses sieht dann etwa so + aus: + \begin{center} + \setlength{\unitlength}{1mm} + \begin{picture}(80,57) + \put(0,57){\line(1,0){80}} + \put(0,3){\line(0,1){54}} + \put(80,3){\line(0,1){54}} + \thicklines + \put(10,42){\line(1,0){60}} + \put(70,45){\makebox(0,0)[r]{\textsf{\textbf{E}}}} + \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textsc{Engel}, Gabriel\\\quad\small Wolke 3\\ + \quad 12345 Himmelreich\\ + \quad (Erzengel)}}} + \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\\textsc{gabriel}\\000\,01\,02\,03}}} + \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textsc{Engel}, Michael\\\quad\small Wolke 3a\\ + \quad 12345 Himmelreich\\ + \quad (Erzengel)}}} + \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\\textsc{michael}\\000\,01\,02\,04}}} + \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3) + \end{picture} + \end{center} + Dabei wird der Buchstabe in der Kopfzeile von \Macro{adrchar} + erzeugt. Siehe dazu die Definition in \File{adrdir.tex}. +\end{Example} +Näheres zum \Package{adrconv}-Paket ist der zugehörigen Anleitung zu +entnehmen. Dort finden Sie auch Angaben darüber, ob die aktuelle +Version von \Package{adrconv} bereits mit \Macro{addrentry} und +\Macro{addrchar} umgehen kann. Frühere Versionen kannten nur +\Macro{adrentry} und \Macro{adrchar}. +% +\EndIndex{Cmd}{adrchar}\EndIndex{Cmd}{addrchar}% +% +\EndIndex{}{Adressdatei}\EndIndex{}{Serienbriefe}% + + +\section{Von \Class{scrlettr} nach \Class{scrlttr2}} +\label{sec:scrlttr2.fromscrlettr} + +Bei der Umwandlung eines alten Briefes, der ursprünglich mit +\Class{scrlettr}\IndexClass{scrlettr} gesetzt wurde, besteht der erste +Schritt darin, die \File{lco}-Datei \Option{KOMAold} als Option bei +\Macro{documentclass} anzugeben. Damit sollte die Mehrzahl der +Anweisungen der alten Klasse bereits funktionieren. An einigen Stellen +wird sich die Ausgabe mit der neuen Klasse trotzdem unterscheiden, +weil nun mal der Satzspiegel der alten Klasse nicht vollständig +nachgebildet wird. Dies hat seine Ursache nicht zuletzt darin, dass in +der Satzspiegelerstellung von \Class{scrlettr} noch diverse Fehler +enthalten waren. So war die Position der Faltmarken beispielsweise von +der Höhe der Kopfzeile abhängig, die wiederum von der Größe der +Grundschrift abhängig war. Eindeutig ein Designfehler der Klasse +\Class{scrlettr}. + +Keine Kompatibilität wird bezüglich der von \Class{scrlettr} +verwendeten Längen erreicht. Wer also in seinem Dokument den +Satzspiegel von \Class{scrlettr} verändert hatte, der sollte diese +Änderungen entfernen oder auskommentieren. In einigen Fällen führt die +Änderung einer Länge oder einer internen Anweisung von +\Class{scrlettr} auch zu einer Fehlermeldung, da die entsprechenden +Längen oder Anweisungen in \Class{scrlttr2} nicht mehr definiert +sind. Versuchen Sie in dem Fall ebenfalls diese Änderungen zu +entfernen oder auszukommentieren. + +Nach dem Wechsel von \Class{scrlettr} zu \Class{scrlttr2} wird der +alte Beispielbrief allein schon durch Setzen der Option +\Option{KOMAold} verarbeitbar: +\begin{small} +\begin{verbatim} + \documentclass[10pt,KOMAold]{scrlttr2} + \usepackage{ngerman} + \name{\KOMAScript{}-Gruppe} + \address{Klassengasse 1\\12345 \LaTeX{}hausen} + \signature{Euer \KOMAScript{}-Team} + \begin{document} + \begin{letter}{Die \KOMAScript{}-Nutzer\\ + Irgendwo\\weltweit} + \opening{Liebe \KOMAScript{}-Nutzer,} + das \KOMAScript{}-Team m"ochte Euch mit ein paar + Informationen .... + \closing{Viel Spa"s} + \end{letter} + \end{document} +\end{verbatim} +\end{small} + +Der nächste Schritt kann dann darin bestehen, dass man eben nicht mehr +das Layout der alten Klasse nachbilden, aber trotzdem nicht auf die +alten Anweisungen verzichten will. Will man beispielsweise das Layout +von \Option{DIN}, so gibt man einfach diese Option zusätzlich und +\emph{nach} der Option \Option{KOMAold} an: +\begin{small} +\begin{verbatim} + \documentclass[10pt,KOMAold,DIN]{scrlttr2} + \usepackage{ngerman} + \name{\KOMAScript{}-Gruppe} + \address{Klassengasse 1\\12345 \LaTeX{}hausen} + \signature{Euer \KOMAScript{}-Team} + \begin{document} + \begin{letter}{Die \KOMAScript{}-Nutzer\\ + Irgendwo\\weltweit} + \opening{Liebe \KOMAScript{}-Nutzer,} + das \KOMAScript{}-Team m"ochte Euch mit ein paar + Informationen .... + \closing{Viel Spa"s} + \end{letter} + \end{document} +\end{verbatim} +\end{small} +Durch weitere Optionen kann das Aussehen auch weiter beeinflusst +werden. Ich empfehle stattdessen aber gleich noch einen Schritt weiter +zu gehen. + +Der letzte Schritt besteht dann darin, alle alten Anweisungen durch +die neuen Entsprechungen zu ersetzen und die Option \Option{KOMAold} +zu entfernen. Bei der Ersetzung kann es nützlich sein, einen Blick in +die Datei \File{KOMAold.lco} zu werfen. In dieser sind die alten +Befehle mit Hilfe der neuen Variablen und Anweisungen nachgebildet. +\begin{small} +\begin{verbatim} + \documentclass{scrlttr2} + \usepackage{ngerman} + \setkomavar{fromname}{\KOMAScript{}-Gruppe} + \setkomavar{fromaddress}{Klassengasse 1\\ + 12345 \LaTeX hausen} + \setkomavar{signature}{Euer \KOMAScript{}-Team} + \let\raggedsignature=\raggedright + \begin{document} + \begin{letter}{Die \KOMAScript-Nutzer\\ + Irgendwo\\ + weltweit} + \opening{Liebe \KOMAScript-Nutzer,} + das \KOMAScript-Team m"ochte Euch mit ein paar + Informationen .... + \closing{Viel Spa"s} + \end{letter} + \end{document} +\end{verbatim} +\end{small} +In diesem Beispiel wurde außerdem von der Möglichkeit Gebrauch +gemacht, die Anordnung des Schlussgrußes und der Signatur durch +Änderung der Anweisung \Macro{raggedsignature} zu beeinflussen. Dies ist +immer dann empfehlenswert, wenn die Signatur erheblich breiter als die +Grußfloskel ist. + + +\section{Autoren} +\label{sec:scrlttr2.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die +Vorlage dafür geliefert. +% In folgender Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\end{itemize} + +% +\EndIndex{Class}{scrlttr2}\EndIndex{}{Briefe} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/datladen.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/datladen.tex new file mode 100644 index 00000000000..16f6389d807 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/datladen.tex @@ -0,0 +1,319 @@ +\ProvidesFile{datladen.tex}[2003/04/10 KOMA-Script Anleitung] +% ========================================================================= +% datladen.tex +% Copyright (c) 2001-2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of +% the LaTeX Project Public License Version 1.0 distributed together +% with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ------------------------------------------------------------------------- +% datladen.tex +% Copyright (c) 2001-2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch +% LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Moeglicherweise existiert +% auch eine englische Version der Anleitung. Falls Sie eine solche +% benoetigen, schauen Sie bitte in liesmich.txt nach, ob eine solche +% vorhanden ist. +% ========================================================================= +% +% Modul: datladen.tex +% Autoren: Markus Kohm (MJK) +% Inhalt: Anleitung zu scrlfile, dem Paket fuer hooks vor und nach +% dem Laden anderer Pakete +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% + +\chapter{Paketabhängigkeiten mit \Package{scrlfile} beherrschen} +\label{cha:scrlfile} + +\BeginIndex{Package}{scrlfile} + +\section{Die Sache mit den Paketabhängigkeiten} +\label{sec:scrlfile.dependency} +\begin{Explain} + Die Einführung von \LaTeXe{} brachte 1994 eine Menge Neuerungen im + Umgang mit \LaTeX-Erweiterungen. So stehen dem Paketautor heute eine + ganze Reihe von Befehlen zur Verfügung, um festzustellen, ob ein + anderes Paket oder eine bestimmte Klasse verwendet wird und ob dabei + bestimmte Optionen zur Anwendung kommen. Der Paketautor kann selbst + andere Pakete laden oder diesen Optionen mit auf den Weg geben, für + den Fall, dass sie später noch geladen werden. Es bestand daher die + Hoffnung, dass es künftig unerheblich wäre, in welcher Reihenfolge + Pakete geladen werden. Diese Hoffnung hat sich leider nicht erfüllt. + Immer häufiger definieren unterschiedliche Pakete den gleichen + Befehl neu oder um. Dabei ist es dann sehr entscheidend, in welcher + Reihenfolge die Pakete geladen werden. Manchmal ist das für den + Anwender kaum zu überschauen. In manchen Fällen ist es auch + notwendig, einfach nur in irgendeiner Form auf das Laden eines + anderen Paketes zu reagieren. Auch das ist nicht immer ganz einfach. + + Nehmen wir als einfaches Beispiel das Laden des + \Package{longtable}-Paketes bei Verwendung von \KOMAScript{}. Das + \Package{longtable}-Paket definiert seine eigene Form von + Tabellenüberschriften. Diese passen perfekt zu den + Tabellenüberschriften der Standardklassen. Sie passen aber überhaupt + nicht zu den Voreinstellungen für die Tabellenüberschriften von + \KOMAScript{} und reagieren auch nicht auf die entsprechenden + Möglichkeiten der Konfiguration. Um dieses Problem zu lösen, müssen + die Befehle von \Package{longtable}, die für die + Tabellenüberschriften zuständig sind, von \KOMAScript{} umdefiniert + werden. Allerdings sind die \KOMAScript{}-Klassen bereits + abgearbeitet, wenn das Paket geladen wird. + + Bisher bestand die einzige Möglichkeit, dieses Problem zu lösen + darin, die Umdefinierung mit Hilfe von \Macro{AtBeginDocument} auf + einen späteren Zeitpunkt zu verschieben. Will der Anwender die + entsprechende Anweisung jedoch selbst umdefinieren, so sollte er + dies eigentlich ebenfalls in der Präambel tun. Das kann er jedoch + nicht, weil \KOMAScript{} ihm dabei in die Quere kommt. Er müsste + die Umdefinierung also ebenfalls mit Hilfe von + \Macro{AtBeginDocument} durchführen. + + Aber eigentlich müsste \KOMAScript{} die Abarbeitung gar nicht auf + den Zeitpunkt von \Macro{begin}\PParameter{document} verschieben. Es + würde genügen, wenn sie bis unmittelbar nach dem Laden von + \Package{longtable} verzögert werden könnte. Leider fehlen + entsprechende Anweisungen im \LaTeX-Kern. Das Paket + \Package{scrlfile} bringt hier Abhilfe. + + Ebenso wäre es denkbar, dass man vor dem Laden eines bestimmten + Paketes gerne die Bedeutung eines Makros in einem Hilfsmakro retten + und nach dem Laden des Paketes wieder restaurieren will. Auch das + geht mit \Package{scrlfile}. + + Die Anwendung von \Package{scrlfile} ist nicht auf die Abhängigkeit + von Paketen beschränkt. Auch Abhängigkeiten von anderen Dateien + können berücksichtigt werden. So kann beispielsweise dafür gesorgt + werden, dass das nicht unkritische Laden einer Datei wie + \File{french.ldf} automatisch zu einer Warnung führt. + + Obwohl das Paket in erster Linie für andere Paketautoren interessant + sein dürfte, gibt es durchaus auch Anwendungen für normale + \LaTeX-Benutzer. Deshalb sind in diesem Kapitel auch für beide + Gruppen Beispiele aufgeführt. +\end{Explain} + + +\section{Aktionen vor und nach dem Laden} +\label{sec:scrlfile.macros} + +\begin{Declaration} + \Macro{BeforeFile}\Parameter{Datei}\Parameter{Anweisungen}\\ + \Macro{AfterFile}\Parameter{Datei}\Parameter{Anweisungen} +\end{Declaration}% +\BeginIndex{Cmd}{BeforeFile}% +\BeginIndex{Cmd}{AfterFile}% +Mit Hilfe von \Macro{BeforeFile} kann dafür gesorgt werden, dass +\PName{Anweisungen} erst vor dem nächsten Laden einer bestimmten +\PName{Datei} ausgeführt werden. Vergleichbar arbeitet +\Macro{AfterFile}. Nur werden die \PName{Anweisungen} hier erst nach +dem Laden der \PName{Datei} ausgeführt. Wird die Datei nie geladen, so +werden die \PName{Anweisungen} auch nie ausgeführt. + +\begin{Explain} + Um die Funktionalität bereitstellen zu können, bedient sich + \Package{scrlfile} der bekannten \LaTeX-Anweisung + \Macro{InputIfFileExists}. Diese wird hierzu umdefiniert. Falls die + Anweisung nicht die erwartete Definition hat, gibt + \Package{scrlfile} eine Warnung aus. Dies geschieht für den Fall, + dass die Anweisung in späteren \LaTeX-Versionen geändert wird oder + bereits von einem anderen Paket umdefiniert wurde. + + Die Anweisung \Macro{InputIfFileExists} wird von \LaTeX{} immer + verwendet, wenn eine Datei geladen werden soll. Dies geschieht + unabhängig davon, ob die Datei mit \Macro{LoadClass}, + \Macro{documentclass}, \Macro{usepackage}, \Macro{RequiresPackage}, + \Macro{include} oder Ähnlichem geladen wird. Lediglich die Anweisung +\begin{verbatim} + \input foo +\end{verbatim} + lädt die Datei \texttt{foo} ohne Verwendung von + \Macro{InputIfFileExists}. Sie sollten daher stattdessen immer +\begin{verbatim} + \input{foo} +\end{verbatim} + verwenden. Beachten Sie die Klammern um den Dateinamen! +\end{Explain} +% +\EndIndex{Cmd}{BeforeFile}% +\EndIndex{Cmd}{AfterFile}% + +\begin{Declaration} + \Macro{BeforeClass}\Parameter{Klasse}\Parameter{Anweisungen}\\ + \Macro{BeforePackage}\Parameter{Paket}\Parameter{Anweisungen} +\end{Declaration}% +\BeginIndex{Cmd}{BeforeClass}% +\BeginIndex{Cmd}{BeforePackage}% +Diese beiden Befehle arbeiten genau wie \Macro{BeforeFile} mit dem +winzigen Unterschied, dass die \PName{Klasse} beziehungsweise das +\PName{Paket} mit seinem Namen und nicht mit seinem Dateinamen +angegeben wird. Die Endungen \File{.cls} und \File{.sty} entfallen +hier also. +% +\EndIndex{Cmd}{BeforeClass}% +\EndIndex{Cmd}{BeforePackage}% + +\begin{Declaration} + \Macro{AfterClass}\Parameter{Klasse}\Parameter{Anweisungen}\\ + \Macro{AfterClass*}\Parameter{Klasse}\Parameter{Anweisungen}\\ + \Macro{AfterPackage}\Parameter{Paket}\Parameter{Anweisungen}\\ + \Macro{AfterPackage*}\Parameter{Paket}\Parameter{Anweisungen} +\end{Declaration}% +\BeginIndex{Cmd}{AfterClass}% +\BeginIndex{Cmd}{AfterClass*}% +\BeginIndex{Cmd}{AfterPackage}% +\BeginIndex{Cmd}{AfterPackage*}% +Die Anweisungen \Macro{AfterClass} und \Macro{AfterPackage} arbeiten +wie \Macro{AfterFile} mit dem winzigen Unterschied, dass die +\PName{Klasse} beziehungsweise das \PName{Paket} mit seinem Namen und +nicht mit seinem Dateinamen angegeben wird. Die Endungen \File{.cls} +und \File{.sty} entfallen hier also. Bei den Sternvarianten gibt es +eine zusätzliche Funktionalität. Ist die entsprechende Klasse oder das +entsprechende Paket bereits geladen, so werden die \PName{Anweisungen} +nicht nach dem nächsten Laden, sondern unmittelbar ausgeführt. +% +\EndIndex{Cmd}{AfterClass}% +\EndIndex{Cmd}{AfterClass*}% +\EndIndex{Cmd}{AfterPackage}% +\EndIndex{Cmd}{AfterPackage*}% + +\begin{Example} + Als Beispiel für Paket- oder Klassenautoren will ich zunächst + erklären, wie \KOMAScript{} selbst Gebrauch von den neuen + Anweisungen macht. Dazu findet sich in \Class{scrbook} + beispielsweise Folgendes: + \begin{small} +\begin{verbatim} +\AfterPackage{hyperref}{% + \@ifpackagelater{hyperref}{2001/02/19}{}{% + \ClassWarningNoLine{scrbook}{% + You are using an old version of hyperref package!% + \MessageBreak% + This version has a buggy hack at many drivers% + \MessageBreak% + causing \string\addchap\space to behave strange.% + \MessageBreak% + Please update hyperref to at least version + 6.71b}}} +\end{verbatim} + \end{small} + Alte Versionen von \Package{hyperref} definierten ein Makro von + \Class{scrbook} in einer Weise um, so dass es mit neueren Versionen + von \KOMAScript{} nicht mehr funktioniert. Neuere Versionen von + \Package{hyperref} unterlassen dies, wenn sie eine neuere Version + von \KOMAScript{} erkennen. Für den Fall, dass \Package{hyperref} + zu einem späteren Zeitpunkt geladen wird, sorgt also \Class{scrbook} + dafür, dass unmittelbar nach dem Laden des Paketes überprüft wird, ob + es sich um eine verträgliche Version handelt. Falls dies nicht der + Fall ist, wird eine Warnung ausgegeben. + + An anderer Stelle findet sich in drei \KOMAScript-Klassen Folgendes: + \begin{small} +\begin{verbatim} + \AfterPackage{caption2}{% + \renewcommand*{\setcapindent}{% +\end{verbatim} + \end{small} + Nach dem Laden von \Package{caption2} und nur falls das Paket + geladen wird, wird hier die \KOMAScript-Anweisung + \Macro{setcapindent} umdefiniert. Der Inhalt der Umdefinierung ist + für dieses Beispiel unerheblich. Es sei nur erwähnt, dass + \Package{caption2} die Kontrolle über die \Macro{caption}-Anweisung + übernimmt und daher die normale Definition von \Macro{setcapindent} + keinerlei Wirkung mehr hätte. Die Umdefinierung verbessert dann die + Zusammenarbeit mit \Package{caption2}. + + Es gibt aber auch Beispiele für den sinnvollen Einsatz der neuen + Anweisungen durch normale Anwender. Angenommen, Sie erstellen ein + Dokument, aus dem sowohl eine PS-Datei mit \LaTeX{} und dvips als auch + eine PDF-Datei mit pdf\LaTeX{} erstellt werden soll. Das Dokument soll + außerdem Hyperlinks aufweisen. Im Tabellenverzeichnis haben Sie + Einträge, die über mehrere Zeilen gehen. Nun gibt es zwar mit + pdf\LaTeX{} bei der PDF-Ausgabe keine Probleme, da dort Links + umbrochen werden können. Bei Verwendung des + \Package{hyperref}-Treibers für dvips oder + hyper\TeX{} ist dies jedoch nicht + möglich. In diesem Fall hätten Sie gerne, dass bei + \Package{hyperref} die Einstellung \Option{linktocpage} verwendet + wird. Die Entscheidung, welcher Treiber geladen wird, wird bei Ihnen + automatisch von \File{hyperref.cfg} erledigt. Dazu sieht die Datei + beispielsweise wie folgt aus: + \begin{small} +\begin{verbatim} + \ProvidesFile{hyperref.cfg} + \@ifundefined{pdfoutput}{\ExecuteOptions{dvips}} + {\ExecuteOptions{pdftex}} + \endinput +\end{verbatim} + \end{small} + + Alles weitere kann nun \Macro{AfterFile} überlassen werden: + \begin{small} +\begin{verbatim} + \documentclass{article} + \usepackage{scrlfile,ngerman} + \AfterFile{hdvips.def}{\hypersetup{linktocpage}} + \AfterFile{hypertex.def}{\hypersetup{linktocpage}} + \usepackage{hyperref} + \begin{document} + \listoffigures + \clearpage + \begin{figure} + \caption{Dies ist ein Beispiel mit einer + Abbildungsunterschrift, die etwas länglich ist und + bei der trotzdem auf die Verwendung des optionalen + Arguments verzichtet wurde} + \end{figure} + \end{document} +\end{verbatim} + \end{small} + Egal, ob nun der \Package{hyperref}-Treiber \Option{hypertex} oder + \Option{dvips} zu Anwendung kommt, wird die dann nützliche + Einstellung \Option{linktocpage} verwendet. Wenn Sie jedoch mit + pdf\LaTeX{} eine PDF-Datei erstellen, wird darauf verzichtet. +\end{Example} + +\begin{Explain} + Übrigens können Sie das Laden von \Package{scrlfile} und die + \Macro{AfterFile}-Anweisungen auch in Ihre private + \File{hyperref.cfg} einfügen. Verwenden Sie dabei jedoch zum Laden + des Paketes besser \Macro{RequiresPackage} an Stelle von + \Macro{usepackage} (siehe \cite{latex:clsguide}). Die neuen Zeilen + müssen in obigem Beispiel unmittelbar nach der + \Macro{ProvidesFile}-Zeile, also unbedingt vor der Ausführung der + Optionen \Option{dvips} oder \Option{pdftex}, eingefügt werden. +\end{Explain} +\EndIndex{Package}{scrlfile} + + +\section{Autoren} +\label{sec:scrlfile.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die Vorlage +dafür geliefert. +% In folgender Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item Markus Kohm \TextEMail{Markus.Kohm@gmx.de} +\end{itemize} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/datmzeit.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/datmzeit.tex new file mode 100644 index 00000000000..6c66efe6958 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/datmzeit.tex @@ -0,0 +1,230 @@ +\ProvidesFile{datmzeit.tex}[2004/09/05 KOMA-Script Anleitung] +% ============================================================================ +% datmzeit.tex +% Copyright (c) 2001-2004 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% datmzeit.tex +% Copyright (c) 2001-2004 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Datum- und Zeitroutinen +% Autoren: Markus Kohm (MJK) +% Inhalt: Erweiterte Ausgaben von Datum und Zeit mit scrdate und scrtime +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% + +\chapter{Wochentag und Uhrzeit mit \Package{scrdate} und \Package{scrtime}} +\label{cha:datetime} + +Zu \KOMAScript{} gehören auch zwei Pakete, um den Umgang mit +Datum\Index{Datum} und Zeit\Index{Zeit} über die beiden +Standardbefehle \Macro{today} und \Macro{date} hinaus zu +erweitern. Ebenso wie die anderen Pakete aus {\KOMAScript} können +diese Pakete auch mit den Standardklassen verwendet werden. + +\section{Der aktuelle Wochentag mit \Package{scrdate}} +\label{sec:datetime.scrdate} +\BeginIndex{Package}{scrdate} + +\begin{Declaration} + \Macro{todaysname} +\end{Declaration}% +\BeginIndex{Cmd}{todaysname}% +Bekanntlich erhält man mit \Macro{today}\IndexCmd{today} das aktuelle +Datum in der landestypischen Schreibweise. \Package{scrdate} bietet +mit \Macro{todaysname} eine Anweisung, um den aktuellen Wochentag zu +erhalten. +\begin{Example} + Sie wollen in Ihrem Dokument ausgeben, an welchem Tag es mit + \LaTeX{} in eine \File{dvi}-Datei übersetzt wurde. Sie schreiben + dazu + \begin{small} +\begin{verbatim} + Dieses Dokument wurde an einem {\todaysname} übersetzt. +\end{verbatim} + \end{small} + und erhalten beispielsweise: + \begin{quote} + Dieses Dokument wurde an einem {\todaysname} übersetzt. + \end{quote} +\end{Example} +\begin{Explain} + \textbf{Tipp:} Wenn Sie den Namen des Tages in Kleinbuchstaben + benötigen, weil das in der entsprechenden Sprache innerhalb des + Satzes so üblich ist, können Sie das erreichen, obwohl die Namen der + Wochentage in \Package{scrdate} alle groß geschrieben sind. In + diesem Fall können Sie einfach auf die \LaTeX-Anweisung + \Macro{MakeLowercase} zurückgreifen und + \Macro{MakeLowercase}\PParameter{\Macro{todaysname}} schreiben. +\end{Explain} +\EndIndex{Cmd}{todaysname} + +\begin{Declaration} + \Macro{nameday}\Parameter{Name} +\end{Declaration}% +\BeginIndex{Cmd}{nameday}% +So wie mit \Macro{date}\IndexCmd{date} die Ausgabe von \Macro{today} +direkt geändert werden kann, setzt \Macro{nameday} die Ausgabe von +\Macro{todaysname} auf den Wert \PName{Name}. +\begin{Example} + Sie setzen mit \Macro{date} das aktuelle Datum auf einen festen + Wert. Für die Ausgabe des zugehörigen Wochentags interessiert es nur, + dass dieser Tag ein Werktag war. Daher schreiben Sie + \begin{small} +\begin{verbatim} + \nameday{Werktag} +\end{verbatim} + \end{small} + und erhalten so mit dem Satz aus dem vorherigen Beispiel: + \begin{quote}\nameday{Werktag} + Dieses Dokument wurde an einem {\todaysname} übersetzt. + \end{quote} +\end{Example} +\EndIndex{Cmd}{nameday} + +Das \Package{scrdate}-Paket beherrscht derzeit die Sprachen Englisch +(english and USenglish), Deutsch (german, ngerman und austrian), +Französisch (french), Italienisch (italian), Spanisch (spanish) und +Kroatisch (croatian), kann aber auch für andere Sprachen konfiguriert +werden. Näheres dazu entnehme man \File{scrdate.dtx}. + +Bei der aktuellen Version ist es egal, ob \Package{scrdate} vor oder +nach \Package{german}\IndexPackage{german}, +\Package{babel}\IndexPackage{babel} oder ähnlichen Paketen geladen +wird, in jedem Falle wird die korrekte Sprache +gewählt. + +\begin{Explain} + Etwas genauer ausgedrückt: Solange die Sprachauswahl in einer zu + \Package{babel}\IndexPackage{babel} bzw. + \Package{german}\IndexPackage{german} kompatiblen Form erfolgt und + die Sprache \Package{scrdate} bekannt ist, wird die Sprache korrekt + gewählt. Ist dies nicht der Fall, werden (US-)englische Ausdrücke + verwendet. +\end{Explain} +\EndIndex{Package}{scrdate} + +\section{Die aktuelle Zeit mit \Package{scrtime}} +\label{sec:datetime.scrtime} +\BeginIndex{Package}{scrtime} + +\begin{Declaration}% + \Macro{thistime}\OParameter{Trennung}\\ + \Macro{thistime*}\OParameter{Trennung} +\end{Declaration}% +\BeginIndex{Cmd}{thistime}\BeginIndex{Cmd}{thistime*}% +\Macro{thistime} liefert die aktuelle Zeit\Index{Zeit}. Als +Trennbuchstabe zwischen den Werten Stunden, Minuten und Sekunden +wird das optionale Argument \PName{Trennung} verwendet. Die +Voreinstellung ist hierbei das Zeichen "`\PValue{:}"'. + +\Macro{thistime*} funktioniert fast genau wie \Macro{thistime}. Der +einzige Unterschied besteht darin, dass im Gegensatz zu +\Macro{thistime} bei \Macro{thistime*} die Minutenangaben bei Werten +kleiner 10 nicht durch eine vorangestellte Null auf zwei Stellen +erweitert wird. +\begin{Example} + Die Zeile + \begin{small} +\begin{verbatim} + Ihr Zug geht um \thistime\ Uhr. +\end{verbatim} + \end{small} + liefert als Ergebnisse beispielsweise eine Zeile wie + \begin{quote} + Ihr Zug geht um \thistime\ Uhr. + \end{quote} + oder + \begin{quote} + Ihr Zug geht um 23:09 Uhr. + \end{quote} + \bigskip + Demgegenüber liefert die Zeile + \begin{small} +\begin{verbatim} + Beim nächsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und + 42 Sekunden. +\end{verbatim} + \end{small} + als mögliches Ergebniss etwas wie: + \begin{quote} + Beim nächsten Ton ist es \thistime*[\ Uhr,\ ] Minuten und 42 Sekunden. + \end{quote} + oder + \begin{quote} + Beim nächsten Ton ist es 23\ Uhr,\ 9 Minuten und 42 Sekunden. + \end{quote} +\end{Example} +\EndIndex{Cmd}{thistime}\EndIndex{Cmd}{thistime*} + +\begin{Declaration}% + \Macro{settime}\Parameter{Wert} +\end{Declaration}% +\BeginIndex{Cmd}{settime}% +\Macro{settime} setzt die Ausgabe von \Macro{thistime} und +\Macro{thistime*} auf einen festen \PName{Wert}% +\footnote{Allerdings darf man nicht erwarten, dass nun die Zeit + stillsteht!}. % +Anschließend wird das optionale Argument von \Macro{thistime} bzw. +\Macro{thistime*} ignoriert, da ja die komplette Zeichenkette, die +\Macro{thistime} bzw. \Macro{thistime*} nun liefert, hiermit explizit +festgelegt wurde.% +\EndIndex{Cmd}{settime} + +\begin{Declaration} + \Option{12h}\\ + \Option{24h} +\end{Declaration}% +\BeginIndex{Option}{12h}\BeginIndex{Option}{24h}% +Mit den Optionen \Option{12h} und \Option{24h} kann ausgewählt +werden, ob die Zeit bei \Macro{thistime} und \Macro{thistime*} im +12-Stunden- oder 24-Stunden-Format ausgegeben werden soll. +Voreingestellt ist \Option{24h}% +\footnote{Leider beherrscht das \Package{scrtime}-Paket noch nicht die + Sternzeit nach \textsc{StarTrek}\Index{StarTrek}, ein echter + Mangel!}. % +Die Option verliert bei einem Aufruf von \Macro{settime} ebenfalls ihre +Gültigkeit.% +\EndIndex{Option}{12h}\EndIndex{Option}{24h} +\EndIndex{Package}{scrtime} + +\section{Autoren} +\label{sec:datetime.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die Vorlage +dafür geliefert. +% In folgener Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item Axel Sommerfeldt +\item Markus Kohm \TextEMail{Markus.Kohm@gmx.de} +\end{itemize} +Die Fußnoten stammen von Axel Sommerfeldt. + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/einleit.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/einleit.tex new file mode 100644 index 00000000000..977f090d199 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/einleit.tex @@ -0,0 +1,310 @@ +\ProvidesFile{einleit.tex}[2003/05/26 KOMA-Script Anleitung] +% ============================================================================ +% einleit.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% einleit.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Einleitung +% Autoren: Markus Kohm (MJK) +% Inhalt: Die Einleitung zu dem Dokument +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% + +\chapter{Einleitung} +\label{cha:introduction} + +\section{Vorwort}\label{sec:introduction.preface} + +{\KOMAScript} ist ein sehr komplexes Paket (engl. \emph{bundle}). Dies +ist schon allein darin begründet, dass es nicht nur aus einer einzigen +Klasse (engl. \emph{class}) oder einem einzigen Paket (engl. +\emph{package}), sondern einer Vielzahl derer besteht. Zwar sind die +Klassen als Gegenstücke zu den Standardklassen konzipiert (siehe +\autoref{cha:maincls}), das heißt jedoch insbesondere nicht, +dass sie nur über die Befehle, Umgebungen und Einstellmöglichkeiten +der Standardklassen verfügen oder deren Aussehen als +Standardeinstellung übernehmen. +Die Fähigkeiten von {\KOMAScript} reichen +teilweise weit über die Fähigkeiten der Standardklassen hinaus. +Manche davon sind auch als Ergänzung zu den Grundfähigkeiten des +\LaTeX-Kerns zu betrachten. + +Allein aus dem Vorgenannten ergibt sich schon zwangsläufig, dass die +Dokumentation zu {\KOMAScript} sehr umfangreich ausfällt. Hinzu kommt, +dass {\KOMAScript} in der Regel nicht gelehrt wird. Das heißt, es gibt +keinen Lehrer, der seine Schüler kennt und damit den Unterricht und +das Unterrichtsmaterial entsprechend wählen und anpassen kann. Es wäre +ein Leichtes, die Dokumentation für irgendeine Zielgruppe zu +verfassen. Die Schwierigkeit, der sich die Autoren gegenüber sehen, +besteht jedoch darin, dass eine Anleitung für alle möglichen +Zielgruppen benötigt wird. Wir haben uns bemüht, eine Anleitung zu +erstellen, die für den Informatiker gleichermaßen geeignet ist wie für +die Sekretärin des Fischhändlers. Wir haben uns bemüht, obwohl es sich +dabei eigentlich um ein unmögliches Unterfangen handelt. Ergebnis sind +zahlreiche Kompromisse. Wir bitten jedoch, die Problematik bei +eventuellen Beschwerden zu berücksichtigen und bei der Verbesserung +unserer derzeitigen Lösung zu helfen. + +Trotz des Umfangs der Anleitung bitten wir außerdem darum, im Falle von +Problemen zunächst die Dokumentation zu konsultieren. Hierzu gehören +neben dieser Anleitung auch alle Text-Dokumente, die Bestandteil +des Pakets sind. Sie sind in \File{liesmich.txt} vollständig aufgeführt. + +%\clearpage% HACK: Feintuning, um overfull \vbox zu vermeiden (nicht + % nachmachen!) +\section{Dokumentaufbau}\label{sec:introduction.structure} + +Diese Anleitung enthält sehr wenige Informationen, die speziell für den +\LaTeX-Neuling geschrieben wurden. Es wird als zwingend vorausgesetzt, +dass Dokumente wie \cite{l2kurz} und \cite{latex:usrguide} gelesen und +verstanden sind. Auch das Studium des einen oder anderen Buches zu +\LaTeX{} wird empfohlen. Literaturempfehlungen finden sich +beispielsweise in \cite{DANTE:FAQ}. Der Umfang von \cite{DANTE:FAQ} +ist ebenfalls erheblich. Dennoch wird darum gebeten, das Dokument +nicht nur irgendwo vorliegen zu haben, sondern es mindestens einmal zu +lesen und bei Problemen zu konsultieren. +\iffalse% Nicht in die gedruckte Version! +In \cite{DANTE:FAQ} findet +man übrigens auch einen Tipp, wie man ein A5-Dokument so auf A4-Papier +drucken kann, dass man durch Falten in der Mitte ein Heft daraus +machen kann. Die \KOMAScript-Anleitung liegt im A5-Format vor. +\fi + +\begin{Explain} + Im Gegensatz zu tiefgehender Anfängerinformation sind weiterführende + Informationen und Begründungen in dieser Dokumentation reichlich + vorhanden. Um solche Dokumentteile leichter erkennbar zu machen, + sind sie in einer besonderen Schrift hervorgehoben. Damit ist es + besonders ungeduldigen und uninteressierten Zeitgenossen möglich, + solche Teile zu überspringen. Empfohlen wird dies aber ausdrücklich + nicht. Gleichwohl ist es gut zu wissen, dass diese Teile nicht + zwingend verstanden werden müssen, um {\KOMAScript} anzuwenden. Vor + der Änderung und Kritisierung der Voreinstellungen von + {\KOMAScript}, ist das Studium und Verständnis dieser Teile jedoch + von erheblichem Vorteil. +\end{Explain} + +Die Einteilung der Anleitung in Kapitel und Abschnitte soll ebenfalls dabei +helfen, nur die Teile lesen zu müssen, die tatsächlich von Interesse sind. Um +dies zu erreichen, sind die Informationen zu den einzelnen Klassen und Paketen +nicht über das gesamte Dokument verteilt, sondern jeweils in einem Kapitel +konzentriert. Querverweise in ein anderes Kapitel sind damit in der Regel auch +Verweise auf einen anderen Teil des Gesamtpakets. Da die drei Hauptklassen in +weiten Teilen übereinstimmen, sind sie in einem gemeinsamen Kapitel +zusammengefasst. Die Unterschiede werden deutlich hervorgehoben. Soweit dies +sinnvoll ist, geschieht es auch durch eine entsprechende Randnotiz. Wenn etwas +nur die Klasse \Class{scrartcl}\OnlyAt{\Class{scrartcl}} betrifft, kann +dies beispielsweise wie in diesem Absatz erfolgen. + +\section{Die Geschichte von \KOMAScript}\label{sec:introduction.history} + +\begin{Explain} + Anfang der 90er~Jahre wurde Frank Neukam damit beauf"|tragt, ein + Vorlesungsskript zu setzen. Damals war noch \LaTeX2.09 aktuell und + es gab keine Unterscheidung nach Klassen und Paketen, sondern alles + waren Stile (engl. \emph{styles}). Die Standarddokumentstile + erschienen ihm für ein Vorlesungsskript nicht optimal und boten auch + nicht alle Befehle und Umgebungen, die er benötigte. + + Zur selben Zeit beschäftigte sich Frank auch mit Fragen der + Typografie, insbesondere mit \cite{JTsch87}. Damit stand für Frank + fest, nicht nur irgendeinen Dokumentstil für Skripten zu erstellen, + sondern allgemein eine Stilfamilie, die den Regeln der europäischen + Typografie folgt. {\Script} war geboren. + + Ich, Markus Kohm, traf auf {\Script} ungefähr um den Jahreswechsel + 1992/1993. Im Gegensatz zu Frank Neukam hatte ich häufig mit + Dokumenten zu tun, für die ich das A5-Format bevorzuge. Zu jenem + Zeitpunkt wurde A5 weder von den Standardklassen noch von {\Script} + unterstützt. Daher dauerte es nicht lange, bis ich erste + Veränderungen an {\Script} vornahm. Diese fanden sich auch in + {\ScriptII} wieder, das im Dezember~1993 von Frank veröffentlicht + wurde. + + Mitte 1994 erschien dann \LaTeXe. Die damit einhergehenden + Änderungen waren tiefgreifend. Daher blieb dem Anwender von + {\ScriptII} nur die Entscheidung, sich entweder auf den + Kompatibilitätsmodus von \LaTeX{} zu beschränken, oder auf {\Script} + zu verzichten. Wie viele andere wollte ich beides nicht. Also machte + ich mich daran, einen \Script-Nachfolger für {\LaTeXe} zu + entwickeln, der am 7.~Juli~1994 unter dem Namen {\KOMAScript} + erschienen ist. Ich will hier nicht näher auf die Wirren eingehen, + die es um die offizielle Nachfolge von {\Script} gab und warum mein + Paket einen neuen Namen hat. Tatsache ist, dass auch aus Franks + Sicht {\KOMAScript} der Nachfolger von {\ScriptII} ist. Zu erwähnen + ist noch, dass {\KOMAScript} ursprünglich ohne Briefklasse + erschienen war. Diese wurde im Dezember~1994 von Axel Kielhorn + beigesteuert. Noch etwas später erstellte Axel Sommerfeldt den + ersten richtigen scrguide zu {\KOMAScript}. + + Seither ist einiges an Zeit vergangen. {\LaTeX} hat sich ein wenig + verändert, die \LaTeX-Landschaft erheblich. {\KOMAScript} hat sich + weiterentwickelt. Es findet nicht mehr allein im deutschsprachigen + Raum Anwender, sondern in ganz Europa, Nordamerika, Australien + und Asien. + Diese Anwenderklientel sucht bei {\KOMAScript} nicht allein nach + einem typografisch ansprechenden Ergebnis. Zu beobachten ist + vielmehr, dass bei {\KOMAScript} ein neuer Schwerpunkt entstanden + ist: Flexibilisierung durch Variabilisierung. Unter diesem + Schlagwort verstehe ich die Möglichkeit, in das Erscheinungsbild an + vielen Stellen eingreifen zu können. Dies führte zu vielen neuen + Makros, die mehr schlecht als recht in die existierende Anleitung + integriert wurden. Irgendwann wurde es damit auch Zeit für eine + komplett überarbeitete Anleitung.\par +\end{Explain} + + +\section{Danksagung}\label{sec:introduction.thanks} +Eine Danksagung in der Einleitung? Gehört sie nicht vielmehr an den +Schluss? Richtig! Eigentlich gehört die an das Ende. Mein Dank gilt +hier jedoch nicht primär denjenigen, die diese Anleitung möglich +gemacht haben. Für den Dank an die Guide-Autoren mache ich den Leser +zuständig! Mein persönlicher Dank gilt Frank Neukam, ohne dessen +\Script-Familie es vermutlich {\KOMAScript} nie gegeben hätte. Mein +Dank gilt denjenigen, die an der Entstehung von {\KOMAScript} und den +Anleitungen mitgewirkt haben. Stellvertretend für andere möchte ich +hier Jens-Uwe Morawski und Torsten Krüger nennen. Jens unermüdlichem +Einsatz ist neben vielem Anderen die englische Übersetzung der +Anleitung zu verdanken. Torsten war der beste Betatester, den ich je +hatte. Er hat damit insbesondere an der Verwendbarkeit von +\Class{scrlttr2} und \Class{scrpage2} einen erheblichen Anteil. Mein +Dank gilt auch allen, die mich immer wieder aufgemuntert haben, weiter +zu machen und dieses oder jenes noch besser, weniger fehlerhaft oder +schlicht zusätzlich zu implementieren. + +Ganz besonderen Dank bin ich den Gründern von DANTE, Deutschsprachige +Anwendervereinigung \TeX~e.V\kern-.18em., schuldig, durch die letztlich die +Verbreitung von \TeX{} und \LaTeX{} und allen Paketen einschließlich +{\KOMAScript} an einer zentralen Stelle überhaupt ermöglicht wird. In gleicher +Weise bedanke ich mich bei den aktiven Helfern in der Usenet-Gruppe +\texttt{de.comp.text.tex} und der Mailingliste +\texttt{\TeX-D-L} \cite{DANTE:FAQ}, die mir so +manche Antwort auf Fragen zu {\KOMAScript} abnehmen. + + +\section{Rechtliches}\label{sec:introduction.legal} +{\KOMAScript} steht unter der {\LaTeX} Project Public Licence. Eine nicht +offizielle deutsche Übersetzung ist Bestandteil dieses Pakets. In allen +Zweifelsfällen gilt im deutschsprachigen Raum der Text \File{LEGALDE.TXT}, +während in allen anderen Ländern der Text \File{LEGAL.TXT} anzuwenden ist. + +Für die Korrektheit der Anleitung, Teile der Anleitung oder einer anderen in +diesem Paket enthaltenen Dokumentation wird keine Gewähr übernommen. + + +\section{Installation}\label{sec:introduction.installation} +Die Installation von {\KOMAScript} wird in den Dateien \File{liesmich.txt} und +\File{INSTALLDE.TXT} beschrieben. Beachten Sie dazu auch die jeweilige +Dokumentation zu der installierten \TeX-Distribution. + + +\section{Fehlermeldungen} +\label{sec:introduction.errors} +Sollten Sie der Meinung sein, dass Sie einen Fehler in der Anleitung, +einer der \KOMAScript-Klassen, einem der \KOMAScript-Pakete oder einem +anderen Bestandteil von \KOMAScript{} gefunden haben, so sollten Sie +wie folgt vorgehen. Prüfen Sie zunächst, ob inzwischen eine neue +Version von \KOMAScript{} erschienen ist. Installieren Sie diese neue +Version gegebenenfalls und kontrollieren Sie, ob der Fehler oder das +Problem auch dann noch vorhanden ist. + +Wenn es sich nicht um einen Fehler in der Dokumentation handelt und +der Fehler oder das Problem nach einem Update noch immer auf"|tritt, +erstellen Sie bitte wie in \cite{DANTE:FAQ} angegeben ein minimales +Beispiel. Ein solches Beispiel sollte nur einen minimalen Text und +nur die Pakete und Definitionen enthalten, die für die Verdeutlichung +des Fehlers unbedingt notwendig sind. Auf exotische Pakete sollte +möglichst ganz verzichtet werden. +Oft lässt sich ein Problem durch ein minimales Beispiel so weit +eingrenzen, dass bereits vom Anwender selbst festgestellt werden kann, +ob es sich um einen Anwendungsfehler handelt oder nicht. Auch ist so +sehr häufig zu erkennen, welche Pakete oder Klassen konkret das +Problem verursachen und ob es sich überhaupt um ein +\KOMAScript-Problem handelt. Dies können Sie gegebenenfalls +zusätzlich überprüfen, indem Sie statt einer \KOMAScript-Klasse einen +Test mit der entsprechenden Standardklasse vornehmen. Danach ist dann +auch klar, ob der Fehlerbericht an den Autor von \KOMAScript{} oder an +den Autor eines anderen Pakets zu richten ist. Sie sollten spätestens +jetzt noch einmal gründlich die Anleitungen der entsprechenden Paket, +Klassen und \KOMAScript-Bestandteile studieren sowie \cite{DANTE:FAQ} +konsultieren. Möglicherweise existiert ja bereits eine Lösung für Ihr +Problem, so dass sich eine Fehlermeldung erübrigt. + +Für die eigentliche Meldung sollte unbedingt das zu \KOMAScript{} +gehörende interaktive \LaTeX-Dokument \File{komabug.tex} verwendet +werden. Dazu sollte das Programm \File{latex} in einer Shell -- +beispielsweise die Eingabeaufforderung von Windows -- mit dem Parameter +\File{komabug.tex} gestartet werden. Es erfolgt dann ein textueller +Frage-Antwort-Dialog, bei dem eine Nachricht in die Datei +\File{komabug.msg} ausgegeben wird, die alle grundlegenden +Informationen enthält. Im Dokument ist auch die Adresse angegeben, an +die Sie die Meldung schicken können. Bitte beachten Sie unbedingt +die Angaben zum Betreff Ihrer E-Mail in der erzeugten Datei +\File{komabug.msg}. Anfragen, bei denen diese wenigen Punkte beachtet +wurden, werden normalerweise zügig bearbeitet. + +Häufig werden Sie eine Frage zu \KOMAScript{} oder im Zusammenhang mit +\KOMAScript{} lieber öffentlich, beispielsweise in +\texttt{de.comp.text.tex} stellen wollen, als dem \KOMAScript-Autor zu +schreiben. Auch in diesem Fall sollten Sie unbedingt die Version des +\LaTeX-Kerns, die Version der verwendeten Klassen und Pakete und ein +minimales Beispiel angeben. Wenn Sie in diesem Beispiel noch vor +\Macro{documentclass} die Anweisung \Macro{listfiles} +verwenden, können Sie die +Angaben zu den Versionen anschließend der \File{log}-Datei entnehmen. + + +\section{Weitere Informationen} + +Sobald Sie im Umgang mit \KOMAScript{} geübt sind, werden Sie sich +möglicherweise Beispiele zu schwierigeren Aufgaben wünschen. Solche +Beispiele gehen über die Vermittlung von Grundwissen hinaus und sind +daher nicht Bestandteil dieser Anleitung. Auf den Internetseiten des +\KOMAScript{} Documentation Projects \cite{homepage} finden Sie +jedoch weiterführende Beispiele. Diese sind für fortgeschrittene +\LaTeX-Anwender konzipiert. Für Anfänger sind sie wenig oder nicht +geeignet. + + +\section{Autoren}\label{sec:introduction.authors} +Unter dieser Überschrift ist am Ende jedes Kapitels der Dokumentation +zu finden, welche Autoren daran mitgewirkt haben. Der jeweils +zuständige Autor ist dabei fett hervorgehoben. Ist beim zuständigen +Autor eine E-Mail-Adresse angegeben, können Sie diesem auch direkt +schreiben. Bei diesem Kapitel ist das: +\begin{itemize} +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: + diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/addrconv.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/addrconv.tex new file mode 100644 index 00000000000..d65c223b3bb --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/addrconv.tex @@ -0,0 +1,113 @@ +\ProvidesFile{addrconv.tex}[2002/05/21 KOMA-Script Manual] +% ============================================================================ +% addrconv.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% addrconv.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: Database converter for address files +% Authors: Jens-Uwe Morawski (JUM) +% Content: conversion with addrconv/adrconv +% Language: english +% german file: adrkonv.tex +% Date of translated german file: +% 2002/05/21 +% charset of comments: +% US-ASCII +% + +\chapter{Creating address files from a address database}% +\label{cha:addrconv}% +\index{address file}% +\IndexPackage{addrconv} + +In former versions of \KOMAScript{} the package +\Package{addrconv} was a permanent part of +the \KOMAScript{} sytem. + +The chief involvment with \KOMAScript{} was +that with the help of \Package{addrconv} +it was possible to create address files +from a address database in \BibTeX{} format. +Next the address file could be used for +the \KOMAScript{} letter class or with +the package \Package{scraddr}. + +\begin{small} +\begin{verbatim} + @address{HMUS, + name = {Carl McExample}, + title = {Dr.}, + city = {Anywhere}, + zip = 01234, + country = {Great Britain}, + street = {A long Road}, + phone = {01234 / 5 67 89}, + note = {always forget his birthday}, + key = {HMUS}, + } +\end{verbatim} +\end{small} + + +From entries, as can be seen above, address files +can be generated. +For this \Package{addrconv} employs \BibTeX{} and +some \BibTeX{} styles. +Additionally there are some \LaTeX{} files which +help to create various telephon and address lists for +printing. + +The package \Package{addrconv} was indeed a separate +package, since besides what is required for +\KOMAScript{} it includes some interessting features +more. +Therefore the package \Package{addrconv}, +as announced in the previous \KOMAScript{} release, +is removed from the \KOMAScript{} system. + +The package \Package{adrconv}, only one \emph{d}, +replaces \Package{addrconv} entirely. +If it is not included in your \TeX{} distribution then +it can be downloaded from \cite{package:adrconv} and +you can install it separately. + +\section{Authors} +\label{sec:addrconv.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item \textbf{Jens-Uwe Morawski} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/addressf.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/addressf.tex new file mode 100644 index 00000000000..8569b17df1f --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/addressf.tex @@ -0,0 +1,243 @@ +\ProvidesFile{addressf.tex}[2002/10/15 KOMA-Script manual, english] +% ============================================================================ +% addressf.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% addressf.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: scraddr package +% Translation by: Jens-Uwe Morawski +% Contents: Access to Address Files with +% \Package{scraddr} +% Language: English +% Charset of comments: US-ASCII +% Translation of german file: addressen.tex +% Date of translated german file: 2002/10/15 +% + +\chapter{Access to Address Files with \Package{scraddr}} +\label{cha:scraddr} +\BeginIndex{Package}{scraddr} + +\section{Overview}\label{sec:scraddr.overview} +The package \Package{scraddr} is a small extension to +the \KOMAScript{} letter class. +Its aim is to make access to the data of address files +more flexible and easier. +Basically the package implements a new loading mechanism +for address files, which contain address entries of the kind +described in the previous chapter. + +\begin{Declaration} +\Macro{InputAddressFile}\Parameter{file name} +\end{Declaration}% +\BeginIndex{Cmd}{InputAddressFile}% +% +The command \Macro{InputAddressFile} reads the content +of the address file, given as its parameter. +If the file does not exist the command returns an +error message. + +For every entry in the address file the command generates a +set of macros for accessing the data. +First a short reminder of how an address entry is structured. +\begin{Declaration}% + \Macro{adrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{Comment}\Parameter{Key}\\ + % + or\\ + % + \Macro{addrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{F3}\Parameter{F4}\Parameter{Key} +\end{Declaration}% + +The last parameter is the identifier of an entry, thus the +\PName{Key} has to be unique and not blank. If the file contains more +than one entry with the same \PName{Key} value, the last occurrence +will be used. The \PName{Key} should only be composed of letters. +\begin{Declaration} +\Macro{Name}\Parameter{Key}\\ +\Macro{FirstName}\Parameter{Key}\\ +\Macro{LastName}\Parameter{Key}\\ +\Macro{Address}\Parameter{Key}\\ +\Macro{Telephone}\Parameter{Key}\\ +\Macro{FreeI}\Parameter{Key}\\ +\Macro{FreeII}\Parameter{Key}\\ +\Macro{Comment}\Parameter{Key}\\ +\Macro{FreeIII}\Parameter{Key}\\ +\Macro{FreeIV}\Parameter{Key} +\end{Declaration}% +\BeginIndex{Cmd}{Name}\BeginIndex{Cmd}{FirstName}\BeginIndex{Cmd}{LastName}% +\BeginIndex{Cmd}{Address}\BeginIndex{Cmd}{Telephone}\BeginIndex{Cmd}{FreeI}% +\BeginIndex{Cmd}{FreeII}\BeginIndex{Cmd}{FreeIII}\BeginIndex{Cmd}{FreeIV}% +\BeginIndex{Cmd}{Comment}% +% +These commands give access to data of your address file. +The parameter \PName{Key} is the same as in the +\Macro{adrentry} or \Macro{addrentry} command. +In the address of letters often both, first-name and +last-name, are required. +The command \Macro{Name}\PParameter{Key} is an abridgement for +\Macro{FirstName}\PParameter{Key} \Macro{LastName}\PParameter{Key}. + +\EndIndex{Cmd}{InputAddressFile}% +\EndIndex{Cmd}{Name}\EndIndex{Cmd}{FirstName}\EndIndex{Cmd}{LastName}% +\EndIndex{Cmd}{Address}\EndIndex{Cmd}{Telephone}\EndIndex{Cmd}{FreeI}% +\EndIndex{Cmd}{FreeII}\EndIndex{Cmd}{FreeIII}\EndIndex{Cmd}{FreeIV}% +\EndIndex{Cmd}{Comment}% + +\section{Usage}\label{sec:scraddr.usage} + +First of all, we need an address file with valid address entries. +In this example the file has the name \emph{lotr.adr} and contains +the following entries. +\begin{verbatim} + \addrentry{Baggins}{Frodo}% + {The Hill\\ Bag End/Hobbiton in the Shire}{}% + {Bilbo Baggins}{pipe-weed}% + {the Ring-bearer}{Bilbo's heir}{FRODO} + \adrentry{Gamgee}{Samwise}% + {Bagshot Row 3\\Hobbiton in the Shire}{}% + {Rosie Cotton}{taters}% + {the Ring-bearer's faithful servant}{SAM} + \adrentry{Bombadil}{Tom}% + {The Old Forest}{}% + {Goldberry}{trill queer songs}% + {The Master of Wood, Water and Hill}{TOM} +\end{verbatim} + +The \Ord{4} parameter, the telephone number, has been left +blank. If you know the story behind these addresses you +will agree that a telephone number makes no sense here. +The command \Macro{InputAddressFile} is used to load +the address file shown above. +\begin{verbatim} + \InputAddressFile{lotr} +\end{verbatim} + + +With the help of the commands introduced in this chapter +we can now write a letter to the old \textsc{Tom Bombadil}. +In this letter we ask him, if he can remember two +fellow-travelers from Elder Days. + +\begin{verbatim} + \begin{letter}{\Name{TOM}\\\Address{TOM}} + \opening{Dear \FirstName{TOM} \LastName{TOM},} + + or \FreeIII{TOM}, how your delightful \FreeI{TOM} calls + you. + Can you remember Mr.\,\LastName{FRODO}, + strictly speaking \Name{FRODO}, since there was + Mr.\,\FreeI{FRODO} too. + He was \Comment{FRODO} in the Third Age + and \FreeIV{FRODO} + \Name{SAM}, \Comment{SAM}, has attended him. + + Their pasions were very wordly. + \FirstName{FRODO} enjoyed to smoke \FreeII{FRODO}, + his attendant has appreciate a good meal with + \FreeII{SAM}. + + Do you remember? Certainly Mithrandir has told you much + about their deeds and adventures . + \closing{``O spring-time and summer-time + and spring again after!\\ + O wind on the waterfall, + and the leaves' laughter!''} + \end{letter} +\end{verbatim} + +The \Ord{5} and \Ord{6} parameter of the \Macro{adrentry} or +\Macro{adrentry} command are +for free use. They are accessible with the commands \Macro{FreeI} and +\Macro{FreeII}. In this example the \Ord{5} parameter contains the +name of a person who is the most important in the life of the entry's +person, the \Ord{6} contains the person's passion. +The \Ord{7} parameter is a comment or in general also a free +parameter. The commands \Macro{Comment} or \Macro{FreeIII} give +access to the data. Using \Macro{FreeIV} is only valid for +\Macro{addrentry} entries; for \Macro{adrentry} entries it +results in a warning. +\EndIndex{Package}{scraddr} + +\section{Package Warning Options} + +As mentioned above the command \Macro{FreeIV} leads +to a fault if it is used for \Macro{adrentry} entries. + +Therefore \Package{scraddr} supports package options +in order to give the user the possibility to +choose how the package should react in such situation. +It is possible to choose different settings between +\emph{ignore} and \emph{rupture} of the \LaTeX{} run. + +\begin{Declaration} +\Option{adrFreeIVempty}\\ +\Option{adrFreeIVshow}\\ +\Option{adrFreeIVwarn}\\ +\Option{adrFreeIVstop} +\end{Declaration} +% +\BeginIndex{Option}{adrFreeIVempty}\BeginIndex{Option}{adrFreeIVshow} +\BeginIndex{Option}{adrFreeIVwarn}\BeginIndex{Option}{adrFreeIVstop} +% +One of these options can be given in the optional argument +of the \Macro{usepackage} command. The default setting is +\Option{adrFreeIVshow}. + +\begin{labeling}[\,--]{\Option{adrFreeIVempty}} +\item[\Option{adrFreeIVempty}] + the command \Macro{FreeIV} will be ignored +\item[\Option{adrFreeIVshow}] + ``(entry FreeIV undefined at \PName{Key})'' will be + written as warning in the text +\item[\Option{adrFreeIVwarn}] + writes a warning in the log-file +\item[\Option{adrFreeIVstop}] + the \LaTeX{} run will be interrupted with an error message +\end{labeling} +\EndIndex{Option}{adrFreeIVempty}\EndIndex{Option}{adrFreeIVshow} +\EndIndex{Option}{adrFreeIVwarn}\EndIndex{Option}{adrFreeIVstop} + +\section{Authors} +\label{sec:scraddr.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item \textbf{Jens-Uwe Morawski} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/datetime.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/datetime.tex new file mode 100644 index 00000000000..14c4988de23 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/datetime.tex @@ -0,0 +1,233 @@ +\ProvidesFile{datetime.tex}[2002/06/17 KOMA-Script manual english] +% ============================================================================ +% datetime.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% datetime.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: Date and time +% Translation by: Markus Kohm (MJK) +% Contents: Extended output of date and time +% using scrdate and scrtime +% Language: English +% Charset of comments: US-ASCII +% Translation of german file: datmzeit.tex +% Date of translated german file: 2001-10-05 +% + +\chapter{Week-Day and Time Using \Package{scrdate} and \Package{scrtime}} +\label{cha:datetime} + +There are two packages at \KOMAScript{} to improve and extend the +handling of date\Index{date} and time\Index{time}. So you have not +only the standard commands \Macro{today} and \Macro{date}. Like all +the other packages from \KOMAScript{} bundle these two packages may be used +not only with \KOMAScript{} classes but also with standard and many +other classes. + + +\section{The Name of the Current Day of Week Using \Package{scrdate}} +\label{sec:sec:datetime.scrdate} +\BeginIndex{Package}{scrdate} + +\begin{Declaration} + \Macro{todaysname} +\end{Declaration}% +\BeginIndex{Cmd}{todaysname}% +You should know, that you may get the current date with +\Macro{today}\IndexCmd{today} in a language dependend +spelling. \Package{scrdate} offers you the command +\Macro{todaysname}. This results in the name of the current day of +week in a language dependend spelling. +\begin{Example} + At your document you want to show the name of the week-day at which + the \File{dvi}-file was generated using \LaTeX. To do this, you + write: + \begin{small} +\begin{verbatim} + I've done the \LaTeX-run of this document on a \todaysname. +\end{verbatim} + \end{small} + This will result in e.g.: + \begin{quote} + I've done the \LaTeX-run of this document on a \todaysname. + \end{quote} +\end{Example} +\begin{Explain} + \textbf{Tip:} The names of the week-days are saved in + capitalization. So the first letter is a capital letter, all the + others are small letters. But at some languages you also need the + names with a first letter in lower case. You may achieve this using + the standard \LaTeX{} command \Macro{MakeLowercase}. You simply have + to write \Macro{MakeLowercase}\PParameter{\Macro{todaysname}}. +\end{Explain} +\EndIndex{Cmd}{todaysname} + +\begin{Declaration} + \Macro{nameday}\Parameter{name} +\end{Declaration}% +\BeginIndex{Cmd}{nameday}% +You should know, that you may change the output of \Macro{today} using +\Macro{date}\IndexCmd{date}. In a analogous way you can change the +output of \Macro{todaysname} using \Macro{nameday} into \PName{name}. +\begin{Example} + You're changing the current date into a fix value using + \Macro{date}. You are not interested in the name of the day, but + you want to show, that it is a workday. So you set: + \begin{small} +\begin{verbatim} + \nameday{workday} +\end{verbatim} + \end{small} + After this the previous example will result in: + \begin{quote} + I've done the \LaTeX-run of this document on a workday. + \end{quote} +\end{Example} +\EndIndex{Cmd}{nameday} + +Package \Package{scrdate} knows the languages english (english, +american, USenglish, UKenglish and british), german (german, ngerman +and austrian), french, italian, spanish and croatian. If you want to +configure it for other languages, see \File{scrdate.dtx}. + +At current implementation it doesn't matter, if you're loading +\Package{scrdate} before or after +\Package{german}\IndexPackage{german}, +\Package{ngerman}\IndexPackage{ngerman}, +\Package{babel}\IndexPackage{babel} or similar packages. The current +language will be setup at \Macro{begin}\PParameter{document}. + +\begin{Explain} + To explain it a little bit more exactly: While you are using a + language selection, which works in a compatible way to + \Package{babel}\IndexPackage{babel} or + \Package{german}\IndexPackage{german}, the correct language will be + used by \Package{scrdate}. If you are using another language + selection you will get english caption names. At \File{scrdate.dtx} + you will find the description of the \Package{scrdate}-commands for + defining the names. +\end{Explain} +\EndIndex{Package}{scrdate} + + +\section{Getting the Time with Package \Package{scrtime}} +\label{sec:datetime.scrtime} +\BeginIndex{Package}{scrtime} + +\begin{Declaration}% + \Macro{thistime}\OParameter{delimiter}\\ + \Macro{thistime*}\OParameter{delimiter} +\end{Declaration}% +\BeginIndex{Cmd}{thistime}\BeginIndex{Cmd}{thistime*}% +\Macro{thistime} results in the current\Index{time}. +The delimiter between the values of hour and minute +can be given in the optional argument. +The default symbol of the delimiter is "\PValue{:}". + +\Macro{thistime*} works in the same way as \Macro{thistime}. +The difference between both is that the value of the minute +using \Macro{thistime*} is not preceded with zero when its value +is less than 10, thus using \Macro{thistime} the minute-value +has always two places. +\begin{Example} + The line + \begin{small} +\begin{verbatim} + Your train departs at \thistime . +\end{verbatim} + \end{small} + results for example in: + \begin{quote} + Your train departs at \thistime . + \end{quote} + or: + \begin{quote} + Your train departs at 23:09. + \end{quote} + \bigskip + In contrast to the prevous example a line like: + \begin{small} +\begin{verbatim} + This day is already \thistime*[\ hours and\ ] minutes old. +\end{verbatim} + \end{small} + results in: + \begin{quote} + This day is already \thistime*[\ hours and\ ] minutes old. + \end{quote} + or: + \begin{quote} + This day is already 12 hours and 25 minutes old. + \end{quote} +\end{Example} +\EndIndex{Cmd}{thistime}\EndIndex{Cmd}{thistime*} + +\begin{Declaration}% + \Macro{settime}\Parameter{Time} +\end{Declaration}% +\BeginIndex{Cmd}{settime}% +\Macro{settime} sets the output \Macro{thistime} and +\Macro{thistime*} on the value of \PName{Time}. +Afterwards the optinal parameter of \Macro{thistime} or +\Macro{thistime*} is ignored, since the result +of \Macro{thistime} or \Macro{thistime*} +was completely determined using \Macro{settime}.% +\EndIndex{Cmd}{settime} + +\begin{Declaration} + \Option{12h}\\ + \Option{24h} +\end{Declaration}% +\BeginIndex{Option}{12h}\BeginIndex{Option}{24h}% +Using the options \Option{12h} and \Option{24h} one can +select whether the result of \Macro{thistime} and \Macro{thistime*} +is in 12- or in 24-hour format. The default is \Option{24h}.% + +The option has no effect on the results of +\Macro{thistime} and \Macro{thistime*} if \Macro{settime} +has been used.% +\EndIndex{Option}{12h}\EndIndex{Option}{24h} +\EndIndex{Package}{scrtime} + +\section{Authors} +\label{sec:datetime.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item Frank Neukam +\item Markus Kohm \TextEMail{Markus.Kohm@gmx.de} +\item Axel Sommerfeldt +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/headfoot.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/headfoot.tex new file mode 100644 index 00000000000..656b74621c9 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/headfoot.tex @@ -0,0 +1,1478 @@ +\ProvidesFile{headfoot.tex}[2004/09/13 KOMA-Script manual, english] +% ============================================================================ +% headfoot.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% headfoot.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% module: scrpage2 +% authors: Jens-Uwe Morawski +% Markus Kohm +% translation: +% Jens-Uwe Morawski +% Karl-Heinz Zimmer +% Christoph Bier +% content: head and foot lines with scrpage2 +% language: english +% comments encoding: +% US-ASCII +% date of translated german file: 2004/07/06 +% +\chapter{Adapt Head and Foot with \Package{scrpage2}}\label{cha:scrpage} +% +\BeginIndex{Package}{scrpage2}% +% +In \autoref{cha:typearea} this guide referenced a package +to customise the head and foot lines of a document. +This package \Package{scrpage2}, the successor of \Package{scrpage}, +enables the user to create versatile head and foot layouts with +less effort, due to a simple but powerful user interface. + +\BeginIndex{Package}{scrpage}% +% +The package's focus is its good integration into the whole +\KOMAScript{}-bundle, thus it extents the base functionality +of \KOMAScript{} perfectly. +It is very flexible in either its layout and usage, compared to +other packages often to be seen +like \Package{fancyhdr}\cite{package:fancyhdr}. + +Neither \Package{scrpage2} nor \Package{scrpage} must be used +with \KOMAScript{}, the package can be used in any +other document-class environment. +New documents shall base upon the package \Package{scrpage2}, +but the package \Package{scrpage} is always distributed +for compatibility reasons. +The current chapter points to \Package{scrpage2} only. +Commands available in both versions are signed \ScrpageMark{}(see margin), +if the commands of the new version differ from the former one an advice +can be found in marked paragraphs\ScrpageNote{}. +% +\EndIndex{Package}{scrpage} + + +\begin{Explain}% Introduction to headings + \LaTeX{}s head and foot mechanism is a little complicated, thus a + brief view in its depth is needed. + Basically the \LaTeX{}-kernel defines the chief page styles + \PValue{empty} and \PValue{plain}. + The latter writes only a page number in the foot, in contrast + using \PValue{empty} results in blank head and foot. + Besides, many document classes provide the style + \PValue{headings}, which allows more complex style settings. + The \PValue{headings} style often has a subvariant, the + \emph{my}-variant. In contrast to the \PValue{headings} style + the \PValue{myheadings} switches off the automatic update + of the running head, thus it is the users task keeping headings + in sync with the current document content. + A more detailed discription can be found in + \autoref{sec:maincls.pageStyle}. + + Another important note is that some \LaTeX{}-commands + switch to the pagestyle \PValue{plain} for the current page, + independent from what pagestyle was choosen by the author, + consequently the document needs an appropriate + \PValue{plain} pagestyle. + + Therefore \Package{scrpage2} defines its own \PValue{plain} + and \PValue{headings} page styles, named \PValue{scrplain} + and \PValue{scrheadings}. + The manual activation of \PValue{scrplain} is not necessary, + since the activation of \PValue{scrheadings} takes care of it + automatically. + Only if one wants to use his own page style in combination + with \PValue{scrplain}, the page style \PValue{scrplain} has to + be activated first, i.e. \Macro{pagestyle}\Parameter{scrplain}% + \Macro{pagestyle}\Parameter{personalPagestyle}. + + % the following is not required, but included here since first + % page is stretched + The original \PValue{headings} page style of the document class + is available as \PValue{useheadings}. This re-definition is + required since \Package{scrpage2} uses another way to deal with + automatic and manual headings. This way is more flexible and + allows configurations usually difficult to implement for + unexperienced users. The required commands to work with the + \Package{scrpage2} implementation are introduced at the end + of \autoref{sec:scrpage.basics.buildIn} and + the begin of \autoref{sec:scrpage.basics.mark}. +\end{Explain} + +\section{Basic Functionality}\label{sec:scrpage.basics} +\subsection{Predefined Page Styles}\label{sec:scrpage.basics.buildIn} +% \lehead ... +% scrheadings +% \headmark \pagemark + +\begin{Declaration} + \PValue{scrheadings}\\ + \PValue{scrplain} +\end{Declaration}% +\BeginIndex{Pagestyle}{scrheadings}\BeginIndex{Pagestyle}{scrplain}% +\Index{page style}% +% +Package \Package{scrpage2} delivers an own pagestyle, named +\PValue{scrheadings}. +The command \Macro{pagestyle}\PParameter{scrheadings} activates +this page style, likewise +after activation an appropriate \PValue{plain} pagestyle +is available. +In this case \emph{appropriate} meens that the \PValue{plain} +page style is also configureable by the commands introduced in +\autoref{sec:scrpage.basics.format}, which, for example, +configure the head and foot width. +Neither the activation of \PValue{scrheadings} nor \PValue{scrplain} +influences the mode of manual or automatic headings, +see \autoref{sec:scrpage.basics.mark}. + +\begin{Declaration} + \Macro{lehead}% + \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}\\ + \Macro{cehead}% + \OParameter{scrplain-concentric-even}\Parameter{scrheadings-concentric-even}\\ + \Macro{rehead}% + \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}\\ + \Macro{lefoot}% + \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}\\ + \Macro{cefoot}% + \OParameter{scrplain-concentric-even}\Parameter{scrheadings-concentric-even}\\ + \Macro{refoot}% + \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}\\ + \Macro{lohead}% + \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}\\ + \Macro{cohead}% + \OParameter{scrplain-concentric-odd}\Parameter{scrheadings-concentric-odd}\\ + \Macro{rohead}% + \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}\\ + \Macro{lofoot}% + \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}\\ + \Macro{cofoot}% + \OParameter{scrplain-concentric-odd}\Parameter{scrheadings-concentric-odd}\\ + \Macro{rofoot}% + \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}\\ + \Macro{ihead}% + \OParameter{scrplain-inside}\Parameter{scrheadings-inside}\\ + \Macro{chead}% + \OParameter{scrplain-concentric}\Parameter{scrheadings-concentric}\\ + \Macro{ohead}% + \OParameter{scrplain-outside}\Parameter{scrheadings-outside}\\ + \Macro{ifoot}% + \OParameter{scrplain-inside}\Parameter{scrheadings-inside}\\ + \Macro{cfoot}% + \OParameter{scrplain-concentric}\Parameter{scrheadings-concentric}\\ + \Macro{ofoot}% + \OParameter{scrplain-outside}\Parameter{scrheadings-outside} +\end{Declaration}% +\BeginIndex{Cmd}{lehead}\BeginIndex{Cmd}{cehead}\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{ihead}\BeginIndex{Cmd}{chead}\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{lohead}\BeginIndex{Cmd}{cohead}\BeginIndex{Cmd}{rohead}% +\BeginIndex{Cmd}{lefoot}\BeginIndex{Cmd}{cefoot}\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{ifoot}\BeginIndex{Cmd}{cfoot}\BeginIndex{Cmd}{rfoot}% +\BeginIndex{Cmd}{lofoot}\BeginIndex{Cmd}{cofoot}\BeginIndex{Cmd}{rofoot}% +% +The page styles include three boxes either in head and foot. +The commands modifying the content of these boxes can be seen +in \autoref{fig:scrpage.leheadetall}. +Commands in the middle column modify the boxes content on both the odd +and even pages. + +\begin{figure} + \centering + \setlength{\unitlength}{1mm}\begin{picture}(100,65)(0,10)\small + \put(0,12){\dashbox{2}(40,56){even page}} + \put(60,12){\dashbox{2}(40,56){odd page}} + % items top left + \put(1,63){\framebox(8,4){~}} + \put(16,63){\framebox(8,4){~}} + \put(31,63){\framebox(8,4){~}} + % items top right + \put(61,63){\framebox(8,4){~}} + \put(76,63){\framebox(8,4){~}} + \put(91,63){\framebox(8,4){~}} + % items bottom left + \put(1,13){\framebox(8,4){~}} + \put(16,13){\framebox(8,4){~}} + \put(31,13){\framebox(8,4){~}} + % items bottom right + \put(61,13){\framebox(8,4){~}} + \put(76,13){\framebox(8,4){~}} + \put(91,13){\framebox(8,4){~}} + % commands and arrow + % for twoside + % + \put(50,65){\makebox(0,0){\Macro{ihead}}} + \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}} + \put(50,58){\makebox(0,0){\Macro{chead}}} + \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}} + \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}} + \put(50,51){\makebox(0,0){\Macro{ohead}}} + \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}} + \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}} + % + \put(50,15){\makebox(0,0){\Macro{ifoot}}} + \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}} + \put(50,22){\makebox(0,0){\Macro{cfoot}}} + \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}} + \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}} + \put(50,29){\makebox(0,0){\Macro{ofoot}}} + \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}} + \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}} + % commands for oneside + \put(5,69){\makebox(0,0)[b]{\Macro{lehead}}} + \put(20,69){\makebox(0,0)[b]{\Macro{cehead}}} + \put(35,69){\makebox(0,0)[b]{\Macro{rehead}}} + % + \put(65,69){\makebox(0,0)[b]{\Macro{lohead}}} + \put(80,69){\makebox(0,0)[b]{\Macro{cohead}}} + \put(95,69){\makebox(0,0)[b]{\Macro{rohead}}} + % + \put(5,11){\makebox(0,0)[t]{\Macro{lefoot}}} + \put(20,11){\makebox(0,0)[t]{\Macro{cefoot}}} + \put(35,11){\makebox(0,0)[t]{\Macro{refoot}}} + % + \put(65,11){\makebox(0,0)[t]{\Macro{lofoot}}} + \put(80,11){\makebox(0,0)[t]{\Macro{cofoot}}} + \put(95,11){\makebox(0,0)[t]{\Macro{rofoot}}} + \end{picture} + \caption[Commands for modification of + \Package{scrpage2}-pagestyles elements]% + {Commands for modification of pagestyles \PValue{scrheadings} and + \PValue{scrplain} and their association to head and foot elements} + \label{fig:scrpage.leheadetall} +\end{figure} + +\begin{Example} +If one wants the page number be placed in the middle of the +foot, then following can be used: +\begin{small} +\begin{verbatim} + \cfoot{\pagemark} +\end{verbatim} +\end{small} +The next example shows how to place both running head and +page number in the head; the running head inside and the page number +outside. +\begin{small} +\begin{verbatim} + \ohead{\pagemark} + \ihead{\headmark} + \cfoot{} +\end{verbatim} +\end{small} +The command \Macro{cfoot}\PParameter{} is only required in order +to empty the item in middle of the foot, +which normally contains the page number. +\end{Example} + +Using the commands which are associated with only one item +allows more advanced settings. + +\begin{Example} +Assuming one has the order to write an annual report for his +company, he could use commands like this: +\begin{small} +\begin{verbatim} + \ohead{\pagemark} + \rehead{Annual Report 2001} + \lohead{\headmark} + \cefoot{TheCompanyName Inc.} + \cofoot{Department: Development} +\end{verbatim} +\end{small} +In order to keep in sync the data in the foot with the content +of the document, the foot has to be updated using \Macro{cofoot} +when a new department is discussed in the report. +\end{Example} + +As mentioned above, there is an \PValue{plain}-pagestyle which corresponds +to \PValue{scrheadings}. Since it should also be possible to adapt this style, the +commands support an optional argument. Thus the contents of the appropriate +field of the \PValue{plain}-pagestyle can be modified. + +\begin{Example} +The position of the page number for the pagestyle \PValue{scrheadings} +can be declared as follows: +\begin{small} +\begin{verbatim} + \cfoot[\pagemark]{} + \ohead[]{\pagemark} +\end{verbatim} +\end{small} +When now the command \Macro{chapter}, after it has started a new page, +switches to the \PValue{plain}-pagestyle, then the page number +is centered in the foot. +\end{Example} +% +\EndIndex{Pagestyle}{scrheadings}\EndIndex{Pagestyle}{scrplain}% + +\begin{Declaration} + \Macro{clearscrheadings}\\ + \Macro{clearscrplain}\\ + \Macro{clearscrheadfoot} +\end{Declaration}% +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% + +If one wants to redefine both the page style \PValue{scrheadings} +and the \PValue{plain} page style, frequently one must delete +some already occupied page items. Since one fills all items +rarely with new contents, in most cases several +instruction with empty parameters are necessary. +With the help of these three instructions the deletion is fast and +thoroughly possible. +While \Macro{clearscrheadings} only deletes all fields of the +page style \PValue{scrheadings} and \Macro{clearscrplain} deletes +all fields of the appropriate \PValue{plain} page style, +\Macro{clearscrheadfoot} sets all fields of both page styles on +empty contents. + +\begin{Example} +If one wants to reset the page style to the default \KOMAScript{} settings, +independent from the actual configuration, only these three commands are +sufficient. +\begin{small} +\begin{verbatim} + \clearscrheadfoot + \ohead{\headmark} + \ofoot[\pagemark]{\pagemark} +\end{verbatim} +\end{small} +Without the commands \Macro{clearscrheadfoot}, +\Macro{clearscrheadings} and \Macro{clearscrplain} +6 commands with 9 empty arguments are required. + + \begin{small} +\begin{verbatim} + \ihead[]{} + \chead[]{} + \ohead[]{\headmark} + \ifoot[]{} + \cfoot[]{} + \ofoot[\pagemark]{\pagemark} +\end{verbatim} + \end{small} + Of course, assuming a special configuration some of them can + be dropped. +\end{Example} +% +\EndIndex{Cmd}{clearscrheadings}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadfoot}% +% +\EndIndex{Cmd}{lehead}\EndIndex{Cmd}{cehead}\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{ihead}\EndIndex{Cmd}{chead}\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{lohead}\EndIndex{Cmd}{cohead}\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{lefoot}\EndIndex{Cmd}{cefoot}\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{ifoot}\EndIndex{Cmd}{cfoot}\EndIndex{Cmd}{rfoot}% +\EndIndex{Cmd}{lofoot}\EndIndex{Cmd}{cofoot}\EndIndex{Cmd}{rofoot}% + +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark} +\end{Declaration}% +\BeginIndex{Cmd}{leftmark}\BeginIndex{Cmd}{rightmark}% +These two instructions make it possible to access the running headlines, +which are normally meant for the left or for the right page. These two +instruction are not made available by scrpage or scrpage2, but directly +by the \LaTeX{} kernel. If in this section running headline of the +left side or the right page are mentioned, +then the contents of \Macro{leftmark} or \Macro{rightmark} +is meant. +% +\EndIndex{Cmd}{leftmark}\EndIndex{Cmd}{rightmark}% + +\medskip +In previous examples two commands already have been used, which +haven't been introduced yet. Now, the description of these +commands shall follow. + +\BeginIndex{Cmd}{headmark} +\begin{Declaration} +\Macro{headmark} +\end{Declaration}% +\ScrpageMark{}% +This command gives access to the content of running heads. +In contrast to \Macro{leftmark} and \Macro{rightmark}, one +need not regard the proper assignment to left or right page. +\EndIndex{Cmd}{headmark} + +\BeginIndex{Cmd}{pagemark} +\begin{Declaration} +\Macro{pagemark} +\end{Declaration}% +\ScrpageMark{}% +This command returns the formatted page number. The formatting +can be controlled by \Macro{pnumfont} introduced in +\autoref{sec:scrpage.basics.format} or by \Macro{setkomafont} +if a newer version \KOMAScript{} is used, see \autoref{sec:maincls.font}. +% the last describtion \setkomafont ... is only fill-text +\EndIndex{Cmd}{pagemark} + +\BeginIndex{Cmd}{pagestyle}\BeginIndex{Pagestyle}{useheadings} +\begin{Declaration} +\Option{useheadings} +\end{Declaration}% +The package \Package{scrpage2} is meant primarily for the fact that the supplied +styles are used or own styles are defined. However it can be necessary +to shift back also to the style provided by the document class. +It would be obvious to do this with \Macro{pagestyle}\PParameter{headings}, +but this has however the disadvantage that commands +\Macro{automark} and \Macro{manualmark} discussed in the following +do not function as expected. +For this reason one should shift back to the original styles using +\Macro{pagestyle}\PParameter{useheadings}. +Such a switching has then no effect on it whether one +operates with manual or automatic running headlines. +% +\EndIndex{Cmd}{pagestyle}\EndIndex{Pagestyle}{useheadings} + +\subsection{Manual and Automatic Headings} +\label{sec:scrpage.basics.mark} +% \automark \manualmark +% +Usually there is a \emph{my}-version of the \PValue{headings}-style. +If such a style is active, then the running headlines are +updated no longer automatically. +With \Package{scrpage2} another path is taken. Whether the running +headlines are living or not, determines the instructions \Macro{automark} +and \Macro{manualmark}. +The default can be also already influenced while the loading of the +package with the options \Option{automark} and \Option{manualmark}, +see \autoref{sec:scrpage.basics.options} +on \autopageref{page:scrpage.automark}. + +\BeginIndex{Cmd}{manualmark} +\begin{Declaration} +\Macro{manualmark} +\end{Declaration}% +As the name already clarifies, \Macro{manualmark} switches off the updating +of the running headlines. It is left to the user to provide for +updating or for contents of the running headlines. +For that purpose the instructions \Macro{markboth}\IndexCmd{markboth} +und \Macro{markright}\IndexCmd{markright} are available. +\EndIndex{Cmd}{manualmark} + +\BeginIndex{Cmd}{automark} +\begin{Declaration} + \Macro{automark}\OParameter{right page}\Parameter{left page} +\end{Declaration}% +The macro \Macro{automark} however activates the automatic updating. +For the two parameters the designations of the document level +are to be used, whose title in appropriate place is to appear. +Valid values for the parameters are: +\PValue{part}\ChangedAt{2.2}{\Package{scrpage2}}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph}, \PValue{subparagraph}. +For most of the classes usage of \PValue{part} will not produce +the expected results. So far only \KOMAScript\ classes from version~2.9s +up are known to support this value. + +The optional argument \PName{right page} is meant understandably only for +two-sided documents. +In the one-sided case you should normally not use it. +With the help of the option \Option{autooneside} one can also adjust +that the optional argument in one-sided mode is ignored automatically, +see \autoref{sec:scrpage.basics.options}. +% +\begin{Example} +Assuming that the document uses a \emph{book} class, +which topmost section level is \emph{chapter}, +then after a preceding \Macro{manualmark} +\begin{small} +\begin{verbatim} + \automark[section]{chapter} +\end{verbatim} +\end{small} +restores the original behaviour. +If one prefers one of the lower section levels in running head +following can be used. +\begin{small} +\begin{verbatim} + \automark[subsection]{section} +\end{verbatim} +\end{small} +How useful the last declaration is, everybody has to decide +for oneself. +\end{Example} + +\begin{Explain} +The data of the headings is set by the command +\Macro{markboth}\IndexCmd{markboth} for the top-most +section levels, for the lower levels +\Macro{markright}\IndexCmd{markright} or +\Macro{markleft}\IndexCmd{markleft} are used. +These commands are called indirectly by the sectioning commands. +The macro \Macro{markleft} is provided by the package +\Package{scrpage2}. +Its definition is similar to \Macro{markright} originating from +the \LaTeX{} kernel. +Although \Macro{markleft} is not defined as an internal command, +the direct use is not recommended. +\end{Explain} +\EndIndex{Cmd}{automark} + + +\subsection{Formatting of Heading and Footing} +\label{sec:scrpage.basics.format} +% \headfont \pnumfont +% \setheadwidth \setfootwidth +% \set(head|foot)(top|sep|bot)line +In the previous paragraph it concerned mainly contentwise things. Is +not sufficient naturally, in order to satisfy the formative +ambitions. Therefore it is to turn in this paragraph exclusive therefore. +% +\BeginIndex{Cmd}{headfont}\BeginIndex{Cmd}{pnumfont} +\begin{Declaration} +\Macro{headfont}\\ +\Macro{pnumfont} +\end{Declaration}% +\ScrpageMark{}% +The command \Macro{headfont} contains the commands +which determine the formatting of head and foot lines. +The style of the page number defines the command +\Macro{pnumfont}. +\begin{Example} +If, for example, one wants the head and foot to be typeset in bold +sans-serif and the page number in a slanted style, then it can be +used the configuration: +\begin{small} +\begin{verbatim} + \renewcommand{\headfont}{\normalfont\sffamily\bfseries} + \renewcommand{\pnumfont}{\normalfont\rmfamily\slshape} +\end{verbatim} +\end{small} +\end{Example} +\EndIndex{Cmd}{headfont}\EndIndex{Cmd}{pnumfont} +% +Since version 2.8p of the \KOMAScript{} classes a new +configuration scheme is implemented. +If \Package{scrpage2} is used together with these classes then +it is recommended to setup font attributes the way described +in \autoref{sec:maincls.font}. +\begin{Example} +This interfaces implements the command \Macro{setkomafont} +in order to configure the font attributes. +The previous definition can then be written as: +\begin{small} +\begin{verbatim} + \setkomafont{pagehead}\normalfont\sffamily\bfseries} + \setkomafont{pagenumber}{\normalfont\rmfamily\slshape} +\end{verbatim} +\end{small} +\end{Example} + +\BeginIndex{Cmd}{setheadwidth}\BeginIndex{Cmd}{setfootwidth} +\begin{Declaration} +\Macro{setheadwidth}\OParameter{shift}\Parameter{width}\\ +\Macro{setfootwidth}\OParameter{shift}\Parameter{width} +\end{Declaration}% +Normally the widths of heading and footing line +correspond to the width of the text body. +The commands \Macro{setheadwidth} and \Macro{setfootwidth} enable the +user to adapt in a simple manner the widths to his needs. +The mandatory argument \PName{width} takes up the value for the width +of the page head or foot, +\PName{shift} is a longitudinal dimension for the shift of the +appropriate item toward the outside page edge. + +For the most common situations the mandatory argument \PName{width} +accepts the following symbolic values: +\begin{labeling}[\,--]{\PValue{textwithmarginpar}} +\item[\PValue{paper}] the width of the paper +\item[\PValue{page}] the width of the page +\item[\PValue{text}] the width of the text body +\item[\PValue{textwithmarginpar}] the width of the text body including margin. +\item[\PValue{head}] the current head width +\item[\PValue{foot}] the current foot width +\end{labeling} +The difference between \PValue{paper} and \PValue{page} is, that +\PValue{page} means the width of the paper less the binding correction. +This only applies if the package \Package{typearea}\IndexPackage{typearea} +is used (see \autoref{cha:typearea}). +Without \Package{typearea} both values are equal. + +\begin{Example} +The layout of the \emph{\LaTeX\,Companion}, the head-line projects +into the margin, can be obtained with: +\begin{small} +\begin{verbatim} + \setheadwidth[0pt]{textwithmarginpar} +\end{verbatim} +\end{small} +% +and looks on an odd page like this: +% +\begin{XmpTopPage} + \XmpHeading{10,25}{85} + \thinlines\XmpRule{10,23}{85} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} +% +If the foot-line shall have the same width and alignment, then +two ways are possible. The first simply repeats the settings +for the foot-line: +\begin{small} +\begin{verbatim} + \setfootwidth[0pt]{textwithmarginpar} +\end{verbatim} +\end{small} +% +In the second way the symbolic value \PValue{head} is used, since the +head has already the desired settings. +\begin{small} +\begin{verbatim} + \setfootwidth[0pt]{head} +\end{verbatim} +\end{small} +\end{Example} + +If no \PName{shift} is indicated, +i.e. without the optional argument, then +the heading or the foot appears symmetrically on the page arranged. +A value for the \PName{shift} is determined automatically, which +corresponds to the current page shape. +% +\begin{Example} +According to the previous example the optional argument is abandoned: +\begin{small} +\begin{verbatim} + \setheadwidth{textwithmarginpar} +\end{verbatim} +\end{small} +% +and looks on an odd page like this: +% +\begin{XmpTopPage} + \XmpHeading{5,25}{85} + \thinlines\XmpRule{5,23}{85} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} +\end{Example} + +As to be seen, the heading is now shifted inward, while the +heading width has not changed. +The shift is calculated in a way that the configuration of the typearea +become visible also here. +% +\EndIndex{Cmd}{setheadwidth}\EndIndex{Cmd}{setfootwidth} + +\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline} +\BeginIndex{Cmd}{setfootseptline}\BeginIndex{Cmd}{setfootbotline} +\begin{Declaration} +\Macro{setheadtopline}\OParameter{length}\Parameter{thickness}\OParameter{commands}\\ +\Macro{setheadsepline}\OParameter{length}\Parameter{thickness}\OParameter{commands}\\ +\Macro{setfootsepline}\OParameter{length}\Parameter{thickness}\OParameter{commands}\\ +\Macro{setfootbotline}\OParameter{length}\Parameter{thickness}\OParameter{commands} +\end{Declaration}% +According to the configuration of head and foot there are +commands to modify the lines above and below the head and foot. + +\begin{labeling}[\,--]{\Macro{setfootsepline}} +\item[\Macro{setheadtopline}] configures the line above the head +\item[\Macro{setheadsepline}] configures the line below the head +\item[\Macro{setfootsepline}] configures the line above the foot +\item[\Macro{setfootbotline}] configures the line below the foot +\end{labeling} + +The mandatory argument \PName{thickness} determines, +how strongly the line is drawn. +The optional argument \PName{length} accepts the same symbolic values as +\PName{width} with \Macro{setheadwidth}, as also a normal length expression. +As long as in the document \PName{length} value was not assigned to the +optional argument, the appropriate line length adapts automatically +the width of the heading or the foot. + +Use \PValue{auto} in the length argument to restore this +automatism for the length of a line. + +The\ChangedAt{2.2}{\Package{scrpage2}} +optional argument \PName{commands} may be used to specify additional commands +to be executed before the respective line is drawn. +For example such commands could be used for changing the +color\Index{header>color}\Index{footer>color}\Index{color>in + header}\Index{color>in footer} of that line. +When using a \KOMAScript\ class you could also use +\Macro{setkomafont}\IndexCmd{setkomafont} to specify commands +for one of the elements +\FontElement{headtopline}\IndexFontElement{headtopline}, +\FontElement{headsepline}\IndexFontElement{headsepline}, +\FontElement{footsepline}\IndexFontElement{footsepline}, +\FontElement{footbottomline}\IndexFontElement{footbottomline}, +\FontElement{footbotline}\IndexFontElement{footbotline}. +These could be extended by adding \Macro{addtokomafont}\IndexCmd{addtokomafont}. +See \autoref{sec:maincls.font} for details on the \Macro{setkomafont} and +\Macro{addkomafont} commands. + +\begin{Declaration} +\Macro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{\upshape\PValue{current}}\\ +\Macro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\\ +\Macro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\OParameter{} +\end{Declaration}% +The arguments shown here for the command \Macro{setheadtopline}, +are of course valid for the other three configuration commands, too. + +If the mandatory parameter has the value \PValue{current} or has been +left empty then the line height is not changed. +This may be used to modify the length of the line without changing its height. + +\PName{commands} is an optional argument, if omitted all command setting +will remain active that might have been specified before, while using +an empty \PName{commands} argument will revoke any previously valid +commands. + +\begin{Example} +If the head for example is to be contrasted by a strong line of 2\,pt +above and a normal line of 0.4\,pt between head and body, it can be +achieved with: +\begin{small} +\begin{verbatim} + \setheadtopline{2pt} + \setheadsepline{.4pt} +\end{verbatim} +\end{small} +% +\begin{XmpTopPage} + \XmpHeading{10,25}{70} + \thinlines\XmpRule{10,23}{70} + \thicklines\XmpRule{10,28}{70} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} + +To specify that this line is to be drawn also e.\,g. in red color you +would change the commands like this: +\begin{small} +\begin{verbatim} + \setheadtopline{2pt}[\color{red}] + \setheadsepline{.4pt}[\color{red}] +\end{verbatim} +\end{small} +In this sample as well as in the following one line color is activated +by applying the syntax of the \Package{color}\IndexPackage{color} package, +so this package must be loaded of course. Since \Package{scrpage2} comes +without built-in color handling any package providing color support +may be used. + +\KOMAScript\ classes also support the following way of color specification: +\begin{small} +\begin{verbatim} + \setheadtopline{2pt} + \setheadsepline{.4pt} + \setkomafont{headtopline}[\color{red}] + \setkomafont{headsepline}[\color{red}] +\end{verbatim} +\end{small} + +The automatic adjustment of the head and foot width is illustrated +in the following example: +\begin{small} +\begin{verbatim} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{verbatim} +\end{small} + +% \phantomsection for hyperref-\pageref-links jum-2001/11/24 +\phantomsection\label{page:scrpage.autoLineLength} +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{17,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24} +\end{XmpBotPage} +\end{Example} + +Now not everybody will like the alignment of the line above +the foot, instead one will expect the line left-aligned. +This can only be achieved with a global package option, which +will be described together with other package option +in the next \autoref{sec:scrpage.basics.options}. +\EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline} +\EndIndex{Cmd}{setfootseptline}\EndIndex{Cmd}{setfootbotline} + +\subsection{Package Options}\label{sec:scrpage.basics.options} +% head(in|ex)clude foot(in|ex)clude --> typearea +% headtopline headsepline footbotline footsepline (plain...) +% komastyle standardstyle +% markuppercase markusecase +% automark manualmark + +\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude} +\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude} +\begin{Declaration} +\Option{headinclude}\\ +\Option{headexclude}\\ +\Option{footinclude}\\ +\Option{footexclude} +\end{Declaration}% +These options intend whether the page-header or that page-footing +are reckoned in with the page-body for the calculation of the type-area. +The adjustments necessary by the use of these parameters +are made by the package +\Package{typearea} (see \autoref{sec:typearea.options}), if this +package is loaded after \Package{scrpage2}. +Important is here that on use of a \KOMAScript{} class +these options must be indicated for the document class and not +for \Package{scrpage2}, in order to obtain an effect. +% +\EndIndex{Option}{headinclude}\EndIndex{Option}{footinclude} +\EndIndex{Option}{headexclude}\EndIndex{Option}{footexclude} + +\BeginIndex{Option}{headtopline}\BeginIndex{Option}{plainheadtopline} +\BeginIndex{Option}{headsepline}\BeginIndex{Option}{plainheadsepline} +\BeginIndex{Option}{footsepline}\BeginIndex{Option}{plainfootsepline} +\BeginIndex{Option}{footbotline}\BeginIndex{Option}{plainfootbotline} +\begin{Declaration} +\Option{headtopline} und \Option{plainheadtopline}\\ +\Option{headsepline} und \Option{plainheadsepline}\\ +\Option{footsepline} und \Option{plainfootsepline}\\ +\Option{footbotline} und \Option{plainfootbotline} +\end{Declaration}% +A basic adjustment for the lines under and over heading and footing +can be made with these options. +These adjustments are considered then as default to all +page styles defined with \Package{scrpage2}. +If one of these options is used, then a line thickness +is used by 0.4\,pt. + +Since there is an appropriate \PValue{plain}-style to the page style +\PValue{scrheadings}, with the \Option{plain\dots}-options also the +appropriate line of the plain style can be configured. +These \Option{plain}-options work however only, even if the +corresponding option without plain are activated. +Thus \Option{plainheadtopline} shows no effect without the +\Option{headtopline} option set. + +With these options it is to be noted that the appropriate page part, +heading or footing, is reckoned in with the text-area +for the calculation of the type-area in case a line has been activated. +This means, if with \Option{headsepline} the separation-line +between heading and text is activated, then the packge \Package{typearea} +calculates the type-area in such a way that the page-header +is part of the text block automatically. + +The conditions for the options of the preceding paragraph, apply also to +this automatism. That means that the package \Package{typearea} +must be loaded to scrpage2, or that on use of a \KOMAScript{} class, +the options \Option{headinclude} and \Option{footinclude} +must be set explicitly with \Macro{documentclass} in order to +transfer heading or footing line in the text-area. +% +\EndIndex{Option}{headtopline}\EndIndex{Option}{plainheadtopline} +\EndIndex{Option}{headsepline}\EndIndex{Option}{plainheadsepline} +\EndIndex{Option}{footsepline}\EndIndex{Option}{plainfootsepline} +\EndIndex{Option}{footbotline}\EndIndex{Option}{plainfootbotline} + +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +\Index{rule}\Index{line}% +\begin{Declaration} +\Option{ilines}\\ +\Option{clines}\\ +\Option{olines} +\end{Declaration}% +% +The definition of the line lengths can lead to an +undesired adjustment, since +the line is centered in the heading or footing area. +With the package options presented here, this specification can be +modified for all page styles defined with \Package{scrpage2}. +The option \Option{ilines} sets the adjustment in such a +way that the lines align to the inside edge. +The option \Option{clines} behaves like the standard adjustment and +\Option{olines} aligns at the outside edge. + +\begin{Example} +The next example illustrates the influence of the +option \Option{ilines}. Please compare to the example for +\Macro{setfootsepline} on \autopageref{page:scrpage.autoLineLength}. + \begin{small} +\begin{verbatim} + \usepackage[ilines]{scrpage2} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{verbatim} + \end{small} + +Only the use of the option \Option{ilines} leads to the different +result shown below: +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{10,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24} +\end{XmpBotPage} + In contrast to the default configuration the separation line + between text and foot is now left-aligned not centered. +\end{Example} +\EndIndex{Option}{ilines}\EndIndex{Option}{clines}\EndIndex{Option}{olines} + +% \phantomsection for hyperref-\pageref-links jum-2001/11/24 +\phantomsection\label{page:scrpage.automark}% +\BeginIndex{Option}{automark}\BeginIndex{Option}{manualmark} +\begin{Declaration} +\Option{automark}\\ +\Option{manualmark} +\end{Declaration}% +These options set the adjustment at the beginning of the document +whether automatic updating of the running headlines takes place. +The option \Option{automark} switches the automatic updating on, +\Option{manualmark} deactivates it. +Without use of one of the two options the adjustment is preserved, +which was valid while the loading of the package. +% +\begin{Example} +One loads the package \Package{scrpage2} directly after the document +class \Class{scrreprt} without any package options. + \begin{small} +\begin{verbatim} + \documentclass{scrreprt} + \usepackage{scrpage2} +\end{verbatim} + \end{small} +Since the default page style of \Class{scrreprt} is \PValue{plain}, +this page style is also active yet. +Futhermore \PValue{plain} means manual headings. +If one now activates the page style \PValue{scrheadings} with + \begin{small} +\begin{verbatim} + \pagestyle{scrheadings} +\end{verbatim} + \end{small} +then the manual headings are always active. + +If one uses the document class \Class{scrbook} instead, then after: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \usepackage{scrpage2} +\end{verbatim} + \end{small} +the page style \PValue{headings} is active and the running headings +are updated automatically. +Switching to the page style \PValue{scrheadings} keeps this +setting present. +The marking-commands of \Class{scrbook} continue to be used. + +However, the use of + \begin{small} +\begin{verbatim} + \usepackage[automark]{scrpage2} +\end{verbatim} + \end{small} +activates the automatic update of the running heading independent +>from the used document class. +The option does not effect the used page style \PValue{plain} of +the class \Class{scrreprt}. +The headings are not visible until the page style has been changed to +\PValue{scrheadings}\IndexPagestyle{scrheadings}, +\PValue{useheadings} or another self-defined page style with headings. +\end{Example} +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark} + +\BeginIndex{Option}{autooneside} +\begin{Declaration} + \Option{autooneside} +\end{Declaration}% +This option ensures that the optional parameter of +\Macro{automark}\IndexCmd{automark} will be ignored automatically +in one-side mode. See the explanation of the command +\Macro{automark} in \autoref{sec:scrpage.basics.mark}. +\EndIndex{Option}{autooneside} + +\BeginIndex{Option}{komastyle}\BeginIndex{Option}{standardstyle} +\begin{Declaration} +\Option{komastyle}\\ +\Option{standardstyle} +\end{Declaration}% +These options determine the kind of the pre-defined page style +\PValue{scrheadings}. +The option \Option{komastyle} takes up a configuration like +the \KOMAScript{} classes. +This is the default for \KOMAScript{} classes and can this way +also be set for other classes. + +A configuration expected from the standard classes can be +defined using option \Option{standardstyle}. +Automatically the option \Option{markuppercase} will be +activated, but only if option \Option{markusedcase} is not given. +\EndIndex{Option}{komastyle}\EndIndex{Option}{standardstyle} + +\BeginIndex{Option}{markuppercase}\BeginIndex{Option}{markusedcase} +\begin{Declaration} +\Option{markuppercase}\\ +\Option{markusedcase} +\end{Declaration}% +The package \Package{scrpage2} has +to modify internal commands, which are used by document structuring +commands, in order to get the function of \Macro{automark} working. +Since some classes, in contrast to the \KOMAScript{} classes, +write the headings in uppercase letters, \Package{scrpage2} +has to know how the used document class represents the headings. + +Option \Option{markuppercase} shows \Package{scrpage2} that +the document class uses uppercase letters. +If the document class does not represent the headings in +uppercase letters the option \Option{markusedcase} should +be given. +These options are not suitable to force a representation, thus +unexpected effects may occur, if the given option does not match +the behaviour of the document class. +\EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} + +\begin{Declaration} + \Option{nouppercase} +\end{Declaration}% +\BeginIndex{Option}{nouppercase}% +In the previous paragraph about \Option{markuppercase} and +\Option{markusedcase} it has been already stated that some +document classes represent the running headings\Index{heading} in +uppercase letters using the commands +\Macro{MakeUppercase} or \Macro{uppercase}. +Setting the option \Option{nouppercase} allows to disable these +both commands. +The option \Option{nouppercase} only is valid as long page styles +defined by \Package{scrpage2} are used, including +\PValue{scrheadings} and its appropriate \PValue{plain} page style. + +The applicated method is very brutal and can cause that desired +changes of normal letters to uppercase letters +\Index{uppercase letters} do not occur. +Since these cases appear not frequently the option \Option{nouppercase} +is a useful solution. + +\begin{Example} +If a document uses the standard class \Class{book}\IndexClass{book}, +but the uppercase headings are not desired, then the preamble of +the document could start with: + \begin{small} +\begin{verbatim} + \documentclass{book} + \usepackage[nouppercase]{scrpage2} + \pagestyle{scrheadings} +\end{verbatim} + \end{small} + The selection of the page style \PValue{scrheadings} is necessary, + since otherwise the page style \PValue{headings} is active, which + does not respect the settings made by option \Option{nouppercase}. +\end{Example} + +In some cases not only classes but also packages set the running +headings in uppercase letters. +Also in these cases the option \Option{nouppercase} should be able +to switch back to the normal non-uppercase headings. +\EndIndex{Option}{nouppercase} + +\section{Defining Own Page Styles}\label{sec:scrpage.UI} +% +% +\subsection{The Interface for Beginners}\label{sec:scrpage.UI.user} +% \deftripstyle +\BeginIndex{Cmd}{deftripstyle}\Index{page style} + +Now one would not always be bound only to the provided page styles, +but moreover there will be the wish to define own page styles. +Sometimes there will be a special need, since a specific +\emph{Corporate Identity} requires the declaration of own page styles. +The easiest way to deal with is: +\begin{Declaration} +\Macro{deftripstyle}\Parameter{name}% +\OParameter{LO}\OParameter{LI}% +\Parameter{HI}\Parameter{HC}\Parameter{HO}% +\Parameter{FI}\Parameter{FC}\Parameter{FO} +\end{Declaration}% +\ScrpageMark{}% +The parameters have the following meaning: +\begin{labeling}[\,--]{\PName{Name}} +\item[\PName{name}] the name of the page style, in order to activate them + using the command \Macro{pagestyle}\Parameter{name} +\item[\PName{LO}] the thickness of the outside lines, + i.e. the line above the head + and the line below the foot (optional) +\item[\PName{LI}] the thickness of the separation lines, + i.e. the line below the head + and the line above the foot (optional) +\item[\PName{HI}] contents of the inside box in the page head for two-side + layout or left for one-side layout +\item[\PName{HC}] contents of the centered box in the page head +\item[\PName{HO}] contents of the outside box in the page head for two-side + layout or right for one-side layout +\item[\PName{FI}] contents of the inside box in the page foot for two-side + layout or left for one-side layout +\item[\PName{FC}] contents of the centered box in the page foot +\item[\PName{FO}] contents of the outside box in the page foot for two-side + layout or right for one-side layout +\end{labeling} + +The command \Macro{deftripstyle} surely represents the simplest +possibility of defining page styles. +Unfortunately also restrictions are connected with since in a +page range with one via deftripstyle defined page style +no modification of the lines above and below heading and footing +can take place. + +\begin{Example} +Assuming a two-side layout, where the running headings are placed inside. +Furthermore the document title, here "`Report"`, shall be placed outside +in the head, the page number is centered in the foot. +\begin{small} +\begin{verbatim} + \deftripstyle{TheReport}% + {\headmark}{}{Report}% + {}{\pagemark}{} +\end{verbatim} +\end{small} + +Shall moreover the lines above the head and below the foot be +drawn with a thickness of 2\,pt and the text body be separated +>from head and foot with 0.4\,pt lines, then the definition has to +be extended. +\begin{small} +\begin{verbatim} + \deftripstyle{TheReport}[2pt][.4pt]% + {\headmark}{}{Report}% + {}{\pagemark}{} +\end{verbatim} +\end{small} +% +\typeout{^^J--- Ignore underfull and overfull \string\hbox:} +\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,50)\scriptsize +\thinlines +\put(5,0){\line(0,1){50}} +\put(55,0){\line(0,1){50}} +\put(5,50){\line(1,0){40}} +\put(55,50){\line(1,0){40}} +% +\thicklines +\put(45,0){\line(0,1){50}} +\put(95,0){\line(0,1){50}} +\put(5,0,){\line(1,0){40}} +\put(55,0){\line(1,0){40}} +% +\XmpHeading[Report\hfill 2. The Eye]{11,46}{30} +\XmpHeading[2.1 Retina\hfill Report]{59,46}{30} +\XmpHeading[\hfill 14\hfill]{11,6.5}{30} +\XmpHeading[\hfill 15\hfill]{59,6.5}{30} +\put(11,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% + \textbf{2.1 Retina}\\ + \XmpText[49]}}} +\put(59,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% + \XmpText[51]}}} +% +\thinlines +\XmpRule{11,44.5}{30}\XmpRule{59,44.5}{30} +\XmpRule{11,8}{30}\XmpRule{59,8}{30} +\linethickness{1pt} +\XmpRule{11,48}{30}\XmpRule{59,48}{30} +\XmpRule{11,5}{30}\XmpRule{59,5}{30} +\end{picture}\end{center} +\typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J} +\end{Example} +\EndIndex{Cmd}{deftripstyle} + +\subsection{The Interface for Experts}\label{sec:scrpage.UI.expert} +% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle +\BeginIndex{Cmd}{defpagestyle}\BeginIndex{Cmd}{newpagestyle} +\BeginIndex{Cmd}{renewpagestyle}\BeginIndex{Cmd}{providepagestyle} +\Index{page style} +Simple page styles, how they can be defined with \Macro{deftripstyle}, +are rare according to experience. +Either a professor requires that the thesis looks in +such a way like its own, and who wants to contradict +it seriously, or a company would like that the half +financial department emerges in the page footing. +No problem, the solution is: +% +\begin{Declaration} +\Macro{defpagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition}\\ +\Macro{newpagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition}\\ +\Macro{renewpagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition}\\ +\Macro{providepagestyle}\Parameter{name}\Parameter{head-definition}\Parameter{foot-definition} +\end{Declaration}% +\ScrpageMark{}% +These four commands give full access to the capabilities of +\Package{scrpage2} according to define page styles. +Their structure is indentical, they differ only the manner of working. + +\begin{labeling}[\,--]{\Macro{providepagestyle}} +\item[\Macro{defpagestyle}] defines always a new pagestyle. +If a page style with this name already exists it will be overwritten. +\item[\Macro{newpagestyle}] defines a new pagestyle. +If a page style with this name already exists a error message will be given. +\item[\Macro{renewpagestyle}] redefines a pagestyle. +If apage style with this name does not exist a error message will be given. +\item[\Macro{providepagestyle}] defines a new pagestyle, +but only if there is no page style with that name already present. +\end{labeling} + +The syntax of the four commands is explained on command +\Macro{defpagestyle} examplary. +\begin{labeling}[\,--]{\PName{head definition}} +\item[\PName{name}] the name of the page style for + \Macro{pagestyle}\Parameter{name} +\item[\PName{head-definition}] the declaration of the heading consisting + of five element; elements in round parenthesis are optional:\\ +\AParameter{ALL,ALT}\Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT} +\item[\PName{foot-definition}] the declaration of the footing consisting + of five element; elements in round parenthesis are optional:\\ +\AParameter{ALL,ALT}\Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT} +\end{labeling} + +It can be seen, that head and foot declaration are identical. +The parameters have the following meaning: +\begin{labeling}[\,--]{\PName{OLD}} +\item[\PName{ALL}] above line length: (head = outside, foot = separation line) +\item[\PName{ALT}] above line thickness +\item[\PName{EP}] definition for \emph{even} pages +\item[\PName{OP}] definition for \emph{odd} pages +\item[\PName{OS}] definition for \emph{one-side} layout +\item[\PName{BLL}] below line length: (head = separation line, foot = outside) +\item[\PName{BLT}] below line thickness +\end{labeling} + +If the optional line-parameters are omitted, then the line behaviour keeps +configurable by the commands introduced in \autoref{sec:scrpage.basics.format}. +In the old version \Package{scrpage}\ScrpageNote{} the line-parameters +are mandatory. + +The three elements \PName{EP}, \PName{OP} and \PName{OS} are boxes with +the width of page head or foot respectively. +The definition occur on the left side in the box, thus the space between +two text elements has to be stretched using \Macro{hfill}, in order to +write the first text element on the left edge \emph{and} the second text +element on the right edge. +% +\begin{verbatim} + {\headmark\hfill\pagemark} +\end{verbatim} + +If one would like a third text-element centered in the box, then an +extended definition must be used. +The commands \Macro{rlap} and \Macro{llap} simply write the given +arguments, but for \LaTeX{} they take no horizontal space. +Only this way the middle text is really centered. +% +\begin{verbatim} + {\rlap{\headmark}\hfill centered text\hfill\llap{\pagemark}} +\end{verbatim} + +This and more examples of the expert's interface and other commands +provided by \Package{scpage2} follow now in the final example. + +\begin{Example} +This examples uses the document class \Class{scrbook}, which +means that the default page layout is two-side. +While the loading of the package \Package{scrpage2} the +options \Option{automark} and \Option{headsepline} are +given. +The first switches on the automatic update of running +headings, the second determines that a separation line between +head and text-body is drawn in the \PValue{scrheadings} page style. + +\begin{small}\begin{verbatim} + \documentclass{scrbook} + \usepackage[automark,headsepline]{scrpage2} +\end{verbatim}\end{small} + +The expert's interface is used to define two page styles. +The page style \PValue{withoutLines} does not define any +line parameters. +The second page style \PValue{withLines} defines +a line thicknes of 1\,pt for the line above the head +and 0\,pt for the separation-line between head and text. + +\begin{small}\begin{verbatim} + \defpagestyle{withoutLines}{% + {Example\hfill\headmark}{\headmark\hfill without lines} + {\rlap{Example}\hfill\headmark\hfill% + \llap{without lines}} + }{% + {\pagemark\hfill}{\hfill\pagemark} + {\hfill\pagemark\hfill} + } +\end{verbatim}\end{small} + +\begin{small}\begin{verbatim} + \defpagestyle{withLines}{% + (\textwidth,1pt) + {with lines\hfill\headmark}{\headmark\hfill with lines} + {\rlap{\KOMAScript}\hfill \headmark\hfill% + \llap{with lines}} + (0pt,0pt) + }{% + (\textwidth,.4pt) + {\pagemark\hfill}{\hfill\pagemark} + {\hfill\pagemark\hfill} + (\textwidth,1pt) + } +\end{verbatim}\end{small} + +At the document's begin the page style \PValue{scrheadings} +is choosen. +The command \Macro{chapter} starts a new chapter and sets +automatically the page style for this page to \PValue{plain}. + +The command \Macro{chead} shows how running headings can +be represented even on a \PValue{plain} page. +Running headings on chapter start-pages are not usual, +since in this case the page looses its emphasis-character. +Basically it is more important to show that a new +chapter starts here than that a section of this page has +a special title. + +\begin{Explain}% not important, only to enhance the paragraph breaking +Instead of \Macro{leftmark} one would expect +the use of \Macro{rightmark} in the parameter +of \Macro{chead}, since the chapter starts on an even +page. But, because of internal \LaTeX{} definitions, +this does not work. It only returns an empty string. +\end{Explain} +\begin{small}\begin{verbatim} + \begin{document} + \pagestyle{scrheadings} + \chapter{Thermodynamics} + + \chead[\leftmark]{} + + \section{Main Laws} + Every system has an extensive condition unit called + Energy. In a closed system the energy is constant. +\end{verbatim}\end{small} + +\begin{XmpTopPage} + \XmpHeading[\hfill\textsl{1. Thermodynamics}\hfill]{10,27}{70} + \put(10,17){\normalsize\textbf{\sffamily 1.Thermodynamics}} + \put(10,12){\textbf{\sffamily 1.1 Main Laws}} + \XmpSetText[% + Every System has an extensive condition unit]{10,9} +\end{XmpTopPage} + +After starting a new page the page style \PValue{scrheadings} +is active and thus the separation line below the heading is +visible. +\begin{small}\begin{verbatim} + There is a condition unit of a system, called entropy, + which temporal alteration consits of entropy stream + and entropy generation. +\end{verbatim}\end{small} +\begin{XmpTopPage} + \XmpHeading[\textsl{1. Thermodynamics}\hfill]{20,27}{70} + \thinlines\XmpRule{20,25}{70} + \XmpSetText[% + There is a condition unit of a system, called entropy, + which temporal alteration consits of entropy stream + and entropy generation.]{20,20} +\end{XmpTopPage} + +After switching to the next page, the automatic update of the +running headings is disabled using \Macro{manualmark}. +The page style \PValue{withoutLines} becomes active. +Since no line parameters are given in the definition of this +page style, the default configuration is used, which draws +a separation line between head and text-body. +\begin{XmpTopPage} + \XmpHeading[\slshape Energy Conversion\hfill without lines]{10,27}{70} + \thinlines\XmpRule{10,25}{70} + \XmpSetText[% + \textbf{\sffamily 1.2 Exergy and Anergy}\\ + While the transition of a system to an equilibrium state + with its environment the maximum work gainable is called + exergy.]{10,21} +\end{XmpTopPage} + +\begin{small}% +\begin{verbatim} + \manualmark + \pagestyle{withoutLines} + \section{Exergy and Anergy}\markright{Energy Conversion} + While the transition of a system to an equilibrium state + with its environment the maximum work gainable is called + exergy. +\end{verbatim}% +\end{small} + +At the next page of the document the page style \PValue{withLines} +is activated. +The line settings of its definition are taken in account and the +lines are drawn accordingly. +\begin{small}% +\begin{verbatim} + \pagestyle{mitLinien} + \renewcommand{\headfont}{\itshape\bfseries} + The portion of an energy not conversable in exergie + is named anergy \Var{B}. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] + \end{document} +\end{verbatim}% +\end{small} +\begin{XmpTopPage} + \XmpHeading[\itshape\bfseries with lines\hfill 1. Thermodynamics]{20,27}{70} + \thicklines\XmpRule{20,29}{70} + \XmpSetText[% + The portion of an energy not conversable in exergie + is named anergy $B$. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,20} +\end{XmpTopPage} +\end{Example} +\EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} +\EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} + +\subsection{Managing Page Styles}\label{sec:scrpage.UI.cfgFile} +% scrpage.cfg +\BeginIndex{File}{scrpage.cfg} +Before long the work with different page styles will establish a +common set of employed page styles, depending on taste and tasks. +In order to make the management of page styles easier, +\Package{scrpage2} reads after initialisation the file \File{scrpage.cfg}. +This file can contain a set of user-defined page styles, which +many projects can share. +\EndIndex{File}{scrpage.cfg} + +\section{Authors} +\label{sec:scrpage.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item Markus Kohm \TextEMail{Markus.Kohm@gmx.de} +\item \textbf{Jens-Uwe Morawski} +\end{itemize} +\EndIndex{Package}{scrpage2} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/introduc.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/introduc.tex new file mode 100644 index 00000000000..a679d94a798 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/introduc.tex @@ -0,0 +1,246 @@ +\ProvidesFile{introduc.tex}[2004/09/13 KOMA-Script Manual] +% ============================================================================ +% introduct.tex +% Copyright (c) 2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% introduct.tex +% Copyright (c) 2002 Markus Kohm und bei die weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: Introduction +% Translation by: Markus Kohm (MJK) +% Contents: The introduction to the manual +% Language: English +% Charset of comments: US-ASCII +% Translation of german file: einleit.tex +% Date of translated german file: 2002-05-27 +% + +\chapter{Introduction} +\label{cha:introduction} + +\section{Preface}\label{sec:introduction.preface} + +{\KOMAScript} is a very complex bundle. You may see this, because it +is not only one class or one package but a bundle of many classes and +packages. The classes are counterparts to the standard classes (see +\autoref{cha:maincls}) but never they come with only the same +commands, environments, options and optional possibilities like the +standard classes nor they result in the same look-a-like. More about +the history of \KOMAScript{} you will find at +\autoref{sec:introduction.history}. + +\KOMAScript{} comes with a lot of classes, packages, commands, +environments and possibilities. Some of these you may find also at the +standard classes, many of them you wouldn't. Some are even supplements to +the \LaTeX{} kernel. + +Because of all this \KOMAScript{} manual has to be large. Also there's +no school for \KOMAScript. So there's no teacher knowing everyone of +his students. Such a teacher should be able to change the lessons +dependent on the kind of students he has to teach. It would be easy to +write a manual which is good for one kind of a reader. But it is nearly +impossible to write a manual which is good for every reader. Never the +less the authors tried to do so. The result must be a +compromise. Please remebers this, if you don't like the manual or +parts of it, before you'll write a report about. We hope the +compromise is a good one. Never the less, if you have solutions of +improvements write us. + +If you habe any problem with \KOMAScript{} please read the manual +despite the size of it. Apart from the guide this means also all the +other text files of the bundle. You will find a list of these as +\File{readme.txt}. + + +\section{Structure of the Manual}\label{sec:introduction.structure} + +There's only less information for \LaTeX{} beginners at the guide. +Beginners should first read documents like \cite{lshort} or +\cite{latex:usrguide}. It would also be good to read a book about +\LaTeX. You'll find literature at almost every faq like \cite{UK:FAQ}. +You should also have a look to these faqs, if you have a problem with +\LaTeX{}. + +\begin{Explain} + Informations about understanding \LaTeX{} or \KOMAScript{} are + written like this paragraph. You do not need this informations to + use \KOMAScript{}, but if you have problems in using \KOMAScript you + should read this parts too. So read them before writing a bug + report. +\end{Explain} + +Some of you do not want to read the whole guide but only informations +about one class or package. This should be possible, because you will +find almost all informations about one package or one class at one +chapter. Only the three main classes are described together at one +chapter, because most informations about are valid for all of them. If +something is only valid for one or two of the three you will find a +note at the margin. If for example something is only valid for +\Class{scrartcl}\OnlyAt{\Class{scrartcl}} this is marked at the +margin like here. + + +\section{History of \KOMAScript}\label{sec:introduction.history} + +\begin{Explain} + At the early 90th Frank Neukam has to write a student script. At + that time \LaTeX2.09 was \LaTeX. At \LaTeX2.09 classes and packages + has been all the same and where called \emph{styles}. Frank thought + the standard document styles not to be good enough for his work. He + needed more and other commands and environments. + + At the same time Frank was very interested in typography. After + reading \cite{JTsch87} he decided to write his own document style + not only to write the one script but also to have a style family + especialy for european and german typography. \Script{} was born. + + I, Markus Kohm, found {\Script} at december 1992. While Frank used + A4 paper format, I often had to use A5. At 1992/1993 the standard + styles and \Script{} had no options for A5 paper. So I`ve changed + \Script{}. These and other changes where also found at \ScriptII{} + released by Frank at december 1993. + + At the middle of 1994 \LaTeXe{} could be found at CTAN. Most users + of \ScriptII{} not only wanted to use these styles at compatibility + mode of \LaTeXe{} but have a native \LaTeXe{} \Script{} --- me too. + So I have made new \LaTeXe{} classes a first package and released all + together named \KOMAScript{} at july~7th~1994. Some month later + Frank declared \KOMAScript{} to be the new \Script. At this time + there was no letter class at \KOMAScript{}. Axel Kielhorn wrote it + and so since december~1994 it is part of \KOMAScript{}. Some time + later Axel Sommerfeldt has written the first real scrguide. The + old english scrguide was made by Werner Lemberg. + + A lot of time is gone. There where minor changes at \LaTeX{} but a + lot of changes at the surroundings. There are many new packages and + classes. \KOMAScript{} isn't the \KOMAScript{} from 1994, it's much + more. While it was first made to have good classes for german + authors, now it made to have classes with more flexibility than the + standard classes. I've got a lot email from all over the + world. Because of this I've written lots of new macros. They all + needs documentation. Some day we needed simply a new scrguide. +\end{Explain} + +This new scrguide is not only made for A5 paper. Because of the +history the implementation is german. The primary documentation is in +german too. Maybe this isn't easy to understand. But see: Almost +everything around \LaTeX{} is english. \KOMAScript{} is german. But +don't worry, the commands, environments, options etc. are +english. Sometimes my english was not good enough to find the correct +english name, never the less I tried. As result you'll find options +called \Option{pointlessnumbers} which means only ``numbers without +dot at the end'' and should be called e.g.\ \Option{dotlessnumbers}. + + +\section{Thanks}\label{sec:introduction.thanks} + +In fact the thanks-giving is part of the addendum, but my thanks +are not primarily for the authors of this guide. +These thanks should be given by the readers! + +I give my personal thanks to Frank Neukam. Without his \Script{} +family \KOMAScript{} wouldn't be. + +I am indebted to the persons who have contributed to {\KOMAScript} +in many different fashions. +Vicariously for all those contributers I would like mention +Jens-Uwe Morawski and Torsten Kr\"uger. +The english translation of the guide is , besides many other things, +obliged to Jens' untiring engagement. +Torsten was the best beta-tester I ever had. Especially his work has +enhanced the usabillity of \Class{scrlttr2} und \Class{scrpage2}. + +Many thanks to all who have encouraged me to go on, make things +better, less error-prone or to implement some additional features. + +Thanks to DANTE, Deutschsprachige Anwendervereinigung +\TeX~e.V\kern-.18em, without the DANTE server, \KOMAScript{} couldn't +be released and distributed. +Thanks to everybody at the \TeX{} news groups and mailing lists, +who answer questions and help me to support \KOMAScript{}. + +\section{Legal Notes}\label{sec:introduction.legal} + +{\KOMAScript} was released under {\LaTeX} Project Public Licence. You +will find it at the file \File{LEGAL.TXT}. Germans will also find a +inofficial translation at \File{LEGALDE.TXT}. This german file is +valid at every country with german being an official language. + +There's no warranty for any documentation or any other part of the +\KOMAScript{} bundle. + +\section{Installation}\label{sec:introduction.installation} +You'll find the documentation about installation at the files +\File{readme.txt} and \File{INSTALL.TXT}. Read also the documentation +of the \TeX{} distribution you're using. + +\section{Bugreports and Other Requests} +\label{sec:introduction.errors} + +If you think, you've found a bug at the documentation, one of the +\KOMAScript{} classes, one of the \KOMAScript{} packages or another +part of \KOMAScript{} please do the following. First have a look at +CTAN to see, if there is a new version of the part with the bug. In +this case install the new part and try it again. + +If you've found an error not at the documentation or a bug, which is +still at the updated file, please write a short example \LaTeX{} +document to show the problem. At this example you should only use +these packages and definitions needed to demonstrate the +problem. Don't use unusual packages. + +Writing this example you will often find out, if the problem is a bug +at \KOMAScript{} or not. Report only bugs at \KOMAScript{} to the +author of \KOMAScript{}. Please use \File{komabug.tex} for the +generation of the bug report. \File{komabug.tex} is an interactive +\LaTeX{} document. + +If you want to ask your question at a news group or mainling list, you +should also write such a example as part of your question. But you +need not use \File{komabug.tex} in this case. To get the versions of +all used packages, simply put \Macro{listfiles} in the preamble of +your example and read the end of the \File{log}-file. + + +\section{Authors}\label{sec:introduction.authors} +Every chapter will be finished with a section called ``authors''. You +will find there the authors of the original chapter of the german +scrguide. The main author is written using a bold font. The translator +is shown using an italic font. If there is an email address, please +send reports about this chapter of the documentation to this +address. If no translator is given, the authors are the translators. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\end{itemize} + +\endinput +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/letter.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/letter.tex new file mode 100644 index 00000000000..b68dd863dd9 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/letter.tex @@ -0,0 +1,3372 @@ +\ProvidesFile{letter.tex}[2004/09/16 KOMA-Script manual (new letter class)] +% ============================================================================ +% letter.tex +% Copyright (c) 2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% letter.tex +% Copyright (c) 2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: New letter class +% Translation by: Harald H.-J. Bongartz +% Raimund Kohl +% Contents: Chapter with manual for the +% new letter class scrlttr2 +% Language: English +% Charset of comments: US-ASCII +% Translation of german file: brief.tex +% Date of translated german file: 2003-02-13 +% + +\chapter{The New Letter Class \Class{scrlttr2}} +\label{cha:scrlttr2} + +\BeginIndex{Class}{scrlttr2}\BeginIndex{}{Letters}% +\begin{Explain} +Since the June 2002 release, \KOMAScript{} contains a completely +rewritten letter class\ChangedAt{v2.8q}{\Class{scrlttr2}}. Although part +of the code is identical to the classes from \autoref{cha:maincls}, +letters are quite different from articles, reports, books, and such. +That alone justifies a separate chapter about the letter class. But +there is another reason for a chapter on \Class{scrlttr2}. The class has +been redeveloped from scratch. And the user interface differs from every +other class the author knows. You can dispute the sense or nonsense of +that new usage concept. The author just thinks that this new user +interface offers some advantages. + +\section{Looking Back on the Old Letter Class} +\label{sec:scrlttr2.scrlettr} + +With the June 2002 release the old letter class +\Class{scrlettr}\IndexClass{scrlettr} becomes obsolete. It should better +not be used for new letters. There is no development on the old +letter class anymore, and support is very restricted. +However, if you really need the documentation of the old letter class, +you can still find it in the file \File{scrlettr.dtx}, but only in +German. You can run it through \LaTeX{} some times, like that: +\begin{verbatim} + latex scrlettr.dtx + latex scrlettr.dtx + latex scrlettr.dtx +\end{verbatim} +You get the file \File{scrlettr.dvi} containing the old German manual. + +To facilitate the transition to the new class, there is a compatibility +option. In general, the complete functionality still remains in the new +class. Without that compatibility option, the user interface and the +defaults will be different. More detail on this option is provided in +sections~\ref{sec:scrlttr2.options} and \ref{sec:scrlttr2.fromscrlettr}. +\end{Explain} + +\section{Options} +\label{sec:scrlttr2.options} + +The letter class \Class{scrlttr2} uses the package +\Package{keyval}\IndexPackage{keyval} to handle options. This is part of +the \Package{graphics} package (see \cite{package:graphics}). Since +\Package{graphics} is part of the \emph{required} section of \LaTeX, it +should be found in every \LaTeX{} distribution. Should your \TeX{} +distribution contain \LaTeX, but not the packages \Package{graphics} +and \Package{keyval}, please complain to your \TeX{} distributor. If you +want to use \Class{scrlttr2}, you will have to install the +\Package{graphics} package yourself in that case. + +\begin{Explain} +The special feature of the \Package{keyval} package is the possibility +to accompany options by values. You do not only need a lot less +options, but maybe even fewer optional arguments. You will see that when +discussing the \Environment{letter} environment in +\autoref{sec:scrlttr2.addressee}. The class will automatically load +the \Package{keyval} package. If you need to supply options to the +\Package{keyval} package, you should use the +\Macro{PassOptionsToPackage} command before +\Macro{documentclass}. +\end{Explain} + +\subsection{Defining Options Later} +\label{sec:scrlttr2.options.late} + +This section anticipates a feature of the new letter class. The meaning +of this feature will not become clear until the structure of a document +with more than one letter inside and another feature of \Class{scrlttr2} +will be understood. But to keep the number of forward references low, it +is reasonable to describe them this early. + +\begin{Declaration} + \Macro{KOMAoptions}\Parameter{option list} +\end{Declaration} +\BeginIndex{Cmd}{KOMAoptions}% +The possibility to change many options after loading the class is a +special feature of the \Class{scrlttr2} class. The \Macro{KOMAoptions} +command serves this purpose, taking options and their values as +arguments. You can list multiple options, separated by commas, like in +the optional argument of \Macro{documentclass}. If an option is only +available when loading the class, i.\,e.\ as an optional argument to +\Macro{documentclass}, there will be an explicit remark in the option's +description. + +\begin{Explain} +If you set an option to an illegal value within the \PName{option +list}, \LaTeX{} will stop and show an error message. By entering +``\texttt{h}'' you will get an explanation that will also list possible +values for that particular option. +\end{Explain} +% +\EndIndex{Cmd}{KOMAoptions}% + +\subsection{Page Layout Options} +\label{sec:scrlttr2.typeareaOptions} + +In contrast to the old \Class{scrlettr} class, but in correspondence +with the other \KOMAScript{} classes, the \Class{scrlttr2} class refers +to the \Package{typearea} package for the construction of the page +layout (see \autoref{cha:typearea}). The package will be loaded +by the class automatically, and the class controls the package. The +necessary options will be explained in this section. + +\begin{Declaration} + \Option{paper}=\PName{format} +\end{Declaration} +\BeginIndex{Option}{paper}% +This option defines the paper format. Theoretically, all paper formats +the \Package{typearea} package knows about are supported. But you have +to leave out the suffix \PValue{paper} when entering a value. So, for +letter format you would use the value \PValue{letter}. The formats of +the ISO A, B, C, and D series must be entered with small letters, e.,g. +\PValue{a4} for ISO A4. See also \autoref{sec:typearea.paperTypes}. + +\begin{Explain} +Although every paper size supported by \Package{typearea} can be used, +several formats may result in unexpected results on the first page of +a letter by now. That is not a matter of the class concept, but there +exist only parameter sets for ISO A4 at this time. Unfortunately, there +are no general rules to define the placement of the address field and +similar for an arbitrary paper size. But it is possible to define +additional parameter sets. See \autoref{sec:lcoFile} for more +information. + +\end{Explain} +% +\EndIndex{Option}{paper}% + +\begin{Declaration} + \Option{BCOR}=\PName{length}\\ + \Option{DIV}=\PName{value}\\ + \Option{headlines}=\PName{count} +\end{Declaration} +\BeginIndex{Option}{BCOR}% +\BeginIndex{Option}{DIV}% +\BeginIndex{Option}{headlines}% +The options for the divisor, the binding correction\Index{binding +correction}, and the number of headlines will be translated directly +into the corresponding options of the \Package{typearea} package. +If the options are set using \Macro{KOMAoptions} and not as class +options, the \Macro{typearea} command from the \Package{typearea} +package will be used instead. See \autoref{sec:typearea.options}. +% +\EndIndex{Option}{BCOR}% +\EndIndex{Option}{DIV}% +\EndIndex{Option}{headlines}% + +\begin{Declaration} + \Option{enlargefirstpage} +\end{Declaration} +\BeginIndex{Option}{enlargefirstpage}% +As described later in this chapter, the first page of a letter always +uses a different page layout. The \Class{scrlttr2} class provides a +mechanism to calculate height and vertical alignment of head and foot +of the first page independently of the following pages. If, as a +result, the foot of the first page would reach into the text area, +this text area would automatically be made smaller using the +\Macro{enlargethispage}\IndexCmd{enlargethispage} macro. On the other +hand, if the text area should become larger, supposed the foot on the +first page allows that, you could use this option. At best, some more +text would fit on the first page. See also the description of pseudo +length \PLength{firstfootvpos} at \autoref{sec:scrlttr2.firstFoot}. +This option can take the standard values for simple switches, as +listed in \autoref{tab:scrlttr2.simpleSwitchValues}. Default is +\PValue{false}. +% +\EndIndex{Option}{enlargefirstpage}% + +\begin{table} + \centering + \begin{tabular}{ll} + Value & Description \\\hline\\[-1.75ex] + \PValue{true} & activates the option \\ + \PValue{on} & activates the option \\ + \PValue{false}& deactivates the option \\ + \PValue{off} & deactivates the option \\ + \end{tabular} + \caption{Standard values for simple switches in \Class{scrlttr2}} + \label{tab:scrlttr2.simpleSwitchValues} +\end{table} + +\subsection{Other Layout Options} +\label{sec:scrlttr2.layout} + +In this subsection, you will find all options that have influence on +the layout in general, except page layout. Strictly speaking, all page +layout options (see~\ref{sec:scrlttr2.typeareaOptions}) are also layout +options, and vice versa for some of them. + +\begin{Declaration} + \Option{twoside} +\end{Declaration}% +\BeginIndex{Option}{oneside}% +From the author's point of view, double-sided letters do not make much +sense. Therefore, the option \Option{twoside} only partially switches to +double-sided layout. You get the possibility to have different margins +on left and right pages, but it is not used. So this option really means +\emph{activate the possibilities of a double-sided document, but stay + with the one-sided layout as far and as long as possible.} +This option can take the standard values for simple switches, as listed +in \autoref{tab:scrlttr2.simpleSwitchValues}. Default is +\PValue{false}. +% +\EndIndex{Option}{twoside}% + +By the way, double-sided letters are not supported, because they seem +unreasonable. + +\begin{Declaration} + \Option{cleardoublepage}=\PName{style} +\end{Declaration} +\BeginIndex{Option}{cleardoublepage}% +If you want pages inserted by the \Macro{cleardoublepage} command to +just contain a page number in head and foot or to be empty, this can be +accomplished with this option. There are three different styles +supported: +\begin{description} +\item[\PValue{empty}] switches to page style\Index{page style} + \PValue{empty}\IndexPagestyle{empty} for inserted pages. +\item[\PValue{plain}] switches to page style + \PValue{plain}\IndexPagestyle{plain} for inserted pages. +\item[\PValue{standard}] keeps the current page style for inserted pages. +\end{description} +The page styles will be discussed in +\autoref{sec:scrlttr2.pageStyle}. Default is \PValue{standard}. +% +\EndIndex{Option}{cleardoublepage}% + +\begin{Declaration} + \Option{headsepline}\\ + \Option{footsepline} +\end{Declaration} +\BeginIndex{Option}{headsepline}% +\BeginIndex{Option}{footsepline}% +These two options insert a separator line below the head or above the +foot, resp., on consecutive pages. In the lingo of this manual, all +pages of a letter except the first one are consecutive pages. +This option can take the standard values for simple switches, as listed +in \autoref{tab:scrlttr2.simpleSwitchValues}. Default is +\PValue{false}. If one of the options is used without value, like in the +declaration above, this evaluates as \PValue{true}, so the separator +line will be activated. When used as a \Macro{documentclass} option, the +\Package{typearea} package will be called with the option +\Option{headinclude} or \Option{footinclude}, resp.\ +(see~\ref{sec:typearea.options}). +% +\EndIndex{Option}{headsepline}% +\EndIndex{Option}{footsepline}% + +\begin{Declaration} + \Option{mpinclude}\\ + \Option{mpexclude} +\end{Declaration} +\BeginIndex{Option}{mpinclude}% +\BeginIndex{Option}{mpexclude}% +These two options of the \Package{typearea} package should not be used +with the \Class{scrlttr2} class, because the first page in particular +does not take this option into account. To anticipate any complaints, a +warning will be issued when this option is used. If you feel adventurous +you could try how these options, especially \Option{mpinclude}, interact +with other class options. +% +\EndIndex{Option}{mpinclude}% \EndIndex{Option}{mpexclude}% + +\begin{Declaration} + \Option{pagenumber}=\PName{position} +\end{Declaration} +\BeginIndex{Option}{pagenumber}% +This option defines if and where a page number will be placed on +consecutive pages. All pages without a letter-head are consecutive +pages. This option effects the page layouts\Index{page layout} +\PValue{headings} and \PValue{plain}. It also effects the default page +styles of the \Package{scrpage2} package, if set before loading the +package (see \autoref{cha:scrpage}). It can take values only +influencing horizontal, only vertical, or both positions. Possible value +are: +\begin{labeling}[~--]{\PValue{footcentered}} + \item[\PValue{bot}] page number in foot, horizontal + position not changed + \item[\PValue{botcenter}] page number in foot, centered + \item[\PValue{botcentered}] same as \PValue{botcenter} + \item[\PValue{botleft}] page number in foot, left justified + \item[\PValue{botmiddle}] same as \PValue{botcenter} + \item[\PValue{botright}] page number in foot, right justified + \item[\PValue{center}] page number centered horizontally, + vertical position\\ not changed + \item[\PValue{centered}] same as \PValue{center} + \item[\PValue{false}] no page number + \item[\PValue{foot}] same as \PValue{bot} + \item[\PValue{footcenter}] same as \PValue{botcenter} + \item[\PValue{footcentered}] same as \PValue{botcenter} + \item[\PValue{footleft}] same as \PValue{botleft} + \item[\PValue{footmiddle}] same as \PValue{botcenter} + \item[\PValue{footright}] same as \PValue{botright} + \item[\PValue{head}] page number in head, horizontal + position not changed + \item[\PValue{headcenter}] page number in head, centered + \item[\PValue{headcentered}] same as \PValue{headcenter} + \item[\PValue{headleft}] page number in head, left justified + \item[\PValue{headmiddle}] same as \PValue{headcenter} + \item[\PValue{headright}] page number in head, right justified + \item[\PValue{left}] page number left, vertical position not changed + \item[\PValue{middle}] same as \PValue{center} + \item[\PValue{no}] same as \PValue{false} + \item[\PValue{off}] same as \PValue{false} + \item[\PValue{right}] page number right, vertical position not changed + \item[\PValue{top}] same as \PValue{head} + \item[\PValue{topcenter}] same as \PValue{headcenter} + \item[\PValue{topcentered}] same as \PValue{headcenter} + \item[\PValue{topleft}] same as \PValue{headleft} + \item[\PValue{topmiddle}] same as \PValue{headcenter} + \item[\PValue{topright}] same as \PValue{headright} +\end{labeling} +Default is \PValue{botcenter}. +% +\EndIndex{Option}{pagenumber}% + +\begin{Declaration} + \Option{parskip}=\PName{value} +\end{Declaration}% +\BeginIndex{Option}{parskip}% +\begin{Explain}% +Especially in letters you often encounter paragraphs marked not with +indentation of the first line, but with a vertical skip between them. It +is a matter of tradition. Apparently it has been easier for a secretary +to operate the carriage return lever twice than setting an indentation +using a tab stop or the space bar. Correct justification is almost +impossible using a typewriter, so letters are traditionally typeset +unjustified. + +However, typographers like Jan Tschichold take the view that letters, +written using means of modern typesetting, should take advantage of +their possibilities like other documents do. Under these circumstances, +letters should also be typeset using paragraph indentation and +justification. The author of \Class{scrlttr2} shares this point of view, +but nevertheless refrains from imposing to many restrictions upon the +user. +\end{Explain} + +As as reaction to many serious requests, \Class{scrlttr2} offers the +possibility to mark paragraphs not only by indentation of the first +line, but alternatively by vertical skip. You can choose between full or +half a line of vertical space. When using paragraph spacing, it seems +often useful to keep the last line of a paragraph shorter, so that +paragraph recognition will be eased. All these features are controlled +by different values for the \Option{parskip} option: +\begin{labeling}[~--]{\PValue{half*}} +\item[\PValue{false}] paragraph indentation instead of vertical space; +the last line of a paragraph may be arbitrarily filled. +\item[\PValue{full}] one line vertical space between paragraphs; there +must be at least 1\Unit{em} free space in the last line of a paragraph. +\item[\PValue{full*}] one line vertical space between paragraphs; there +must be at least a quarter of a line free space at the end of a paragraph. +\item[\PValue{full+}] one line vertical space between paragraphs; there +must be at least a third of a line free space at the end of a paragraph. +\item[\PValue{full-}] one line vertical space between paragraphs; +the last line of a paragraph may be arbitrarily filled. +\item[\PValue{half}] half a line vertical space between paragraphs; there +must be at least 1\Unit{em} free space in the last line of a paragraph. +\item[\PValue{half*}] half a line vertical space between paragraphs; there +must be at least a quarter of a line free space at the end of a paragraph. +\item[\PValue{half+}] half a line vertical space between paragraphs; there +must be at least a third of a line free space at the end of a paragraph. +\item[\PValue{half-}] one line vertical space between paragraphs; +the last line of a paragraph may be arbitrarily filled. +\item[\PValue{off}] same as \PValue{false} +\item[\PValue{on}] same as \PValue{full} +\item[\PValue{true}] same as \PValue{full} +\end{labeling} +Default is \PValue{false}. +% +\EndIndex{Option}{parskip}% + +\subsection{Font Options} +\label{sec:scrlttr2.fontOptions} + +Fonts options are any options with influence on the size of the base +font or of fonts for letter parts. In theory, options affecting the font +type would also count as font options. At present there is only one +option for font size in \Class{scrlttr2}. + +\begin{Declaration} + \Option{fontsize}=\PName{size} +\end{Declaration} +\BeginIndex{Option}{fontsize}% +In the main classes, you choose the font size\Index{font size} for the +document using the \Option{10pt}, \Option{12pt}, etc. options. In the +\Class{scrlttr2} class, the desired \PName{size} is set using the +\Option{fontsize} option. The functionality is the same. This option can +only be used with \Macro{documentclass}, not with \Macro{KOMAoptions}. +Default is \PValue{12pt}. +% +\EndIndex{Option}{fontsize}% + +\subsection{Options for Letter-Head and Address} +\label{sec:scrlttr2.headoptions} + +The \Class{scrlttr2} class offers lots of extensions for the design of +the letter-head. There are also options for address formatting, +extending the possibilities of the standard letter class, although these +features could already be found in the now obsolete \Class{scrlettr} +class. + +\begin{Declaration} + \Option{fromalign} +\end{Declaration} +\BeginIndex{Option}{fromalign}% +This option defines the placement of the from address in the letter-head +of the first page. At the same time, this option serves as a switch to +activate or deactivate the extended letter-head options. If these +extensions are deactivated, some other options will have no effect. This +will be noted with the respecting options. Possible values for +\Option{fromalign} are: +\begin{labeling}[~--]{\PValue{centered}} +\item[\PValue{center}] return address centered; an optional logo will be +on top of the extended return address; letter-head extensions will be +activated. +\item[\PValue{centered}] same as \PValue{center} +\item[\PValue{false}] standard design will be used for the return +address; the letter-head extensions are deactivated. +\item[\PValue{left}] left justified return address; an optional logo +will be right justified; letter-head extensions will be activated. +\item[\PValue{middle}] same as \PValue{center} +\item[\PValue{no}] same as \PValue{false} +\item[\PValue{off}] same as \PValue{false} +\item[\PValue{right}] right justified return address; an optional logo will be left justified; letter-head extensions will be activated. +\end{labeling} +Default is \PValue{left}. +% +\EndIndex{Option}{fromalign}% + +\begin{Declaration} + \Option{fromrule} +\end{Declaration} +\BeginIndex{Option}{fromrule}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It allows you to place +a horizontal line within the return address. The possible values are: +\begin{labeling}[~--]{\PValue{afteraddress}} +\item[\PValue{afteraddress}] line below the return address +\item[\PValue{aftername}] line right below the sender's name +\item[\PValue{below}] same as \PValue{afteraddress} +\item[\PValue{false}] no line +\item[\PValue{no}] same as \PValue{false} +\item[\PValue{off}] same as \PValue{false} +\item[\PValue{on}] same as \PValue{afteraddress} +\item[\PValue{true}] same as \PValue{afteraddress} +\item[\PValue{yes}] same as \PValue{afteraddress} +\end{labeling} +Default is \PValue{false}. You can not activate more than one line at a +time. +% +\EndIndex{Option}{fromrule}% + +\begin{Declaration} + \Option{fromphone} +\end{Declaration} +\BeginIndex{Option}{fromphone}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It defines whether the +phone number will be part of the return address. This option can take +the standard values for simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +% +\EndIndex{Option}{fromphone}% + +\begin{Declaration} + \Option{fromfax} +\end{Declaration} +\BeginIndex{Option}{fromfax}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It defines whether the +facsimile number will be part of the return address. This option can take +the standard values for simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +% +\EndIndex{Option}{fromfax}% + +\begin{Declaration} + \Option{fromemail} +\end{Declaration} +\BeginIndex{Option}{fromemail}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It defines whether the +email address will be part of the return address. This option can take +the standard values for simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +% +\EndIndex{Option}{fromemail}% + +\begin{Declaration} + \Option{fromurl} +\end{Declaration} +\BeginIndex{Option}{fromurl}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It defines whether the +URL will be part of the return address. This option can take +the standard values for simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +% +\EndIndex{Option}{fromurl}% + +\begin{Declaration} + \Option{fromlogo} +\end{Declaration} +\BeginIndex{Option}{fromlogo}% +This option is part of the letter-head extensions (see option +\Option{fromalign} above). It defines whether the +logo will be part of the return address. This option can take +the standard values for simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{false}. +% +\EndIndex{Option}{fromlogo}% + +\begin{Declaration} + \Option{addrfield} +\end{Declaration} +\BeginIndex{Option}{addrfield}% +This option defines whether an address field will be set. Default is to +use the address field. This option can take the standard values for +simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is \PValue{true}. +% +\EndIndex{Option}{addrfield}% + +\begin{Declaration} + \Option{backaddress} +\end{Declaration} +\BeginIndex{Option}{backaddress}% +This option defines whether a return address for window envelopes will +be set. Default is to use the return address. If the address field is +suppressed (see option \Option{addrfield}), there will be no return +address either. This option can take the standard values for simple +switches, as listed in \autoref{tab:scrlttr2.simpleSwitchValues}. +Default is \PValue{true}. +% +\EndIndex{Option}{backaddress}% + +\begin{Declaration} + \Option{subject} +\end{Declaration} +\BeginIndex{Option}{subject}% +This option serves two purposes: First, you can choose if your subject +should have a title, given by the \PName{subject} variable (see +\autoref{tab:scrlttr2.subjectTerm}). Second, you can choose if the +subject should be set before or after the opening. Possible values for +this option are: +\begin{labeling}[~--]{\PValue{beforeopening}} +\item[\PValue{afteropening}] set subject after opening +\item[\PValue{beforeopening}] set subject before opening +\item[\PValue{titled}] add title to subject +\item[\PValue{untitled}] do not add title to subject +\end{labeling} +Defaults are \PValue{beforeopening} and \PValue{untitled}. +% +\EndIndex{Option}{subject}% + +\begin{Declaration} + \Option{locfield} +\end{Declaration} +\BeginIndex{Option}{locfield}% +\Class{scrlttr2} places a field with additional sender attributes next +to the address field. This can be used for bank accounts or similar. +Depending on the \Option{fromalign} option, it will also be used for the +sender logo. The width of this field may be defined within an \File{lco} +file (see \autoref{sec:lcoFile}). If the width is set to 0 in that +file, then the \Option{locfield} option can toggle between two presets +for the field width. See the explanation on the \Variable{locwidth} +pseudo length in \autoref{sec:scrlttr2.locationField}. Possible +values for this option are: +\begin{labeling}[~--]{\PValue{narrow}} +\item[\PValue{narrow}] small sender supplement field +\item[\PValue{wide}] large sender supplement field +\end{labeling} +Default is \PValue{narrow}. +% +\EndIndex{Option}{locfield}% + +\begin{Declaration} + \Option{foldmarks} +\end{Declaration} +\BeginIndex{Option}{foldmarks}% +This option activates fold marks for two or three panel folding of the +letter. The exact placement of the fold marks for three panel letter fold +depends on user settings or the \File{lco} file, resp.\ (see +\autoref{sec:lcoFile}). The folding need not result in equal sized +parts. This option can take the standard values for simple switches, as +listed in \autoref{tab:scrlttr2.simpleSwitchValues}. Default is +\PValue{true}, which implies setting the fold marks. +% +\EndIndex{Option}{foldmarks}% + +\begin{Declaration} + \Option{numericaldate} +\end{Declaration} +\BeginIndex{Option}{numericaldate}% +This option toggles between the standard, language-dependent date +presentation and a short, numerical one. \KOMAScript{} does not +provide the standard presentation. It should be defined by packages +like \Package{german}\IndexPackage{german}, +\Package{babel}\IndexPackage{babel}, or +\Package{isodate}\IndexPackage{isodate}. The short, numerical +presentation will be produced by \Class{scrlttr2} itself. This option +can take the standard values for simple switches, as listed in +\autoref{tab:scrlttr2.simpleSwitchValues}. Default is +\PValue{false}, which results in standard date presentation. In the +now obsolete \Class{scrlettr} class, this was achieved using the +\Option{orgdate} option, but with opposite results. +% +\EndIndex{Option}{numericaldate}% + +\begin{Declaration} + \Option{refline} +\end{Declaration} +\BeginIndex{Option}{refline}% +With the \Class{scrlttr2} class, the head, foot, address, and +sender attributes may extend beyond the normal type area to the left +and to the right. This option defines if that also applies to the +reference line. Normally, the reference line contains at least the date, +but it can hold additional data. Possible values for this option are: +\begin{labeling}[~--]{\PValue{narrow}} +\item[\PValue{narrow}] reference line restricted to type area +\item[\PValue{wide}] reference line corresponds to address and sender +attributes +\end{labeling} +Default is \PValue{narrow}. +% +\EndIndex{Option}{refline}% + +\subsection{Format Options} +\label{sec:scrlttr2.formatingOptions} + +Format options are those, which influence form or format of the +output and do not belong to another section. You might also call them +the \emph{miscellaneous options}. + +\begin{Declaration} + \Option{draft} +\end{Declaration} +\BeginIndex{Option}{draft}% +This option toggles between the final\Index{final version} and the +draft\Index{draft version} version of a document. In particular, +enabling the \Option{draft} option activates little black boxes that +will be drawn at the end of overfull lines. For the unpracticed eye, +these boxes ease the identification of paragraphs that need manual +improvement. When the \Option{draft} option is disabled, there will be +no such boxes. This option can take the standard values for simple +switches, as listed in \autoref{tab:scrlttr2.simpleSwitchValues}. +Default is \PValue{false}, as usual. But I strongly recommend enabling +the \Option{draft} option when designing a letter, as for every other +document. +% +\EndIndex{Option}{draft}% + +\subsection{The Letter Class Option Files} +\label{sec:lcoFile} + +\BeginIndex{}{lco=\File{lco}}% +Normally, you would not redefine parameters like the distance between +the address field and the top edge of the paper every time you write a +letter. Instead, you would reuse a whole set of parameters for certain +occasions. It will be much the same for the letter-head and foot used on +the first page. Therefore, it is reasonable to save these settings in a +separate file. For this purpose, the \Class{scrlttr2} class offers the +\File{lco} files. The \File{lco} suffix is an abbreviation for +\emph{\emph{l}etter \emph{c}lass \emph{o}ption}. + +In an \File{lco} file you can use all commands available to the document +at the time the \File{lco} file is loaded. Additionally, it can contain +internal commands available to package writers. For \Class{scrlttr2}, +these are in particular the commands \Macro{@newplength}, \Macro{@setplength}, +\Macro{@addtoplength} and \Macro{addtolengthplength} (see +\autoref{sec:scrlttr2.pseudoLength}). + +There are already some \File{lco} files included in the \KOMAScript{} +distribution. The \File{DIN.lco}, \File{DINmtext.lco}, +\File{SNleft.lco}, and \File{SN.lco} files serve to adjust \KOMAScript{} +to different layout standards. They are well suited as templates for +your own parameter sets. The \File{KOMAold.lco} file, however, serves to +improve compatibility with the old letter class \Class{scrlettr}. +Because it contains internal commands not open to package writers, you +should not use them as a template for your own \File{lco} files. You can +find a list of predefined \File{lco} files in \autoref{tab:lcoFiles}. + +\begin{Explain} +If you have defined a parameter set for a letter standard not yet +supported by \KOMAScript{}, you are explicitly invited to send this +parameter set to the \KOMAScript{} support address. Please do not forget +to include the permission for distribution under the \KOMAScript{} +license (see the \File{LEGAL.TXT} file). If you know the necessary +metrics for an unsupported letter standard, but are not able to write a +corresponding \File{lco} file yourself, you can also contact me. You +will find current addresses in the latest volume of the +\KOMAScript\textsf{-News} or in \autoref{sec:introduction.authors}. +\end{Explain} + +\begin{Declaration} + \Macro{LoadLetterOption}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{LoadLetterOption}% +Usually, the \File{lco} files will be loaded by the +\Macro{documentclass} command. You enter the name of the \File{lco} file +without suffix as an option. The \File{lco} file will be loaded right +after the class file. + +But it is also possible to load an \File{lco} file later, or even from +within another \File{lco} file. This can be done with the +\Macro{LoadLetterOption} command, which gets the \PName{name} of the +\File{lco} file without suffix as a parameter. +\begin{Example} +You write a document containing several letters. Most of them should +comply with the German DIN standard. So you start with: +\begin{small} +\begin{verbatim} + \documentclass{scrlttr2} +\end{verbatim} +\end{small} +But one letter should use the \File{DINmtext} variant, with the address +field placed more to the top, which results in more text fitting on the +first page. The folding will be modified so that the address field still +matches the address window in a DIN~C6/5 envelope. +You can achieve this as follows: +\begin{small} +\begin{verbatim} + \begin{letter}{Markus Kohm\\ + Fichtenstraße 63\\68535 Edingen-Neckarhausen} + \LoadLetterOption{DINmtext} + \opening{Hello,} +\end{verbatim} +\end{small} +Since construction of the page does not start before the +\Macro{opening}, it is sufficient to load the \File{lco} file before the +\Macro{opening} command. In particular, this need not be done before +\Macro{begin}\PParameter{letter}. So the changes made by loading the +\File{lco} file are local to the corresponding letter. +\end{Example} + +\begin{Explain} +If an \File{lco} file is loaded via \Macro{documentclass}, it may +nevertheless take the name of an option, provided it is an option that +does not take an argument. However, it would be possible to give the +name \File{fromalign=left.lco} to an \File{lco} file. It will get +loaded every time the \Macro{documentclass} option \Option{fromalign} +is used with the value \PValue{left}. Admittedly, this is quite +academic. Of course you can use this feature only if your operating and +file system support this kind of file names. Otherwise you have to +choose another file name and add the corresponding option, if +needed. +\end{Explain} + +\begin{Example} + You do not want to enter your sender address every time, so you + create an \File{lco} file with the necessary data, like this: + \begin{small} +\begin{verbatim} + \ProvidesFile{mkohm.lco}[2002/02/25 letter class option] + \setkomavar{fromname}{Markus Kohm} + \setkomavar{fromaddress}{Fichtenstra\ss e 63\\ + 68535 Edingen-Neckarhausen} +\end{verbatim} + \end{small} + Please note that the German sharp s, ``ß'', was entered using the + \TeX{} macro \Macro{ss}, because right after \Macro{documentclass} + no packages for input encoding, for example + \Macro{usepackage}\PValue{[latin1]}\PParameter{inputenc} for Unix or + \Macro{usepackage}\PValue{[ansinew]}\PParameter{inputenc} for + Windows, and no language packages, like + \Macro{usepackage}\PParameter{ngerman}\IndexPackage{ngerman} for the + new German orthography, are loaded. + + But if you would always use the same input encoding, you could also + include it into your \File{lco} file. This would look like this: + \begin{small} +\begin{verbatim} + \ProvidesFile{mkohm.lco}[2002/02/25 letter class option] + \RequirePackage[latin1]{inputenc} + \setkomavar{fromname}{Markus Kohm} + \setkomavar{fromaddress}{Fichtenstraße 63\\ + 68535 Edingen-Neckarhausen} +\end{verbatim} + \end{small} + There is one problem with this usage: you cannot load this + \File{lco} file later in your document. If you want to have letters + with different senders in one document, you should refrain from + loading packages in your \File{lco} file. + + Let us further assume that I always typeset letters using the preset + \File{KOMAold}. Then I could add the following line to my + \File{mkohm.lco} file: + \begin{small} +\begin{verbatim} + \LoadLetterOption{KOMAold} +\end{verbatim} + \end{small} + + Anyway, now you can preset my sender address using + \begin{small} +\begin{verbatim} + \documentclass[mkohm]{scrlttr2} +\end{verbatim} + \end{small} +\end{Example} + +In \autoref{tab:lcoFiles} you find a list of all predefined \File{lco} +files. If you use a printer that has large unprintable areas on the left +or right side, you might have problems with the +\Option{SN}\IndexOption{SN} option. The Swiss standard SN~101\,130 +defines the address field to be placed 8\,mm from the right paper edge, +so the headline and the sender attributes will be set with the same +small distance to the paper edge. This also applies to the reference +line when using the \Option{refline}\PValue{=wide} option (see +\autoref{sec:scrlttr2.headoptions}). If you have this kind of +problem, create your own \File{lco} file that loads \Option{SN} first +and then changes \PLength{toaddrhpos}\IndexPLength{toaddrhpos} (see +\autoref{sec:scrlttr2.addressee}) to a smaller value. Please also +reduce \PLength{toaddrwidth} accordingly. +% +\EndIndex{Cmd}{LoadLetterOption}% + +\begin{table} +\centering +\begin{tabular}{lp{.7\textwidth}} +\File{lco} file & Description and features \\\hline\\[-2ex] +\Option{DIN}\IndexOption[indexmain]{DIN}% + & parameter set for letters on A4 size paper, + complying with German standard DIN~676; + suitable for window envelopes in the sizes C4, C5, C6, + and C6/5 (C6 long).\\ +\Option{DINmtext}\IndexOption[indexmain]{DINmtext}% + & parameter set for letters on A4 size paper, + complying with DIN~676, but using an alternate layout + with more text on the first page; + only suitable for window envelopes in the sizes C6 and + C6/5 (C6 long).\\ +\Option{KOMAold}\IndexOption[indexmain]{KOMAold}% + & parameter set for letters on A4 size paper using a + layout close to the now obsolete \Class{scrlettr} + letter class; suitable for window envelopes in the sizes + C4, C5, C6, and C6/5 (C6 long); + some additional commands to improve compatibility with + obsolete \Class{scrlettr} commands are defined; + \Class{scrlttr2} may behave slightly different when + used with this \File{lco} file than with the other + \File{lco} files.\\ +\Option{SN}\IndexOption[indexmain]{SN}% + & parameter set for Swiss letters with address field on + the right side, according to SN~010\,130; suitable for + Swiss window envelopes in the sizes C4, C5, C6, and + C6/5 (C6 long).\\ +\Option{SNleft}\IndexOption[indexmain]{SNleft}% + & parameter set for Swiss letters with address field on + the left side; + suitable for Swiss window envelopes with window on the + left side in the sizes C4, C5, C6, and C6/5 (C6 long). + \\ +\end{tabular} +\caption{The predefined \File{lco} files} +\label{tab:lcoFiles} +\end{table} + +\begin{Explain} +\begin{Declaration} + \Macro{LetterOptionNeedsPapersize}% + \Parameter{option name}\Parameter{paper size} +\end{Declaration} +\BeginIndex{Cmd}{LetterOptionNeedsPapersize} +As mentioned in \autoref{sec:scrlttr2.typeareaOptions}, there are +only parameter sets and \File{lco} files for A4 sized paper. But in +every \File{lco} file distributed with \KOMAScript{} you will find a +\Macro{LetterOptionNeedsPapersize} command so that you will be warned +when using another \PName{paper size}. The first argument is the name of +the \File{lco} file without the ``\File{.lco}'' suffix. Second argument +is the paper size the \File{lco} file is designed for. + +If several \File{lco} files are loaded, the +\Macro{LetterOptionNeedsPapersize} command can be contained in each of +them, but the \Macro{opening} +command will only check the last given \PName{paper size}. As shown in +the following example, an experienced user can thus easily write +\File{lco} files with parameter sets for other paper sizes. If you do +not plan to set up \File{lco} files yourself, you may just forget about +this option and skip the example. + +\begin{Example} +Supposed you use A5 sized paper in normal, i.\,e.\ upright or +portrait, orientation for your letters. We further assume that you want +to put them into standard C6 window envelopes. Then, the position of the +address field would be the same as for a DIN standard letter on A4 sized +paper. The main difference is that A5 paper needs only one fold. So you +want to disable the upper and lower fold marks. The easiest way to +achieve this is to place the marks outside the paper area. + \begin{small} +\begin{verbatim} + \ProvidesFile{paper=a5.lco}[2002/05/02 letter class option] + \LetterOptionNeedsPapersize{paper=a5}{a5} + \@setplength{tfoldmarkvpos}{\paperheight} + \@setplength{bfoldmarkvpos}{\paperheight} +\end{verbatim} + \end{small} +Besides, the placement of the foot must be adjusted. It is left to the +reader to find an appropriate value. When using such an \File{lco} file, +you must only take care that other \File{lco} file options, like +\File{SN}, are declared before the paper size, i.\,e.\ before loading +``\File{paper=a5.lco}''. This seems too complicated? Only before you +used it the first time. Anyway, how often do you write letters not using +your standard format? +\end{Example} +% +\EndIndex{Cmd}{LetterOptionNeedsPapersize} +\end{Explain} + +By the way, the \File{DIN} \File{lco} file will always be loaded as the +first \File{lco} file. This ensures that all pseudo lengths will have +more or less reasonable default values. + +Please note that it is not possible to use \Macro{PassOptionsToPackage} +to pass options to packages from within an \File{lco} file that have +already been loaded by the class. Normally, this only applies to the +\Package{typearea}, \Package{scrlfile}, and \Package{keyval} packages. +% +\EndIndex{}{lco=\File{lco}}% + +\section{General Document Properties} +\label{sec:scrlttr2.general} + +Some document properties aren't assigned to a certain part of the +document such as the letter-head or the letter body. Several of +these properties have already been mentioned in +\autoref{sec:scrlttr2.options}. + + +\subsection{Font Selection} +\label{sec:scrlttr2.font} + +\BeginIndex{}{font style}\BeginIndex{}{font size}% +\begin{Explain} +Commands for defining, extending and querying the font of a specific +element can be found~\ref{sec:maincls.font}. These commands work exactly +the same in \Class{scrlttr2}. The elements which can be influenced in +this way are listed in \autoref{tab:scrlttr2.elementsWithoutText}. +% +\begin{table} + \centering% + \begin{tabular}{lp{.6\linewidth}} + Element & Description \\\hline\\[-2ex] + \FontElement{backaddress}\IndexFontElement[indexmain]{backaddress} + & \raggedright return address for a window envelope + \tabularnewline[.75ex] + \FontElement{descriptionlabel}% + \IndexFontElement[indexmain]{descriptionlabel} + & \raggedright label, i.e. the optional argument of + \Macro{item}, in a \Environment{description} environment + \tabularnewline[.75ex] + \FontElement{fromaddress}\IndexFontElement[indexmain]{fromaddress} + & \raggedright sender's address in the letter-head + \tabularnewline[.75ex] + \FontElement{fromname}\IndexFontElement[indexmain]{fromname} + & \raggedright sender's address in the letter-head if different + from \FontElement{fromaddress} + \tabularnewline[.75ex] + \FontElement{pagefoot}\IndexFontElement[indexmain]{pagefoot} + & \raggedright in most cases the footer, sometimes the + header of a page + \tabularnewline[.75ex] + \FontElement{pagehead}\IndexFontElement[indexmain]{pagehead} + & \raggedright in most cases the header, sometimes the footer + of page + \tabularnewline[.75ex] + \FontElement{pagenumber}\IndexFontElement[indexmain]{pagenumber} + & \raggedright page number in the footer or header which is + inserted with \Macro{pagemark} + \tabularnewline[.75ex] + \FontElement{subject}\IndexFontElement[indexmain]{subject} + & \raggedright subject in the opening of the letter + \tabularnewline[.75ex] + \FontElement{title}\IndexFontElement[indexmain]{title} + & \raggedright headline in the opening of the letter + \tabularnewline[.75ex] + \end{tabular} + \caption{Alphabetical list of the elements, whose font can be + changed in \Class{scrlttr2} using the commands \Macro{setkomafont} and + \Macro{addtokomafont}} + \label{tab:scrlttr2.elementsWithoutText} +\end{table} +\end{Explain} +% +\EndIndex{}{font style}\EndIndex{}{font size}% + + +\subsection{Page Style} +\label{sec:scrlttr2.pageStyle} One of the general properties of a +document is the page style. Please refer also the +\autoref{sec:maincls.pageStyle} and \autoref{cha:scrpage}. + +\begin{Declaration} +\Macro{pagestyle}\PParameter{empty}\\ +\Macro{pagestyle}\PParameter{plain}\\ +\Macro{pagestyle}\PParameter{headings}\\ +\Macro{pagestyle}\PParameter{myheadings}\\ +\Macro{thispagestyle}\Parameter{local page style} +\end{Declaration} +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadings}% +In letters written with \Class{scrlttr2} there are four different +page styles. +\begin{description} +\item[empty] is the page style, in which the header and footer of + subsequent pages (all pages apart from the first) are completely + empty. This page style is also used for the first page, because + header and footer of this page are set using the macro + \Macro{opening}. + +\item[plain] is the page style with only page numbers in the header or + footer on subsequent pages. The placement of these page numbers is + determined by the option \Option{pagenumber} (see + \autoref{sec:scrlttr2.layout}). + +\item[headings] is the page style for automatic page headings of + subsequent pages. The inserted marks are the sender's name from the + variable \Variable{fromname}\IndexVariable{fromname} and the subject + from the variable \Variable{subject}\IndexVariable{subject} (see + \autoref{sec:scrlttr2.firstHead} and + \autoref{sec;scrlttr2.titleSubject}). At which position these + marks and the page numbers are placed depends on the option + \Option{pagenumber} (see \autoref{sec:scrlttr2.layout}). Apart + from that, the author can change these marks after \Macro{opening} + manually. +\item[myheadings] is the page style for manual page headings of + subsequent pages. This is very similar to \PValue{headings}, but + here the marks are set by the author using the commands + \Macro{markboth}\IndexCmd{markboth} and + \Macro{markright}\Index{markright}. +\end{description} + +Page styles are also influenced by the option +\Option{headsepline}\IndexOption{headsepline} or +\Option{footsepline}\IndexOption{footsepline} (see +\autoref{sec:scrlttr2.layout}). The page style beginning with +the current page is switched with \Macro{pagestyle}. In contrast, +\Macro{thispagestyle} changes only the page style of the current +page. The letter class itself uses +\Macro{thispagestyle}\PParameter{empty} within +\Macro{opening}\IndexCmd{opening} for the first page of the +letter. +% +\EndIndex{Cmd}{pagestyle}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{plain}% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{myheadings}% + +\BeginIndex[indexother]{}{font style}% +For changing the font style of headers or footers you should use the +user interface described in \autoref{sec:maincls.font}. For +header and footer the same element is used which you can name either +\FontElement{pagehead}\IndexFontElement{pagehead} or +\FontElement{pagefoot}\IndexFontElement{pagefoot}. The element for the +page number within the header or footer is named +\FontElement{pagenumber}\IndexFontElement{pagenumber}. Default +settings are listed in \autoref{tab:maincls.defaultFontsHeadFoot}. +Please have also a look at the example in +\autoref{sec:maincls.pageStyle}. +% +\EndIndex[indexother]{}{font style}% + +\begin{Declaration} + \Macro{clearpage}\\ + \Macro{cleardoublepage}\\ + \Macro{cleardoublestandardpage}\\ + \Macro{cleardoubleplainpage}\\ + \Macro{cleardoubleemptypage} +\end{Declaration}% +\BeginIndex{Cmd}{clearpage}% +\BeginIndex{Cmd}{cleardoublepage}% +\BeginIndex{Cmd}{cleardoublestandardpage}% +\BeginIndex{Cmd}{cleardoubleplainpage}% +\BeginIndex{Cmd}{cleardoubleemptypage}% +Please refer to \autoref{sec:maincls.pageStyle}. The function +of \Macro{cleardoublepage} in \Class{scrlttr2} depends on the +option \Option{cleardoublepage} which is described in more detail +in \autoref{sec:scrlttr2.layout}. +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% + + + +\subsection{Variables} +\label{sec:scrlttr2.variables} + +\BeginIndex{}{Variables}% +Apart from options, commands, environments, counters and lengths +additional elements have already been introduced in \KOMAScript{}. +A typical property of an element is the font style and the option +to change it (see \autoref{sec:maincls.font}). At this point +we now are going to introduce variables. Variables have a name by +which they are called and they have a content. The content of a +variable can be set independently from time and location of the +actual usage. The main difference between a command and a variable +is that a command usually triggers an action whereas a variable +only consist of plain text. Furthermore a variable can have an +additional description, which can be set and issued. + +This section only gives a short introduction to the term variable. +The following examples have no special meaning. More detailed +examples can be found in the explanation of predefined variables +of the letter class in the following sections. An overview of all +variables is given in \autoref{tab:scrlttr2.variables}. + +\begin{table} +\centering +\begin{tabular}{lp{.6\linewidth}} +Variable & Bedeutung \\\hline\\[-2ex] +\Variable{backaddress} & return address for window envelopes \\ +\Variable{backaddressseparator} & separator within the return address \\ +\Variable{ccseparator} & separator between title of additional addressees and additional addressees \\ +\Variable{customer} & customer number \\ +\Variable{date} & date \\ +\Variable{emailseparator} & separator between e-mail name and e-mail address\\ +\Variable{enclseparator} & separator between title of enclosure and enclosures \\ +\Variable{faxseparator} & separator between title of fax and fax number \\ +\Variable{fromaddress} & sender's address without its name \\ +\Variable{frombank} & sender's bank account \\ +\Variable{fromemail} & sender's e-mail \\ +\Variable{fromfax} & sender's fax number \\ +\Variable{fromlogo} & commands for inserting the sender's logo \\ +\Variable{fromname} & complete name of the sender \\ +\Variable{fromphone} & sender's telephone number \\ +\Variable{fromurl} & one url of the sender \\ +\Variable{invoice} & invoice number\\ +\Variable{location} & more details of the sender \\ +\Variable{myref} & sender's reference \\ +\Variable{place} & place \\ +\Variable{placeseparator} & separator between place and date \\ +\Variable{phoneseparator} & separator between title of telephone and telephone number \\ +\Variable{signature} & signature beneath the ending of the letter \\ +\Variable{specialmail} & special mail \\ +\Variable{subject} & subject \\ +\Variable{subjectseparator} & separator between title of subject and subject \\ +\Variable{title} & letter title \\ +\Variable{toname} & complete name of addressee \\ +\Variable{toaddress} & address of addressee without its name \\ +\Variable{yourmail} & date of addressee's mail \\ +\Variable{yourref} & addressee's reference \\ +\end{tabular} +\caption{Alphabetical list of all supported variables in +\Class{scrlttr2}} \label{tab:scrlttr2.variables} +\end{table} + + +\begin{Declaration} + \Macro{newkomavar}\OParameter{description}\Parameter{name}\\ + \Macro{newkomavar*}\OParameter{description}\Parameter{name}\\ + \Macro{addtoreffields}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{newkomavar}\BeginIndex{Cmd}{newkomavar*}% +\BeginIndex{Cmd}{addtoreffields}% +With \Macro{newkomavar} a new variable is defined. This variable +is addressed via \PName{name}. As an option you can define a +\PName{description} for the variable \PName{name}. Using the +command \Macro{addtoreffields} you can add the variable +\PName{name} to the reference fields (see +\autoref{sec:scrlttr2.refLine}). The \PName{description} and +the content of the variable are added at the end of the reference +fields. The starred version \Macro{newkomavar*} is similar to the +one without star with a subsequent call of the command +\Macro{addtoreffields}. Thus, the starred version automatically +adds the variable to the reference fields. +\begin{Example} + Suppose you need an additional field for a direct dialling. You + can define this field either with + \begin{small} +\begin{verbatim} + \newkomavar[Direct dialling]{myphone} + \addtoreffields{myphone} +\end{verbatim} + \end{small} + or more concise with + \begin{small} +\begin{verbatim} + \newkomavar*[direct dialling]{myphone} +\end{verbatim} + \end{small} + +\end{Example} +When you define a variable for the reference fields you should +always give them a description. +% +\EndIndex{Cmd}{newkomavar}\EndIndex{Cmd}{newkomavar*}% +\EndIndex{Cmd}{addtoreffields}% + + +\begin{Declaration} + \Macro{setkomavar}% + \Parameter{name}\OParameter{description}\Parameter{content}\\ + \Macro{setkomavar*}\Parameter{name}\Parameter{description} +\end{Declaration} +\BeginIndex{Cmd}{setkomavar}\BeginIndex{Cmd}{setkomavar*}% +With the command \Macro{setkomavar} you determine the +\PName{content} of the variable \PName{name}. Using an optional +argument you can at the same time change the \PName{description} +of the variable. In contrast, \Macro{setkomavar*} can only set the +\PName{description} of the variable \PName{name}. +\begin{Example} + Suppose you have defined a direct dialling as mentioned above + and you now want to set the content. You write: + \begin{small} +\begin{verbatim} + \setkomavar{myphone}{-\,11} +\end{verbatim} + \end{small} + In addition, you want to replace the term ``direct dialling'' + with ``Connexion''. Thus you add the description + \begin{small} +\begin{verbatim} + \setkomavar*{myphone}{Connexion} +\end{verbatim} + \end{small} + or you can put both in one command: + \begin{small} +\begin{verbatim} + \setkomavar{myphone}[Connexion]{-\,11} +\end{verbatim} + \end{small} +\end{Example} +By the way: You may delete the content of a variable using an empty +\PName{content} argument. You can also delete the description using an +empty \PName{description} argument. +\begin{Example} + Suppose you have defined a direct dialling as mentioned above and + you now don't want a description to be set. You write: + \begin{small} +\begin{verbatim} + \setkomavar*{myphone}{} +\end{verbatim} + \end{small} + You can combine this with the definition of the content: + \begin{small} +\begin{verbatim} + \setkomavar{myphone}[]{-\,11} +\end{verbatim} + \end{small} + So you may setup the content and delete the description using only + one command. +\end{Example} +% +\EndIndex{Cmd}{setkomavar}\EndIndex{Cmd}{setkomavar*}% + + +\begin{Declaration} + \Macro{usekomavar}\OParameter{command}\Parameter{name}\\ + \Macro{usekomavar*}\OParameter{command}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{usekomavar}\BeginIndex{Cmd}{usekomavar*}% +In\ChangedAt{v2.9i}{\Class{scrlttr2}} some cases it is necessary that +the user can access the content or the description of a variable. This +is specially important when you have defined a variable which is not +added to the reference fields. Using the command \Macro{usekomavar} you +have access to the content of the variable \PName{name} whereas the +starred version \Macro{usekomavar*} gives you the description. + +\begin{Explain} + The commands \Macro{usekomavar} and \Macro{usekomavar*} are, similar + to all commands where a starred version or an optional argument + exists, not fully expandable. Nevertheless if used within + \Macro{markboth}\IndexCmd{markboth}, + \Macro{markright}\IndexCmd{markright} or similar commands you + needn't insert a \Macro{protect}\IndexCmd{protect} before using + them. Of course this is also true in \Package{scrpage2} for + \Macro{markleft}\IndexCmd{markleft}. But they couldn't be used at + commands like \Macro{MakeUppercase}\IndexCmd{MakeUppercase}. + \Macro{MakeUppercase}\PParameter{\Macro{usekomavar}\Parameter{name}} + would result in \Macro{usekomavar}\Parameter{NAME}. To avoid this + problem you may use commands like \Macro{MakeUppercase} as optional + argument of \Macro{usekomavar} or \Macro{usekomavar*}. So you'll get + the upper case content of a variable using + \Macro{usekomavar}\PValue{[\Macro{MakeUppercase}]}\Parameter{name}. +\end{Explain} +% +\EndIndex{Cmd}{usekomavar}\EndIndex{Cmd}{usekomavar*}% +% +\EndIndex{}{variables} + +\begin{Declaration} + \Macro{ifkomavarempty}\Parameter{name}\Parameter{true}\Parameter{false}\\ + \Macro{ifkomavarempty*}\Parameter{name}\Parameter{true}\Parameter{false} +\end{Declaration} +\BeginIndex{Cmd}{ifkomavarempty}% +With\ChangedAt{v2.9i}{\Class{scrlttr2}} these commands you may check +wether or not the expanded contents or description of a variable is +empty. The \PName{true} argument will be executed if the contents or +description is empty. Otherwise the \PName{false} argument will be +executed. The variant with star sign handles the description of a +variable, the variant without star the contents. + +\begin{Explain} + Maybe it is important to know, that the contents or description of + the variable will be expanded using \Macro{edef}. If this results in + spaces or unexpandable macros like \Macro{relax}, it is not + empty. This is even true, if the use of the variable would not + result in any output. + + Both variants of the command must not be used at the argument of + \Macro{MakeUppercase}\IndexCmd{MakeUppercase} or commands, which + have similar effects to their arguments. See the description of + \Macro{usekomavar} above for more information about using commands + like \Macro{usekomavar} or \Macro{ifkomavarempty} at the argument of + \Macro{MakeUppercase}. But they are robust enough to be used at the + argument of e.g. \Macro{markboth} or \Macro{footnote}. +\end{Explain} + + +\subsection{The Pseudo Lengths} +\label{sec:scrlttr2.pseudoLength} + +\begin{Explain} + \TeX{} works with a fixed number of registers. There are registers + for tokens, for boxes, for counters, for skips and for dimensions. + Overall there are 256 for each of them. For \LaTeX{} lengths, which + are addressed with \Macro{newlength} skip registers are used. If all + of these registers are in use you can not define additional lengths. + The letter class \Class{scrlttr2} only for the first page would use + up more than 20 of such registers. \LaTeX{} itself already uses 40 + of these registers. The \Package{typearea} package needs some of + them too. Thus approximately a quarter of the precious registers is + already in use. That's the reason why lengths specific to letters in + \Class{scrlttr2} are defined with macros instead of lengths. The + drawback of this is that computations withs macros is somewhat more + complicated than with real lengths. +\end{Explain} + +\begin{Declaration} + \Macro{@newplength}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{@newplength}% +This command defines an new pseudo length. This new pseudo length +can clearly identified with its \PName{name}. It is made sure that +every \PName{name} can only be given once. + +Since the user in general doesn't define its own pseudo lengths it +is not intended as a user command. Thus, it can not be used within +a document, but for example within a \File{lco} file. +% +\EndIndex{Cmd}{@newplength}% + +\begin{Declaration} + \Macro{useplength}\Parameter{name} +\end{Declaration} +\BeginIndex{Cmd}{useplength}% +Using this command you can access the value of the pseudo length +with the given \PName{name}. This is the only user command in +connection with pseudo lengths. Of course this command can also be +used with a \File{lco} file. +% +\EndIndex{Cmd}{useplength}% + +\begin{Declaration} + \Macro{setlengthtoplength}% + \OParameter{factor}\Parameter{length}\Parameter{pseudo length}\\ + \Macro{addtolengthplength}% + \OParameter{factor}\Parameter{length}\Parameter{pseudo length} +\end{Declaration} +\BeginIndex{Cmd}{setlengthtoplength}% +\BeginIndex{Cmd}{addtolengthplength}% +\begin{Explain}% +While you can combine a length with a factor this is not possible +with pseudo lengths. Suppose you have a length \Macro{test} with +the value 2\Unit{pt}, then \texttt{3\Macro{test}} gives you the +value 6\Unit{pt}. Using pseudo lengths instead +\texttt{3\Macro{useplength}\PParameter{test}} would give you +32\Unit{pt}. This is especially annoying if you want a real +\PName{length} assign the value of a \PName{pseudo length}. +\end{Explain} +Using the command \Macro{setlengthtoplength} you can assign a +multiple of a \PName{pseudo length} to a real \PName{length}. +Instead of putting the \PName{factor} in front of the +\PName{pseudo length} it is given as an optional argument. You +should also use this command when you want to assign a negative +value of a \PName{pseudo length} to a \PName{length}. In this case +you can either use a minus sign or \PValue{-1} as the +\PName{factor}. The command \Macro{addtolengthplength} works very +similar to that. It adds a multiple of \PName{pseudo length} to +\PName{length}. +% +\EndIndex{Cmd}{setlengthtoplength}% +\EndIndex{Cmd}{addtolengthplength}% + +\begin{Declaration} + \Macro{@setplength}% + \OParameter{factor}\Parameter{pseudo length}\Parameter{value}\\ + \Macro{@addtoplength}% + \OParameter{factor}\Parameter{pseudo length}\Parameter{value} +\end{Declaration} +\BeginIndex{Cmd}{@setplength}% +\BeginIndex{Cmd}{@addtoplength}% +Using the command \Macro{@setplength} you assign a multiple of a +\PName{value} to a \PName{pseudo length}. The \PName{factor} is +given as an optional argument. +The command \Macro{@addtoplength} +adds the \PName{value} to a \PName{pseudo length}. For assigning +or adding the multiple of \PName{pseudo length} to another pseudo +length the command \Macro{useplength} is used within \PName{value}. +To substract the value of a \PName{pseudo length} from another +\PName{pseudo length} a minus sign or \PValue{-1} as +\PName{factor} is used. + +Since the user in general doesn't define its own pseudo lengths it +is not intended as a user command. Thus, it can not be used within +a document, but for example within a \File{lco} file. +% +\EndIndex{Cmd}{@setplength}% +\EndIndex{Cmd}{@addtoplength}% + + + +\subsection{The General Structure of a Letter Document} +\label{sec:scrlttr2.document} + +The general structure of a letter document differs somewhat from +the structure of a normal document. Whereas a book document in +general contains only one book, a letter document can contain +several letters. As illustrated in +\autoref{fig:scrlttr2.document} a letter document consists of a +preamble, the individual letters and the closing. + +The preamble comprises all settings that in general concern all +letters. Most of them can be overwritten in the settings of the +individual letters. The only setting which can not be changed within a +single letter is the font size (see option \Option{fontsize} in +\autoref{sec:scrlttr2.fontOptions}). General settings such as the +loading of packages and the setting of options should be placed before +\Macro{begin}\PParameter{document} only. All settings that comprise +the setting of variables or other text features should be done after +\Macro{begin}\PParameter{document}. This is particularly recommend +when the \Package{babel} package\IndexPackage{babel} (see +\cite{package:babel}) is used or language dependend variables of +\Class{scrlttr2} are to be changed. + +The closing usually consists only of the standard closing for the +end of a document. Of course you can also insert additional +comments at this point. + +\begin{figure} +\centering\small\setlength{\fboxsep}{1.5ex} +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{documentclass}\OParameter{\dots}\PParameter{scrlttr2}\\ + \dots\\ + {\centering\emph{Settings for all letters}\\} + \dots\\ + \Macro{begin}\PParameter{document}\\ + \dots\\ + {\centering\emph{Settings for all letters}\\} + \dots\\ + }}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}\Parameter{addressee}\\ + \dots\\ + {\centering\emph{Content of the individual letter}\\} + \dots\\ + \Macro{end}\PParameter{letter}\\ + }}\\ +\parbox{.667\linewidth}{\raggedright\vspace{-.5ex}\vdots\vspace{1ex}}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{end}\PParameter{document}\\ + }}\\ +\caption{General structure of a letter document with several +individual letters (the structure of a single letter is shown in + \autoref{fig:scrlttr2.letter})} +\label{fig:scrlttr2.document} +\vspace{2\abovecaptionskip} +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{begin}\PParameter{letter}% + \OParameter{Optionen}\Parameter{addressee}\\ + \dots\\ + {\centering\emph{Settings for this letter}\\} + \dots\\ + \Macro{opening}\Parameter{opening}\\ + }}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \dots\\ + {\centering\emph{letter text}\\} + \dots\\ + }}\\ +\fbox{\parbox{.667\linewidth}{\raggedright% + \Macro{closing}\Parameter{closing}\\ + \Macro{ps}\\ + \dots\\ + {\centering\emph{postscript}\\} + \dots\\ + \Macro{encl}\Parameter{enclosures}\\ + \Macro{cc}\Parameter{additional addressees}\\ + \Macro{end}\PParameter{letter}\\ + }}\\ +\caption{General structure of a single letter within a letter +document (see also \autoref{fig:scrlttr2.document})} +\label{fig:scrlttr2.letter} +\end{figure} + +As shown in \autoref{fig:scrlttr2.letter} every single letter +itself consists of an introduction, the letter body and the +closing. In the introduction all settings for only this letter are +defined. It is important that this introduction always ends with +\Macro{opening}. Similarily the closing starts with +\Macro{closing}. If needed both arguments \PName{opening} and +\PName{closing} can be left empty. Nevertheless both commands have +to be used and must have an argument. + +\begin{Explain} +There are further settings that can be changed between the +individual letters. These settings have an effect on all +subsequent letters. For reasons of maintainability of your letter +documents it is not recommended to use further general settings +with limited validity between the letters. +\end{Explain} + +As already mentioned you can use all settings in the preamble of a +letter document in the preamble of the individual letters apart +from the font size. Therefore you will not find more detailed +explanations for the possible settings at this point. Please refer +to \autoref{sec:scrlttr2.startLetter}. + + +\section{The Letter Declaration} +\label{sec:scrlttr2.startLetter} + +The letter declaration gives all settings for the letter itself as well +as for the first page of the body. The first page consists of more than just the +prelims of the letter; it consists of several different parts. + +\subsection{The Letter-Head} +\label{sec:scrlttr2.firstHead} + +The term letter-head here refers to all of the sender's data +and is printed above the addressee's address. It usually is expected to +have all this set via the pagestyle setting. The earlier version of letterclass +\Class{scrlettr} worked that way. But with \Class{scrlttr2}, the letter-head has gotten +independent of the pagestyle setting and is run by the command \Macro{opening}. +% Fuellmaterial +\iftrue +The position of the letter-head is absolute and independent of the type +area. In fact the first page of a letter, that page that holds the letter-head, +is set by \PValue{empty}. +\fi +% Ende des Fuellmaterials + +\begin{Declaration} + \PLength{firstheadvpos} +\end{Declaration} +\BeginIndex{PLength}{firstheadvpos}% +The pseudolength \PLength{firstheadvpos} gives the distance between the top of +the sheet and the letter-head. This value is set differently in the predefined +\File{lco}-files. A typical value is 8\Unit{mm}. +% +\EndIndex{PLength}{firstheadvpos} + +\begin{Declaration} + \PLength{firstheadwidth} +\end{Declaration} +\BeginIndex{PLength}{firstheadwidth}% +The pseudolength \PLength{firstheadwidth} gives the width of the +letter-head. This value is set differently in the predefined +\File{lco}-files. While this value usually depends on the paperwidth and the +distance between the left side of the sheet and the address' field, it was +the type area width in \Option{KOMAold}. +% +\EndIndex{PLength}{firstheadwidth}% + +\begin{Declaration} + \Variable{fromname}\\ + \Variable{fromaddress}\\ + \Variable{fromphone}\\ + \Variable{fromfax}\\ + \Variable{fromemail}\\ + \Variable{fromurl}\\ + \Variable{fromlogo} +\end{Declaration} +\BeginIndex{Variable}{fromname}% +\BeginIndex{Variable}{fromaddress}% +\BeginIndex{Variable}{fromphone}% +\BeginIndex{Variable}{fromfax}% +\BeginIndex{Variable}{fromemail}% +\BeginIndex{Variable}{fromurl}% +\BeginIndex{Variable}{fromlogo}% +% +These variables give all statements concerning the sender necessary to create +the letter-head. Which variable will be used to build the letter-head in the +end can be chosen by use of the letter-head extensions (see option +\Option{fromalign} in \autoref{sec:scrlttr2.headoptions}) and the options +given there. The variables \Variable{fromname}, and \Variable{fromaddress}, +and \Variable{fromlogo} will be set in the letter-head without their label; +the variables \Variable{fromphone}, \Variable{fromfax}, \Variable{fromemail} +and \Variable{fromurl} will be set with it's label. The labels are taken from +\autoref{tab:scrlttr2.fromTerm}. +% +\begin{table} +\centering +\begin{tabular}{ll} +name & label \\\hline\\[-2ex] +\Variable{fromemail} & \Macro{usekomavar*}\PParameter{emailseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{emailseparator} + \\ +\Variable{fromfax} & \Macro{usekomavar*}\PParameter{faxseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{faxseparator} \\ +\Variable{fromname} & \Macro{headfromname} \\ +\Variable{fromphone} & \Macro{usekomavar*}\PParameter{phoneseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{phoneseparator} + \\ +\Variable{fromurl} & \Macro{usekomavar*}\PParameter{urlseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{urlseparator} + \\ +\end{tabular} +\caption{The sender's predefined labels for the letter-head} +\label{tab:scrlttr2.fromTerm} +\end{table} + +An important hint concerns the sender's address. Within the sender's address, +parts such as Street, P.O.~Box, State, Country etc, are separated with a +double backslash. Depending on how the sender's address is used this double +backslash will be interpreted differently and therefore not strictly as a line +break. Paragraphs, vertical distances and the like usually aren't allowed within +the sender's address declaration. One has to have very good knowledge of +\Class{scrlttr2} to use things like those mentioned above, intelligently. + +It's possible, by the way, to load an external picture to use it as a logo. In +this case then put the content of \Variable{fromlogo} to a +\Macro{includegraphics}-command. The corresponding package (see +\cite{package:graphics}) of course has to be given with the letter declaration +(see \autoref{sec:scrlttr2.document}). +% +\EndIndex{Variable}{fromname}% +\EndIndex{Variable}{fromaddress}% +\EndIndex{Variable}{fromphone}% +\EndIndex{Variable}{fromfax}% +\EndIndex{Variable}{fromemail}% +\EndIndex{Variable}{fromurl}% +\EndIndex{Variable}{fromlogo}% + +\begin{Declaration} + \Variable{phoneseparator}\\ + \Variable{faxseparator}\\ + \Variable{emailseparator}\\ + \Variable{urlseparator} +\end{Declaration} +\BeginIndex{Variable}{phoneseparator}% +\BeginIndex{Variable}{faxseparator}% +\BeginIndex{Variable}{emailseparator}% +\BeginIndex{Variable}{urlseparator}% +With these variables, hyphens are defined. If applicable they are used with the +sender's data in the letter-head (see \autoref{tab:scrlttr2.fromTerm}). As +a feature, they are labeled and used in the sender's details +of the letter-head. To look up the predefined labels +and their contents, see \autoref{tab:scrlttr2.fromSeperator}. +% +% table moved in following paragraph (JUM) >>> +% +\EndIndex{Variable}{phoneseparator}% +\EndIndex{Variable}{faxseparator}% +\EndIndex{Variable}{emailseparator}% +\EndIndex{Variable}{urlseparator}% + + +\begin{Declaration} + \Macro{firsthead}\Parameter{construction} +\end{Declaration} +\BeginIndex{Cmd}{firsthead}% +Mostly \Class{scrlttr2} and its variables offer enough possibilities to create +a letter-head. In very rare situations one may wish to have more freedom to +create. In those situations one will have to do without predefined +letter-heads, which could have been chosen via options. Instead one is to +create freely. Therefore one has to define the preferred \PName{construction} +with the command \Macro{firsthead}. Within \Macro{firsthead} and with the help +of the \Macro{parbox}-command (see \cite{latex:usrguide}) one can set several +boxes side by side or one underneath the other. An advanced user will thus be +able to create a letter-head on his own. And doing this of course the +\PName{construct} may use varibles with the help of \Macro{usekomavar}. +% +% <<< table of previous paragraph +\begin{table} +\centering +\begin{tabular}{lll} +name & label & content \\\hline\\[-2ex] +\Variable{emailseparator} & \Macro{emailname} & \texttt{:\~} \\ +\Variable{faxseparator} & \Macro{faxname} & \texttt{:\~} \\ +\Variable{phoneseparator} & \Macro{phonename} & \texttt{:\~} \\ +\Variable{urlseparator} & \Macro{wwwname} & \texttt{:\~} \\ +\end{tabular} +\caption{predefined labels and contents of hyphens for sender's datas in the + letter-head} +\label{tab:scrlttr2.fromSeperator} +\end{table} +% +\EndIndex{Cmd}{firsthead}% + + +\subsection{The Footer} +\label{sec:scrlttr2.firstFoot} +As the first page holds a letter-head of its own it holds a footer +of its own too. And, same as with the letter-head, it will be printed independent of the +pagestyle settings but with the use of \Macro{opening}. + +\begin{Declaration} + \PLength{firstfootvpos} +\end{Declaration} +\BeginIndex{PLength}{firstfootvpos}% +% +This pseudolength gives the distance between the footer and the upper +border of the sheet. This value is set different in the predefined +\File{lco}-files. Also it takes care of preventing text jutting into the +footer area. If needed, it can help to shorten the textheight on the first page +using \Macro{enlargethispage}. +Likewise and if it is needed the textheight can +be extended with help of the option \Option{enlargefirstpage}. This way, the +distance between text area and the first page's footer can be reduced to +the value \Length{footskip}. See also \autoref{sec:scrlttr2.typeareaOptions}. +% +\EndIndex{PLength}{firstfootvpos}% + + +\begin{Declaration} + \PLength{firstfootwidth} +\end{Declaration} +\BeginIndex{PLength}{firstfootwidth}% +This pseudolength gives the width of the letter's firstpage footer. The +value is set in dependency of the pseudolength \PLength{firstheadwidth} in the +\File{lco}-files. +% +\EndIndex{PLength}{firstfootwidth}% + + +\begin{Declaration} + \Macro{firstfoot}\Parameter{construction} +\end{Declaration} +\BeginIndex{Cmd}{firstfoot}% +The first page's footer is preset to empty. But with the +\Macro{firstfoot} command it is possible to give definitions the same +way as with defining the letter-head with \Macro{firsthead}. +\begin{Example} + As the first page's footer, you may want to set the content of the variable + \Variable{bank} (the bank account). The double backslash shall be exchanged + with a comma at the same time: + \begin{small} +\begin{verbatim} + \firstfoot{% + \parbox[b]{\linewidth}{% + \centering\def\\{, }\usekomavar{frombank}% + }% + } +\end{verbatim} + \end{small} + For the hyphen you might define a varible of your own if you like. Consider + that has been left to the reader as an exercise. + + Nowadays it has become very common to create a proper footer to have + some balance to the letter-head. This can be done like this: + \begin{small} +\begin{verbatim} + \firstfoot{% + \parbox[t]{\textwidth}{\footnotesize + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{partners:}\\ + Jim Smith\\ + Russ Mayer + \end{tabular}% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{Manager:}\\ + Jane Fonda\\[1ex] + \multicolumn{1}{@{}l@{}}{Court Of Jurisdiction:}\\ + Great Plains + \end{tabular}% + \ifkomavarempty{frombank}{}{% + \hfill + \begin{tabular}[t]{l@{}}% + \multicolumn{1}{@{}l@{}}{\usekomavar*{frombank}:}\\ + \usekomavar{frombank} + \end{tabular}% + }% + }% + } +\end{verbatim} + \end{small} + This example, by the way, came from Torsten Kr\"uger. With + \begin{small} +\begin{verbatim} + \setkomavar{frombank}{Account No. 12\,345\,678\\ + at Citibank\\ + bank code no: 876\,543\,21} +\end{verbatim} + \end{small} + the bank account can be set accordingly. If the footer will have a + height like that it might happen that you have to shift its position. You + do this with the pseudolength + \PLength{firstfootvpos}\IndexPLength{firstfootvpos}, which is described + above in this section. +\end{Example} +% +\EndIndex{Cmd}{firstfoot}% + + +\subsection{The Address} +\label{sec:scrlttr2.addressee} +The term address here usually refers to name and address of the addressee. But +there are extensions. The first extension is the way of distribution +e.g. ``special mail''. If window envelopes are used the return address is +another extension since it has to show up within the envelope's window. The +address immediately follows beneath the letter-head. + +\begin{Declaration} + \PLength{toaddrvpos}\\ + \PLength{toaddrhpos} +\end{Declaration} +\BeginIndex{PLength}{toaddrvpos}% +\BeginIndex{PLength}{toaddrhpos}% +These pseudolengths give the distance between address window of a window +envelope and the upper and left border of the sheet. They are set different in +the predefined \File{lco}-files. The smallest value is \PLength{toaddrvpos} at +\Option{DINmtext}. It can happen easily that the letter-head juts into the +address window field. Whether the address window field will be set at all +depends on giving the option \Option{addrfield} (see +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{toaddrhpos}% +\EndIndex{PLength}{toaddrvpos}% + + +\begin{Declaration} + \PLength{toaddrwidth} +\end{Declaration} +\BeginIndex{PLength}{toaddrwidth}% +This pseudolength gives the width of the address window. It is set +differently in the predefined \File{lco}-files according to the different +standards that exist. Typically it is something between 70\Unit{mm} and +100\Unit{mm}. +% +\EndIndex{PLength}{toaddrwidth}% + + +\begin{Declaration} + \PLength{toaddrindent} +\end{Declaration} +\BeginIndex{PLength}{toaddrindent}% +Sometimes it is wanted that the address isn't set exactly at the beginning +of the left border of the address window, but a little indented to the +right. The value of the indentiation can be set with the pseudolength +\PLength{toaddrindent}. But typically it is 0\Unit{pt}. +% +\EndIndex{PLength}{toaddrindent}% + + +\begin{Declaration} + \Variable{backaddress}\\ + \Variable{backaddressseparator}\\ + \PLength{backaddrheight} +\end{Declaration} +\BeginIndex{Variable}{backaddress}\BeginIndex{Variable}{backaddressseparator}% +\BeginIndex{PLength}{backaddrheight}% +The sender's address often is printed in one line with small letters above the +address if window envelopes are used. This line, called return address, is +separated by a horizontal line, and usually build automaticly of the variables +\Variable{fromname} und \Variable{fromaddress}. Double backslashes set within +this return address will be exchanged by the settings of the variable +\Variable{backaddressseparator}. Predefined here is a comma with a whitespace. +The height this return address field can take is defined with the pseudolength +\PLength{backaddrheight}. The value typically is 5\Unit{mm} and set in the +predefined \File{lco}-files. If the return address line is to be set or not +depends on putting the options \Option{addrfield} and \Option{backaddress} in +the letter declarations (see \autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{backaddrheight}% +\EndIndex{Variable}{backaddress}\EndIndex{Variable}{backaddressseparator}% + + +\begin{Declaration} + \Variable{specialmail}\\ + \PLength{specialmailindent}\\ + \PLength{specialmailrightindent} +\end{Declaration} +\BeginIndex{Variable}{specialmail}% +\BeginIndex{PLength}{specialmailindent}% +\BeginIndex{PLength}{specialmailrightindent}% +Between the return address and addressee, the distribution like +specialmail can be set optionally. +It's set then if \Variable{specialmail} has a value. +The both pseudolengths \PLength{specialmailindent} and +\PLength{specialmailrightindent} determine the alignment. +They determine the left and right indentation. +The predefined \File{lco}-files have \PLength{specialmailindent} +set as the elastic value \Macro{fill}, while the pseudolength \PLength{specialmailrightindent} +is set to 1\Unit{em}. Thus distribution term is set 1\Unit{em} off the +right border of the address window. +% +\EndIndex{PLength}{specialmailindent}% +\EndIndex{PLength}{specialmailrightindent}% +\EndIndex{Variable}{specialmail}% + + +\begin{Declaration} + \Variable{toname}\\ + \Variable{toaddress} +\end{Declaration} +\BeginIndex{Variable}{toname}% +\BeginIndex{Variable}{toaddress}% +These two variables that give name and address of the addressee usually aren't +set directly by the user. Instead \Class{scrlttr2} takes it directly off the +\PName{addressee}-argument of the +\Environment{letter}-environment\IndexEnv{letter}. See also the hint about the +sender's address in \autoref{sec:scrlttr2.firstHead}. +% +\EndIndex{Variable}{toname}% +\EndIndex{Variable}{toaddress}% + + +\begin{Declaration} + \Macro{begin}% + \PParameter{letter}\OParameter{options}\Parameter{address} +\end{Declaration} +\BeginIndex{Env}{letter}% +The letter environment is but one key point of the letter class. Especially +with \Class{scrlttr2} it is possible to run the letter environment with +additional \PName{options}. They will be run according to the +\Macro{KOMAoptions}-commands. \PName{address} will be given to the letter +environment as an obligatory parameter. Here the double backslash works as a +hyphen between parts of \PName{address}. Those parts then are printed as +single lines. The double backslashes here shouldn't be understood as +strict line break commands. Paragraphs, vertical space, etc., aren't accepted +within the address. They can lead to unexpected effects and error messages. +By the way it is the same way with the standard letter class. +The~\Environment{letter}-environment itself doesn't start the letter. The +letter is started with the \Macro{opening}-command. +\EndIndex{Env}{letter}% + + +\begin{Declaration} + \Macro{AtBeginLetter}\Parameter{command} +\end{Declaration} +\BeginIndex{Cmd}{AtBeginLetter}% +It is possible with \LaTeX{} to process additional \PName{commands} +while running the \LaTeX{}-process at determined times. +For that matter, the \Macro{AtBeginDocument} or \Macro{AtEndOfClass} +exist; those points along the processing of \LaTeX{} are called \emph{hooks}. +The class \Class{scrlttr2} adds another hook to this, that can be used with +\Macro{AtBeginLetter}. Originally those hooks are made for package or class +authors, which can be understood by the fact that the descriptions for those +hooks aren't documented in \cite{latex:usrguide}, but in +\cite{latex:clsguide}. With the letter class there could come some useful +applications for \Macro{AtBeginLetter} as the following example may show: +% +\begin{Example} + Given one has to set more letters than just one with one document and uses + commands within the letter to set a form. The numbers of the questions in + that form should be generated automatically with the help of a counter. Since, in + contrary to the page numbering, that counter is not known by + \Class{scrlttr2}, it wouldn't be reset at each start of a new letter. + Given each form holds ten questions, then question 1 would not be question 1 + in the fifth letter, but instead number 41. The solution is in having + \Class{scrlttr2} reset this counter at the beginning of each new letter: + \begin{small} +\begin{verbatim} + \newcounter{Question} + \newcommand{\Question}[1]{% + \refstepcounter{Question}\par + \@hangfrom{\makebox[2em][r]{\theQuestion:~}}{#1}} + \AtBeginLetter{\setcounter{Question}{0}} +\end{verbatim} + \end{small} + This way question~1 remains question~1, even in the 1001st letter. Of course + definitions like those mentioned above need to be given either braced (see + \cite{DANTE:FAQ}) in the declaration of the letter (see + \autoref{sec:scrlttr2.document} and + \autoref{fig:scrlttr2.document}) with \Macro{makeatletter} and + \Macro{makeatother}, or loaded as package of one's own, or as + \File{lco}-file (see \autoref{sec:lcoFile}). +\end{Example} +% +\EndIndex{Cmd}{AtBeginLetter}% + + +\subsection{The Sender's Extensions} +\label{sec:scrlttr2.locationField} + +Often, especially with business letters, the space for letter-head or pagefoot +seems to be too tight to put all you want to have set. To give more details +about the sender, often the space right beside the addressee's field is +used. In this manual this field is called \emph{sender's extension} + + +\begin{Declaration} + \PLength{locwidth} +\end{Declaration} +\BeginIndex{PLength}{locwidth}% +This pseudolength \PLength{locwidth} declares the width of the sender's +extensions. Its value is set typically 0\Unit{pt} in the predefined +\File{lco}-files. This value takes on a special position. It does not mean +that the sender's extension has no width. Instead it's actual width is set +with the \Macro{opening} when paperwidth, address window width, and distance +between left border of the sheet and address window is given. With it the +option \Option{locfield} (see \autoref{sec:scrlttr2.headoptions}) is +taken into account. +% +\EndIndex{PLength}{locwidth} + + +\begin{Declaration} + \Variable{location} +\end{Declaration} +\BeginIndex{Variable}{location}% +The content of the sender's extension is determined by the variable +\Variable{location}. To set this variable's content it's allowed to use +formatting commands like \Macro{raggedright}. One has to consider that +depending on the use of the options \Option{fromalign} and \Option{fromlogo}, +a part of the space for the sender's extension may be in use already (see +\autoref{sec:scrlttr2.headoptions}). +% +\begin{Example} + Given you like to put the names of your partners, manager, or court of + jurisdiction with the sender's extension, you can do this like: + \begin{small} +\begin{verbatim} + \KOMAoptions{locfield=wide} + \setkomavar{location}{\raggedright + \textbf{Partners:}\\ + \quad Hugo Mayer\\ + \quad Bernd Müller\\[1ex] + \textbf{Manager:}\\ + \quad Liselotte Mayer\\[1ex] + \textbf{Court of jurisdiction:}\\ + \quad Washington, DC + } +\end{verbatim} + \end{small} + The option \Option{locfield=wide} is set to make the details fit in + horizontally. Sender details like those mentioned in the above example, + can be given together with the common sender address with your own + \File{lco}-file. +\end{Example} +% +\EndIndex{Variable}{location}% + + +\subsection{The Business Line} +\label{sec:scrlttr2.refLine} + +Especially with business letters, a line can be found that gives initials, dial +code, customer number, invoice number, or a reference to a previous letter. +In this manual this line is called \emph{business line}. The business line can +consist of more than just one line and is set only if one of those variables +mentioned above is given. Only those fields will be set that are given. To set +a seemingly empty field, one needs to give as value at least a white space or +\Macro{null}. If you want to have your letter without a business line, then +just the variable \Variable{date} will be set instead. + + +\begin{Declaration} + \PLength{refvpos} +\end{Declaration} +\BeginIndex{PLength}{refvpos}% +This pseudolength gives the distance between the upper border of the sheet +and the business line. It's value is set differently in the predefined +\File{lco}-files. Typical values are between 80{,}5\Unit{mm} and +98{,}5\Unit{mm}. +% +\EndIndex{PLength}{refvpos}% + + +\begin{Declaration} + \PLength{refwidth} +\end{Declaration} +\BeginIndex{PLength}{refwidth}% +This pseudolength gives the width that is available for the business line. +The value is set typically to 0\Unit{pt} in the predefined \File{lco}-files. +This value has a special meaning. In no way does it determine that there is +no available width for the business line. Instead this value means that the +width will be calculated with the \Macro{opening}. Thus the calculated width +depends on the determination of the options \Option{refline} (see +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{refwidth}% + + +\begin{Declaration} + \PLength{refaftervskip} +\end{Declaration} +\BeginIndex{PLength}{refaftervskip}% +This pseudolength gives the vertical space that has to be inserted beneath +the business line. The value is set in the predefined \File{lco}-files. It +effects directly the textheight of the first page. A typical value is +something between one and two lines. +% +\EndIndex{PLength}{refaftervskip}% + + +\begin{Declaration} + \Variable{place}\\ + \Variable{placeseparator} +\end{Declaration} +\BeginIndex{Variable}{place}% +\BeginIndex{Variable}{placeseparator}% +As said before in the introduction of this paragraph, the business line can be +left out. This happens if all variables of the business line are empty with +the exception of the variable for the date. In this case, the content of +\Variable{place} and \Variable{placeseparator} will be set, followed by the +content of \Variable{date}. The predefined content of the +\Variable{placeseparator} is a comma followed by a white space. If this +variable \Variable{place} has no value then the hyphen remains unset also. +The predefined subject of \Variable{date} is \Macro{today} and depends on the +setting of the option \Option{numericaldate} (see +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{Variable}{place}% +\EndIndex{Variable}{placeseparator}% + + +\begin{Declaration} + \Variable{yourref}\\ + \Variable{yourmail}\\ + \Variable{myref}\\ + \Variable{customer}\\ + \Variable{invoice} \\ + \Variable{date} +\end{Declaration} +\BeginIndex{Variable}{yourref}% +\BeginIndex{Variable}{yourmail}% +\BeginIndex{Variable}{myref}% +\BeginIndex{Variable}{customer}% +\BeginIndex{Variable}{invoice}% +\BeginIndex{Variable}{date}% +These variables are typical for business line fields. To find out about their +meaning, see table ~\ref{tab:scrlttr2.variables} on +\autopageref{tab:scrlttr2.variables}. Each variable covers a predefined label +that can be seen at \autoref{tab:scrlttr2.reflineTerm}. The field width that +belongs to each variable, adjusts itself automatically to its label and +content. +% +\begin{table} +\centering +\begin{tabular}{lll} + name & label & in english \\\hline\\[-2ex] + \Variable{yourref} & \Macro{yourrefname} & Your reference \\ + \Variable{yourmail} & \Macro{yourmailname} & Your letter from \\ + \Variable{myref} & \Macro{myrefname} & Our reference \\ + \Variable{customer} & \Macro{customername} & Customer No.: \\ + \Variable{invoice} & \Macro{invoicename} & Invoice No.: \\ + \Variable{date} & \Macro{datename} & date \\ +\end{tabular} +\caption{predefined labels of the business line's typical variables. The + content of the makros depend on language.} +\label{tab:scrlttr2.reflineTerm} +\end{table} +% +\EndIndex{Variable}{yourref}% +\EndIndex{Variable}{yourmail}% +\EndIndex{Variable}{myref}% +\EndIndex{Variable}{customer}% +\EndIndex{Variable}{invoice}% +\EndIndex{Variable}{date}% + + + +\subsection{The Title and the Subject Line} +\label{sec;scrlttr2.titleSubject} +Business letters most often carry a subject line. The subject line indicates +in short of what that letter is about. Usually the subject should be short and +precise and not run across several lines. The letter may also carry a title. +Titles find usage with unregular letters like an Invoice or a Reminder. + + +\begin{Declaration} + \Variable{title} +\end{Declaration} +\BeginIndex{Variable}{title}% +With \Class{scrlttr2} a letter can carry an additional title. The title +becomes centered and set with letter size \Macro{LARGE} right +after and beneath the business line. +The predefined font setup for this element +(\Macro{normalcolor}\Macro{sffamily}\Macro{bfseries}) can be changed with +help of the interface described in \autoref{sec:maincls.font}. Font size +declarations are allowed. +\begin{Example} + Given you are to write a reminder. Thus you put the title: + \begin{small} +\begin{verbatim} + \setkomavar{title}{Reminder} +\end{verbatim} + \end{small} + This way the addressee will recognize a reminder as such. +\end{Example} +% +\EndIndex{Variable}{title} + + +\begin{Declaration} + \Variable{subject}\\ + \Variable{subjectseparator} +\end{Declaration} +\BeginIndex{Variable}{subject}% +\BeginIndex{Variable}{subjectseparator}% +In case a subject should be set then you have to determine the variable +\Variable{subject} fit. Depending on what the option \Option{subject} is set +to a label can be put in front of the subject issue; also the vertical +position of the subject issue can be changed (see +\autoref{sec:scrlttr2.headoptions}). To see the predetermined labels +look at \autoref{tab:scrlttr2.subjectTerm}. The predefined value of +\Variable{subjectseparator} is a colon followed by a white space. +% +\begin{table} +\centering +\begin{tabular}{lll} + name & label \\\hline\\[-2ex] + \Variable{subject} & \Macro{usekomavar*}\PParameter{subjectseparator}% + \texttt{\%} \\ & \texttt{\quad}% + \Macro{usekomavar}\PParameter{subjectseparator} + \\ + \Variable{subjectseparator} & \Macro{subjectname} \\ +\end{tabular} +\caption{Predefined Labels Of The Subject's Variables.} +\label{tab:scrlttr2.subjectTerm} +\end{table} + +The subject line is set in a separate type face. To change this use +the user interface described in \autoref{sec:maincls.font}. For +the element \FontElement{subject}\IndexFontElement{subject} the +predetermined type face in \Class{scrlttr2} is +\Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}. +\begin{Example} + Given you are a board member and want to write a letter to another member of + that board about a few internals of the organization. You want to + clarify with your subject line what this letter is all about, but without + labeling it thus. You can do this that way: + \begin{small} +\begin{verbatim} + \setkomavar{subject}[Subject ]{% + organization's internals} +\end{verbatim} + \end{small} + or easier: + \begin{small} +\begin{verbatim} + \setkomavar{subject}[]{% + about organization's internals} +\end{verbatim} + \end{small} + More than just that you may want to have set the subject line not only bold but + also with sans serif types: + \begin{small} +\begin{verbatim} + \addtokomafont{subject}{\sffamily} +\end{verbatim} + \end{small} + As you can see, it's really easy to solve this problem. +\end{Example} +% +\EndIndex{Variable}{subject}% +\EndIndex{Variable}{subjectseparator}% + + +\subsection{Further Issues} +In this paragraph variables and settings are listed which couldn't be assigned +to any other paragraph of the letter declaration but somehow belong to this +chapter. + +\begin{Declaration} + \PLength{tfoldmarkvpos}\\ + \PLength{bfoldmarkvpos} +\end{Declaration} +\BeginIndex{PLength}{tfoldmarkvpos}% +\BeginIndex{PLength}{bfoldmarkvpos}% +The letterclass \Class{scrlttr2} all in all has 3 fold marks. The one in the +middle serves to halve the paper and is therefore printed always in the middle +of paperheight. The position of the upper fold mark, seen from the upper +sheet's border, is determined by the pseudolength \PLength{tfoldmarkvpos}; the +lower one is determined by the pseudolength \PLength{bfoldmarkvpos}. All three +fold marks do not serve to exactly fold to a standard 3 panel letter +fold. Instead the idea is to have the paper folded so that the address +field is seen in the window of a window envelope. The settings therefore are +different in the predefined \File{lco}-files. A special case is +\Option{DINmtext}. In this case the envelope format C6/5 (also called +``C6~long'') is necessary. Letters produced in this format aren't compatible +with neither format C~5 nor C~4. +% +\EndIndex{PLength}{tfoldmarkvpos}% +\EndIndex{PLength}{bfoldmarkvpos}% + + +\begin{Declaration} + \PLength{foldmarkhpos} +\end{Declaration} +\BeginIndex{PLength}{foldmarkhpos}% +This pseudolength gives the distance between all of the three fold marks +and the sheet's left border. Usually it's 3{,}5\Unit{mm}. In case you work +with a printer with a broader unprintable left margin this value can be +changed in your own \File{lco}-file. The length of the upper and lower +fold mark is the same and 4\Unit{mm} long. The thickness of all three is +2\Unit{pt}. At the moment there are no plans to change this value. If the fold +marks will be set at all depends on the option \Option{foldmarks} (see +\autoref{sec:scrlttr2.headoptions}). +% +\EndIndex{PLength}{foldmarkhpos}% + + +\begin{Declaration} + \Variable{frombank} +\end{Declaration} +\BeginIndex{Variable}{frombank}% +This variable at the moment takes on a special position. Not in use internally +up to this moment it can come into usage if one e.g. wants to have set his +bank account within the sender's extension field or the footer. +% +\EndIndex{Variable}{frombank}% + + +\begin{Declaration} + \Macro{nexthead}\Parameter{construction}\\ + \Macro{nextfoot}\Parameter{construction} +\end{Declaration} +\BeginIndex{Cmd}{nexthead}% +\BeginIndex{Cmd}{nextfoot}% +The possibilities that are offered with variables and options in +\Class{scrlttr2} should be good enough in most of the cases to create +letter-heads and foots for those pages that follow the first letter page. This +even more since you can additionally change the sender's statements with +\Macro{markboth} and \Macro{markright} that \Class{scrlttr2} uses to create +the letter head. With the term ``follow up pages'' in this manual all pages +are meant excepted the first letter page. The commands +\Macro{markboth}\IndexCmd{markboth} and \Macro{markright}\IndexCmd{markright} +can be used all together with pagestyle\Index{page style} +\PValue{myheadings}\IndexPagestyle{myheadings}. If the package +\Package{scrpage2}\IndexPackage{scrpage2} is used this, of course, is valid +also for pagestyle \PValue{scrheadings}\IndexPagestyle{scrheadings}. Then too +the command \Macro{markleft}\IndexCmd{markleft} is available. + +At times one wants to have more freedom with creating letter head or foot of +the follow up pages. Then one has to let go of the possibilities of predefined +letter heads or foots, that could have been chosen via option. Instead one is +free to create it just the way one wants to have them set. Therefore one is to +create the desired \PName{construction} with use of the command +\Macro{nexthead} or \Macro{nextfoot} respectively. Within \Macro{nexthead} und +\Macro{nextfoot} for example you can have several boxes side by side or one +beneath the other by use of \Macro{parbox}-command (see +\cite{latex:usrguide}). With this a more advanced user should have no problems +with creating letter heads of foots of his own. With \PName{construction} of +course you can make use of the variables of \Macro{usekomavar} too. +% +\EndIndex{Cmd}{nexthead}% +\EndIndex{Cmd}{nextfoot}% + + + +\section{The Text} +\label{sec:scrlttr2.text} + +In contrast to an article, a report or a book the letter has +no chapter or section structure. +Even float environments with tables and figure are unusual. +Therefore a letter has no table of contents, lists of +figures and tables, index, bibliography, glossary or other things. +The letter texts mainly consist of an opening and the main +text. Thereupon follows the signature, a postscript +and different listings. + + +\subsection{The Opening} +\label{sec:scrlttr2.opening} + +\begin{Explain} +In the early days of computer generated letters the programs didn't +have many capabilities, therefore the letters seldom had +an opening. +Today the capabilities have been enhanced. Thus personal +openings are very common, even in mass-production +advertising letters. +\end{Explain} + +\begin{Declaration} + \Macro{opening}\Parameter{opening} +\end{Declaration} +\BeginIndex{Cmd}{opening}% +This is the most important command in \Class{scrlttr2}. +For the user it seems that only the opening will be typeset, +but the command also typesets the folding marks, headings, +address field, subject, the page foot and others. +That means: without \Macro{opening} there is no letter. +% +\EndIndex{Cmd}{opening}% + +\subsection{Footnotes} +\label{sec:scrlttr2.footnotes} + +In letters footnotes should be used more sparingly than in normal +documents. However, \Class{scrlttr2} is equipped with all +mechanisms mentioned in \autoref{sec:maincls.footnotes} for +the main document classes. Therefore it will not be discussed +here again. + +\subsection{Lists} +\label{sec:scrlttr2.lists} + +Lists have the same validity in letters as in normal documents. +Thus \Class{scrlttr2} provides the same possibilities +as mentioned in \autoref{sec:maincls.lists} for the +main document classes. + +\subsection{Margin Notes} +\label{sec:scrlttr2.marginNotes} + +Margin notes are quite uncommon in letters. Therefore the +option \Option{mpinclude} is not supported by \Class{scrlttr2}. +However, \Class{scrlttr2} is equipped with all +mechanisms mentioned in \autoref{sec:maincls.marginNotes} for +the main document classes. Therefore it will not be discussed +here again. + +\subsection{Text Emphasis} +\label{sec:scrlttr2.emphasis} + +The distinction of text has the same importance in letters as in +other documents. Thus the same rules apply that means: emphasize +text sparingly. Even letters should be readable and a letter +where each word is typeset in an other font is indeed unreadable. + +The class \Class{scrlttr2} is equipped with all +mechanisms mentioned in \autoref{sec:maincls.emphasis} for +the main document classes. Therefore it will not be discussed +here again. + +\section{The Closing Part} +\label{sec:scrlttr2.backend} + +A letter always ends with a closing phrase. +Even computer generated letters without signature +have this phrase. +Sometimes this is a sentence like ``This letter has been +generated automatically.''. +Sometimes a sentence like this will even be used as signature. +Thereupon can follow a postscript and some listings. + +\subsection{Closing} +\label{sec:scrlttr2.closing} + +The closing consists of three parts. Besides the closing phrase +there are a hand-written inscription and the signature, an explanation +for the inscription. + +\begin{Declaration} + \Variable{signature} +\end{Declaration} +\BeginIndex{Variable}{signature}% +The variable \Variable{signature} includes an explanation +for the inscription. Their content is pre-defined as +\Macro{usekomavar}\PParameter{fromname}. +The explanation can consist of multiple lines. The lines +should be separated by a double backslash. Paragraphs +in the explanation are not permitted. +% +\EndIndex{Variable}{signature}% + +\begin{Declaration} + \Macro{closing}\Parameter{closing phrase} +\end{Declaration} +\BeginIndex{Cmd}{closing}% +The command \Macro{closing} does not only typeset the +closing phrase, but moreover it typesets the phrase followed +by a vertical space and the content of the variable \Variable{signature}. +The closing phrase can consists of multiple lines, but +paragraphs are not permitted. +% +\EndIndex{Cmd}{closing}% + + +\begin{Declaration} + \PLength{sigindent}\\ + \PLength{sigbeforevskip}\\ + \Macro{raggedsignature} +\end{Declaration} +\BeginIndex{PLength}{sigindent}% +\BeginIndex{PLength}{sigbeforevskip}% +\BeginIndex{Cmd}{raggedsignature}% +Closing phrase, inscription and signature will be typeset +in a box. The width of the box is determined by the length +of the longest line of the closing phrase or signature. + +The box will be typeset with indentation of the length +in pseudo-length \PLength{sigindent}. In the default +\File{lco} file this length is set to 0\Unit{mm}. + +The command \Macro{raggedsignature} defines the alignment +inside the box. In the default \File{lco} file the command +is either defined as \Macro{centering} (all besides \Option{KOMAold}) +or \Macro{raggedright} (\Option{KOMAold}). +In order to get flushright or flushleft alignment inside the box +the command can be redefined in the same way as +\Macro{raggedsection} (see \autoref{sec:maincls.structure}). + +Between closing phrase and signature a vertical space is +inserted. The height of this space is defined in the pseudo-length +\PLength{sigbeforevskip}. It defaults to 2 lines. +In this space you can write your inscription. +\begin{Example} + You are writing as directorate of a society a letter + to all members. + Moreover you want in one respect elucidate that you are writing + in the name of the board of directors and on the other hand + you want indicate your position in the board of directors. + \begin{small} +\begin{verbatim} + \setkomavar{signature}{John McEnvy\\ + {\small (Vize-President ``The Other Society'')}} + \closing{Regards\\ + (for the board of directors)} +\end{verbatim} + \end{small} + Certainly you can set the variable \Variable{signature} + in your private \File{lco} file. + Usally you should prefer to define the variable in the + letter preamble. +\end{Example} +% +\EndIndex{PLength}{sigindent}% +\EndIndex{PLength}{sigbeforevskip}% +\EndIndex{Cmd}{raggedsignature}% + +\subsection{Postscript, Carbon Copy and Enclosures} +\label{sec:scrlttr2.afterClosing} + +After the closing can follow some other statements. +Besides the postscript there are the distribution list +of carbon copies and the reference to enclosures. + +\begin{Declaration} + \Macro{ps} +\end{Declaration}% +\BeginIndex{Cmd}{ps}% +\begin{Explain}% +In the time when letters were written by hand it was quite usual +to use a postscript because this was the only way to add +information which one had forget to mention in the main part of +the letter. Of course, in letters written with \LaTeX{} you can +insert additional lines easily. Nevertheless, it is still popular +to use the postscript. It gives a good possibility to underline +again the most important or sometimes the less important things of +this letter. +% +\end{Explain} +This instruction just switches to the postscript. +Therefore a new paragraph begins and a vertical distance +-- usually below the signature -- is inserted. +The command \Macro{ps} is followed by normal text. If you +want the postscript to be introduced with the acronym "PS:" you +have to type the acronym inside the command. By the way, this +acronym is been written without a full stop. The acronym is +neither be typeset automatically nor optionally by the class +\Class{scrlttr2}. +% +\EndIndex{Cmd}{ps} + + +\begin{Declaration} + \Macro{cc}\Parameter{distribution list}\\ + \Variable{ccseparator} +\end{Declaration} +\BeginIndex{Cmd}{cc}% +\BeginIndex{Variable}{ccseparator}% +With the command \Macro{cc} it is possible to typeset a +\PName{distribution list}. +The command gets the \PName{distribution list} as argument. +If the content of the variable \Variable{ccseparator} +isn't empty then the name and the content of the variable +is inserted prior to \PName{distribution list}. +In this case the \PName{distribution list} will be indented +appropriately. +It is a good idea to set the \PName{distribution list} +\Macro{raggedright} and to separate the lines by a double backslash. +\begin{Example} +You want to indicate that your letter is adressed to all members of a +society and to the board of directors: + \begin{small} +\begin{verbatim} + \cc{% + the board of directors\\ + all society members\\ +\end{verbatim} + \end{small} + Write this instruction below the \Macro{closing}-instruction + from the previous example or below a possible postscript. +\end{Example} +A vertical space is inserted automatically before the distribution +list. +% +\EndIndex{Cmd}{cc}% +\EndIndex{Variable}{ccseparator}% + + +\begin{Declaration} + \Macro{encl}\Parameter{enclosures}\\ + \Variable{enclseparator} +\end{Declaration} +\BeginIndex{Cmd}{encl}% +\BeginIndex{Variable}{enclseparator}% +\PName{Enclosures} have the same structure as the distribution list. +There is just a single difference, the enclosures starts with +the name and the content of the variable \Variable{enclseparator}. +% +\EndIndex{Cmd}{encl}% +\EndIndex{Variable}{enclseparator}% + + +\section{Language Support} +\label{sec:scrlttr2.languages} + +The document class \Class{scrlttr2} supports many languages. These +are German \PValue{ngerman} (\PValue{german} for old German +orthography), \PValue{austrian} for Austrian, English +(\PValue{english} without specification whether American or British +should be used, \PValue{american} and \PValue{USenglish} for American, +\PValue{british} and \PValue{UKenglish} for British), French, Italian, +Spanish, Dutch and Croatian. + +\subsection{Language Selection} +\label{sec:scrlttr2.switchLanguage} +\Index[indexmain]{language selection} + +If the package \Package{babel}\IndexPackage{babel} is used one can +switch between languages with the command +\Macro{selectlanguage}\Parameter{language}. Other packages like +\Package{german}\IndexPackage{german} and +\Package{ngerman}\IndexPackage{ngerman} also define this command. As +a rule the language selection takes place when such a package is +loaded. + +There is one thing more to mention about language packages. The +package \Package{french}\IndexPackage{french} re-defines not only the +terms of \autoref{sec:scrlttr2.languageTerms}. The package even +re-defines the command \Macro{opening}, since it assumes that the +definition of the standard \Class{letter} is used. Therefore the +package \Package{french} spoils the definition of the \Class{scrlttr2} +class. I think this is a fault of the \Package{french} package. + +If one utilizes the \Package{babel}\IndexPackage{babel} package in +order to switch to language \PValue{french} and the package +\Package{french}\IndexPackage{french} is installed too, then the same +problems occur since \Package{babel} employs definitions from the +\Package{french} package. If the package \Package{french} is not +installed then there are no problems. + +Additionally there is no problem if for \Package{babel} instead of +\PValue{french} other languages like \PValue{acadian}, +\PValue{canadien}, \PValue{francais} or \PValue{frenchb} are chosen. +Therefore I recommend +\Macro{usepackage}\PValue{[frenchb]}\PParameter{babel} in order to +select french. + +Other languages can cause these problems too. Currently there are no +problems known with the \Package{babel} package for the german +language and the various english language selections. + +\iftrue +% You may use this paragraphs to improve page break: +Most \Package{babel} features at \Package{babel} or original +language definition files of \Package{babel} (e.g. \File{frenchb.ldf}), +which may cause problems with other packages or classes, can be +switched off. This is a great advantage of babel. So if you have a +problem, try to switch of such features or ask the authors of +\Package{babel}. + +There are no problems known using the +\Package{german}\IndexPackage{german} or +\Package{ngerman}\IndexPackage{ngerman} package for german selection +with old or new orthography. +\fi + +\begin{Declaration} + \Macro{captionsenglish}\\ + \Macro{captionsUSenglish}\\ + \Macro{captionsamerican}\\ + \Macro{captionsbritish}\\ + \Macro{captionsUKenglish}\\ + \Macro{captionsgerman}\\ + \Macro{captionsngerman}\\ + \Macro{captionsaustrian}\\ + \Macro{captionsfrench}\\ + \Macro{captionsitalian}\\ + \Macro{captionsspanish}\\ + \Macro{captionsdutch}\\ + \Macro{captionscroatian} +\end{Declaration} +\BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish} +\BeginIndex{Cmd}{captionsamerican}\BeginIndex{Cmd}{captionsbritish} +\BeginIndex{Cmd}{captionsUKenglish}\BeginIndex{Cmd}{captionsgerman} +\BeginIndex{Cmd}{captionsngerman} +\BeginIndex{Cmd}{captionsaustrian}\BeginIndex{Cmd}{captionsfrench} +\BeginIndex{Cmd}{captionsitalian}\BeginIndex{Cmd}{captionsspanish} +\BeginIndex{Cmd}{captionsdutch}\BeginIndex{Cmd}{captionscroatian} If +one switches the language then using these commands the language-terms +from \autoref{sec:scrlttr2.languageTerms} are re-defined. +If the used language selection scheme does not support this +then the commands above can be used directly. +% +\EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} +\EndIndex{Cmd}{captionsamerican}\EndIndex{Cmd}{captionsbritish} +\EndIndex{Cmd}{captionsUKenglish}\EndIndex{Cmd}{captionsgerman} +\EndIndex{Cmd}{captionsngerman} +\EndIndex{Cmd}{captionsaustrian}\EndIndex{Cmd}{captionsfrench} +\EndIndex{Cmd}{captionsitalian}\EndIndex{Cmd}{captionsspanish} +\EndIndex{Cmd}{captionsdutch}\EndIndex{Cmd}{captionscroatian} + + +\begin{Declaration} + \Macro{dateenglish}\\ + \Macro{dateUSenglish}\\ + \Macro{dateamerican}\\ + \Macro{datebritish}\\ + \Macro{dateUKenglish}\\ + \Macro{dategerman}\\ + \Macro{datengerman}\\ + \Macro{dateaustrian}\\ + \Macro{datefrench}\\ + \Macro{dateitalian}\\ + \Macro{datespanish}\\ + \Macro{datedutch}\\ + \Macro{datecroatian} +\end{Declaration} +\BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} +\BeginIndex{Cmd}{dateamerican}\BeginIndex{Cmd}{datebritish} +\BeginIndex{Cmd}{dateUKenglish}\BeginIndex{Cmd}{dategerman} +\BeginIndex{Cmd}{datengerman} +\BeginIndex{Cmd}{dateaustrian}\BeginIndex{Cmd}{datefrench} +\BeginIndex{Cmd}{dateitalian}\BeginIndex{Cmd}{datespanish} +\BeginIndex{Cmd}{datedutch}\BeginIndex{Cmd}{datecroatian}% +The date\Index{Date} in its numerical representation +(see option \Option{numericaldate} in +\autoref{sec:scrlttr2.headoptions}) will be written depending +on the selected language. Some examples can be found in +\autoref{tab:date}. +% +\EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish} +\EndIndex{Cmd}{dateamerican}\EndIndex{Cmd}{datebritish} +\EndIndex{Cmd}{dateUKenglish}\EndIndex{Cmd}{dategerman} +\EndIndex{Cmd}{datengerman} +\EndIndex{Cmd}{dateaustrian}\EndIndex{Cmd}{datefrench} +\EndIndex{Cmd}{dateitalian}\EndIndex{Cmd}{datespanish} +\EndIndex{Cmd}{datedutch}\EndIndex{Cmd}{datecroatian}% + +\begin{table}[t] +\centering +\begin{tabular}{ll} + Command & Date example \\\hline\\[-1.6ex] + \Macro{dateenglish} & 1/12/1993\\ + \Macro{dateUSenglish} & 12/1/1993\\ + \Macro{dateamerican} & 12/1/1993\\ + \Macro{datebritish} & 1/12/1993\\ + \Macro{dateUKenglish} & 1/12/1993\\ + \Macro{dategerman} & 1.\,12.\,1993\\ + \Macro{datengerman} & 1.\,12.\,1993\\ + \Macro{dateaustrian} & 1.\,12.\,1993\\ + \Macro{datefrench} & 1.\,12.\,1993\\ + \Macro{dateitalian} & 1.\,12.\,1993\\ + \Macro{datespanish} & 1.\,12.\,1993\\ + \Macro{datedutch} & 1.\,12.\,1993\\ + \Macro{datecroatian} & 1.\,12.\,1993.\\ +\end{tabular} +\caption{Language-dependent forms of the date} +\label{tab:date} +\end{table} +% + + +\subsection{Language-Dependent Terms}% +\label{sec:scrlttr2.languageTerms}% +\Index[indexmain]{language-dependent terms}% +\Index[indexmain]{terms, language-dependent} + +As usual in \LaTeX{}, the language-dependent terms are defined +by commands. These commands are re-defined when one switches +the language. + +\begin{Declaration} + \Macro{yourrefname}\\ + \Macro{yourmailname}\\ + \Macro{myrefname}\\ + \Macro{customername}\\ + \Macro{invoicename}\\ + \Macro{subjectname}\\ + \Macro{ccname}\\ + \Macro{enclname}\\ + \Macro{headtoname}\\ + \Macro{headfromname}\\ + \Macro{datename}\\ + \Macro{pagename}\\ + \Macro{phonename}\\ + \Macro{faxname}\\ + \Macro{emailname}\\ + \Macro{wwwname}\\ + \Macro{bankname} +\end{Declaration} +\BeginIndex{Cmd}{yourrefname}\BeginIndex{Cmd}{yourmailname} +\BeginIndex{Cmd}{myrefname} +\BeginIndex{Cmd}{customername}\BeginIndex{Cmd}{invoicename} +\BeginIndex{Cmd}{subjectname} +\BeginIndex{Cmd}{ccname}\BeginIndex{Cmd}{enclname} +\BeginIndex{Cmd}{headtoname}\BeginIndex{Cmd}{headfromname} +\BeginIndex{Cmd}{datename}\BeginIndex{Cmd}{pagename} +\BeginIndex{Cmd}{phonename}\BeginIndex{Cmd}{faxname} +\BeginIndex{Cmd}{emailname}\BeginIndex{Cmd}{wwwname} +\BeginIndex{Cmd}{bankname} The commands above contain the +language-dependent terms. These definitions can be modified in +order to support a new language or for private cutomization. +How this can be done is described in +\autoref{sec:scrlttr2.defLanguageTerms}. +The definitions become active at \Macro{begin}\PParameter{document}. +Therefore they are not available in the \LaTeX{} preamble. +Thus they even can not be re-defined there. +In \autoref{tab:scrlttr2.languageTerms} the default settings +for \Option{english} and \Option{ngerman} can be found. +% +\EndIndex{Cmd}{yourrefname}\EndIndex{Cmd}{yourmailname} +\EndIndex{Cmd}{myrefname} +\EndIndex{Cmd}{customername}\EndIndex{Cmd}{invoicename} +\EndIndex{Cmd}{subjectname} +\EndIndex{Cmd}{ccname}\EndIndex{Cmd}{enclname} +\EndIndex{Cmd}{headtoname}\EndIndex{Cmd}{headfromname} +\EndIndex{Cmd}{datename}\EndIndex{Cmd}{pagename} +\EndIndex{Cmd}{phonename}\EndIndex{Cmd}{faxname} +\EndIndex{Cmd}{emailname}\EndIndex{Cmd}{wwwname} +\EndIndex{Cmd}{bankname} + +\begin{table}[!t] +\centering +\begin{tabular}{lll} +Command & \Option{english} & \Option{ngerman} \\\hline\\[-2ex] +\Macro{bankname} & Bank account & Bankverbindung \\ +\Macro{ccname} & cc & Kopien an \\ +\Macro{customername} & Customer no. & Kundennummer \\ +\Macro{datename} & Date & Datum \\ +\Macro{emailname} & Email & E-Mail \\ +\Macro{enclname} & encl & Anlagen \\ +\Macro{faxname} & Fax & Fax \\ +\Macro{headfromname} & From & Von \\ +\Macro{headtoname} & To & An \\ +\Macro{invoicename} & Invoice no. & Rechnungsnummer \\ +\Macro{myrefname} & Our ref. & Unser Zeichen \\ +\Macro{pagename} & Page & Seite \\ +\Macro{phonename} & Phone & Telefon \\ +\Macro{subjectname} & Subject & Betrifft \\ +\Macro{wwwname} & Url & URL \\ +\Macro{yourmailname} & Your letter of & Ihr Schreiben vom\\ +\Macro{yourrefname} & Your ref. & Ihr Zeichen \\ +\end{tabular} +\caption{Default settings for languages \Option{english} + and \Option{ngerman}} +\label{tab:scrlttr2.languageTerms} +\end{table} +% + +\subsection{Defining Language Terms} +\label{sec:scrlttr2.defLanguageTerms} +\Index[indexmain]{language definition} +\begin{Explain} + Normally one has to change or define the language terms of + \autoref{sec:scrlttr2.switchLanguage} in a way that additionally + to the available terms even the new or re-defined terms are + defined. Some packages like \Package{german}\IndexPackage{german} or + \Package{ngerman}\IndexPackage{ngerman} re-define those settings + when they are loaded. These packages re-define the definitions in a + way that spoils all previous private settings. That is also the + reason, why \Class{scrlttr2} delays its own changes with + \Macro{AtBeginDocument} until + \Macro{begin}\PParameter{document}. The user can also use + \Macro{AtBeginDocument} or re-define the language terms after + \Macro{begin}\PParameter{document}. The class \Class{scrlttr2} + provides some commands for defining language terms. +\end{Explain} + +\begin{Declaration} + \Macro{providecaptionname}% + \Parameter{language}\Parameter{term}\Parameter{definition}\\ + \Macro{newcaptionname}% + \Parameter{language}\Parameter{term}\Parameter{definition}\\ + \Macro{renewcaptionname}% + \Parameter{language}\Parameter{term}\Parameter{definition} +\end{Declaration} +\BeginIndex{Cmd}{providecaptionname}% +\BeginIndex{Cmd}{newcaptionname}% +\BeginIndex{Cmd}{renewcaptionname}% +Using one of the commands above the user can assign +a \PName{definition} for a \PName{language} to a \PName{term} . +The \PName{term} is always a command. The commands differ +dependent from whether a \PName{term} is already define +in \PName{language} or not. + +If \PName{language} is not defined then \Macro{providecaptionname} +writes only a message in the log-file. This happens only +once for each language. +If \PName{language} is defined but \PName{term} isn't defined +yet, then it will be defined using \PName{definition}. +The \PName{term} will not be re-defined if the \PName{language} +already has a definition. Instaed a log-message will be written. + +The command \Macro{newcaptionname} has a slightly different behaviour. +If the \PName{language} is not yet defined then a new language +command (see \autoref{sec:scrlttr2.switchLanguage}) +will be created and a log-message will be written. +If \PName{term} is not yet defined in \PName{language} then +it will be defined with \PName{definition}. +If \PName{term} already exists in \PName{language} then this +results in an error message. + +The command \Macro{renewcaptionname} requires an existing +definition of \PName{term} in \PName{language}. +In this case \PName{term} for \PName{language} will be re-defined +according to \PName{definition}. If neither \PName{language} +nor \PName{term} exist or \PName{term} is unknown in a defined +language then a error message will be given. + +The class \Class{scrlttr2} itself employs \Macro{providecaptionname} +in order to define the commands in +\autoref{sec:scrlttr2.languageTerms}. +\begin{Example} + If you prefer ``Your message of'' instead of ``Your letter of'' + you have to re-define the definition of \Macro{yourmailname}. + \begin{small} +\begin{verbatim} + \renewcaptionname{english}{\yourmailname}{% + Your message of} +\end{verbatim} + \end{small} + + Since only available terms can be re-defined you have to + delay the command until \Macro{begin}\PParameter{document} + using \Macro{AtBeginDocument}. + Furthermore you will get an error message if there is no + package used that defines a language selection command + for \PName{english}. +\end{Example} +% +\EndIndex{Cmd}{providecaptionname}% +\EndIndex{Cmd}{newcaptionname}% +\EndIndex{Cmd}{renewcaptionname}% + +\section{Address Files and Circular Letters} +\label{sec:scrlttr2.addressFile} + +When people write circular letters they mostly dislike to +type the many addresses. +The class \Class{scrlttr2} and its predecessor \Class{scrlettr} +as well provide basic support for it. +Currently there are plans for a much enhanced support. + +\typeout{^^J--- Ignore underfull and overfull \string\hbox:}% +\begin{Declaration} + \Macro{adrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{Comment}\Parameter{Key} +\end{Declaration}% +\typeout{^^J--- Don't ignore underfull and overfull \string\hbox:} +\BeginIndex{Cmd}{adrentry} +\label{decl:adrentry} + +The class \Class{scrlttr2} supports to use address files. +These address files contain address entries. +Each entry is an \Macro{adrentry} command with eight parameters as +can be seen above. +The file extension of the address file has to be \File{.adr}. +\begin{small} +\begin{verbatim} + \adrentry{McEnvy} + {Flann} + {Main Street 1\\ Glasgow} + {123 4567} + {male} + {} + {niggard} + {FLANN} +\end{verbatim} +\end{small} +The \Ord{5} and \Ord{6} element, \PValue{F1} and \PValue{F2}, can be +used freely, for example for the gender, the academic grade, the +birthday or the date the person has joined a society. The last +parameter \PName{Key} should only consist of uppercase letters in +order to not interfere with other \TeX{} or \LaTeX{} commands. + +\begin{Example} + Mr.\,McEnvy is one of your most important business partners, + but every day you get a reclamation from him. + Before long you don't want to bother typing his boring + address again and again. + Here \Class{scrlttr2} can help. + All your business partners have an entry in your + \File{partners.adr} address file. + If you now have to answer Mr.\,McEnvy again, then you + can save typing as can be seen below: + \begin{small} +\begin{verbatim} + \input{partners.adr} + \begin{letter}{\FLANN} + Your today's reclamation ... + \end{letter} +\end{verbatim}\end{small} + Your \TeX{} system must be configured to have access to your + address file. Without access the \Macro{input} command results + in an error. You can either put your address file where you + are running \LaTeX{} or configure your system to find + the file in a special directory. +\end{Example} +% +\EndIndex{Cmd}{adrentry} + +\typeout{^^J--- Ignore underfull and overfull \string\hbox:}% +\begin{Declaration} + \Macro{addrentry}\Parameter{Lastname}\Parameter{Firstname}% + \Parameter{Address}\Parameter{Telephone}\Parameter{F1}\Parameter{F2}% + \Parameter{F3}\Parameter{F4}\Parameter{Key} +\end{Declaration}% +\typeout{^^J--- Dont't ignore underfull and overfull \string\hbox:} +\BeginIndex{Cmd}{addrentry}% +Over the years people objected that the \Macro{adrentry} has only +two free parameters. Since \TeX{} supports at maximum nine +parameters per command, there now exists a new command called +\Macro{addrentry}, note the additional ``d''. +This command supports four freely definable parameters, that +means one parameter more than \Macro{adrentry}, since the comment +parameter has been replaced with the fourth free parameter. +The numbers of parameters is the only difference between +both commands. Thus you can mix both entry types in +one address file. + +There are some packages which can employ \File{adr} files. +For example \Package{adrconv} by Axel Kielhorn can be used +to create address lists from \File{adr} files. +But it has currently no support for command \Macro{addrentry}. +The only choice is to extent the package yourself. +% +\EndIndex{Cmd}{addrentry} + +Besides the simple acccess to addresses the address files can +be easily used in order to write circular letters. +Thus there is no complicated data-base system and its connection +to \TeX{} required. +% +\begin{Example} + Suppose you are member of a society and want write a invitation + for the next general meeting to all members. + \begin{small} +\begin{verbatim} + \documentclass{scrlttr2} + \begin{document} + \renewcommand*{\adrentry}[8]{ + \begin{letter}{#2 #1\\#3} + \opening{Dear members,} + our next general meeting will be on monday + August 12, 2002. The following topics are ... + \closing{Regards,} + \end{letter} + } + \input{members.adr} + \end{document} +\end{verbatim} + \end{small} + If the address file contains \Macro{addrentry} statements + too, then even an additional definition for \Macro{addrentry} + is required. + \begin{small} +\begin{verbatim} + \renewcommand*{\addrentry}[9]{ + \begin{letter}{#2 #1\\#3} + \opening{Dear members,} + our next general meeting will be on monday + August 12, 2002. The topics of the meeting are ... + \closing{Regards,} + \end{letter} + } +\end{verbatim} + \end{small} + In this simple example the extra freely definable parameter + is not used. +\end{Example} + +With some additional programming one can let the contents +depend on the address data. For this the free parameters +can be used. + +\begin{Example} + Suppose the fifth parameter of the \Macro{adrentry} command + contains the gender of a member (\PValue{m/f}). + The sixth parameter contains what member subscribtion + has still not been discharged by the member. + If you would like to write a more personal reminder + then the next example can help you. + \begin{small} +\begin{verbatim} + \renewcommand*{\adrentry}[8]{ + \ifcase #6 + % #6 greater than 0? + % this selects all members with open subscription + \else + \begin{letter}{#2 #1\\#3} + \if #5m \opening{Dear Mr.\,#2,} \fi + \if #5f \opening{Dear Mrs.\,#2,} \fi + + Unfortunately we have to remind you that you have + still not paid the member subscription for this + year. + + Please remit EUR #6 to the account of the society. + \closing{Regards,} + \end{letter} + \fi + } +\end{verbatim} + \end{small} +\end{Example} +As you can see the letter text can be made more personal +depending on attributes of the letter's addressee. +The number of attributes is only restricted by number of the +two free parameters of the \Macro{adrentry} command or +four free parameters of the \Macro{addrentry} command. + +\begin{Declaration} + \Macro{adrchar}\Parameter{initial letter}\\ + \Macro{addrchar}\Parameter{initial letter} +\end{Declaration} +\BeginIndex{Cmd}{adrchar}\BeginIndex{Cmd}{addrchar} +\Index[indexmain]{address list}\Index[indexmain]{telephone list}% +As already mentioned above it is possible to create address +and telephone lists using \File{adr} files. +For that the additional package \Package{adrconv}-Paket by +Axel Kielhorn (see \cite{package:adrconv}) is needed. +This package contains interactive \LaTeX{} documents +which help to create those lists. + +The address files have to be sorted already in order to +get sorted lists. It is recommended to sort and separate the +entries by the initial letter of \PName{Lastname}. +As a seperator the commands \Macro{adrchar} and \Macro{addrchar} +can be used. These commands will be ignored if the address files +are utilized in \Class{scrlettr2}. +% +\begin{Example} + Suppose the following address file: + \begin{small} +\begin{verbatim} + \adrchar{A} + \adrentry{Angel}{Gabriel} + {Cloud 3\\12345 Heaven's Realm} + {000\,01\,02\,03}{}{}{archangel}{GABRIEL} + \adrentry{Angel}{Michael} + {Cloud 3a\\12345 Heaven's Realm} + {000\,01\,02\,04}{}{}{archangel}{MICHAEL} + \adrchar{K} + \adrentry{Kohm}{Markus} + {Fichtenstra\ss e 63\\68535 Edingen-Neckarhausen} + {+49~62\,03~1\,??\,??}{}{}{no angel at all} + {KOMA} +\end{verbatim} + \end{small} + This address file can be treated with \File{adrdir.tex} of the + \Package{adrconv} package \cite{package:adrconv}. + The result should look like this: + \begin{center} + \setlength{\unitlength}{1mm} + \begin{picture}(80,57) + \put(0,57){\line(1,0){80}} + \put(0,3){\line(0,1){54}} + \put(80,3){\line(0,1){54}} + \thicklines + \put(10,42){\line(1,0){60}} + \put(70,45){\makebox(0,0)[r]{\textsf{\textbf{A}}}} + \put(10,23){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textsc{Angel}, Gabriel\\\quad\small Cloud 3\\ + \quad 12345 Heaven's Realm\\ + \quad (archangel)}}} + \put(70,23){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\\textsc{gabriel}\\000\,01\,02\,03}}} + \put(10,4){\makebox(0,20)[l]{\parbox{5cm}{\raggedright + \textsc{Angel}, Michael\\\quad\small Cloud 3a\\ + \quad 12345 Heaven'S Realm\\ + \quad (archangel)}}} + \put(70,4){\makebox(0,20)[r]{\parbox{2cm}{\raggedright~\\ + \small~\\\textsc{michael}\\000\,01\,02\,04}}} + \qbezier(0,3)(10,6)(40,3)\qbezier(40,3)(60,0)(80,3) + \end{picture} + \end{center} + The letter in the page heading is created by the + \Macro{adrchar} command, see the definition in \File{adrdir.tex}. +\end{Example} +More about the \Package{adrconv} package can be found in its +documentation. There you should even find informations if +the version of \Package{adrconv} supports already the +\Macro{addrentry} and \Macro{addrchar} commands. +Former versions only know the commands \Macro{adrentry} and +\Macro{adrchar}. +% +\EndIndex{Cmd}{adrchar}\EndIndex{Cmd}{addrchar}% + + +\section{From \Class{scrlettr} to \Class{scrlttr2}} +\label{sec:scrlttr2.fromscrlettr} + +The first step in the conversion of an old letter written with +the \Class{scrlettr} class is to load the appropriate +\File{lco} file using option \Option{KOMAold} at +\Macro{documentclass}. +Thereupon most commands of the old class should work. +But you will encounter some differences in the output, since +the page layout of both classes is not the same. +The reason is that the calculation of the type-area in \Class{scrlettr} +has some minor bugs. For example the position of the folding marks +used to depend on the height of the page heading, which again has +dependence to the font size. That was an unambiguous design fault. + +There is no compatibility regarding the defined lengths +in \Class{scrlettr}. +If one has changed the page layout of \Class{scrlettr} +then those statements have to be deleted or commented out. +In some cases the modification of length can cause +an error, since this length is not defined anymore. +You should delete or comment these modifications as well. + +The old letter example: +\begin{small} +\begin{verbatim} + \documentclass[10pt,KOMAold]{scrlttr2} + \name{\KOMAScript{} team} + \address{Class Alley 1\\12345 \LaTeX{} City} + \signature{Your \KOMAScript{} team} + \begin{document} + \begin{letter}{\KOMAScript{} users\\ + Everywhere\\world-wide} + \opening{Dear \KOMAScript{} users,} + the \KOMAScript{} team is proud to annouce... + \closing{Happy \TeX{}ing} + \end{letter} + \end{document} +\end{verbatim} +\end{small} +works as expected only by option \Option{KOMAold}. + + +The next step is that the layout of the old letter will +not be used anymore, but the old commands should still +be available. +If for example one wants the layout of \Option{DIN} +then this option can be given in \Macro{documentclass}, +but is has to be specified \emph{after} the option +\Option{KOMAold}. + +\begin{small} +\begin{verbatim} + \documentclass[10pt,KOMAold,DIN]{scrlttr2} + \name{\KOMAScript{} team} + \address{Class Alley 1\\12345 \LaTeX{} City} + \signature{Your \KOMAScript{} team} + \begin{document} + \begin{letter}{\KOMAScript{} users\\ + Everywhere\\world-wide} + \opening{Dear \KOMAScript{} users,} + the \KOMAScript{} team is proud to annouce... + \closing{Happy \TeX{}ing} + \end{letter} + \end{document} +\end{verbatim} +\end{small} +Using more options this way you have further influence on the +layout, but a more inherent change is really recommended. + +That is to replace all old commands with its new representations +and omit the option \Option{KOMAold}. +It can help to read the contents of \File{KOMAold.lco}. +In that file the old commands are defined using the new ones. + +\begin{small} +\begin{verbatim} + \documentclass{scrlttr2} + \setkomavar{fromname}{\KOMAScript{} team} + \setkomavar{fromaddress}{Class Alley 1\\ + 12345 \LaTeX{} City} + \setkomavar{signature}{Your \KOMAScript{} team} + \let\raggedsignature=\raggedright + \begin{document} + \begin{letter}{\KOMAScript{} users\\ + Everywhere\\ + world-wide} + \opening{Dear \KOMAScript{} users,} + the \KOMAScript{} team is proud to annouce... + \closing{Happy \TeX{}ing} + \end{letter} + \end{document} +\end{verbatim} +\end{small} +This example shows also the possibility to change the +alignment of the signature by re-defining the command +\Macro{raggedsignature}. +This is recommended if the width of the real signature +is greater than the signature-definition of the command +\Macro{setkomavar}\PParameter{signature}\PParameter{\dots}. + +\section{Authors} +\label{sec:scrlttr2.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\item \textit{Harald H.-J.\,Bongartz} +\item \textit{Georg Grandke} +\item \textit{Raimund Kohl} +\item \textit{Jens-Uwe Morawski} +\end{itemize} +% +\EndIndex{Class}{scrlttr2}\EndIndex{}{Letters} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/loadfile.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/loadfile.tex new file mode 100644 index 00000000000..c8b3a6eb6a7 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/loadfile.tex @@ -0,0 +1,334 @@ +\ProvidesFile{loadfile.tex}[2004/09/13 KOMA-Script Manual english] +% ============================================================================ +% loadfile.tex +% Copyright (c) 2001-2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% loadfile.tex +% Copyright (c) 2001-2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: scrlfile +% Authors: Markus Kohm (MJK) +% Contents: excecuting commands depending on one file is loaded +% Language: English +% Date of translated german file: +% 2002/08/30 +% Charset of comments: +% US-ASCII +% + +\chapter{Control Package Dependencies with \Package{scrlfile}} +\label{cha:scrlfile} + +\BeginIndex{Package}{scrlfile} + +\section{About Package Dependencies} +\label{sec:scrlfile.dependency} +\begin{Explain} + The introduction of \LaTeXe{} in 1994 brought many changes + in the handling with \LaTeX-extensions. + Today the package author has many macros in order to determine + if another package or class is employed and whether specific + options are used. + The author can load other packages or can specify options in the + the case the package is loaded later. + This has led to the expectation that the order of package-loading + will be not important. + But this hope has not been fulfilled, since often different packages + define or redefine one macro again and again. + In such a case the order of package-loading becomes very + important. + For the user this is sometimes difficult to understand the + behaviour and in some cases the user wants only react + on the loading of a package. This is also not really simple. + + + Assuming the simple example that loads the package \Package{longtable} + with a \KOMAScript{} document-class employed. + The \Package{longtable} package defines table captions + suitable for the standard classes, but the captions + are totally unsuitable for documents using \KOMAScript{} and thus + the provided configuration commands have no influence. + In order to solve this problem the commands which are responsible + for the table captions of the \Package{longtable} package + have to be re-defined. But at the moment when the \Package{longtable} + is loaded the \KOMAScript{} class is already processed. + + + The only chance for \KOMAScript{} was to delay the re-definition + until the begin of the document with help of the + macro \Macro{AtBeginDocument}. + If the user wants to change the definitions too, it is + recommended to do this in the preamble of the document. + But this is impossible since later at \Macro{begin}\PParameter{document} + \KOMAScript will again overwrite the user-definition with its own. + Therefore the user has to delay his definition with + \Macro{AtBeginDocument} as well. + + However, \KOMAScript{} shouldn't delay the re-definition + until \Macro{begin}\PParameter{document}. + It would be enough to delay until the package \Package{longtable} + has been loaded. But unfortunately the basic \LaTeX{} does not + define appropriate commands. The package \Package{scrlfile} + provides redress here. + + Likewise, it might be conceivable that before a package + is loaded one would like to save the definition of a macro + in a help-macro, in order to restore its meaning after + the package has been loaded. The package \Package{scrlfile} + allows this too. + + The employment of \Package{scrlfile} is not limited to + package dependencies only. + Even dependencies with any other file can be attended. + For example the user can be warned if the not uncritical file + \File{french.ldf} has been loaded. + + Though the package is particularly interesting for + package authors, there are of course applications for + normal \LaTeX{} users too. + Therefore this chapter gives and explains examples + for both groups of users. +\end{Explain} + + +\section{Actions Prior and After Loading} +\label{sec:scrlfile.macros} + +\begin{Declaration} + \Macro{BeforeFile}\Parameter{file}\Parameter{instructions}\\ + \Macro{AfterFile}\Parameter{file}\Parameter{instructions} +\end{Declaration}% +\BeginIndex{Cmd}{BeforeFile}% +\BeginIndex{Cmd}{AfterFile}% +The macro \Macro{BeforeFile} enables to execute \PName{instructions} +the next time the \PName{file} is loaded. +In the same way works \Macro{AfterFile}, but here the +\PName{instructions} will be executed after the \PName{file} +has been loaded. +If \PName{file} will never be loaded then the \PName{instructions} +will never be executed. + +\begin{Explain} + In order to implement those features \Package{scrlfile} + re-defines the well known \LaTeX{} command + \Macro{InputIfFileExists}. + If this macro has not the expected definition \Package{scrlfile} + gives a warning. + This is for the case that in future \LaTeX{} versions + the macro can have a different definition or an other package + has already re-defined it. + + The command \Macro{InputIfFileExists} is used + everytime \LaTeX{} has to load a file. + This is independent from whether the actual command was \Macro{LoadClass}, + \Macro{documentclass}, \Macro{usepackage}, \Macro{RequiresPackage}, + or \Macro{include}. Exclusively the command +\begin{verbatim} + \input foo +\end{verbatim} + loads the file \texttt{foo} without to utilize + \Macro{InputIfFileExists}. Therefore one should always use +\begin{verbatim} + \input{foo} +\end{verbatim} + instead. Notice the parentheses surrounding the file name! +\end{Explain} +% +\EndIndex{Cmd}{BeforeFile}% +\EndIndex{Cmd}{AfterFile}% + +\begin{Declaration} + \Macro{BeforeClass}\Parameter{class}\Parameter{instructions}\\ + \Macro{BeforePackage}\Parameter{package}\Parameter{instructions} +\end{Declaration}% +\BeginIndex{Cmd}{BeforeClass}% +\BeginIndex{Cmd}{BeforePackage}% +These both commands work the same way as \Macro{BeforeFile}. +The only difference is that the document class \PName{class} +and the \LaTeX{} package \PName{package} are specified +with their names and not with their file names. +That means the file extensions \File{.cls} and \File{.sty} +can be omitted. +% +\EndIndex{Cmd}{BeforeClass}% +\EndIndex{Cmd}{BeforePackage}% + +\begin{Declaration} + \Macro{AfterClass}\Parameter{class}\Parameter{instructions}\\ + \Macro{AfterClass*}\Parameter{class}\Parameter{instructions}\\ + \Macro{AfterPackage}\Parameter{package}\Parameter{instructions}\\ + \Macro{AfterPackage*}\Parameter{package}\Parameter{instructions} +\end{Declaration}% +\BeginIndex{Cmd}{AfterClass}% +\BeginIndex{Cmd}{AfterClass*}% +\BeginIndex{Cmd}{AfterPackage}% +\BeginIndex{Cmd}{AfterPackage*}% +The commands \Macro{AfterClass} und \Macro{AfterPackage} +work the same way as \Macro{AfterFile}. +The only difference is that the document class \PName{class} +and the \LaTeX{} package \PName{package} are specified +with their names and not with their file names. +That means the file extensions \File{.cls} and \File{.sty} +can be omitted. +The starred versions execute the \PName{instructions} not +only next time the class or package is loaded, but also +immediately if the class or package has been loaded already. +% +\EndIndex{Cmd}{AfterClass}% +\EndIndex{Cmd}{AfterClass*}% +\EndIndex{Cmd}{AfterPackage}% +\EndIndex{Cmd}{AfterPackage*}% + +\begin{Example} + In the following an example for class and package authors + shall be given. + It shows how \KOMAScript{} itself employs the new commands. + The class \Class{scrbook} contains: + \begin{small} +\begin{verbatim} +\AfterPackage{hyperref}{% + \@ifpackagelater{hyperref}{2001/02/19}{}{% + \ClassWarningNoLine{scrbook}{% + You are using an old version of hyperref package!% + \MessageBreak% + This version has a buggy hack at many drivers% + \MessageBreak% + causing \string\addchap\space to behave strange.% + \MessageBreak% + Please update hyperref to at least version + 6.71b}}} +\end{verbatim} + \end{small} + Old versions of the \Package{hyperref} package re-define + a macro of the \Class{scrbook} class in a way that does not + work with newer \KOMAScript{} versions. + New versions of \Package{hyperref} neglect these changes + if a new \KOMAScript{} version is detected. + For the case that \Package{hyperref} is loaded the code + in \Class{scrbook} verifies that a appropriate + \Package{hyperref} version is used. If not the command gives + a warning. + + At other places in three \KOMAScript{} classes following can be found: + \begin{small} +\begin{verbatim} + \AfterPackage{caption2}{% + \renewcommand*{\setcapindent}{% +\end{verbatim} + \end{small} + Next the package \Package{caption2} has been loaded, and only + if the package has been loaded really, \KOMAScript{} re-defines + its own command \Macro{setcapindent}. + The exact code of the definition is not important. + It should only be noted that \Package{caption2} claims the + control over the \Macro{caption} macro. + Thus the normal definition of the \Macro{setcapindent} macro + would not work as expected. + The re-definition improves the collaboration with \Package{caption2}. + + There are of course useful examples for normal \LaTeX{} user too. + Suppose a document that should be availbale as PS file, using + LaTeX{} and dvips, and as PDF file, using pdf\LaTeX. + The document should contain hyper-links. + In the List of Tables there are entries longer than one line. + This is not a problem for the pdf\LaTeX{} way, since here + hyper-links can run across multiple lines. + But if a \Package{hyperref} driver for dvips or + hyper\TeX{} is used then this is not possible. + In this case one wants that for the \Package{hyperref} setup + the \Option{linktocpage} is used. + + The decision what \Package{hyperref} driver has to be used + happens automatically via \File{hyperref.cfg}. + The file has for example the content below. + \begin{small} +\begin{verbatim} + \ProvidesFile{hyperref.cfg} + \@ifundefined{pdfoutput}{\ExecuteOptions{dvips}} + {\ExecuteOptions{pdftex}} + \endinput +\end{verbatim} + \end{small} + + All following is now the task of \Macro{AfterFile}. + \begin{small} +\begin{verbatim} + \documentclass{article} + \usepackage{scrlfile} + \AfterFile{hdvips.def}{\hypersetup{linktocpage}} + \AfterFile{hypertex.def}{\hypersetup{linktocpage}} + \usepackage{hyperref} + \begin{document} + \listoffigures + \clearpage + \begin{figure} + \caption{This is an example for a long figure caption, + but even though it does not employ the optional + caption argument that would allow to write + a short caption in the List of Figures.} + \end{figure} + \end{document} +\end{verbatim} + \end{small} + If now \Package{hyperref} drivers \Option{hypertex} or + \Option{dvips} are used then the useful \Package{hyperref} option + \Option{linktocpage} will be set. + In the pdf\LaTeX{} case the option will not be set, since + in that case an other \Package{hyperref} driver \File{hpdftex.def} + will be used. That means neither \File{hdvips.def} nor + \File{hypertex.def} will be loaded. +\end{Example} + +\begin{Explain} + Furthermore the loading of package \Package{scrlfile} + and the \Macro{AfterFile} statement can be written + in the private \File{hyperref.cfg}. + But then instead of \Macro{usepackage} the macro + \Macro{RequiresPackage} ought be used, see \cite{latex:clsguide}. + The new lines have to be inserted directly after + \Macro{ProvidesFile} line, thus prior to the execution + of the options \Option{dvips} or \Option{pdftex}. +\end{Explain} + + +\section{Authors} +\label{sec:scrlfile.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item Markus Kohm \TextEMail{Markus.Kohm@gmx.de} +\item \textit{Jens-Uwe Morawski} +\end{itemize} + +\EndIndex{Package}{scrlfile} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/main.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/main.tex new file mode 100644 index 00000000000..ba3ebc630da --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/main.tex @@ -0,0 +1,270 @@ +\ProvidesFile{main.tex}[2004/09/22 KOMA-Script Manual] +% ============================================================================ +% scrguide2.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% scrclass2.tex +% Copyright (c) 2001 Markus Kohm und bei die weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: Language switch +% Authors: Markus Kohm (MJK) +% Translation: Collin Marquart, Markus Kohm +% Contents: Setup of the language depencies of scrguide. Use this as +% main document. +% +% Languages: English +% Characterset of comments: +% US-ASCII +% + +% Set language +\newcommand\NameEnglish{english} +\let\UseLanguage\NameEnglish + +% Some names, if not already defined +\providecommand*{\LanguageShortcut}{en} +\providecommand{\AutoRefTextFarAway}{on } +\providecommand{\MyPrelimText}{% + This documentation is only a draft (\thisfilename: \docdate).} +\providecommand{\SubTitleName}{a versatile \LaTeXe{} package} +\providecommand{\ExampleName}{Example} +\providecommand{\ClassName}{class} +\providecommand{\PackageName}{package} +\providecommand{\EnvironmentName}{environment} +\providecommand{\OptionName}{option} +\providecommand{\MacroName}{command} +\providecommand{\CounterName}{counter} +\providecommand{\LengthName}{length} +\providecommand{\PseudoPrefix}{pseudo\ } +\providecommand{\PLengthName}{\PseudoPrefix\LengthName} +\providecommand{\VariableName}{variable} +\providecommand{\PagestyleName}{pagestyle} +\providecommand{\StyleName}{style} +\providecommand{\FloatstyleName}{float \StyleName} +\providecommand{\FileName}{file} +\providecommand{\TitleText}{The\ \KOMAScript\ bundle} +\providecommand{\ManualName}{Manual} +\providecommand{\ManualFromText}{Authors of the manual:} +\providecommand{\NoteName}{Note} +\providecommand{\FontElementName}{Element} +\providecommand{\genIndexName}{General Index} +\providecommand{\cmdIndexName}{Index of Commands, Environments and + Variables} +\providecommand{\cmdIndexShortName}{Index of Commands etc.} +\providecommand{\lenIndexName}{Index of Lengths and Counters} +\providecommand{\lenIndexShortName}{Index of Lengths etc.} +\providecommand{\elmIndexName}{Index of Elements with Capability of + Font Adjustment} +\providecommand{\elmIndexShortName}{Index of Elements} +\providecommand{\filIndexName}{Index of Files, Classes and Packages} +\providecommand{\filIndexShortName}{Index of Files etc.} +\providecommand{\optIndexName}{Index of Class and Package Options} +\providecommand{\optIndexShortName}{Index of Options} +\providecommand{\ChangeListName}{List of changes} +\providecommand{\LegalText}{% + No warranty:\\ + There is no warranty for \KOMAScript{} or any part of it. The + authors provide \KOMAScript{} \emph{as is}, without warranty of any + kind, either expressed or implied, including, but not limited to, + the implied warranties of merchantability and fitness for a + particular purposs. The entire risk as to the quality and + performance of \KOMAScript{} is with you. Should \KOMAScript{} or + any part of it prove defective, you assume the cost of all necessary + servicing, repair or correction.\\ + In no event unless agreed to in writing will the authors or any + other party who may distribute and/or modify \KOMAScript{} as + permitted in \File{LEGAL.TXT}, be liable to you for damages, + including any general, special, incidental or consequential damages + arising out of any use of \KOMAScript{} or out of inability to use + \KOMAScript{} (including, but not limited to, loss of data, data + being rendered inaccurate, or losses sustained by anyone as a result + of any failure of \KOMAScript{} to operate with any other programs), + even if a author or said other party has been advised of the + possibility of such damages.\\ + See \File{LEGAL.TXT} for more information. \File{LEGAL.TXT} is part + of \KOMAScript{} and must not be removed from any \KOMAScript{} + distribution.} +\providecommand{\LegalTextB}{% + Draft without page break optimization\par + \vspace{\baselineskip} + This manual is part of \KOMAScript{}, which is free under + the terms and conditions of LaTeX Project Public License Version + 1.0. A version of this license, which is valid to \KOMAScript{}, is + part of \KOMAScript{} (see \File{LEGAL.TXT}). Distribution of this + manual\,---\,even if it is printed\,---\,is allowed provided that + all parts of \KOMAScript{} are distributed.} +\providecommand{\WhoIsWho}{% + Following people took part on \KOMAScript{}: \textbf{Stefan Brill} + (proof-read), \textbf{Dr.~Engelbert Buxbaum} (translation), + \textbf{Christian Buss} (proof-read), \textbf{Jo\~ao Canas Ferreira} + (translation), \textbf{Michael Dewey} (language adaptation), + \textbf{Luzia Dietsche} (beta test), \textbf{Georg Grandke} + (translation, proof-read), \textbf{Ralph J. Hangleiter} (language + adaptation), \textbf{Henk Jongbloets} (language adaptation), + \textbf{Axel Kielhorn} (\Class{scrlettr}, \Package{addrconv}, + ideas), \textbf{Markus Kohm} (development, documentation, + translation, support, release), \textbf{Torsten Kr\"uger} (beta + test, proof-read, necessary questions, ideas, motor), \textbf{Enrico + Kunz} (documentation, proof-read), \textbf{Werner Lemberg} + (translation), \textbf{Branka Lon\v{c}arevi\'c} (language + adaptation), \textbf{Alejandro L\'opez-Valencia} (language + adaptation), \textbf{Colin Marquardt} (translation), \textbf{Peter + Marx} (release), \textbf{Jens-Uwe Morawski} (documentation, + translation, coordination, proof-read, ideas, motor), \textbf{Simone + Naldi} (language adaptation), \textbf{Frank Neukam} + (\textsc{Script} and \textsc{Script2.0}), \textbf{Thomas Neumann} + (documentation, proof-read), \textbf{Rolf Niepraschk} (proof-read), + \textbf{Carsten Schurig} (beta test), \textbf{Axel Sommerfeldt} + (documentation) and a lot of friendly peoply, sending bug reports, + nice emails, ideas and sometimes even implementations.} +\providecommand{\IndexPreambleText}{% + There are two kinds of page numbers at this index. The italic + printed numbers show the pages of declaration or explanation of the + topic. The normal printed numbers show the pages of using a topic.} +\providecommand{\ChangeListPreambleText}{% + At this list of changes you will find all significant changes of the + user interface of the \KOMAScript{} bundle at the last few + versions. The list was sorted about the names of the classes and + packages and their version. The numbers behind the versions are the + pages, where the changes are described. At the margins of these + pages you will find corresponding version marks.} +\providecommand{\CTANserver}{ftp.tex.ac.uk} +\providecommand{\BibPreambleText}{% + In the following you can find many references. All of them are + referenced from the main text. + In many cases the reference points to documents or directories + which can be accessed via Internet. + In these cases the reference includes a URL instead of a publisher. + If the reference points to a \LaTeX{} package then the URL + is written in the form ``\url{CTAN://}\emph{destination}''. + The prefix ``\url{CTAN://}'' means the \TeX{} archive + on a CTAN server or mirror. For example, you can + substitude the prefix with \url{ftp://\CTANserver/tex-archive/}. + + For \LaTeX{} packages it is also important to mention that + we have tried to give a version number appropriate to the + text that cites the reference. + But for some packages is is very difficult to find a consistent + version number and release date. + Additionally the given version is not always the current + version. + If you want install new packages take care that the package is the + most up-to-date version and check first whether the package is + already available on your system or not.} + +\newcommand*{\Ord}[1]{% + \ifcase #1\relax% + #1\textsuperscript{th}% + \or% + #1\textsuperscript{st}% + \or% + #1\textsuperscript{nd}% + \or% + #1\textsuperscript{rd}% + \else% + #1\textsuperscript{th}% + \fi} + +% BEGIN headfoot.tex TEXT SAMPLES +% CHANGES ONLY BY THE AUTHOR +% (1) example text command; the default definition (50) +% returns the whole text +\providecommand{\XmpText}[1][50]{% + \ifnum #1<51 + This f\/ill text is currently seized by 130 million receptors + in your retina. + \ifnum #1>1 + Thereby the nerve cells are put in a state of stimulation, + which spreads + \ifnum #1>2 + into the rear part of your brain originating from + \ifnum #1>3 + the optic nerve. + From there the stimulation is transmitted in a split second + also in other parts of your cerebrum. + Your frontal lobe becomes stimulated. + Intention-impulses spread from there, which your + central nervous + \fi\fi\fi + \fi + \ifnum #1>49 + system transforms in actual deeds. + Head and eyes already react. + They follow the text, taking the informations present there + and transmit them via the optic nerve. + \fi} +% (2) the next two commands are language-dependent, since +% in some languages additional commands may required +\providecommand{\XmpTopText}{\XmpText[3]} +\providecommand{\XmpBotText}{\XmpText[2]} +% (3) text in the example margin notes +\providecommand{\XmpMarginTextA}{Retina} +\providecommand{\XmpMarginTextB}{} +% (4) marks for the old scrpage package +\providecommand{\ScrpageMark}{\marginline{\small\sffamily\slshape + scrpage}} +\providecommand{\ScrpageNote}{\marginline{\small\sffamily\slshape + scrpage!}} +% +% <<< END headfoot.tex TEXT-SAMPLES + +\newcommand*{\autorefnametillsection}{% + \def\pageautorefname{page}% + \renewcommand*{\partautorefname}{part}% + \renewcommand*{\appendixautorefname}{appendix}% + \renewcommand*{\equationautorefname}{equation}% + \renewcommand*{\tableautorefname}{table}% + \renewcommand*{\figureautorefname}{figure}% + \let\subsectionautorefname=\sectionautorefname + \let\subsubsectionautorefname=\sectionautorefname + \let\paragraphautorefname=\sectionrefname + \let\subparagraphautorefname=\sectionrefname + % shouldn't be here, but it is easy this way: + \def\autoreftextfaraway##1{\AutoRefTextFarAway~\autopageref{##1}}% +} + +% Load chapters +\providecommand*{\LoadChapters}{% + \include{introduc} % introduction + \include{pglayout} % the type area with tyearea + \include{maincls} % the main classes scrbook, scrreprt, scrartcl + \include{headfoot} % head and foot with scrpage(2) + \include{datetime} % date and time with scrdate and scrtime + \include{letter} % letters with scrlttr2.cls + \include{addressf} % address files with scraddr + \include{addrconv} % converting addresses with addrconv + \include{loadfile} % manage package dependencies while loading +} + +% input the documentation +\input{scrguide2} + +\endinput +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/maincls.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/maincls.tex new file mode 100644 index 00000000000..5b7fb566be5 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/maincls.tex @@ -0,0 +1,4825 @@ +\ProvidesFile{maincls.tex}[2004/09/13 KOMA-Script Manual] +% ============================================================================ +% maincls.tex +% Copyright (c) 2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% maincls.tex +% Copyright (c) 2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: maincls +% Translation by: Jo\~{a}o Canas Ferreira +% Georg Grandke +% Markus Kohm (only some) +% Contents: the main KOMA-Script classes +% Language: English +% Charset of comments: US-ASCII +% Translation of german file: hauptcls.tex +% Date of translated german file: 2004-01-08 +% + +\chapter{The Main Classes \Class{scrbook}, \Class{scrrprt} and + \Class{scrartcl}} +\label{cha:maincls} + +\AddSeeIndex{macro}{gen}{\cmdIndexShortName}{cmd}% + +\begin{Explain} + The main classes of the {\KOMAScript} bundle are designed as + counterparts to the standard {\LaTeX} classes. This means that the + {\KOMAScript} bundle contains replacements for the three standard + classes \Class{book}\IndexClass{book}, + \Class{report}\IndexClass{report} and + \Class{article}\IndexClass{article}. There is also a replacement for + the standard class \Class{letter}\IndexClass{letter}. The + document class for letters is described in a separate chapter, + because it is fundamentally different from the three main classes + (see \autoref{cha:scrlttr2}).The names of the {\KOMAScript} + classes are composed of the prefix "\texttt{scr}" and the + abbreviated name of the corresponding standard class. In order to + restrict the length of the names to eight letters, the vowels, + starting with the last one, are left off if necessary. The + \autoref{tab:maincls.overview} shows an overview. The table also + includes the names of the \LaTeX2.09 style files that were used in + {\KOMAScript}. +\end{Explain} +\par + +The simplest way to use a \KOMAScript-class instead of a standard one +is to substitute the class name in the \verb|\documentclass| command +according to \autoref{tab:maincls.overview}. Normally the document +should be processed without errors by \LaTeX{}, just like before the +substitution. The look however should be different. Additionally, the +\KOMAScript{} classes provide new possibilities and options that are +described in the following sections. + +\begin{table}[htbp] + \centering + \begin{tabular}{lll} + Standard class & \KOMAScript{} class & \Script{} Style + (\LaTeX2.09)\\ + \hline\rule{0pt}{2.7ex}% + \Class{article} & \Class{scrartcl} & \File{script\textunderscore + s} \\ + \Class{report} & \Class{scrreprt} & \File{script} \\ + \Class{book} & \Class{scrbook} & \File{script} \\ + \Class{letter} & \Class{scrlettr} & \File{script\textunderscore + l} \\ + \end{tabular} + \caption[Class correspondence]{Correspondence between + standard classes, \KOMAScript{} classes and + \Script{} styles.} + \label{tab:maincls.overview} +\end{table} + + +\section{The Options} +\label{sec:maincls.options} + + +This section describes the global options of the three main classes. +The majority of the options can also be found in the standard classes. +Since experience shows that many options of the standard classes are +unknown, their description is included here. This is a departure from +the rule that the \File{scrguide} should only describe those aspects +whose implementation differs from the standard one. + +Table~\ref{tab:maincls.stdOptions} lists those options that are set by +default in at least one of the {\KOMAScript} classes. The table shows +for each {\KOMAScript} main class if the option is set by default and +if it is even defined for that class. An undefined option cannot be +set, either by default or by the user. + +\begin{table}[htbp] + \centering + \begin{tabular}{llll} + Option & + \Class{scrbook} & \Class{scrreprt} & \Class{scrartcl} \\ + \hline\rule{0pt}{2.7ex}% + \Option{11pt} & + default & default & default \\ + \Option{a4paper} & + default & default & default \\ + \Option{abstractoff} & + \emph{undefined} & default & default \\ + \Option{bigheadings} & + default & default & default \\ + \Option{final} & + default & default & default \\ + \Option{footnosepline} & + default & default & default \\ + \Option{headnosepline} & + default & default & default \\ + \Option{listsindent} & + default & default & default \\ + \Option{nochapterprefix} & + default & default & \emph{undefined} \\ + \Option{onelinecaption} & + default & default & default \\ + \Option{notitlepage} & + & & default \\ + \Option{onecolumn} & + default & default & default \\ + \Option{oneside} & + & default & default \\ + \Option{openany} & + & default & default \\ + \Option{openright} & + default & & \\ + \Option{parindent} & + default & default & default \\ + \Option{tablecaptionbelow} & + default & default & default \\ + \Option{titlepage} & + default & default \\ + \Option{tocindent} & + default & default & default \\ + \Option{twoside} & + default & & \\ + \end{tabular} + \caption{Default options of the \KOMAScript{} classes} + \label{tab:maincls.stdOptions} +\end{table} + +\begin{Explain} + Allow me an observation before proceeding with the descriptions of + the options. It is often the case that at the beginning of a + document one is often unsure which options to choose for that + specific document. Some options, for instance the choice of paper + size, may be fixed from the beginning. But already the question of + which \Var{DIV} value to use could be difficult to answer initially. + On the other hand, this kind of information should be initially + irrelevant for the main tasks of an author: design of the document + structure, text writing, preparation of figures, tables and index. + As an author you should concentrate initially on the contents. When + that is done, you can concentrate on the fine points of + presentation. Besides the choice of options, this means correcting + things like hyphenation, page breaks, and the distribution of tables + and figures. As an example consider the + \autoref{tab:maincls.stdOptions} that I have moved repeatedly + between the beginning and the end of this section. The choice of the + actual position will only be made during the final production of the + document. +\end{Explain} +\par + +\subsection{Options for Page Layout} +\label{sec:maincls.typeareaOptions} + +With the standard classes the page layout\Index{page layout} is +established by the option files \File{size10.clo}, \File{size11.clo}, +\File{size12.clo} (or \File{bk10.clo}, \File{bk11.clo}, +\File{bk12.clo} for the book class) and by fixed values in the class +definitions. The \KOMAScript{} classes, however, do not use a fixed +page layout, but one that depends on the paper format\Index{paper + format} and font size. For this task all three main classes use the +\Package{typearea} package\IndexPackage{typearea} (see +\autoref{cha:typearea}). The package is automatically loaded by +the \KOMAScript{} main classes. Therefore it is not necessary to use +the command \verb|\usepackage{typearea}| explicitly. + + +\begin{Declaration} + \Option{letterpaper} \\ + \Option{legalpaper} \\ + \Option{executivepaper} \\ + \Option{a\Var{X}paper} \\ + \Option{b\Var{X}paper} \\ + \Option{c\Var{X}paper} \\ + \Option{d\Var{X}paper} \\ + \Option{landscape} +\end{Declaration}% +\BeginIndex{Option}{letterpaper} \BeginIndex{Option}{legalpaper} +\BeginIndex{Option}{executivepaper} \BeginIndex{Option}{a0paper} +\BeginIndex{Option}{b0paper} \BeginIndex{Option}{c0paper} +\BeginIndex{Option}{d0paper} +\BeginIndex{Option}{landscape}% +The basic options for the choice of paper format are not processed +directly by the classes. They are automatically processed by the +\Package{typearea} package as global options (see +\autoref{sec:typearea.options}). The options \Option{a5paper}, +\Option{a4paper}, \Option{letterpaper}, \Option{legalpaper} and +\Option{executivepaper} correspond to the options of the standard +classes that have the same name and define the same paper format. The +page layout calculated for each is different, however. +% +\EndIndex{Option}{letterpaper} \EndIndex{Option}{legalpaper} +\EndIndex{Option}{executivepaper} \EndIndex{Option}{a0paper} +\EndIndex{Option}{b0paper} \EndIndex{Option}{c0paper} +\EndIndex{Option}{d0paper} \EndIndex{Option}{landscape} + +\begin{Explain} + The options for the A, B, C or D format are actually not processed + by the \Package{typearea}, because they are global options, but + because the \KOMAScript{} classes explicitly pass them to the + \Package{typearea} package. This is caused by the way option + processing is implemented in the \Package{typearea} package and by + the operation of the underlying option passing and processing + mechanism of \LaTeX. + + This is also valid for the options, described subsequently, that set + the binding correcting, the divisor and the number of header lines. +\end{Explain} + + +\begin{Declaration} + \Option{BCOR}\PName{correction}\\ + \Option{DIV}\PName{factor}\\ + \Option{DIVcalc}\\ + \Option{DIVclassic}\\ + \PName{Value}\Option{headlines} +\end{Declaration}% +\BeginIndex{Option}{BCOR}% +\BeginIndex{Option}{DIV}% +\BeginIndex{Option}{DIVcalc}% +\BeginIndex{Option}{DIVclassic}% +\BeginIndex{Option}{headlines}% +The options for the divisor and the binding correction\Index{binding + correction} are passed directly to the \Package{typearea} package +(see \autoref{sec:typearea.options}). This differs from the +standard classes, where there is no such transfer. This is also valid +for the option that sets the number of header lines. +% +\EndIndex{Option}{BCOR}% +\EndIndex{Option}{DIV}% +\EndIndex{Option}{DIVcalc}% +\EndIndex{Option}{DIVclassic}% +\EndIndex{Option}{headlines} + + +\subsection{Options for Document Layout} +\label{sec:maincls.layoutOptions} + +This subsection collects all the options that affect the document +layout, not only the page layout. Strictly speaking all page layout +options (see \autoref{sec:maincls.typeareaOptions}) are also +document layout options. The reverse is also partially true. + +\begin{Declaration} + \Option{oneside}\\ + \Option{twoside} +\end{Declaration}% +\BeginIndex{Option}{oneside} +\BeginIndex{Option}{twoside}% +These two options have the same effect as with the standard classes. +The option \Option{oneside} defines a one-sided document layout with a +one-sided page layout. This means in particular that normally a ragged +page bottom is used. + +The option \Option{twoside} defines a two-sided document layout with a +two-sided page layout. This means that the \LaTeX{} command +\Macro{flushbottom}\IndexCmd{flushbottom} is used to ensure that page +breaks don't leave a variable empty space at the bottom of the page. A +ragged page bottom can be obtained with the \LaTeX{} command +\Macro{raggedbottom}\IndexCmd{raggedbottom}. +% +\EndIndex{Option}{oneside}% +\EndIndex{Option}{twoside}% + + +\begin{Declaration} + \Option{onecolumn}\\ + \Option{twocolumn} +\end{Declaration}% +\BeginIndex{Option}{onecolumn} +\BeginIndex{Option}{twocolumn}% +These options have the same effect as the corresponding standard +options. They are used to switch between a one-column and a two-column +layout. The standard \LaTeX{} capabilities for multi-column layout are +only useful for very simple uses. The standard package +\Package{multicol} is much more versatile (see +\cite{package:multicol}).\Index{columns}\IndexPackage{multicol} +% +\EndIndex{Option}{onecolumn} \EndIndex{Option}{twocolumn} + + +\begin{Declaration} + \Option{openany}\\ + \Option{openright} +\end{Declaration}% +\BeginIndex{Option}{openany}% +\BeginIndex{Option}{openright}% +These\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} options have the +same effect as the corresponding standard options. They affect the +choice of the page where a chapter\Index[indexmain]{chapter} can begin, +so they are not available with the \Class{scrartcl} class, since there +the main unit below ``part'' is the ``section''. The chapter level is +not available in \Class{scrartcl}. + +A chapter always begins with a new page. When the option +\Option{openany} is active, any page can be used. The option +\Option{openright} causes the chapter to begin with a new right page. +An empty left page may be inserted automatically in this case. The +empty pages are created by the implicit execution of the \LaTeX{} +command \Macro{cleardoublepage}\IndexCmd{cleardoublepage}. + +The option \Option{openright} has no effect with a one-sided layout, +because only the two-sided layout differentiates between left and +right pages. For this reason it should only be used together with the +\Option{twoside} option. +% +\EndIndex{Option}{openany} \EndIndex{Option}{openright} + + +\begin{Declaration} + \Option{cleardoublestandard}\\ + \Option{cleardoubleplain}\\ + \Option{cleardoubleempty} +\end{Declaration}% +\BeginIndex{Option}{cleardoublestandard}% +\BeginIndex{Option}{cleardoubleplain}% +\BeginIndex{Option}{cleardoubleempty}% +If one wishes the empty pages created by the \Macro{cleardoublepage} +command to have no headers or footers while using the standard +classes, the only possibility is to redefine the command +appropriately. {\KOMAScript} provides options that avoid this. The +option \Option{cleardoublestandard} enables the default +\Macro{cleardoublepage} behaviour. If the option +\Option{cleardoubleplain} is used, then the +\PValue{plain}\IndexPagestyle{plain} page style is applied to the +empty left page. The option \Option{cleardoubleempty} causes the +\PValue{empty}\IndexPagestyle{empty} page style to be used. The page +styles are described in \autoref{sec:maincls.pageStyle}. +% +\EndIndex{Option}{cleardoublestandard}% +\EndIndex{Option}{cleardoubleplain}% +\EndIndex{Option}{cleardoubleempty}% + + +\begin{Declaration} + \Option{headsepline}\\ + \Option{headnosepline}\\ + \Option{footsepline}\\ + \Option{footnosepline} +\end{Declaration}% +\BeginIndex{Option}{headsepline}% +\BeginIndex{Option}{headnosepline}% +\BeginIndex{Option}{footsepline}% +\BeginIndex{Option}{footnosepline}% +In order to have a line separating the header from the text body use +the option \Option{headsepline}. The option \Option{headnosepline} has +the reverse effect. These options have no effect with the page styles +\PValue{empty} and \PValue{plain}, because there is no header in this +case. Such a line always has the effect of visually approximating +header and text body. That doesn't mean that the header must be put +farther apart from the text body. Instead, the header should be +considered to belong to the text body for the purpose of page layout +calculations. {\KOMAScript} takes this into account by automatically +passing the option \Option{headinclude} to the \Package{typearea} +package whenever the \Option{headsepline} option is used. + +The presence of a line between text body and footer is controlled by +the options \Option{footsepline} and \Option{footnosepline}, that +behave like the corresponding header functions. Whenever a line is +requested by the \Option{footsepline} option, the \Option{footinclude} +option is automatically passed to the \Package{typearea} package. In +contrast to \Option{headsepline}, \Option{footsepline} takes effect +when used together with the page style \PValue{plain}, because the +\PValue{plain} style produces a page number in the footer. +% +\EndIndex{Option}{headsepline}% +\EndIndex{Option}{headnosepline}% +\EndIndex{Option}{footsepline}% +\EndIndex{Option}{footnosepline}% + + +\begin{Declaration} + \Option{titlepage}\\ + \Option{notitlepage} +\end{Declaration}% +\BeginIndex{Option}{titlepage}% +\BeginIndex{Option}{notitlepage}% +Both options have the same effect as the corresponding standard ones. +The \Option{titlepage} option makes {\LaTeX} use separate pages for +the titles. These pages are set inside a \Environment{titlepage} +environment and normally have neither header nor footer. In comparison +with standard \LaTeX, \KOMAScript{} expands the handling of the titles +significantly (see \autoref{sec:maincls.titles}). + +The option \Option{notitlepage} specifies that an \emph{in-page} title +is used. This means that the title is specially emphasized, but it may +be followed by more material on the same page, for instance by an +abstract or a section. +% +\EndIndex{Option}{titlepage}% +\EndIndex{Option}{notitlepage}% + + +\begin{Declaration} + \Option{chapterprefix}\\ + \Option{nochapterprefix} +\end{Declaration}% +\BeginIndex{Option}{chapterprefix}% +\BeginIndex{Option}{nochapterprefix}% +With\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} the standard +classes \Class{book} and \Class{report} a chapter +title\Index[indexmain]{chapter title} consists of a line with the word +"Chapter"\footnote{When using another language the word + "Chapter" is naturally translated to the appropriate language.}% +followed by the chapter number. The title itself is set left-justified +on the following lines. The same effect is obtained in \KOMAScript{} +with the class option \Option{chapterprefix}. The default however is +\Option{nochapterprefix}. These options also affect the automatic +running titles in the headers (see +\autoref{sec:maincls.pageStyle}). +% +\EndIndex{Option}{chapterprefix}% +\EndIndex{Option}{nochapterprefix}% + + +\begin{Declaration} + \Option{appendixprefix}\\ + \Option{noappendixprefix} +\end{Declaration}% +\BeginIndex{Option}{appendixprefix}% +\BeginIndex{Option}{noappendixprefix}% +Sometimes\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} one wishes to +have the chapter titles in simplified form according to +\Option{nochapterprefix}. But at the same time, one wishes a title of +an appendix\Index{appendix} to be preceded by a line with "Appendix" +followed by the appendix letter. This is achieved by using the +\Option{appendixprefix} option. Since this results in an inconsistent +document layout, I advise against using this option. + +The reverse option \Option{noappendixprefix} exists only for +completeness' sake. I don't know of any sensible use for it. +% +\EndIndex{Option}{appendixprefix}% +\EndIndex{Option}{noappendixprefix}% + +\begin{Declaration} + \Option{parskip}\\ + \Option{parskip*}\\ + \Option{parskip+}\\ + \Option{parskip-}\\ + \Option{halfparskip}\\ + \Option{halfparskip*}\\ + \Option{halfparskip+}\\ + \Option{halfparskip-}\\ + \Option{parindent} +\end{Declaration}% +\BeginIndex{Option}{parskip}% +\BeginIndex{Option}{parskip*}% +\BeginIndex{Option}{parskip+}% +\BeginIndex{Option}{parskip-}% +\BeginIndex{Option}{halfparskip}% +\BeginIndex{Option}{halfparskip*}% +\BeginIndex{Option}{halfparskip+}% +\BeginIndex{Option}{halfparskip-}% +\BeginIndex{Option}{parindent}% +\begin{Explain}% + The standard classes normally set + paragraphs\Index[indexmain]{paragraph} indented and without any + vertical inter-paragraph space. This is the best solution when + using a regular page layout, like the ones produced with the + \Package{typearea} package. If there where no indentation and no + vertical space, only the length of last line would give the reader a + reference point. In extreme cases, it is very difficult to detect if + a line is full or not. Furthermore, it is found that a marker at the + paragraph's end tends to be easily forgotten. A marker at the + paragraph's beginning is easily remembered. Inter-paragraph spacing + has the drawback of disappearing in some contexts. For instance, + after a displayed formula it would be impossible to detect if the + previous paragraph continues or if a new one begins. Also, when + starting to read at a new page it might be necessary to look at the + previous page in order determine if a new paragraph has been started + or not. All these problems disappear when using indentation. A + combination of indentation and vertical inter-paragraph spacing is + redundant and should be rejected. The + indentation\Index[indexmain]{indentation} is perfectly sufficient by + itself. The only drawback of indentation is the reduction of the + line length. The use of inter-paragraph spacing is therefore + justified when using short lines, for instance in a newspaper. +\end{Explain} + + +Independently of the explanation above, there are often requests for a +document layout with vertical inter-paragraph spacing instead of +indentation. \KOMAScript{} provides a large number of related +options: \Option{parskip}, \Option{parskip-}, \Option{parskip*}, +\Option{parskip+} and \Option{halfparskip}, \Option{halfparskip-}, +\Option{halfparskip*} and \Option{halfparskip+}. + +The four \Option{parskip} options define an inter-paragraph spacing of +one line. The four \Option{halfparskip} options use just a spacing of +half a line. In order to avoid a change of paragraph going unnoticed, +for instance after a page break, three of the options of each set +ensure that the last line of a paragraph is not full. The variants +without plus or star sign ensure a free space of 1\Unit{em}. The plus +variant ensures that at least a third of the line is free and the star +variant ensures that at least a fourth of the line is free. The minus +variants make no special provision for the last line of a paragraph. + +All eight options change the spacing before, after and inside list +environments. This avoids the problem of having these environments or +the paragraphs inside them with a larger separation than the +separation between the paragraphs of normal text. Additionally, these +options ensure that the table of contents and the lists of figures and +tables are set without any additional spacing. + +The default behaviour of \KOMAScript{} follows the \Option{parindent} +option. In this case, there is no spacing between paragraphs, only an +indentation of the first line by 1\Unit{em}. +% +\EndIndex{Option}{parskip}% +\EndIndex{Option}{parskip*}% +\EndIndex{Option}{parskip+}% +\EndIndex{Option}{parskip-}% +\EndIndex{Option}{halfparskip}% +\EndIndex{Option}{halfparskip*}% +\EndIndex{Option}{halfparskip+}% +\EndIndex{Option}{halfparskip-}% +\EndIndex{Option}{parindent}% + +\begin{Declaration} + \Option{onelinecaption}\\ + \Option{noonelinecaption} +\end{Declaration} +\BeginIndex{Option}{onelinecaption}% +The standard classes differentiate between one-line and multi-line +table or figure captions. One-line captions are centered while +multi-line captions are left-justified. This behavior, which is also +the default with \KOMAScript, corresponds to the option +\Option{onelinecaption}. There is no special handling of one-line +captions when the \Option{noonelinecaption} option is given. + +\begin{Explain} + The avoidance of a special treatment for the caption has an + additional effect that is sometimes greatly desired. Footnotes + that appear inside a \Macro{caption} command often have a wrong + number assigned to them. This happens because the footnote counter + is incremented once when the line is measured. When the + \Option{noonelinecaption} option is used no such measurement is + made. The footnote numbers are therefore correct. + + But since \KOMAScript{} version 2.9 you don't need the option + \Option{noonelinecaption} to avoid the above described + effect. \KOMAScript{} classes contain a workaround, so if you have + footnotes at captions you simply should put the contents of the + figure or table into a minipage and everything will be nice. +\end{Explain} +% +\EndIndex{Option}{onelinecaption}% +\EndIndex{Option}{noonelinecaption}% + +\subsection{Options for Font Selection} +\label{sec:maincls.fontOptions} + +Font options are those options that affect the font size of the +document or the fonts of individual elements. Options that affect the +font style are also theoretically font options. However {\KOMAScript} +currently has no such options. + +\begin{Declaration} + \Option{10pt}\\% + \Option{11pt}\\% + \Option{12pt}\\ + \Option{\Var{X}pt} +\end{Declaration}% +\BeginIndex{Option}{10pt}% +\BeginIndex{Option}{11pt}% +\BeginIndex{Option}{12pt}% +\BeginIndex{Option}{\Var{X}pt}% +The options \Option{10pt}, \Option{11pt} and \Option{12pt} have the +same effect as the corresponding standard options. In contrast to the +standard classes, {\KOMAScript} can be used to choose other font +sizes\Index[indexmain]{font size}. However {\LaTeX} provides the +necessary class option files only for 10\Unit{pt}, 11\Unit{pt} und +12\Unit{pt}, so that the user must provide any other class option +files. The package \Package{extsizes} (see +\cite{package:extsizes})\IndexPackage{extsizes} can be used for that +task. Very big font sizes may lead to arithmetic overflow inside the +page layout calculations of the \Package{typearea} package. +% +\EndIndex{Option}{10pt}% +\EndIndex{Option}{11pt}% +\EndIndex{Option}{12pt}% +\EndIndex{Option}{\Var{X}pt}% + + +\begin{Declaration} + \Option{smallheadings}\\ + \Option{normalheadings}\\ + \Option{bigheadings} +\end{Declaration}% +\BeginIndex{Option}{smallheadings}% +\BeginIndex{Option}{normalheadings}% +\BeginIndex{Option}{bigheadings}% +The font size used for the titles\index{title}\index{document + structure} is relatively big, both with the standard classes and +with {\KOMAScript}. Not everyone likes this choice; moreover it is +specially problematic for small paper sizes. Consequently +{\KOMAScript} provides, besides the large title font size defined by +the \Option{bigheadings} option, the two options +\Option{normalheadings} and \Option{smallheadings}, that allow for +smaller title font sizes. +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}The spacing before and +after chapter titles is also influenced by these options. Chapter +titles are also influenced by the options \Option{chapterprefix} and +\Option{nochapterprefix}, and appendix titles by the options +\Option{appendixprefix} and \Option{noappendixprefix}, all of them +are described in \autoref{sec:maincls.layoutOptions}. +% +\EndIndex{Option}{smallheadings}% +\EndIndex{Option}{normalheadings}% +\EndIndex{Option}{bigheadings}% + +\subsection{Options Affecting the Table of Contents} +\label{sec:maincls.tocOptions} + +{\KOMAScript} has several options that affect the entries in the table +of contents\Index[indexmain]{table of contents}. The form of the table +of contents is fixed but several variations of the contents can be +obtained with the options provided. + +\begin{Declaration} + \Option{liststotoc}\\ + \Option{idxtotoc}\\ + \Option{bibtotoc}\\ + \Option{bibtotocnumbered}\\ + \Option{liststotocnumbered} +\end{Declaration}% +\BeginIndex{Option}{liststotoc}% +\BeginIndex{Option}{idxtotoc}% +\BeginIndex{Option}{bibtotoc}% +\BeginIndex{Option}{bibtotocnumbered}% +\BeginIndex{Option}{liststotocnumbered}% +\begin{Explain}% + Lists of tables and figures, index and bibliography are not normally + included in the table of contents. These entries are omitted in + classical typography because it is silently assumed that, if at all, + lists of figures and tables come after the table of contents, the + index comes at the end and the bibliography comes before the index. + Books with all these parts often include ribbons that can be used to + mark the location of these parts in the book, so that the reader + only has to look for them once. +\end{Explain} + +It is becoming increasingly common to find entries in the table of +contents for the lists of tables and figures, for the bibliography, +and, sometimes, even for the index. This is certainly related to the +recent trend of putting lists of figures and tables at the end of the +document. Both lists are similiar to the table of contents in +structure and intention. I'm therefore sceptical of this evolution. +Since it makes no sense to include only one of the aforementioned lists +in the table of contents, there exists only one option +\Option{liststotoc} that causes entries for both types of lists to be +included. This also includes any lists produced with version 1.2e or +later of the \Package{float}\IndexPackage{float} package (see +\cite{package:float}). All these lists are unnumbered, since they +contain entries that reference other sections of the document. + +The option \Option{idxtotoc} causes an entry for the index to be +included in the table of contents. The index is also unnumbered since +it only includes references to the contents of the other sectional +units. + +The bibliography is a different kind of listing. It does not list the +contents of the present document but refers instead to external +documents. On these reasons it could be argued that it is a different +chapter (or section) and, as such, should be numbered. The option +\Option{bibtotocnumbered} has this effect, including the generation of +the corresponding entry in the table of contents. I think that a +similar reasoning would lead us to consider a classical list of +sources to be a separate chapter. Also, the bibliography is not +something that was written by the document's author. In view of this, +the bibliography merits nothing more than an unnumbered entry in the +table of contents, and that can be achieved with the \Option{bibtotoc} +option. + +The author of \KOMAScript{} doesn't like option +\Option{bibtotocnumbered}. He almost detests option +\Option{liststotocnumbered}. Because of this you won't find a detailed +description of this option. Nevertheless it exists. +% +\EndIndex{Option}{liststotoc}% +\EndIndex{Option}{idxtotoc}% +\EndIndex{Option}{bibtotoc}% +\EndIndex{Option}{bibtotocnumbered}% +\EndIndex{Option}{liststotocnumbered}% + + +\begin{Declaration} + \Option{tocindent}\\ + \Option{tocleft} +\end{Declaration}% +\BeginIndex{Option}{tocindent}% +\BeginIndex{Option}{tocleft}% +The table of contents is normally\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} setup so +that different sectional units have different indentations. The +section number is set left-justified in a fixed-width field. This +setup is selected with the option \Option{tocindent}. + +When there are many sections, the corresponding numbering tends to +become very wide, so that the reserved field overflows. The FAQ +\cite{DANTE:FAQ} suggests that the table of contents should be redefined +in such a case. \KOMAScript{} offers an alternative format that avoids +the problem completely. If the option \Option{tocleft} is selected, +then no variable indentation is applied to the titles of the sectional +units. Instead, a table-like organisation is used, where all unit +numbers and titles, respectively, are set in a left-justified column. +The space necessary for the unit numbers is determined automatically. + +\begin{Explain} + In order to calculate automatically the space taken by the unit + numbers when using the option \Option{tocleft} it is necessary to + redefine some macros. It is improbable but not impossible that this + leads to problems when using other packages. If you think this may + be causing problems, you should try the alternative option + \Option{tocindent}, since it does not make any redefinitions. When + using packages that affect the format of the table of contents, it + is possible that the use of options \Option{tocleft} and + \Option{tocindent} may lead to problems. In that case, one should + use neither of these global (class) option. + + If the \Option{tocleft} option is active, the width of the field for + unit numbering is determined when outputting the table of contents. + After a change that affects the table of contents, at most three + \LaTeX{} runs are necessary to obtain a correctly set table of + contents. +\end{Explain} +% +\EndIndex{Option}{tocindent}% +\EndIndex{Option}{tocleft}% + +\subsection{Options for Lists of Floats} +\label{sec:maincls.listsOptions} + +The best known lists of floats are the list of figures and the list of tables. +With help from the \Package{float}\IndexPackage{float} package, for instance, +it is possible to produce new float environments with the corresponding lists. + +\begin{Explain} + Whether \KOMAScript{} options have any effect on lists of floats + produced by other packages depends mainly on those packages. This is + generally the case with the lists of floats produced by the + \Package{float}\IndexPackage{float} package. + + Besides the options described here, there are others that affect the + lists of floats though not their formatting or contents. Instead + they affect what is included in the table of contents. The + corresponding descriptions can therefore be found in + \autoref{sec:maincls.tocOptions}. +\end{Explain} + +\begin{Declaration} + \Option{listsindent}\\ + \Option{listsleft} +\end{Declaration}% +\BeginIndex{Option}{listsindent}% +\BeginIndex{Option}{listsleft}% +Lists of figures and tables\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} are +generally setup so that their numbering uses a fixed space. This +corresponds to the use of option \Option{listsindent}. + +If the numbers get too large, for instance because many tables are +used, it may happen that the available space is exceeded. Therefore +\KOMAScript{} supplies an option called \Option{listsleft} that is +similar to the \Option{tocleft} option. The width of the numbers is +automatically determined and the space for them correspondingly +adjusted. Concerning the mode of operation and the side effects, the +observations made in \autoref{sec:maincls.tocOptions} for the +\Option{tocleft} option are equally valid in this case. Please note +that when using the \Option{listsleft} option several \LaTeX{} runs +are necessary before the lists of floats achieve their final form. +% +\EndIndex{Option}{listsindent}% +\EndIndex{Option}{listsleft}% + + + +\subsection{Options Affecting the Formatting} +\label{sec:maincls.formattingOptions} + +Formatting options are all those options that affect the form or +formatting of the document and are not assigned to other sections. +They are the \emph{remaining options}. + +\begin{Declaration} + \Option{abstracton}\\ + \Option{abstractoff} +\end{Declaration}% +\BeginIndex{Option}{abstracton}% +\BeginIndex{Option}{abstractoff}% +In\OnlyAt{\Class{scrreprt}\and\Class{scrartcl}} the standard classes +the \Environment{abstract} environment sets the text "\abstractname" +centered before the summary text\Index[indexmain]{summary}. This was the +normal procedure in the past. In the meantime, newspaper reading has +trained the readers to recognize a displayed text at the beginning of +an article or report as the abstract. This is even more so when the +abstract comes before the table of contents. It is also surprising +that precisely this title appears small and centered. {\KOMAScript} +provides the possibility of including or excluding the abstract's +title with the options \Option{abstracton} and \Option{abstractoff}. + +\begin{Explain} + Books typically use another type of summary. In that case there is + usually a dedicated summary chapter at the beginning or end of the + book. This chapter is often combined with the introduction or with a + description of further aspects. Therefore, the class \Class{scrbook} + has no \Environment{abstract} environment. A summary chapter is also + recommended for reports in a wider sense, like a Master's or Ph.D. + thesis. +\end{Explain} +% +\EndIndex{Option}{abstracton}% +\EndIndex{Option}{abstractoff}% + + +\begin{Declaration} + \Option{pointednumbers}\\ + \Option{pointlessnumbers} +\end{Declaration}% +\BeginIndex{Option}{pointednumbers}% +\BeginIndex{Option}{pointlessnumbers}% +\begin{Explain}% + According to {\small DUDEN}, the numbering of sectional units should + have no point at the end if only arabic numbers are used (see + \cite[R\,3]{DUDEN}). On the other hand, if roman numerals or letters + are used, then a point should appear at the end of the numbering (see + \cite[R\,4]{DUDEN}). {\KOMAScript} has an internal mechanisms that + tries to implement these rules. The resulting effect is that, + normally, after the sectional commands \Macro{part} and + \Macro{appendix} a switch is made to numbering with a point at the + end. The information is saved in the \File{aux} file and takes + effect on the next \LaTeX{} run. +\end{Explain} + +In some cases the mechanism that switches the end point may fail or +other languagues may have different rules. Therefore it is possible to +activate the use of the end point with the option +\Option{pointednumbers} or to deactivate it with +\Option{pointlessnumbers}. + +Please note that the mechanism only takes effect on the next \LaTeX{} +run. When trying to use these options to control the numbering +format, a run without changing any options should be made. + +Calling these options +\Option{dottednumbers}\IndexOption{dottednumbers} and +\Option{dotlessnumbers}\IndexOption{dotlessnumbers} or similar would +be more correct. It so happened that the meaning of the chosen names +was not clear to me a few years ago when the options were implemented. +% +\EndIndex{Option}{pointednumbers}% +\EndIndex{Option}{pointlessnumbers}% + +\begin{Declaration} + \Option{leqno} +\end{Declaration}% +\BeginIndex{Option}{leqno}% +Equations\Index{equation} are normally numbered on the right. The +standard option \Option{leqno} causes the standard option file +\File{leqno.clo} to be loaded. The equations are then numbered on the +left. +% +\EndIndex{Option}{leqno}% + + +\begin{Declaration} + \Option{fleqn} +\end{Declaration}% +\BeginIndex{Option}{fleqn}% +Displayed equations are normally centered. The standard option +\Option{fleqn} causes the standard option file \File{fleqn.clo} to be +loaded. Displayed equations are then left-justified. +% +\EndIndex{Option}{fleqn}% + +\begin{Declaration} + \Option{tablecaptionbelow}\\ + \Option{tablecaptionabove} +\end{Declaration}% +\BeginIndex{Option}{tablecaptionbelow}% +\BeginIndex{Option}{tablecaptionabove}% +As described in \autoref{sec:maincls.floats}, the +\Macro{caption}\IndexCmd{caption} command acts with figures like the +\Macro{captionbelow}\IndexCmd{captionbelow} command. The behaviour +with tables depends on two options. With the default +\Option{tablecaptionbelow} options, the \Macro{caption} macro acts +like the \Macro{captionbelow} command. With the +\Option{tablecaptionabove} option, \Macro{caption} acts like the +\Macro{captionabove}\IndexCmd{captionabove} command. + +Note\OnlyAt{\Package{float}}\IndexPackage{float} that when using +the \Package{float} package, the options \Option{tablecaptionbelow} +and \Option{tablecaptionabove} cease to act correctly when the +\Macro{refloatstyle} is applied to tables. More details of the +\Package{float} package's \Macro{refloatstyle} can be obtained from +\cite{package:float}. +% +\EndIndex{Option}{tablecaptionbelow}% +\EndIndex{Option}{tablecaptionabove}% + + +\begin{Declaration} + \Option{origlongtable} +\end{Declaration}% +\BeginIndex{Option}{origlongtable}% +\begin{Explain}% + The package\OnlyAt{\Package{longtable}} + \Package{longtable}\IndexPackage{longtable} (see + \cite{package:longtable}) sets table captions internally by calling + the command \Macro{LT@makecaption}. In order to ensure that these + table captions match the ones used with normal tables, the + \KOMAScript{} classes normally redefine that command. See + \autoref{sec:maincls.floats} for more details. The redefinition + is performed with help of the command \Macro{AfterPackage} + immediately after the loading of package \Package{longtable}. If + the package \Package{caption2}\IndexPackage{caption2} (see + \cite{package:caption2}) has been previously loaded, the + redefinition is not made in order not to interfere with the + \Package{caption2} package. +\end{Explain} +If the table captions produced by the \Package{longtable} package +should not be redefined by the \KOMAScript{}, activate the +\Option{origlongtable} option. +% +\EndIndex{Option}{origlongtable}% + + +\begin{Declaration} + \Option{openbib} +\end{Declaration}% +\BeginIndex{Option}{openbib}% +The standard option \Option{openbib} switches to an alternative +bibliography format. The effects are twofold: The first line of a +bibliography entry, normally containing the author's name, gets a +smaller indentation; and the command \Macro{newblock} is redefined to +produce a paragraph. Without this option, \Macro{newblock} introduces +only a stretchable horizontal space. +% +\EndIndex{Option}{openbib} + + +\begin{Declaration} + \Option{draft}\\ + \Option{final} +\end{Declaration}% +\BeginIndex{Option}{draft}% +\BeginIndex{Option}{final}% +The two standard options \Option{draft} and \Option{final} are +normally used to distinguish between the draft and final versions of a +document. The option \Option{draft} activates small black boxes that +are set at the end of overly long lines. The boxes help the untrained +eye to find paragraphs that have to be treated manually. With the +\Option{final} option no such boxes are shown. + +The two options are also processed by other packages and affect their +workings. For instance, the \Package{graphics}\IndexPackage{graphics} +and the \Package{graphicx}\IndexPackage{graphicx} packages don't +actually output the graphics when the option \Option{draft} is +specified. Instead they output a framed box of the appropriate size +containing only the graphic's filename (see \cite{package:graphics}). +% +\EndIndex{Option}{draft}% +\EndIndex{Option}{final}% + + +\section{General Document Characteristics} +\label{sec:maincls.general} + +Some document characteristics do not apply to a particular section of +the document like the titling, the text body or the bibliography, but +they affect the entire document. Some of these characteristics were +already described in \autoref{sec:maincls.options}. + +\subsection{Changing Fonts} +\label{sec:maincls.font} + +\BeginIndex{}{font}\BeginIndex{}{font size}% +\begin{Explain} + \KOMAScript{} does not use fixed fonts and attributes to emphasize + different elements of the text. Instead there are variables + that contain the commands used for changing fonts and other text + attributes. In previous versions of \KOMAScript{} the user had to + use \Macro{renewcommand} to redefine those variables. It was also + not easy to determine the name of the variable affecting an element + given the element's name. It was also often necessary to determine + the original definition before proceeding to redefine it. + + These difficulties were actually intended, since the interface was not + for users, but only for package authors building their + packages on top of \KOMAScript{}. The years have shown that the + interface was mainly used by document authors. So a new, simpler + interface was created. However, the author advises explicitly the + typographically inexperienced user against changing font sizes and + other graphical characteristics according to his taste. Knowledge + and feeling are basic conditions for the selection and mixture of + different font sizes, attributes and families. +\end{Explain} + +\begin{Declaration} + \Macro{setkomafont}\Parameter{element}\Parameter{commands}\\ + \Macro{addtokomafont}\Parameter{element}\Parameter{commands}\\ + \Macro{usekomafont}\Parameter{element} +\end{Declaration}% +\BeginIndex{Cmd}{setkomafont}% +\BeginIndex{Cmd}{addtokomafont}% +\BeginIndex{Cmd}{usekomafont}% +With\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} the help of the two commands \Macro{setkomafont} +and \Macro{addtokomafont} it is possible to define the +\PName{commands} that change the characteristics of a given +\PName{element}. Theoretically all possible statements including +literal text could be used as \PName{commands}. You should however +absolutely limit yourself to those statements that really switch only +one font attribute. This are usually the commands \Macro{normalfont}, +\Macro{rmfamily}, \Macro{sffamily}, \Macro{ttfamily}, +\Macro{mdseries}, \Macro{bfseries}, \Macro{upshape}, \Macro{itshape}, +\Macro{slshape}, \Macro{scshape} and the font size commands +\Macro{Huge}, \Macro{huge}, \Macro{LARGE} etc. The description of +these commands can be found in \cite{lshort}, \cite{latex:usrguide} or +\cite{latex:fntguide}. Color switching commands like +\Macro{normalcolor} (see \cite{package:graphics}) are also acceptable. +The behavior when using other commands, specially those that make +redefinitions or generate output, is not defined. Strange behavior is +possible and does not represent a bug. + + +The command \Macro{setkomafont } provides a font switching command +with a completely new definition. In contrast to this the +\Macro{addtokomafont} commands extends the existing definition. + +It is not recommended to use both statements in the same +document. Usage examples can be found in the paragraphs on the +corresponding element. Names and meanings of the individual items are +listed in \autoref{tab:maincls.elementsWithoutText}. The default +values are shown in the corresponding paragraphs. +% +% Mit tabularx.sty oder array.sty waere folgende Tabelle viel +% einfacher zu loesen: +\begin{table} + \centering% + \begin{tabular}{lp{.6\linewidth}} + Element & Description \\\hline\\[-2ex] + \FontElement{caption}\IndexFontElement[indexmain]{caption} + & \raggedright Text of a table or figure caption\tabularnewline%[.75ex] + \FontElement{captionlabel}\IndexFontElement[indexmain]{captionlabel} + & \raggedright Label of a table or figure caption; used according + to the element \FontElement{caption}\tabularnewline%[.75ex] + \FontElement{chapter}\IndexFontElement[indexmain]{chapter} + & \raggedright Title of the sectional unit + \Macro{chapter} \tabularnewline%[.75ex] + \FontElement{descriptionlabel}% + \IndexFontElement[indexmain]{descriptionlabel} + & \raggedright Labels, i.e. the optional + argument of \Macro{item}, in the + \Environment{description} environment\tabularnewline%[.75ex] + \FontElement{dictumauthor}\IndexFontElement[indexmain]{dictumauthor} + & \raggedright Author of a smart saying; used according + to the element \FontElement{dictumtext}\tabularnewline%[.75ex] + \FontElement{dictumtext}\IndexFontElement[indexmain]{dictumtext} + & \raggedright Text of a smart saing (see command + \Macro{dictum}) \tabularnewline%[.75ex] + \FontElement{pagefoot}\IndexFontElement[indexmain]{pagefoot} + & \raggedright The foot of a page, but also the head of a page + \tabularnewline%[.75ex] + \FontElement{footnote}\IndexFontElement[indexmain]{footnote} + & \raggedright Footnote text and marker \tabularnewline%[.75ex] + \FontElement{footnotelabel}\IndexFontElement[indexmain]{footnotelabel} + & \raggedright Mark of a footnote; used according to the + element \FontElement{footnote}\tabularnewline%[.75ex] + \FontElement{footnotereference}% + \IndexFontElement[indexmain]{footnotereference} + & Footnote reference in the text \tabularnewline%[.75ex] + \FontElement{pagehead}\IndexFontElement[indexmain]{pagehead} + & \raggedright The head of a page, but also the foot of a page + \tabularnewline%[.75ex] + \FontElement{pagenumber}\IndexFontElement[indexmain]{pagenumber} + & \raggedright Page number in the header or footer + \tabularnewline%[.75ex] + \FontElement{paragraph}\IndexFontElement[indexmain]{paragraph} + & \raggedright Title of the sectional unit + \Macro{paragraph} \tabularnewline%[.75ex] + \FontElement{part}\IndexFontElement[indexmain]{part} + & \raggedright Title of the \Macro{part} sectional unit, without + the line with the part number\tabularnewline%[.75ex] + \FontElement{partnumber}\IndexFontElement[indexmain]{partnumber} + & \raggedright Line with the part number in a title of the + sectional unit \Macro{part} + \tabularnewline%[.75ex] + \FontElement{section}\IndexFontElement[indexmain]{section} + & \raggedright Title of the sectional unit + \Macro{section} \tabularnewline%[.75ex] + \FontElement{sectioning}\IndexFontElement[indexmain]{sectioning} + & \raggedright All sectional unit titles, i.e. the arguments of + \Macro{part} down to \Macro{subparagraph} and + \Macro{minisec}, including the title of the abstract; used before + the element of the corresponding unit + \tabularnewline%[.75ex] + \FontElement{subparagraph}\IndexFontElement[indexmain]{subparagraph} + & \raggedright Title of the sectional unit + \Macro{subparagraph} \tabularnewline%[.75ex] + \FontElement{subsection}\IndexFontElement[indexmain]{subsection} + & \raggedright Title of the sectional unit + \Macro{subsection} \tabularnewline%[.75ex] + \FontElement{subsubsection}\IndexFontElement[indexmain]{subsubsection} + & \raggedright Title of the sectional unit + \Macro{subsubsection} \tabularnewline%[.75ex] + \FontElement{title}\IndexFontElement[indexmain]{title} + & \raggedright Main title of the document, i.e. the argument + of \Macro{title} \tabularnewline%[.75ex] + \end{tabular} + \caption{Elements, whose type style can be + changed with the {\KOMAScript} command \Macro{setkomafont} or + \Macro{addtokomafont}} + \label{tab:maincls.elementsWithoutText} +\end{table} + +The command \Macro{usekomafont} can change the current font +specification to the one used with the specified \PName{element}. +\begin{Example} + Assume that you want to use for the element + \FontElement{captionlabel} the same font specification that is used + with \FontElement{descriptionlabel}. This can be easily done with: + \begin{small} +\begin{verbatim} + \setkomafont{captionlabel}{\usekomafont{descriptionlabel}} +\end{verbatim} + \end{small} + You can find other examples in the paragraphs on each element. +\end{Example} +% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% +\EndIndex{}{font}\EndIndex{}{font size}% + +\subsection{Page Style} +\label{sec:maincls.pageStyle} + +\begin{Declaration} + \Macro{pagestyle}\PParameter{empty}\\ + \Macro{pagestyle}\PParameter{plain}\\ + \Macro{pagestyle}\PParameter{headings}\\ + \Macro{pagestyle}\PParameter{myheadings}\\ + \Macro{thispagestyle}\Parameter{local page style} +\end{Declaration}% +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadings}% +One of the general characteristics of a document is the page +style\Index[indexmain]{page style}. In {\LaTeX} this means mostly the +contents of headers and footers. Usually one distinguishes four +different page styles. +\begin{description} +\item[empty] is the page style with entirely empty headers and + footers. In {\KOMAScript} this is completely identical to the + standard classes. +\item [plain] is the page style with empty head and only a page number + in the foot. With the standard classes this page number is + always centered in the foot. With {\KOMAScript} the page number + appears on double-sided\Index {double-sided} layout on the outer + side of the foot. The one-sided page style behaves like the + standard setup. +\item[headings] is the page style with running titles in the head. + With the classes \Class{scrbook}\IndexClass{scrbook} and + \Class{scrreprt}\IndexClass{scrreprt} the titles of chapters and + sections are repeated in the head -- with {\KOMAScript} on the outer + side, with the standard classes on the inner side. The page number + comes with {\KOMAScript} on the outer side of the foot, with the + standard classes it comes on the inner side of the head. In + one-sided layouts only the headings of the chapters are used and + are, with {\KOMAScript}, centered in the head. The page numbers are + set with {\KOMAScript} centered in the foot. + \OnlyAt{\Class{scrartcl}}\Class{scrartcl}\IndexClass{scrartcl} + behaves similarly, but starting a level deeper in the section + hierarchy with sections and subsections, because the chapter level + does not exist in this case. + + While the standard classes automatically set running headings always + in capitals, {\KOMAScript} applies the style of the title. This has + several typographic reasons. Capitals as a decoration are actually + too strong. If one applies them nevertheless, they should be set + with a smaller type size and tighter spacing. The standard classes + don't take these points in consideration. +\item [myheadings] corresponds mostly to the page style + \PValue{headings}, but the running headings s are not automatically + produced, but have to be defined by the user. The commands \Macro + {markboth}\IndexCmd{markboth} and + \Macro{markright}\IndexCmd{markright} can be used for that purpose. +\end{description} +Besides, the form of the page styles \PValue{headings} and +\PValue{myheadings} is affected by each of the four class options +\Option{headsepline}, \Option{headnosepline}, \Option{footsepline} and +\Option {footnosepline} (see \autoref{sec:maincls.layoutOptions}). +The page style starting with the current page is changed by the +command \Macro{pagestyle}. On the other hand \Macro{thispagestyle} +changes only the style of the current page. + +The page style can be set at any time with the help of the +\Macro{pagestyle} command and takes effect with the next page that is +output. Usually one sets the page style only once at the beginning of the +document or in the preamble. To change the page style of the current +page one uses the \Macro{thispagestyle} command. This also happens at +some places in the document automatically. For example, the +instruction \Macro{thispagestyle}\PParameter{plain} is issued +implicitly on the first page of a chapter. + +Please note that the change between automatic and manual running +headings is not performed by page style changes when using the +\Package{scrpage2} package, but instead special instructions must be +used. The page styles \PValue{headings} and \PValue{myheadings} should +not be used together with this package (see +\autoref{cha:scrpage}). +% +\EndIndex{Cmd}{pagestyle}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{plain}% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{myheadings}% + +\BeginIndex[indexother]{}{type style}% +In order to change the type style used in the head, foot or for the +page number\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% +, please use the interface described in +\autoref{sec:maincls.font}. The same element is used for head and +foot, which you can designate equivalently with +\FontElement{pagehead}\IndexFontElement{pagehead} or +\FontElement{pagefoot}\IndexFontElement{pagefoot}. The element for +the page number within the head or foot is called +\FontElement{pagenumber}\IndexFontElement{pagenumber}. The default +settings can be found in \autoref{tab:maincls.defaultFontsHeadFoot}. +% +% +\begin{table} + \centering% + \begin{tabular}{ll} + Element & Default value \\\hline\\[-1.75ex] + \FontElement{pagefoot}\IndexFontElement{pagefoot} & + \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ + \FontElement{pagehead}\IndexFontElement{pagehead} & + \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ + \FontElement{pagenumber}\IndexFontElement{pagenumber} & + \Macro{normalfont}\Macro{normalcolor}\\ + \end{tabular} + \caption{Default values for the elements of a page style} + \label{tab:maincls.defaultFontsHeadFoot} +\end{table} +% +\begin{Example} + Assume that you want to set head and foot in a smaller type size and + in italics. However, the page number should not be set in italics + but bold. Apart from the fact that the result will look horribly, + you can reach this as follows: + \begin{small} +\begin{verbatim} + \setkomafont{pagehead}{\normalfont\normalcolor\itshape% + \small} + \setkomafont{pagenumber}{\normalfont\bfseries} +\end{verbatim} + \end{small} + If you want only that in addition to the default slanted variant a + smaller type size is used, it is sufficient to use the following: + \begin{small} +\begin{verbatim} + \addtokomafont{pagefoot}{\small} +\end{verbatim} + \end{small} + As you can see, the last example uses the element + \FontElement{pagefoot}. You can achieve the same result using + \PValue{pagehead} instead (see + \autoref{tab:maincls.elementsWithoutText} on + \autopageref{tab:maincls.elementsWithoutText}). +\end{Example} +It is not possible to use these methods to force capitals to be used +automatically for the running headings. For that, please use the +\Package{scrpage2} package (see \autoref{cha:scrpage}). + +If you define your own page styles, the commands +\Macro{usekomafont}\PParameter{pagehead} and +\Macro{usekomafont}\PParameter {pagenumber} can find a meaningful use. +If you use for that not the \KOMAScript{} package \Package{scrpage2} +(see \autoref{cha:scrpage}), but, for example, the package +\Package{fancyhdr}\IndexPackage{fancyhdr} (see +\cite{package:fancyhdr}), you can use these commands in your +definitions. Thereby you can remain compatible with \KOMAScript. If +you do not use these commands in your own definitions, changes like +those shown in the previous examples have no effect. The packages +\Package{scrpage}\IndexPackage{scrpage} and +\Package{scrpage2}\IndexPackage {scrpage2} take care to keep the +maximum possible compatibility with other packages. +% +\EndIndex[indexother]{}{type style}% + + +\begin{Declaration} + \Macro{titlepagestyle}\\ + \Macro{partpagestyle}\\ + \Macro{chapterpagestyle}\\ + \Macro{indexpagestyle} +\end{Declaration}% +\BeginIndex{Cmd}{titlepagestyle}% +\BeginIndex{Cmd}{partpagestyle}% +\BeginIndex{Cmd}{chapterpagestyle}% +\BeginIndex{Cmd}{indexpagestyle}% +For some pages a different page style is chosen with the help of the +command \Macro{thispagestyle}. Which page style this actually is, is +defined by these four macros. The default values for all four cases is +\PValue{plain}. The meaning of these macros can be taken from the +following list: +\begin{labeling}[~--]{\Macro{chapterpagestyle}} +\item[\Macro{titlepagestyle}] Page style for a title page when using + \emph{in-page} titles. +\item[\Macro{partpagestyle}] Page style for the pages with + \Macro{part} titles. +\item[\Macro{chapterpagestyle}] + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}} Page style for the + first page of a chapter. +\item[\Macro{indexpagestyle}] Page style for the first page of the index. +\end{labeling} + +The page styles can be redefined with the \Macro{renewcommand} macro. + +\begin{Example} + Assume that you want the pages with a \Macro{part} heading to have + no number. Then you can use the following command, for example in + the preamble of your document: + \begin{small} +\begin{verbatim} + \renewcommand*{\partpagestyle}{empty} +\end{verbatim} + \end{small} + As mentioned previously, the page style \PValue{empty} is exactly + what is required in this example. Naturally you can also use a + user-defined page style. + + Assume you have defined your own page style for initial chapter pages + with the package \Package{scrpage2} (see + \autoref{cha:scrpage}). You have given to this page style the + fitting name \PValue{chapter}. To actually use this style, you must + redefine the macro \Macro{chapterpagestyle} accordingly: + \begin{small} +\begin{verbatim} + \renewcommand*{\chapterpagestyle}{chapter} +\end{verbatim} + \end{small} + + Assume that you want that the table of contents of a book to + have no page numbers. However, everything after the table of + contents should work + again with the page style \PValue{headings}, as well as with + \PValue{plain} on every first page of a chapter. You can use the + following commands: + \begin{small} +\begin{verbatim} + \clearpage + \pagestyle{empty} + \renewcommand*{\chapterpagestyle}{empty} + \tableofcontents + \clearpage + \pagestyle{headings} + \renewcommand*{\chapterpagestyle}{plain} +\end{verbatim} + \end{small} + + The redefinition of the other page styles is done in the same way. +\end{Example} +\begin{Explain} + Whoever thinks that it is possible to put running headings on the + first page of a chapter by using the command +\begin{verbatim} + \renewcommand*{\chapterpagestyle}{headings} +\end{verbatim} + will be surprised at the results. + For sure, the page style \PValue{headings} is thereby applied to the + initial page of a chapter. But nevertheless no running headings appear + when using the \Option{openright} option. + The reason for this behaviour can be found in the \LaTeX{} + core. There, the command \Macro{rightmark}, that generates the marks + for right-hand pages, is defined with; +\begin{verbatim} + \let\@rightmark\@secondoftwo + \def\rightmark{\expandafter\@rightmark\firstmark\@empty\@empty} +\end{verbatim} + The right-hand mark is set with \Macro{firstmark}. \Macro{firstmark} + contains the left-hand and right-hand marks that were first set + for a page. Within \Macro{chapter}, \Macro{markboth} is used to set + the left mark to the chapter header and the right mark to empty. + Hence, the first right + mark on a chapter beginning with a right-hand page is empty. Therefore, + the running heading is also empty on those pages. + + You could redefine \Macro{rightmark} in the preamble so that the + last mark on the page is used instead of the first: +\begin{verbatim} + \makeatother + \renewcommand*{\rightmark}{% + \expandafter\@rightmark\botmark\@empty\@empty} + \makeatletter +\end{verbatim} + This would however cause the running heading of the first page of a + chapter to use the title of the last section in the page. This is + confusing and should be avoided. + + It is also confusing (and hence should be avoided) to have as + running heading of the first page of a chapter the chapter title + instead of the the section title. Therefore, the current behavior + should be considered to be correct. +\end{Explain} +% +\EndIndex{Cmd}{titlepagestyle}% +\EndIndex{Cmd}{partpagestyle}% +\EndIndex{Cmd}{chapterpagestyle}% +\EndIndex{Cmd}{indexpagestyle}% + + +\begin{Declaration} + \Macro{clearpage}\\ + \Macro{cleardoublepage}\\ + \Macro{cleardoublestandardpage}\\ + \Macro{cleardoubleplainpage}\\ + \Macro{cleardoubleemptypage} +\end{Declaration}% +\BeginIndex{Cmd}{clearpage}% +\BeginIndex{Cmd}{cleardoublepage}% +\BeginIndex{Cmd}{cleardoublestandardpage}% +\BeginIndex{Cmd}{cleardoubleplainpage}% +\BeginIndex{Cmd}{cleardoubleemptypage}% +The \LaTeX{} core contains the \Macro{clearpage} command, which takes +care of the fact that all floats that have not yet been output and +starts a new page. There exists the instruction +\Macro{cleardoublepage} which works like \Macro{clearpage} but that, +in the double-sided layouts (see layout option \Option{twoside} in +\autoref{sec:maincls.layoutOptions}) starts a new right-hand page. +An empty left page in the current page style is output if necessary. + +With \Macro{cleardoublestandardpage} \KOMAScript{} works as described +above. The \Macro{cleardoubleplainpage} command changes the page +style of the empty left page to \PValue{plain} in order to suppress +the running heading. Analogously, the page style \PValue{empty} is +applied to the empty page with \Macro{cleardoubleemptypage}, +suppressing the page number as well as the runnning title. The page is +thus entirely empty. However, the approach used by +\Macro{cleardoublepage} is dependent on the layout options +\Option{cleardoublestandard}, \Option{cleardoubleplain} and +\Option{cleardoubleempty} described in +\autoref{sec:maincls.layoutOptions} and acts according to the +active option. +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% + + +\begin{Declaration} + \Macro{ifthispageodd}\Parameter{true}\Parameter{false} +\end{Declaration}% +\BeginIndex{Cmd}{ifthispageodd}% +\begin{Explain}% + A peculiarity of \LaTeX{} consists in the fact that it is not + possible to determine on which page the current text will fall. It + is also difficult to say whether the current page has an odd or an + even page number. Now some will argue that there is, nevertheless, + the \TeX test macro \Macro{ifodd} which one needs only to apply to + the current page counter. However, this is an error. At the time of + the evaluation of such a test \LaTeX{} does not know at all whether + the text just processed will be typeset on the current page or only + on the next. The page breaks take place not while reading the paragraph, + but only in the \emph{output} routine of \LaTeX{}. However, at that + moment a command of the form \verb|\ifodd\value{page}| would already + have been completely evaluated. + + To find out reliably whether a text falls on an even or odd + page, one must usually work with a label and a page reference to + this label. One must also take special precautionary measures during + the first \LaTeX{} run, when the label is not yet known. +\end{Explain} +If one wants to find out with {\KOMAScript} whether a text falls on an +even or odd page, one can use the \Macro {ifthispageodd} command. The +\PName{true} argument is executed only if the command falls on an odd +page. Otherwise the \PName{false} argument is executed. + +\begin{Explain} + More precisely stated, the question is not where the text is, but + whether a page reference to a label placed in this location would + refer to an odd or an even page. +\end{Explain} +\begin{Example} + Assume that you want to indicate if an odd or even page is + output. This could be achieved with the command: + \begin{small} +\begin{verbatim} + This is a page with an \ifthispageodd{odd}{even} + page number. +\end{verbatim} + \end{small} + The output would then be: + \begin{quote} + This is a page with an \ifthispageodd{odd}{even} + page number. + \end{quote} +\end{Example} + +Because the \Macro{ifthispageodd} command uses a mechanism that is +very similar to a label and a reference to it, at least two \LaTeX{} +runs are required after every text modification. Only then the +decision is correct. In the first run a heuristic is used to make the +first choice. + + +\begin{Explain} + There are situations where the \Macro{ifthispageodd} command never + leads to the correct result. Suppose that the command is used within + a box. A box is set by \LaTeX{} always as a whole. No page breaks + take place inside. Assume further that the \PName{true} part is very + big, but the \PName{false} part is empty. If we suppose further that + the box with the \PName {false} part still fits on the current, even + page, but that with the \PName{true} part it does not. Further + assume that \KOMAScript{} heuristically decides for the first run + that the \PName{true} part applies. The decision is wrong and is + revised in the next run. The \PName{false} part is thereby + processed, instead of the \PName{true} part. The decision must again + be revised in the next run and so on. + + These cases are rare. Nevertheless it should not be said that I have + not pointed out that they are possible. +\end{Explain} +% +\EndIndex{Cmd}{ifthispageodd} + +\begin{Declaration} + \Macro{pagenumbering}\Parameter{numbering style} +\end{Declaration} +\BeginIndex{Cmd}{pagenumbering}% +This command works the same way in \KOMAScript{} as in the standard +classes. More precisely it is a command from the \LaTeX{} kernel. You +can specify with this command the \PName{numbering style} of page +numbers. The changes take effect immediately, hence starting with the +page that contains the command. The possible settings can be found in +\autoref{tab:numberKind}. Using the command \Macro{pagenumbering} +also resets the page counter\Index{page counter}\Index{page number}. +Thus the page number of the next page which \TeX{} outputs will have +the number 1 in the style \PName{numbering style}. +% +\begin{table} +\centering +\begin{tabular}{lll} +numbering style & example & description \\\hline\\[-2ex] +\PValue{arabic} & 8 & Arabic numbers \\ +\PValue{roman} & viii & lower-case Roman numbers \\ +\PValue{Roman} & VIII & upper-case Roman numbers \\ +\PValue{alph} & h & letters \\ +\PValue{Alph} & H & capital letters \\ +\end{tabular} +\caption{Available numbering styles of page numbers} +\label{tab:numberKind} +\end{table} +% +\EndIndex{Cmd}{pagenumbering} + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Titles} +\label{sec:maincls.titles} + +\begin{Explain} + After having described the options and some general issues, we begin + the document where it usually begins: with the titles. The titles + comprise everything that belongs in the widest sense to the title of + a document. Like already mentioned in + \autoref{sec:maincls.layoutOptions}, we can distinguish + between title pages and \emph{in-page} titles. Article classes like + \Class{article} or \Class{scrartcl} have by default \emph{in-page} + titles, while classes like \Class{report}, \Class{book}, + \Class{scrreprt} and \Class{scrbook} have title pages as default. + The defaults can be changed with the class options + \Option{titlepage} and \Option{notitlepage}. +\end{Explain} + + +\begin{Declaration} + \Environment{titlepage} +\end{Declaration}% +\BeginIndex{Env}{titlepage}% +With the standard classes and with {\KOMAScript} all title pages are +defined in a special environment, the \Environment{titlepage} +environment. This environment always starts a new page -- in the +two-sided layout a new right page. For this page, the style is changed +as by \Macro{thispagestyle}\PParameter{empty}, so that neither page +number nor running title are output. At the end of the environment the +page is automatically shipped out. Should you not be able to use the +automatic layout of the title page, it is advisable to design a new +one with the help of this environment. + + +\begin{Example} + Assume you want a title page on which only the word " ` Me " ' + stands at the top on the left, as large as possible and in bold -- + no author, no date, nothing else. The following document makes just + that: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{verbatim} + \end{small} + Simple? Right. +\end{Example} +% +\EndIndex{Env}{titlepage} + +\begin{Declaration} + \Macro{maketitle}\OParameter{page number} +\end{Declaration}% +\BeginIndex{Cmd}{maketitle}% +While the the standard classes produce a title page that may have the +three items title, author and date, with {\KOMAScript} the +\Macro{maketitle} command can produce up to six pages. + +In contrast to the standard classes, the \Macro{maketitle} macro in +{\KOMAScript} accepts an optional numeric argument. If it is used, the +number is made the page number of the first title page. However, this +page number is not output, but affects only the numbering. You should +choose an odd number, because otherwise the whole counting gets mixed +up. In my opinion there are only two meaningful applications for the +optional argument. On the one hand, one could give to the +half-title\Index[indexmain]{half-title} the logical page number \(-1\) +in order to give the full title page the number 1. On the other hand +it could be used to start at a higher page number, for instance, 3, 5, +or 7 to accommodate other title pages added by the publishing house. +The optional argument is ignored for \emph{in-page} titles. However +the page style of such a title page can be changed by redefining the +\Macro{titlepagestyle} macro. For that see +\autoref{sec:maincls.pageStyle}. + +The following commands do not lead necessarily to the production of +the titles. The typesetting of the title pages is always done by +\Macro{maketitle}. The commands explained below only define the +contents of the title pages. It is however not necessary, and when +using the \Package{babel} package\IndexPackage{babel} not recommended, +to use these in the preamble before \Macro{begin}\PParameter{document} +(see \cite{package:babel}). Examples can be found at the end of this +section. + +\begin{Declaration} + \Macro{extratitle}\Parameter{half-title} +\end{Declaration}% +\BeginIndex{Cmd}{extratitle}% +\begin{Explain}% + In earlier times the inner book was often not protected from dirt by a cover. + This task was then taken over by the first page of the book which + carried mostly a shortened title, precisely the \emph{half-title}. + Nowadays the extra page is often applied before the real full title + and contains information on the publisher, series number and similar + information. +\end{Explain} + +With {\KOMAScript} it is possible to include a page before the real +title page. The \PName{half-title} can be arbitrary text -- even +several paragraphs. The contents of the \PName {half-title} are output +by {\KOMAScript} without additional formatting. Their organisation is +completely left to the user. The back of the half-title remains empty. +The half-title has its own title page even when \emph{in-page} titles +are used. The output of the half-title defined with \Macro{extratitle} +takes place as part of the titles produced by \Macro{maketitle}. + + +\begin{Example} + Let's go back to the previous example and assume + that the spartan "Me" is the half-title. The full title should + still follow the half-title. One can proceed as follows: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge Me}} + \title{It's me} + \maketitle + \end{document} +\end{verbatim} + \end{small} + You can center the half-title and put it a little lower down the page: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \extratitle{\vspace*{4\baselineskip} + \begin{center}\textbf{\Huge Me}\end{center}} + \title{It's me} + \maketitle + \end{document} +\end{verbatim} + \end{small} + The command \Macro{title} is necessary in order to make the examples + above work correctly. It is explained next. +\end{Example} +% +\EndIndex{Cmd}{extratitle} + + +\begin{Declaration} + \Macro{titlehead}\Parameter{Titlehead}\\ + \Macro{subject}\Parameter{Subject}\\ + \Macro{title}\Parameter{Title}\\ + \Macro{author}\Parameter{Author}\\ + \Macro{date}\Parameter{Date}\\ + \Macro{publishers}\Parameter{Publisher}\\ + \Macro{and}\\ + \Macro{thanks}\Parameter{Footnote} +\end{Declaration}% +\BeginIndex{Cmd}{titlehead}% +\BeginIndex{Cmd}{subject}% +\BeginIndex{Cmd}{title}% +\BeginIndex{Cmd}{author}% +\BeginIndex{Cmd}{date}% +\BeginIndex{Cmd}{publishers}% +\BeginIndex{Cmd}{and}% +\BeginIndex{Cmd}{thanks}% +The contents of the full title page are defined by six elements. The +\PName{title head}\Index[indexmain]{title head} is defined with the +command \Macro {titlehead}. It is typeset in regular paragraph style +and full width at the top of the page. It can be freely designed by +the user. + +The \PName{Subject}\Index[indexmain]{subject} is output immediately +above the \PName{Title}. A slightly larger font size than the regular +one is used. + +The \PName{Title} is output with a very large font size. +Besides\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} the change +of size, the settings for the element +\FontElement{title}\IndexFontElement{title} also take effect. By +default these settings are identical to the settings for the element +\FontElement{sectioning}\IndexFontElement{sectioning} (see +\autoref{tab:maincls.elementsWithoutText}). The font size is however +not affected (see \autoref{tab:maincls.elementsWithoutText}). The +default settings can be changed with the commands of +\autoref{sec:maincls.font}. + +Below the \PName{Title} appears the +\PName{Author}\Index[indexmain]{author}. Several authors can be +specified in the argument of \Macro{author}. They should be separated +by \Macro{and}. + +Below the author or authors appears the date\Index{date}. The default +value is the present date, as produced by +\Macro{today}\IndexCmd{today}. The \Macro{date} command accepts +arbitrary information or even an empty argument. + +Finally comes the \PName{Publisher}\Index[indexmain]{publisher}. Of +course this command can also be used for any other information of +little importance. If necessary, the \Macro{parbox} command can be +used to typeset this information over the full page width like a +regular paragraph. Then it is to be considered equivalent to the +title head. However, note that this field is put above any existing +footnotes. + +Footnotes\Index{footnotes} on the title page are produced not with +\Macro{footnote}, but with \Macro{thanks}. They serve typically for +notes associated with the authors. Symbols are used as footnote +markers instead of numbers. + +With the exception of \PName{titlehead} and possible footnotes, all +the items are centered horizontally. The information is summarised in +\autoref{tab:maincls.mainTitle}. +\begin{table} + \centering + \begin{tabular}{llll} + Element & Command & Font + & Justification \\ + \hline\rule{0pt}{2.7ex}% + Title head & \Macro{titlehead} & \Macro{normalsize} + & Regular paragraph \\ + Subject & \Macro{subject} & \Macro{Large} + & centered \\ + Title & \Macro{title} & \Macro{huge} + & centered \\ + Authors & \Macro{author} & \Macro{Large} + & centered \\ + Date & \Macro{date} & \Macro{Large} + & centered \\ + Publishers & \Macro{publishers} & \Macro{Large} + & centered \\ + \end{tabular} + \caption[Main title]{Font size and horizontal positioning of the + elements in the main title page in the order of their vertical + position from top to bottom when typeset with \Macro{maketitle}} + \label{tab:maincls.mainTitle} +\end{table} + + +\begin{Example} + Assume you are writing a dissertation. The title page should have + the university's name and address at the top, flush left, and the + semester flush right. As usual a title is to be used, including + author and delivery date. + The advisor must also be indicated, together with the fact that the + document is a dissertation. This can be obtained as follows: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \titlehead{{\Large Unseen University + \hfill SS~2002\\} + Higher Analytical Institut\\ + Mythological Rd\\ + 34567 Etherworld} + \subject{Dissertation} + \title{Digital space simulation with the DSP\,56004} + \author{Fuzzy George} + \date{30. February 2002} + \publishers{Advisor Prof. John Excentric Doe} + \maketitle + \end{document} +\end{verbatim} + \end{small} +\end{Example} + + +\begin{Explain} +A frequent misunderstanding concerns the role of the full title side. +It is often erroneous assumed that the cover (or dust cover) is meant. +Therefore, it is frequently expected that the title page does not follow +the normal page layout, but have equally large left and right margins. + +However if one takes a book and opens it, one hits very quickly on at +least one title page under the cover within the so-called inner book. +Precisely these title pages are produced by \Macro{maketitle}. Like it +happens with the half-title, the full title page belongs to the inner +book, and therefore should have the same page layout as the rest of +the document. A cover is actually something that should be created in +a separate document. The cover often has a very individual format. It +can also be designed with the help of a graphics or DTP program. A +separate document should also be used because the cover will be +printed on a different medium, possibly cardboard, and possibly with +another printer. +\end{Explain} +% +\EndIndex{Cmd}{titlehead}% +\EndIndex{Cmd}{subject}% +\EndIndex{Cmd}{title}% +\EndIndex{Cmd}{author}% +\EndIndex{Cmd}{date}% +\EndIndex{Cmd}{publishers}% +\EndIndex{Cmd}{and}% +\EndIndex{Cmd}{thanks}% + + + +\begin{Declaration} + \Macro{uppertitleback}\Parameter{titlebackhead}\\ + \Macro{lowertitleback}\Parameter{titlebackfoot} +\end{Declaration}% +\BeginIndex{Cmd}{uppertitleback}% +\BeginIndex{Cmd}{lowertitleback}% +% +With the standard classes, the back of the title page is left empty. +However, with {\KOMAScript} the back of the full title page can be +used for other information. Exactly two elements which the user can +freely format are recognized: \PName {titlebackhead} and \PName +{titlebackfoot}. The head can reach up to the foot and vice versa. If +one takes this manual as an example, the exclusion of liability was +set with the help of the \Macro{uppertitleback} command. +\EndIndex{Cmd}{uppertitleback}% +\EndIndex{Cmd}{lowertitleback}% + + +\begin{Declaration} + \Macro{dedication}\Parameter{dedication} +\end{Declaration}% +\BeginIndex{Cmd}{dedication}% +{\KOMAScript} provides a page for dedications. The +dedication\Index{dedication} is centered and uses a slightly larger +type size. The back is empty like the back page of the half-title. +The dedication page is produced by \Macro{maketitle} and must +therefore be defined before this command is issued. + +\begin{Example} + This time assume that you have written a poetry book and you want to + dedicate it to your wife. A solution would look like this: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge In Love}} + \title{In Love} + \author{Prince Ironheart} + \date{1412} + \lowertitleback{This poem book was set with% + the help of {\KOMAScript} and {\LaTeX}} + \uppertitleback{Selfmockery Publishers} + \dedication{To my treasure\\ + in eternal love.} + \maketitle + \end{document} +\end{verbatim} + \end{small} +\end{Example} +% +\EndIndex{Cmd}{dedication} +% +\EndIndex{Cmd}{maketitle} + + +\begin{Declaration} + \Environment{abstract} +\end{Declaration}% +\BeginIndex{Env}{abstract}% +Particularly\OnlyAt{\Class{scrartcl}\and\Class{scrreprt}} with +articles, more rarely with reports, there is a summary\Index{summary} +directly under the title and before the table of contents. Therefore, +this is often considered a part of the titles. Some {\LaTeX} classes +offer a special environment for this summary, the +\Environment{abstract} environment. This is output directly, at it is +not a component of the titles set by \Macro{maketitle}. Please note +that \Environment{abstract} is an environment, not a command. Whether +the summary has a heading or not is determined by the options +\Option{abstracton} and \Option{abstractoff} (see +\autoref{sec:maincls.formattingOptions}) + +With books (\Class{scrbook}) the summary is frequently a component of +the introduction or a separate chapter at the end of the document. +Therefore no \Environment{abstract} environment is provided. When +using the class \Class{scrreprt} it is surely worth considering +whether one should not proceed likewise. +% +\EndIndex{Env}{abstract} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{The Table of Contents} +\label{sec:maincls.toc} + +The titles are normally followed by the table of contents\Index{table +of contents}. +Often the table of contents is followed by lists of floats, e.g. lists +of tables and figures, see \autoref{sec:maincls.floats}). + +\begin{Declaration} + \Macro{tableofcontents}\\ + \Macro{contentsname} +\end{Declaration}% +\BeginIndex{Cmd}{tableofcontents}% +\BeginIndex{Cmd}{contentsname}% + The production of the table of contents is done by the +\Macro{tableofcontents} command. +To get a correct table of contents, at least two \LaTeX{} runs are +necessary after every change. The option \Option{liststotoc} causes +the lists of figures and tables to be included in the table of +contents. \Option{idxtotoc} is the corresponding option for the index. +This is rather uncommon in classical typography. One finds the +bibliography included in the table of contents a little bit more +frequently. This can be obtained with the options \Option{bibtotoc} +and \Option{bibtotocnumbered}. These options are explained in +\autoref{sec:maincls.tocOptions}. + +The table of contents is not set as a numbered chapter and is +therefore subjected to the side effects of the standard +\Macro{chapter*} command, which are described in +\autoref{sec:maincls.structure}. However, the running +titles\Index {running title} for left and right pages are correctly +filled with the heading of the table of contents. The text of the +heading is given by the macro \Macro{contentsname}. +% +\EndIndex{Cmd}{tableofcontents}% +\EndIndex{Cmd}{contentsname}% + + +There is only one variant for the construction of the table of +contents. The titles of the sectional units are indented so that the +unit number is flush left to the edge of the title of the next upper +unit. However, the place for the numbers is thereby limited and is +only sufficient for a little bit more than 1.5 places per level. +Should this become a problem, help can be found in \cite{DANTE:FAQ}. + +The entry for the highest sectional unit below \Macro{part}, i.e., +\Macro{chapter} with \Class{scrbook}\IndexClass{scrbook} and +\Class{scrreprt}\IndexClass{scrreprt} or \Macro{section} with +\Class{scrartcl}\IndexClass {scrartcl} is not indented. It is however +affected by the settings of the element +\FontElement{sectioning}\IndexFontElement{sectioning} (see +\autoref{tab:maincls.elementsWithoutText}). There is no point +between the text of the sectional unit heading and the page number. The +typographic reasons for this are that the font is usually different +and the desire for appropriate emphasis. The table of contents of this +manual is a good example of these considerations. + + +\begin{Declaration} + \Counter{tocdepth} +\end{Declaration}% +\BeginIndex{Counter}{tocdepth}% +Normally, the units included in the table of contents are all the +units from \Macro{part} to \Macro{subsection} (for the classes +\Class{scrbook} and \Class{scrreprt}) or from \Macro{part} to +\Macro{subsubsection} (for the class \Class{scrartcl}). The inclusion +of a sectional unit in the table of contents is controlled by the +counter \Counter{tocdepth}. It has the value \(-1\) for \Macro{part}, +\(0\) for \Macro{chapter} and so on. Since the class \Class{scrartcl} has +no \Macro{chapter}, the counter starts with 0 for the \Macro{part}. By +setting, incrementing or decrementing the counter, one can choose the +lowest sectional unit level to be included in the table of contents. +The same happens with the standard classes. + +The user of the \Package{scrpage2}\IndexPackage{scrpage2} package (see +\autoref{cha:scrpage}) does not need to remember the numerical +values of each sectional unit. They are given by the values of the +macros \Macro{chapterlevel}, \Macro{sectionlevel} and so on down to +\Macro{subparagraphlevel}. +\begin{Example} + Assume that you are preparing an article that uses the sectional + unit \Macro{subsubsection}. However, you don't want this sectional + unit to appear in the table of contents. The preamble of your + document might contain the following: + \begin{small} +\begin{verbatim} + \documentclass{scrartcl} + \setcounter{tocdepth}{2} +\end{verbatim} +\end{small} +You set the counter \Counter{tocdepth} to 2, because you know that +this is the value for \Macro{subsection}. If you know that +\Class{scrartcl} normally includes all levels up to +\Macro{subsubsection} in the table of contents, you can simply +decrement the counter \Counter{tocdepth} by one: +\begin{small} +\begin{verbatim} + \documentclass{scrartcl} + \addtocounter{tocdepth}{-1} +\end{verbatim} +\end{small} +How much you should add to or take from the \Counter{tocdepth} counter +can also be found by looking at the table of contents after the first +\LaTeX{} run. +\end{Example} +% +\EndIndex{Counter}{tocdepth}% + +\section{Lists of Floats} + +As a rule, the lists of floats\index{float environments}, +e.g. list of tables\index{list of tables} and +list of figures\index{list of figures}, can be found directly +after the table of contents. +In some documents, they even can be found in the appendix. +However, the author of this manual prefers the location +after the table of contents, therefore it is discussed here. + +\begin{Declaration} + \Macro{listoftables}\\ + \Macro{listoffigures} +\end{Declaration} +\BeginIndex{Cmd}{listoftables}% +\BeginIndex{Cmd}{listoffigures}% +These commands generate a list of tables or figures. +Changes in the document, that modify these lists will +require two \LaTeX{} runs in order to take effect. +The layout of the lists can be influenced by the options +\Option{listsindent} and \Option{listsleft}, see +\autoref{sec:maincls.listsOptions}. +Moreover, the options \Option{liststotoc} and +\Option{liststotocnumbered} have indirect influence, +see \autoref{sec:maincls.tocOptions}). +% +\EndIndex{Cmd}{listoftables}% +\EndIndex{Cmd}{listoffigures}% + + +\section{Main Text} +\label{sec:maincls.mainText} + +This section explains everything provided by \KOMAScript{} +in order to write the main text. The main text is the +part that the author should focus on first. +Of course this includes tables, figures and comparable +information as well. + +\subsection{Separation} +\label{sec:maincls.separation} + +\begin{Declaration} + \Macro{frontmatter}\\ + \Macro{mainmatter}\\ + \Macro{backmatter} +\end{Declaration}% +\BeginIndex{Cmd}{frontmatter}% +\BeginIndex{Cmd}{mainmatter}% +\BeginIndex{Cmd}{backmatter}% +Before\OnlyAt{\Class{scrbook}} getting to the main text eventually +we will have a short look at three commands which exist both in the +standard class \Class{book} and the {\KOMAScript} class +\Class{scrbook}. They are used for separation of the +\emph{prefix}\Index{prefix}, the \emph{main text}\Index{main text} and +the \emph{appendix}\Index{appendix} in a book. + +The macro \Macro{frontmatter} introduces the prefix in which roman +numbers are used for the page numbers. Chapter headings in a prefix +don't have any numbers. The foreword can be set as a normal chapter. +A foreword should never be divided into sections but kept short. +Therefore there is no need for a deeper structuring than chapter. + +\Macro{mainmatter} introduces the main text. If there is no prefix +this command can be omitted. The default in the main text is arabic +page numbering (re)starting with 1. + +The appendix is introduced with \Macro{backmatter}. Opinions differ in +what should be part of the prefix. So in some cases you will only find +the bibliography\Index{bibliography}, in some cases only the +index\Index{index} and in other cases both of it in the appendix. +Besides, the appendix is similar to the prefix. +% +\EndIndex{Cmd}{frontmatter}% +\EndIndex{Cmd}{mainmatter}% +\EndIndex{Cmd}{backmatter}% + + +\subsection{Structuring the Document}\Index[indexmain]{structuring} +\label{sec:maincls.structure} + +\begin{Declaration} + \Macro{part}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{chapter}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{section}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{subsection}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{subsubsection}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{paragraph}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{subparagraph}\OParameter{Short version}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{part}% +\BeginIndex{Cmd}{chapter}% +\BeginIndex{Cmd}{section}% +\BeginIndex{Cmd}{subsection}% +\BeginIndex{Cmd}{subsubsection}% +\BeginIndex{Cmd}{paragraph}% +\BeginIndex{Cmd}{subparagraph}% +The standard sectioning commands in {\KOMAScript} work quite similar +to the standard classes. Normally the section headings show up in the +table of contents exactly as they are entered in the text. The entry +for the table of contents can be specified as an optional argument in +front of the actual heading. +\OnlyAt{\Class{scrartcl}}\Macro{chapter} only exists in book or +report classes but not in article classes. In addition to this, the +command \Macro{chapter} in {\KOMAScript} differs substantially from +the version in the standard class. While in the standard classes every +chapter number is used together with the prefix ``Chapter'' on a +separate line above the heading, {\KOMAScript} only places the chapter +number in front of the heading. + +Please note that \Macro{part} and \Macro{chapter} change the page +style for one page. The applied page style in \KOMAScript{} is defined +in \Macro{partpagestyle} and \Macro{chapterpagestyle} (see +\autoref{sec:maincls.pageStyle}). + +\BeginIndex[indexother]{}{font}% +\BeginIndex[indexother]{}{font size}% +The font of all headings\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +can be changed with the commands +\Macro{setkomafont}\IndexCmd{setkomafont} and +\Macro{addtokomafont}\IndexCmd{addtokomafont} described in +\autoref{sec:maincls.font}. First of all the element +\FontElement{sectioning}\IndexFontElement{sectioning} is used, which +is followed by a specific element for every section level (see +\autoref{tab:maincls.elementsWithoutText}). The font for the element +\FontElement{sectioning}\IndexFontElement{sectioning} is predefined as +\Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}% +\Macro{bfseries}. The default font size for the specific elements depends +on the options \Option{bigheadings}, \Option{normalheadings} and +\Option{smallheadings} (see \autoref{sec:maincls.fontOptions}). The +defaults are listed in \autoref{tab:maincls.structureElementsFont} +% +\begin{table} + \centering% + \begin{tabular}{lll} + class option & element & default\\\hline\\[-1.6ex] + \Option{bigheadings} + & \FontElement{part}\IndexFontElement{part} + & \Macro{Huge} \\ + & \FontElement{partnumber}\IndexFontElement{partnumber} + & \Macro{huge} \\ + & \FontElement{chapter}\IndexFontElement{chapter} + & \Macro{huge} \\ + & \FontElement{section}\IndexFontElement{section} + & \Macro{Large} \\ + & \FontElement{subsection}\IndexFontElement{subsection} + & \Macro{large} \\ + & \FontElement{subsubsection}% + \IndexFontElement{subsubsection} + & \Macro{normalsize} \\ + & \FontElement{paragraph}\IndexFontElement{paragraph} + & \Macro{normalsize} \\ + & \FontElement{subparagraph}\IndexFontElement{subparagraph} + & \Macro{normalsize} \\[1ex] + \Option{normalheadings} + & \FontElement{part} & \Macro{huge} \\ + & \FontElement{partnumber} & \Macro{huge} \\ + & \FontElement{chapter} & \Macro{LARGE} \\ + & \FontElement{section} & \Macro{Large} \\ + & \FontElement{subsection} & \Macro{large} \\ + & \FontElement{subsubsection} & \Macro{normalsize} \\ + & \FontElement{paragraph} & \Macro{normalsize} \\ + & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex] + \Option{smallheadings} + & \FontElement{part} & \Macro{LARGE} \\ + & \FontElement{partnumber} & \Macro{LARGE} \\ + & \FontElement{chapter} & \Macro{Large} \\ + & \FontElement{section} & \Macro{large} \\ + & \FontElement{subsection} & \Macro{normalsize} \\ + & \FontElement{subsubsection} & \Macro{normalsize} \\ + & \FontElement{paragraph} & \Macro{normalsize} \\ + & \FontElement{subparagraph} & \Macro{normalsize} + \end{tabular} + \caption{Default font sizes for different levels of document structuring} + \label{tab:maincls.structureElementsFont} +\end{table} + +\begin{Example} + Suppose you are using the class option \Option{bigheadings} and notice + that the very big headings of document parts are to bold. You could change + this as follows: + \begin{small} +\begin{verbatim} + \setkomafont{sectioning}{\normalcolor\sffamily} + \part{Appendices} + \addtokomafont{sectioning}{\bfseries} +\end{verbatim} + \end{small} + Using the command above you only switch off the font attribute + \textbf{bold} for the heading ``Appendices''. A much more comfortable + and elegant solution is to change all \Macro{part} headings in one go. + This is done either by: + \begin{small} +\begin{verbatim} + \addtokomafont{part}{\normalfont\sffamily} + \addtokomafont{partnumber}{\normalfont\sffamily} +\end{verbatim} + \end{small} + or using: + \begin{small} +\begin{verbatim} + \addtokomafont{part}{\mdseries} + \addtokomafont{partnumber}{\mdseries} +\end{verbatim} + \end{small} + The last version is to be preferred because it gives you the correct + result even when you change the \FontElement{sectioning} + element\IndexFontElement{sectioning} as follows: + \begin{small} +\begin{verbatim} + \setkomafont{sectioning}{\normalcolor\bfseries} +\end{verbatim} + \end{small} + With this change it is possible to set all section levels at once to not + longer use sans serif fonts. +\end{Example} + +Please be warned of using the possibilities of font switching to mix +fonts, font sizes and font attributes excessively. Picking the most +suitable font for a given task is a hard thing even for professionals +and has nothing to do with personal taste of beginners. Please refer +to the citation at the end of \autoref{sec:typearea.tips} and the +following explanation. + +\begin{Explain} + It is possible to use different font types for different section levels + in {\KOMAScript}. As a typographical beginner you should refrain from + using these possibilities for typographical reasons. There is a rule + which states that you should mix fonts only as few as possible. Using + sans serif for headings seems already a breach of this rule. However, + you should know that bold, huge and serif letters are much to heavy for + headings. In general you would have to use a normal instead of a bold + or semi bold font. However, in deeper levels of the structuring a normal + font appears rather leight weighted. On the other hand sans serif fonts + in headings have a very pleasant appearance and are to be used only in + headings. That's why sans serif is the default in {\KOMAScript}. More + variety should be avoided. Font mixing is only for professionals. In + case you want to use other fonts than the standard \TeX-Fonts -- no + matter whether using CM \Index{CM fonts} or EC fonts\Index{EC fonts} -- + you should consult an expert or redefine the font for the element + \FontElement{sectioning}\IndexFontElement{sectioning} as seen in + the example above. You often find the combinations Times and Helvetica + or Palatino with Helvetica. The author of this documentation does not + favour these combinations. +\end{Explain} +\EndIndex[indexother]{}{font}% +\EndIndex[indexother]{}{font size}% +% +\EndIndex{Cmd}{part}% +\EndIndex{Cmd}{chapter}% +\EndIndex{Cmd}{section}% +\EndIndex{Cmd}{subsection}% +\EndIndex{Cmd}{subsubsection}% +\EndIndex{Cmd}{paragraph}% +\EndIndex{Cmd}{subparagraph}% + + +\begin{Declaration} + \Macro{part*}\Parameter{Heading}\\ + \Macro{chapter*}\Parameter{Heading}\\ + \Macro{section*}\Parameter{Heading}\\ + \Macro{subsection*}\Parameter{Heading}\\ + \Macro{subsubsection*}\Parameter{Heading}\\ + \Macro{paragraph*}\Parameter{Heading}\\ + \Macro{subparagraph*}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{part*}% +\BeginIndex{Cmd}{chapter*}% +\BeginIndex{Cmd}{section*}% +\BeginIndex{Cmd}{subsection*}% +\BeginIndex{Cmd}{subsubsection*}% +\BeginIndex{Cmd}{paragraph*}% +\BeginIndex{Cmd}{subparagraph*}% +All sectioning commands exist as ``starred'' versions. They produce +section headings which do not show up in the table of +contents\Index{table of contents}, in the page header\Index{header} +and which are not numbered\Index{numbering}. Not using a headline +often has an unwanted side effect. For example, if a chapter which is +set using \Macro{chapter*} spans over several pages the headline of +the chapter before comes up again. {\KOMAScript} offers a solution +which is described below. +\OnlyAt{\Class{scrartcl}}\Macro{chapter*} only exists in book and +report classes which includes \Class{book}, \Class{scrbook}, +\Class{report} and \Class{scrreport}, but not the article classes +\Class{article} and \Class{scrartcl}. + +Please note that \Macro{part} and \Macro{chapter} change the page +style for one page. The applied style is defined in +\Macro{partpagestyle} and \Macro{chapterpagestyle} in \KOMAScript{} +(see \autoref{sec:maincls.pageStyle}). + +As for the possibilities of font switching\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +the same explanations apply which were given above with the normal +sectioning commands. The elements of structuring are named in the same +way as the ``unstarred'' versions. +% +\EndIndex{Cmd}{part*}% +\EndIndex{Cmd}{chapter*}% +\EndIndex{Cmd}{section*}% +\EndIndex{Cmd}{subsection*}% +\EndIndex{Cmd}{subsubsection*}% +\EndIndex{Cmd}{paragraph*}% +\EndIndex{Cmd}{subparagraph*}% + +\iffalse In the standard classes there are no further sectioning commands. In +particular, there are no commands which produce unnumbered chapters or +sections which show up in the table of contents or in the page header. \fi + +\begin{Declaration} + \Macro{addpart}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{addpart*}\Parameter{Heading}\\ + \Macro{addchap}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{addchap*}\Parameter{Heading}\\ + \Macro{addsec}\OParameter{Short version}\Parameter{Heading}\\ + \Macro{addsec*}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{addpart}% +\BeginIndex{Cmd}{addpart*}% +\BeginIndex{Cmd}{addchap}% +\BeginIndex{Cmd}{addchap*}% +\BeginIndex{Cmd}{addsec}% +\BeginIndex{Cmd}{addsec*}% +In addition to the standard classes {\KOMAScript} offers the new +commands \Macro{addsec} and \Macro{addchap}. They are similar to the +standard commands \Macro{chapter} und \Macro{section} except the +missing numbering. The produce both a running headline and an entry in +the table of contents. The starred versions \Macro{addchap*} and +\Macro{addsec*} are similar to the standard commands \Macro{chapter*} +and \Macro{section*} apart from a tiny but important difference: The +headlines are deleted. This eliminates the side effect of obsolete +headers mentioned above. \OnlyAt{\Class{scrartcl}}\Macro{addchap} +and \Macro{addchap*} of course only exist in book and report classes, +namely \Class{book}, \Class{scrbook}, \Class{report} and +\Class{scrreport}, but not in the article classes \Class{article} and +\Class{scrartcl}. + +Similar to this, the command \Macro{addpart} produces an unnumbered +document part with an entry in the table of contents. Since the +headers are already deleted by \Macro{part} and \Macro{part*} the +problem of obsolete headers doesn't exist. The starred version +\Macro{addpart*} is identical to \Macro{part*} and is only defined for +consistency reasons. + +Please note that \Macro{addpart} and \Macro{addchap} including their +starred versions change the page style for one page. The particular +page style is defined in the macros \Macro{partpagestyle} and +\Macro{chapterpagestyle} (see \autoref{sec:maincls.pageStyle}). + +As for the possibilities of font switching\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +the same explanations apply which were given above with the normal +sectioning commands. The elements of structuring are named in the same +way as the ``unstarred'' versions. +% +\EndIndex{Cmd}{addpart}% +\EndIndex{Cmd}{addpart*}% +\EndIndex{Cmd}{addchap}% +\EndIndex{Cmd}{addchap*}% +\EndIndex{Cmd}{addsec}% +\EndIndex{Cmd}{addsec*}% + + +\begin{Declaration} + \Macro{minisec}\Parameter{Heading} +\end{Declaration}% +\BeginIndex{Cmd}{minisec}% +Sometimes a heading\Index{heading} is wanted which is highlighted but +closely linked to the following text. Such a heading shouldn't be +separated by a vertical skip. + +The command \Macro{minisec} is designed for this situation. This heading +isn't linked to a level of structuring. Such a \emph{Mini-section} +does not produce an entry in the table of contents nor does it receive +any numbering. +\begin{Example} + You have developed a kit for building a mouse trap and want the + documentation separated into the things needed and an assembly + description. Using \Macro{minisec} you could write the following: + \begin{small} +\begin{verbatim} + \minisec{Items needed} + + \begin{flushleft} + 1 plank ($100\times 50 \times 12$)\\ + 1 spring-plug of a beer-bottle\\ + 1 spring of a ball-point pen\\ + 1 drawing pin\\ + 2 screws\\ + 1 hammer\\ + 1 knife + \end{flushleft} + + \minisec{Assembly} + At first one searches the mouse-hole and puts the + drawing pin directly behind the hole. + Thus the mouse cannot escape meanwhile the following + actions. + + Afterwards one knocks in the spring-plug with the hammer + in the mouse-hole. + If the spring-plug's size is not big enough in order to + shut the mouse-hole entirely, then one can utilize + the plank instead and fasten it with the two screws + employing the knife on the mouse-hole. + Instead of the knife one can use a screw-driver as well. +\end{verbatim} + \end{small} + Which gives: + \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em} + \minisec{Items needed} + + \begin{flushleft} + 1 plank ($100\times 50 \times 12$)\\ + 1 spring-plug of a beer-bottle\\ + 1 spring of a ball-point pen\\ + 1 drawing pin\\ + 2 screws\\ + 1 hammer\\ + 1 knife + \end{flushleft} + + \minisec{Assembly} + At first one searches the mouse-hole and puts the drawing pin + directly behind the hole. Thus the mouse cannot escape + meanwhile the following actions. + + Afterwards one knocks in the spring-plug with the hammer + in the mouse-hole. + If the spring-plug's size is not big enough in order to + shut the mouse-hole entirely, then one can utilize + the plank instead and fasten it with the two screws + employing the knife on the mouse-hole. + Instead of the knife one can use a screw-driver as well. + + \end{ShowOutput} +\end{Example} + +The font type of the sectioning command \Macro{minisec} can only be +changed using the element +\FontElement{sectioning}\IndexFontElement{sectioning} (see +\autoref{tab:maincls.elementsWithoutText}). There is no specific +element for \Macro{minisec}. This means you can't change the font size +manually. +% +\EndIndex{Cmd}{minisec}% + + +\begin{Declaration} + \Macro{raggedsection} +\end{Declaration}% +\BeginIndex{Cmd}{raggedsection}% +In the standard classes headings are set as justified text. That means +that hyphenated words can occur and headings with more than one line +are stretched up to the text border. This is a rather uncommon +approach in typography. {\KOMAScript} formats the headings left +aligned with hanging indentation using \Macro{raggedsection} with the +definition: +\begin{verbatim} + \newcommand*{\raggedsection}{\raggedright} +\end{verbatim} +This command can be redefined with \Macro{renewcommand}. +\begin{Example} + You prefer justified headings. You write in the preamble of your document: + \begin{small} +\begin{verbatim} + \renewcommand*{\raggedsection}{} +\end{verbatim} + \end{small} + or short: + \begin{small} +\begin{verbatim} + \let\raggedsection\relax +\end{verbatim} + \end{small} + You will get a formatting of the headings which is very close to the + standard classes. Even closer it will get when you combine this change + with the change of the element + \FontElement{sectioning}\IndexFontElement{sectioning} mentioned + above. +\end{Example} +% +\EndIndex{Cmd}{raggedsection}% + + +\begin{Declaration} + \Macro{partformat}\\ + \Macro{chapterformat}\\ + \Macro{othersectionlevelsformat}\Parameter{section name}\\ + \Macro{autodot} +\end{Declaration}% +\BeginIndex{Cmd}{partformat}% +\BeginIndex{Cmd}{chapterformat}% +\BeginIndex{Cmd}{othersectionlevelsformat}% +\BeginIndex{Cmd}{autodot}% +\begin{Explain}% + As you might know, for every counter in {\LaTeX} there is a command + \Macro{the}\PName{counter name}, which gives you the value of the + counter. Depending on the class the counter for a particular level + starting from \Macro{section} (\Class{book}, \Class{scrbook}, + \Class{report}, \Class{scrreprt}) or \Macro{subsection} + (\Class{article}, \Class{scrartcl}) is composed of the counter for the + higher level followed by a dot and the arabic number of the + \PName{counter name} of the respective level.\par +\end{Explain} + +\KOMAScript{} has added to the output of the section number a further +logical level. The counter for the respective heading are formatted +using \Macro{partformat}, \Macro{chapterformat} and +\Macro{othersectionlevelsformat}. +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Of course the command +\Macro{chapterformat} doesn't exist in the class \Class{scrartcl}. + +As described in \autoref{sec:maincls.formattingOptions} +{\KOMAScript} handles dots in section numbers according to +\cite{DUDEN}. The command \Macro{autodot} makes sure that these rules +are being followed. Except from \Macro{part} in all levels a dot is +followed by a \Macro{enskip}. This is similar to a horizontal skip of +\(0.5\Unit{em}\). + +The command \Macro{othersectionlevelsformat} takes the name of the +section level, such as ``\PName{section}'', ``\PName{subsection}'' +\dots{}, as parameter. As default, only the levels \Macro{part} and +\Macro{chapter} have formatting commands on their own, while all other +section levels are covered by one formatting command only. This has +historical reasons. At the time Werner Lemberg suggested a suitable +extension of {\KOMAScript} for his \Package{CJK} package, only this +differentiation was needed. + +The formatting commands can be redefined using \Macro{renewcommand} to +fit them to your personal needs. The following original definitions +are used by the {\KOMAScript} classes: +\begin{verbatim} + \newcommand*{\partformat}{\partname~\thepart\autodot} + \newcommand*{\chapterformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\othersectionlevelsformat}[1]{% + \csname the#1\endcsname\autodot\enskip} +\end{verbatim} + +\begin{Example} + Assume you don't want the word ``Part'' written in front of the part number. + You could use the following command in the preamble of your document: + \begin{small} +\begin{verbatim} + \renewcommand*{\partformat}{\thepart\autodot} +\end{verbatim} + \end{small} + In fact, you could do without \Macro{autodot} at this point and insert + a fixed point instead. As \Macro{part} is numbered with roman numbers, + according to \cite{DUDEN} a dot has to be applied. However, you would + give up the possibility to use one of the options + \Option{pointednumbers} und \Option{pointlessnumbers} then. More + details concerning class options you can find in + \autoref{sec:maincls.formattingOptions}). + + An additional possibility could be to place the section numbers + in the left margin. That can be done in a way that the heading + text is left aligned with the surrounding text. + This can be accomplished with: + \begin{small} +\begin{verbatim} + \renewcommand*{\othersectionlevelsformat}[1]{% + \llap{\csname the#1\endcsname\autodot\enskip}} +\end{verbatim} + \end{small} + The almost unknown command \Macro{llap} in the definition above, + puts its argument left to the current possition without changing the + position. +\end{Example} +% +\EndIndex{Cmd}{partformat}% +\EndIndex{Cmd}{chapterformat}% +\EndIndex{Cmd}{othersectionlevelsformat}% +\EndIndex{Cmd}{autodot}% + + +\begin{Declaration} + \Macro{chapappifchapterprefix}\Parameter{additional text}\\ + \Macro{chapapp} +\end{Declaration}% +\BeginIndex{Cmd}{chapappifchapterprefix}% +\BeginIndex{Cmd}{chapapp}% +These\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +\ChangedAt{v2.8o}{\Class{scrbook}\and\Class{scrreprt}} two commands +are used internally by {\KOMAScript} and are also provided at the user +interface. Using the layout option \Option{chapterprefix} (see +\autoref{sec:maincls.layoutOptions}) +\Macro{chapappifchapterprefix} issues the word +``Chapter''\Index{chapter} in the main part of your document in the +current language followed by \PName{additional text}. In the +appendix\Index{appendix} instead, the word ``Appendix'' in the current +language followed by \PName{additional text} is issued. Having set the +option \Option{nochapterprefix} there is no additional output. + +The command \Macro{chapapp} always issues the word ``Chapter'' or +``Appendix''. In this case the options \Option{chapterprefix} and +\Option{nochapterprefix} have no effect. + +Since chapters only exist in the classes \Class{scrbook} and +\Class{scrreprt} these commands only exist in these classes. +% +\EndIndex{Cmd}{chapappifchapterprefix}% +\EndIndex{Cmd}{chapapp}% + + +\begin{Declaration} + \Macro{chaptermark}\Parameter{Running head}\\ + \Macro{sectionmark}\Parameter{Running head}\\ + \Macro{subsectionmark}\Parameter{Running head}\\ + \Macro{chaptermarkformat}\\ + \Macro{sectionmarkformat}\\ + \Macro{subsectionmarkformat} +\end{Declaration}% +\BeginIndex{Cmd}{chaptermark}% +\BeginIndex{Cmd}{sectionmark}% +\BeginIndex{Cmd}{subsectionmark}% +\BeginIndex{Cmd}{chaptermarkformat}% +\BeginIndex{Cmd}{sectionmarkformat}% +\BeginIndex{Cmd}{subsectionmarkformat}% +\begin{Explain}% + As mentioned in \autoref{sec:maincls.pageStyle} the page style + \PValue{headings} works with running heads\Index{running + head}. For this, the commands \Macro{chaptermark} and + \Macro{sectionmark} as well as \Macro{sectionmark} and + \Macro{subsectionmark} respectively are defined. Every sectioning + command (\Macro{chapter}, \Macro{section}, \Macro{subsection} \dots) + automatically carries out the respective \Macro{\dots mark} command. + The parameter handed over takes the text of the section + heading\Index{heading}. The respective section number is added + automatically to the \Macro{\dots mark} command. The formatting is done + according to the section level with the command + \Macro{chaptermarkformat}, \Macro{sectionmarkformat} or + \Macro{subsectionmarkformat}. + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Of course there is no + command \Macro{chaptermark} or \Macro{chaptermarkformat} in + \Class{scrartcl}. \OnlyAt{\Class{scrartcl}}Accordingly + \Macro{subsectionmark} and the command \Macro{subsectionmarkformat} + only exist in \Class{scrartcl}. This changes when you use the + \Package{scrpage2} package (see \autoref{cha:scrpage}).\par +\end{Explain} +Similar to \Macro{chapterformat} and \Macro{othersectionlevelsformat} the +commands \Macro{chaptermarkformat} (not at \Class{scrartcl}), +\Macro{sectionmarkformat} and the command \Macro{subsectionmarkformat} +(only at \Class{scrartcl}) define the formatting of the section numbers +in running heads. They can be adapted to your personal needs with +\Macro{renewcommand}. The original definitions from the {\KOMAScript} +classes are: +\begin{verbatim} + \newcommand*{\chaptermarkformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} + \newcommand*{\subsectionmarkformat}{% + \thesubsection\autodot\enskip} +\end{verbatim} +\begin{Example} + Suppose you want to combine the chapter number in the header with the word + ``Chapter''. For example you could insert in the preamble of your + document the following definition: + \begin{small} +\begin{verbatim} + \renewcommand*{\chaptermarkformat}{% + \chapapp~\thechapter\autodot\enskip} +\end{verbatim} + \end{small} +\end{Example} +As you can see both the commands \Macro{chapappifchapterprefix} and +\Macro{chapapp} explained above are used. +% +\EndIndex{Cmd}{chaptermark}% +\EndIndex{Cmd}{sectionmark}% +\EndIndex{Cmd}{subsectionmark}% +\EndIndex{Cmd}{chaptermarkformat}% +\EndIndex{Cmd}{sectionmarkformat}% +\EndIndex{Cmd}{subsectionmarkformat}% + + +\begin{Declaration} + \Counter{secnumdepth} +\end{Declaration}% +\BeginIndex{Counter}{secnumdepth}\BeginIndex{}{numbering}% +As default in the classes \Class{scrbook}\IndexClass{scrbook} and +\Class{scrreprt}\IndexClass{scrreprt} the section levels from +\Macro{part}\IndexCmd{part}\IndexCmd{chapter}\IndexCmd{section} down +to \Macro{subsection}\IndexCmd{subsection} and in the class +\Class{scrartcl}\IndexClass{scrartcl} the levels from \Macro{part} +down to \Macro{subsubsection}\IndexCmd{subsubsection} are numbered. +This is controlled by the \LaTeX\ counter \Counter{secnumdepth}. The +value \(-1\) represents \Macro{part}, \(0\) the level \Macro{chapter} +and so on. Since in \Class{scrartcl} there is no \Macro{chapter} the +counting in this class starts with \(0\) at the level \Macro{part}. By +way of defining, decrementing or incrementing this counter you can +determine down to which level the headings are numbered. The same +applies in the standard classes. Please refer also to the explanations +concerning the counter \Counter{tocdepth} in +\autoref{sec:maincls.toc}. +% +\EndIndex{Counter}{secnumdepth}\EndIndex{}{numbering} + + +\begin{Declaration} + \Macro{setpartpreamble}% + \OParameter{position}\OParameter{width}\Parameter{preamble}\\ + \Macro{setchapterpreamble}% + \OParameter{position}\OParameter{width}\Parameter{preamble} +\end{Declaration}% +\BeginIndex{Cmd}{setpartpreamble}% +\BeginIndex{Cmd}{setchapterpreamble}% +Parts\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} and chapters in +{\KOMAScript} can be started with a \PName{preamble}. This is +particularily useful when you are using a two column layout with the +class option \Option{twocolumn}\IndexOption{twocolumn}. Together with +the heading the \PName{preamble} is always set in a one column layout. +The \PName{preamble} can comprise more than one paragraph. The command +for issuing the \PName{preamble} has to be put in front of the +respective \Macro{part}, \Macro{addpart}, \Macro{chapter} or +\Macro{addchap} command. +\begin{Example} + You are writing a report on the situation of a company. You organize + the report in such a way that every department gets its own partial report. + Every one of these parts should be introduced by a short abstract on the + title page. You could write the following: + \begin{small} +\begin{verbatim} + \setpartpreamble{% + \begin{abstract} + This is a blind text. This text should show, how a + printed text will look like at this place. If you + read this text, you will get no information. + \end{abstract} + } + \part{Department for Word Processing} +\end{verbatim} + \end{small} + Depending on the settings for the heading\Index{heading} (see + \autoref{sec:maincls.fontOptions}) size and the \Environment{abstract} + environment\IndexEnv{abstract} (see + \autoref{sec:maincls.formattingOptions}), the result would look similar + to: + \begin{ShowOutput}\centering + {\LARGE\usekomafont{sectioning} Part III.\par\vspace{20pt}} + {\LARGE\usekomafont{sectioning} Department for Word Processing\strut\par} + \begin{quote}\small + \vspace{3ex} + \begin{center} + \usekomafont{sectioning}\abstractname + \end{center} + \vspace{2ex} This is a blind text. This text should show, how a + printed text will look like at this place. If you read this text, + you will get no information. + \end{quote} + \end{ShowOutput} +\end{Example} +Please note that it is \emph{you} who is responsible for the spaces +between the heading, preamble and the following text. Please note also +that there is no \Environment{abstract} environment in the class +\Class{scrbook} (see \autoref{sec:maincls.titles}). + +The\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} first +optional argument \PName{position} determines the position at which +the preamble is placed with the help of one or two letters. For the +vertical placement there are two possibilities at present: +\begin{description} +\item [\quad\texttt{o}:] above the heading +\item [\quad\texttt{u}:] below the heading +\end{description} +You can insert a preamble both above and below a heading. For the +horizontal placement you have the choice between three alignments: +\begin{description} +\item [\quad\texttt{l}:] left-aligned +\item [\quad\texttt{r}:] right-aligned +\item [\quad\texttt{c}:] centered +\end{description} +However, this does not issue the text of the \PName{preamble} but +inserts a box whose width is determined by the second optional +argument \PName{width}. If you leave out this second argument the +whole text width is used. In this case the option for horizontal +positioning will have no effect. You can combine one letter from the +vertical with one letter from the horizontal positioning. +% +\EndIndex{Cmd}{setpartpreamble}% +\EndIndex{Cmd}{setchapterpreamble}% + + +\begin{Declaration} + \Macro{dictum}\OParameter{author}\Parameter{dictum}\\ + \Macro{dictumwidth}\\ + \Macro{dictumauthorformat}\Parameter{author}\\ + \Macro{raggeddictum}\\ + \Macro{raggeddictumtext}\\ + \Macro{raggeddictumauthor} +\end{Declaration}% +\BeginIndex{Cmd}{dictum}% +\BeginIndex{Cmd}{dictumwidth}% +\BeginIndex{Cmd}{dictumauthorformat}% +\BeginIndex{Cmd}{raggeddictum}% +\BeginIndex{Cmd}{raggeddictumtext}% +\BeginIndex{Cmd}{raggeddictumauthor}% +Apart\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +\ChangedAt{v2.8q}{\Class{scrbook}\and\Class{scrreprt}} from an +introducing paragraph you can use \Macro{setpartpreamble} or +\Macro{setchapterpreamble} for a kind of +\PName{aphorism}\Index{aphorism} (also known as ``dictum'') at the +beginning of a chapter or section. The command \Macro{dictum} inserts +such an aphorism. This macro can be used as obligatory argument of +either the command \Macro{setchapterpreamble} or +\Macro{setpartpreamble}. However, this is not obligatory. + +The dictum together with an optional \PName{author} is inserted in a +\Macro{parbox}\IndexCmd{parbox} (see \cite{latex:usrguide}) of the +width \Macro{dictumwidth}. Yet \Macro{dictumwidth} is not a length +which is set with \Macro{setlength}. It is a macro that can be +redefined using \Macro{renewcommand}. Default setting is +\verb;0.3333\textwidth;, which is a third of the textwidth. The box +itself is positioned with the command \Macro{raggeddictum}. Default +here is \Macro{raggedleft}\IndexCmd{raggedleft}. The command +\Macro{raggeddictum} can be redefined using \Macro{renewcommand}. + +Within the box the \PName{dictum} is set using +\Macro{raggeddictumtext}. Default setting is +\Macro{raggedright}\IndexCmd{raggedright}. Similar to +\Macro{raggeddictum} it can be redefined with \Macro{renewcommand}. +The output uses the default font which is set for the element +\FontElement{dictumtext}. It can be changed with the commands from +\autoref{sec:maincls.font}. Default settings are listed in +\autoref{tab:maincls.dictumfont}. + +If there is an \PName{author} it is separated from the \PName{dictum} +by a line with the width of the \Macro{parbox}. This is defined by the +macro \Macro{raggeddictumauthor}. Default is \Macro{raggedleft}. This +command can also be redefined using \Macro{renewcommand}. The format +of the output is defined with \Macro{dictumauthorformat}. This macro +expects the \Macro{author} as argument. As default +\Macro{dictumauthorformat} is defined as: +\begin{small} +\begin{verbatim} + \newcommand*{\dictumauthorformat}[1]{(#1)} +\end{verbatim} +\end{small} +Thus the \PName{author} is set in in round parenthesis. For the +element \FontElement{dictumauthor} a different font as for the element +\FontElement{dictumtext} can be defined. Default settings are listed +in \autoref{tab:maincls.dictumfont}. Changes can be made using the +commands from \autoref{sec:maincls.font}. +% +\begin{table} + \centering% + \begin{tabular}{ll} + Element & Default \\\hline\\[-1.6ex] + \FontElement{dictumtext} & + \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ + \FontElement{dictumauthor} & + \Macro{itshape}\\ + \end{tabular} + \caption{Default settings for the elements of a dictum} + \label{tab:maincls.dictumfont} +\end{table} +% +If \Macro{dictum} is used within the macro \Macro{setchapterpreamble} +or \Macro{setpartpreamble} you have to take care of the following: The +horizontal positioning is always done with \Macro{raggeddictum}. +Therefore, the optional argument for horizontal positioning, which is +implemented for these two commands, has no effect. \Macro{textwidth} +is not the width of the whole text corpus but the actually used text +width. If \Macro{dictumwidth} is set to \verb;.5\textwidth; and +\Macro{setchapterpreamble} has an optional width of +\verb;.5\textwidth; too, you will get a box with a width of a quarter +of the text width. Therefore, if you use \Macro{dictum} it is +recommended to refrain from setting the optional width for +\Macro{setchapterpreamble} or \Macro{setpartpreamble}. + +If you have more than one dictum you should separate them by an +additional vertical space. You could easely use the command +\Macro{bigskip}\IndexCmd{bigskip} for that. + +\begin{Example} + You are writing a chapter on an aspect of weather forecasting. You + have come across an aphorism which you would like to place at the + beginning of the chapter beneath the heading. You could write: + \begin{small} +\begin{verbatim} + \setchapterpreamble[u]{% + \dictum[Anonymous]{Forecasting is the art of saying + what is going to happen and then to explain + why it didn't.}} + \chapter{Weather forecasting} +\end{verbatim} + \end{small} + The output would look as follows: + \begin{ShowOutput} + {\usekomafont{sectioning}\usekomafont{chapter}% + 17\enskip Weather forecasting\par} \vspace{\baselineskip} + \dictum[Anonymous]{Forecasting is the art of saying what is going to + happen and then to explain why it didn't.} + \end{ShowOutput} + + If you would rather prefer the dictum to span over only a quarter of + the text width you can redefine \Macro{dictumwidth}: + \begin{small} +\begin{verbatim} + \renewcommand*{\dictumwidth}{.25\textwidth} +\end{verbatim} + \end{small} +\end{Example} + +For a somewhat more sophisticated formatting of left- or right-aligned +paragraphs including hyphenation you can use the +package~\Package{ragged2e}~\cite{package:ragged2e}. +\EndIndex{Cmd}{dictum}% +\EndIndex{Cmd}{dictumwidth}% +\EndIndex{Cmd}{dictumauthorformat}% +\EndIndex{Cmd}{raggeddictum}% +\EndIndex{Cmd}{raggeddictumtext}% +\EndIndex{Cmd}{raggeddictumauthor}% + + +\subsection{Footnotes} +\label{sec:maincls.footnotes} + +Footnotes are not limited to the main part of the document. Since +footnotes\Index{footnotes} are mainly used in the main text they are +being covered in this section. + +\begin{Declaration} + \Macro{footnote}\OParameter{number}\Parameter{text}\\ + \Macro{footnotemark}\OParameter{number}\\ + \Macro{footnotetext}\OParameter{number}\Parameter{text} +\end{Declaration}% +\BeginIndex{Cmd}{footnote}% +\BeginIndex{Cmd}{footnotemark}% +\BeginIndex{Cmd}{footnotetext}% +Similar to the standard classes footnotes in {\KOMAScript} are +produced with the \Macro{footnote} command. +An alternative is the usage in pairs of the commands +\Macro{footnotemark} and \Macro{footnotetext}. +As in the standard classes it is possible that a page break occurs +within a footnote. Normally this happens if the footnote mark is +placed near the bottom of a page thus leaving \LaTeX\ no choice as to +break the page at this point. +% +\EndIndex{Cmd}{footnote}% +\EndIndex{Cmd}{footnotemark}% +\EndIndex{Cmd}{footnotetext}% + + +\begin{Declaration} + \Macro{deffootnote}\OParameter{mark width}% + \Parameter{indent}% + \Parameter{parindent}\Parameter{definition}\\ + \Macro{deffootnotemark}\Parameter{definition}\\ + \Macro{thefootnotemark}\\ + \Macro{textsuperscript}\Parameter{text} +\end{Declaration}% +\BeginIndex{Cmd}{deffootnote}% +\BeginIndex{Cmd}{deffootnotemark}% +\BeginIndex{Cmd}{thefootnotemark}% +\BeginIndex{Cmd}{textsuperscript}% +Formatting footnotes in {\KOMAScript} is slightly different to the +standard classes. As in the standard classes the footnote mark in the +text is formed as a small number in superscript. The same formatting +is used in the footnote itself. + +The mark in the footnote is type-set right-aligned in a box +with width \PName{mark width}. The first line of the footnote +follows directly. + +All following lines will be indented by the length of +\PName{indent}. If the optional parameter \PName{mark width} +was not specified, then it defaults to \PName{indent}. +If the footnote consists of more than one paragraph, then the +first line of a paragraph is indented in addition to \PName{indent} +by the value of \PName{parindent}. +\begin{figure} +\centering\setlength{\unitlength}{1mm} +\begin{picture}(100,22) + \thinlines + % frame of following paragraph + \put(5,0){\line(1,0){90}} + \put(5,0){\line(0,1){5}} + \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}} + \put(95,0){\line(0,1){10}} + \put(10,10){\line(1,0){85}} + % frame of first paragraph + \put(5,11){\line(1,0){90}} + \put(5,11){\line(0,1){5}} + \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}} + \put(95,11){\line(0,1){10}} + \put(15,21){\line(1,0){80}} + % box of the footnote mark + \put(0,16.5){\framebox(14.5,4.5){\mbox{}}} + % description of paragraphs + \put(45,16){\makebox(0,0)[l]{\textsf{first paragraph of a footnote}}} + \put(45,5){\makebox(0,0)[l]{\textsf{next paragraph of a footnote}}} + % help lines + \thicklines + \multiput(0,0)(0,3){7}{\line(0,1){2}} + \multiput(5,0)(0,3){3}{\line(0,1){2}} + % parameters + \put(2,7){\vector(1,0){3}} + \put(5,7){\line(1,0){5}} + \put(15,7){\vector(-1,0){5}} + \put(15,7){\makebox(0,0)[l]{\small\PName{parindent}}} + % + \put(-3,13){\vector(1,0){3}} + \put(0,13){\line(1,0){5}} + \put(10,13){\vector(-1,0){5}} + \put(10,13){\makebox(0,0)[l]{\small\PName{indent}}} + % + \put(-3,19){\vector(1,0){3}} + \put(0,19){\line(1,0){14.5}} + \put(19.5,19){\vector(-1,0){5}} + \put(19.5,19){\makebox(0,0)[l]{\small\PName{mark width}}} +\end{picture} +\caption{Parameters that control the footnote layout} +\label{fig:maincls.deffootnote} +\end{figure} + +Figure \ref{fig:maincls.deffootnote} illustrates the layout parameters +ones more. The default configuration of \KOMAScript{} is: +\begin{verbatim} + \deffootnote[1em]{1.5em}{1em} + {\textsuperscript{\thefootnotemark}} +\end{verbatim} +\Macro{textsuperscript} causes both the superscript and the smaller +font size. \Macro{thefootnotemark} is the current footnote mark +without any formatting. + +The\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} font element +\FontElement{footnote}\IndexFontElement{footnote} determines the font +of the footnote including the footnote mark. Using the element +\FontElement{footnotelabel}\IndexFontElement{footnotelabel} the font +of the footnote mark can be changed separately with the commands +mentioned in \autoref{sec:maincls.font} Please refer also to the +\autoref{tab:maincls.elementsWithoutText}. Default setting is no +changing of the font. + +The footnote mark in the text is defined separately with +\Macro{deffootnotemark}. Default setting is: +\begin{verbatim} + \deffootnotemark{% + \textsuperscript{\thefootnotemark}} +\end{verbatim} +Above\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} the font +for the element +\FontElement{footnotereference}\IndexFontElement{footnotereference} is +applied (see \autoref{tab:maincls.elementsWithoutText}). Thus the +footnote marks in the text and the footnote itself are identical. The +font can be changed with the commands described in +\autoref{sec:maincls.font}. + +\begin{Example} + A feature often asked for are footnote marks which are neither in + superscript nor in a smaller font size. They should not touch the + footnote text but have a small space in between. This can be + accomplished as follows: + \begin{small} +\begin{verbatim} + \deffootnote{1.5em}{1em}{\thefootnotemark\ } +\end{verbatim} + \end{small} + The footnote mark and the space is set right-aligned into a + box of the width 1\Unit{em}. The following lines of the footnote + text is also indented by 1\Unit{em} from the left margin. + + Another often requested footnote layout are left-aligned + footnote marks. These can be reached with: + \begin{small} +\begin{verbatim} + \deffootnote{1.5em}{1em}{% + \makebox[1.5em][l]{\thefootnotemark}} +\end{verbatim} + \end{small} + + If you want however change the font for all footnotes, for example + to sans serif, you can simply solve this problem using the commands + from \autoref{sec:maincls.fontOptions}: + \begin{small} +\begin{verbatim} + \setkomafont{footnote}{\sffamily} +\end{verbatim} + \end{small} +\end{Example} +As demonstrated with the examples above the simple user interface of +{\KOMAScript} provides a great variety of different footnote +formattings. +% +\EndIndex{Cmd}{deffootnote}% +\EndIndex{Cmd}{deffootnotemark}% +\EndIndex{Cmd}{thefootnotemark}% +\EndIndex{Cmd}{textsuperscript}% + + +\subsection{Lists} +\label{sec:maincls.lists} \BeginIndex[indexother]{}{lists} + +Both {\LaTeX} and the standard classes offer different environments +for lists. Though slightly changed or extended all these list are of +course offered in {\KOMAScript} as well. In general all lists -- even +of different kind -- can be nested up to four levels. From a +typographical view, anything more would make no sense. Even more than +three levels are hard to perceive. Recommendation in these cases is to +split your huge list in several small ones. + +\begin{Declaration} + \Environment{itemize}\\ + \Macro{item}\\ + \Macro{labelitemi}\\ + \Macro{labelitemii}\\ + \Macro{labelitemiii}\\ + \Macro{labelitemiv} +\end{Declaration}% +\BeginIndex{Env}{itemize}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{labelitemi}% +\BeginIndex{Cmd}{labelitemii}% +\BeginIndex{Cmd}{labelitemiii}% +\BeginIndex{Cmd}{labelitemiv}% +The most simple form of a list is an \Environment{itemize} list. +Depending on the level {\KOMAScript} uses the following marks: +"`{\labelitemi}"', "`{\labelitemii}"', "`{\labelitemiii}"' and +"`{\labelitemiv}"'. The definition of these symbols is specified in +the macros \Macro{labelitemi}, \Macro{labelitemii}, +\Macro{labelitemiii} and \Macro{labelitemiv}. All of this macros can +be redefined using \Macro{renewcommand}. Every item is introduced with +\Macro{item}. +\begin{Example} + You have a simple list which is nested in several levels. You write + for example: + \begin{small} +\begin{verbatim} + \minisec{Vehicles} + \begin{itemize} + \item aeroplans + \begin{itemize} + \item biplane + \item jets + \item transport planes + \begin{itemize} + \item single-engined + \begin{itemize} + \item{jet-driven} + \item{propeller-driven} + \end{itemize} + \item multi-engined + \end{itemize} + \item helicopter + \end{itemize} + \item automobiles + \begin{itemize} + \item racing car + \item private car + \item lorry + \end{itemize} + \item bicycles + \end{itemize} +\end{verbatim} + \end{small} + As output you get: + \begin{ShowOutput}[\baselineskip] + \minisec{Vehicles} + \begin{itemize} + \item aeroplans + \begin{itemize} + \item biplane + \item jets + \item transport planes + \begin{itemize} + \item single-engined + \begin{itemize} + \item{jet-driven} + \item{propeller-driven} + \end{itemize} + \item multi-engined + \end{itemize} + \item helicopter + \end{itemize} + \item automobiles + \begin{itemize} + \item racing car + \item private car + \item lorry + \end{itemize} + \item bicycles + \end{itemize} + \end{ShowOutput} +\end{Example} +% +\EndIndex{Env}{itemize}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{labelitemi}% +\EndIndex{Cmd}{labelitemii}% +\EndIndex{Cmd}{labelitemiii}% +\EndIndex{Cmd}{labelitemiv}% + + +\begin{Declaration} + \Environment{enumerate}\\ + \Macro{item}\\ + \Macro{theenumi}\\ + \Macro{theenumii}\\ + \Macro{theenumiii}\\ + \Macro{theenumiv}\\ + \Macro{labelenumi}\\ + \Macro{labelenumii}\\ + \Macro{labelenumiii}\\ + \Macro{labelenumiv} +\end{Declaration}% +\BeginIndex{Env}{enumerate}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{theenumi}% +\BeginIndex{Cmd}{theenumii}% +\BeginIndex{Cmd}{theenumiii}% +\BeginIndex{Cmd}{theenumiv}% +\BeginIndex{Cmd}{labelenumi}% +\BeginIndex{Cmd}{labelenumii}% +\BeginIndex{Cmd}{labelenumiii}% +\BeginIndex{Cmd}{labelenumiv}% +Another form of a list often used is a numbered list which is already +implemented by the {\LaTeX} kernel. Depending on the level the +numbering\Index{numbering} uses the following characters: arabic +numbers, small letters, small roman numerals and capital letters. The +kind of numbering is defined with the macros \Macro{theenumi} down to +\Macro{theenumiv}. The output format is determined by the macros +\Macro{labelenumi} to \Macro{labelenumiv}. While the small letter of +the second level is followed by a round parenthesis, the values of all +other levels are followed by a dot. Every item is introduced with +\Macro{item}. +\begin{Example} + Replacing every occurence of an \Environment{itemize} environment + with an \Environment{enumerate} environment in the example above we + get the following result: + \begin{ShowOutput}[\baselineskip] + \minisec{Vehicles} + \begin{enumerate} + \item aeroplans + \begin{enumerate} + \item biplane + \item jets + \item transport planes + \begin{enumerate} + \item single-engined + \begin{enumerate} + \item{jet-driven}\label{xmp:maincls.jets} + \item{propeller-driven} + \end{enumerate} + \item multi-engined + \end{enumerate} + \item helicopter + \end{enumerate} + \item automobiles + \begin{enumerate} + \item racing car + \item private car + \item lorry + \end{enumerate} + \item bicycles + \end{enumerate} + \end{ShowOutput} + Using \Macro{label} within a list you can set labels which are + referenced with \Macro{ref}. In the example above a label + was set after the jet-driven, single-engined transport plane with + \Macro{label}\PParameter{xmp:jets}. The \Macro{ref} value is then + \ref{xmp:maincls.jets}. +\end{Example} +% +\EndIndex{Env}{enumerate}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{theenumi}% +\EndIndex{Cmd}{theenumii}% +\EndIndex{Cmd}{theenumiii}% +\EndIndex{Cmd}{theenumiv}% +\EndIndex{Cmd}{labelenumi}% +\EndIndex{Cmd}{labelenumii}% +\EndIndex{Cmd}{labelenumiii}% +\EndIndex{Cmd}{labelenumiv}% + + +\begin{Declaration} + \Environment{description}\\ + \Macro{item}\OParameter{item} +\end{Declaration}% +\BeginIndex{Env}{description}% +\BeginIndex{Cmd}{item}% +Another list form is the description list. Its main use is the +description of several items. The item itself is an optional parameter +in \Macro{item}. The font\Index{font}\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% +, which is responsible for emphasizing the item can be changed with +the commands for the element +\FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} (see +\autoref{tab:maincls.elementsWithoutText}) described in +\autoref{sec:maincls.font}. Default setting is +\Macro{sffamily}\Macro{bfseries}. +\begin{Example} + Instead of items in sans serif and bold you want them printed in the + standard font in bold. Using + \begin{small} +\begin{verbatim} + \setkomafont{descriptionlabel}{\normalfont\bfseries} +\end{verbatim} + \end{small} + you redefine the font accordingly. + + An example for a description list is the output of the page styles + listed in \autoref{sec:maincls.pageStyle}. The heavily + abbreviated source code is: + \begin{small} +\begin{verbatim} + \begin{description} + \item[empty] is the page style without + any header or footer + \item[plain] is the page style without running headline. + \item[headings] is the page style with running headline. + \item[myheadings] is the page style for manual headline. + \end{description} +\end{verbatim} + \end{small} + This abbreviated version gives: + \begin{ShowOutput} + \begin{description} + \item[empty] is the page style without any header or footer + \item[plain] is the page style without running headline. + \item[headings] is the page style with running headline. + \item[myheadings] is the page style for manual headline. + \end{description} + \end{ShowOutput} +\end{Example} +% +\EndIndex{Env}{description}% +\EndIndex{Cmd}{item}% + + +\begin{Declaration} + \Environment{labeling}\OParameter{delimiter}\Parameter{widest pattern}\\ + \Macro{item}\OParameter{key word} +\end{Declaration}% +\BeginIndex{Env}{labeling}% +\BeginIndex{Cmd}{item}% +An additional form of a description list in {\KOMAScript} is the +\Environment{labeling} environment. In difference to the +\Environment{description} environment you can provide a pattern, which +determines the indentation of all items. Furthermore you can put an +optional \PName{delimiter} between item and description. +\begin{Example} + Slightly changing the example from the \Environment{description} + environment we could write: + \begin{small} +\begin{verbatim} + \begin{labeling}[~--]{% + \usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Page style without header and footer + \item[\usekomafont{descriptionlabel}plain] + Page style for chapter beginnings without headline + \item[\usekomafont{descriptionlabel}headings] + Page style for running headline + \item[\usekomafont{descriptionlabel}myheadings] + Page style for manual headline + \end{labeling} +\end{verbatim} + \end{small} + As result we get: + \begin{ShowOutput} + \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Page style without header and footer + \item[\usekomafont{descriptionlabel}plain] + Page style for chapter beginnings without headline + \item[\usekomafont{descriptionlabel}headings] + Page style for running headline + \item[\usekomafont{descriptionlabel}myheadings] + Page style for manual headline + \end{labeling} + \end{ShowOutput} + As can be seen in this example a font changing command has to be + repeated both in the pattern and in the optional parameter in every + \Macro{item} command in this environment. +\end{Example} +Originally this environment was implemented for things like ``Given +is\dots, Asked is\dots, Solution'' that are often used in hand-outs. +By now this environment has found many different applications. For +example the environment for examples in this guide was defined with +the \Environment{labeling} environment. +% +\EndIndex{Env}{labeling}% +\EndIndex{Cmd}{item}% + + +\begin{Declaration} + \Environment{verse} +\end{Declaration}% +\BeginIndex{Env}{verse}% +Normally the \Environment{verse} environment isn't perceived as a list +environment because you don't work with \Macro{item} commands. Instead +fixed line breaks are used like within the \Environment{flushleft} +environment. Yet internally in both the standard classes as well +as {\KOMAScript} it is a list environment. + +In general the \Environment{verse} environment is used for +poems\Index{poems}. Lines are indented both left and right. Single +verses are ended by a fixed line break \verb|\\|. Verses are set as a +paragraph, thus separated by an empty line. Often also +\Macro{medskip}\IndexCmd{medskip} or \Macro{bigskip}\IndexCmd{bigskip} +is used instead. To avoid a page break at the end of a line you insert +\verb|\\*| instead of \verb|\\|. +\begin{Example} + As example the first lines of ``Little Red Riding Hood and the + Wolf'' by Roald Dahl: + \begin{small} +\begin{verbatim} + \begin{verse} + As soon as Wolf began to feel\\* + that he would like a decent meal,\\* + He went and knocked on Grandma's door.\\* + When Grandma opened it, she saw\\* + The sharp white teeth, the horrid grin,\\* + And Wolfie said, 'May I come in?' + \end{verse} +\end{verbatim} + \end{small} + The result would like as follows: + \begin{ShowOutput} + \begin{verse} + As soon as Wolf began to feel\\* + That he would like a decent meal,\\* + He went and knocked on Grandma's door.\\* + When Grandma opened it, she saw\\* + The sharp white teeth, the horrid grin,\\* + And Wolfie said, 'May I come in?' + \end{verse} + \end{ShowOutput} + Yet if you have very long lines \verb|\\*| can not prevent a page + break within a verse. That would be possible here for example: + \begin{ShowOutput} + \begin{verse} + Both the philosoph and the house-owner have always + something to repair\\ + \bigskip + Don't trust a men, my son, who tells you that he has never lain. + \end{verse} + \end{ShowOutput} + + These two verses were separated by a \Macro{bigskip}. +\end{Example} +% +\EndIndex{Env}{verse}% + + +\begin{Declaration} + \Environment{quote}\\ + \Environment{quotation} +\end{Declaration}% +\BeginIndex{Env}{quote}% +\BeginIndex{Env}{quotation}% +These two environments are also list environments and can be found +both in the standard and the {\KOMAScript} classes. Both environments +use justified text which is indented both on the left and right side. +Usually they are used to separate long citations\Index{citations} from +the main text. The difference between these two lies in the matter how +paragraphs are typeset. While \Environment{quote} paragraphs are +highlighted by vertical space, in \Environment{quotation} paragraphs +the first line is indented. This is also true for the first line of a +\Environment{quotation} environment. To get around this behaviour you +have to insert a \Macro{noindent} command\IndexCmd{noindent} in front. +\begin{Example} + You want to highlight a short anecdote. You write the following + \Environment{quotation} environment for this: + % + \begin{small} +\begin{verbatim} + A small example for a short anecdote: + \begin{quotation} + The old year was turning brown; the West Wind was + calling; + + Tom caught the beechen leaf in the forest falling. + ``I've caught the happy day blown me by the breezes! + Why wait till morrow-year? I'll take it when me pleases. + This I'll mend my boat and journey as it chances + west down the withy-stream, following my fancies!'' + + Little Bird sat on twig. ``Whillo, Tom! I heed you. + I've a guess, I've a guess where your fancies lead you. + Shall I go, shall I go, bring him word to meet you?'' + \end{quotation} +\end{verbatim} + \end{small} + The result is: + \begin{ShowOutput} + A small example for a short anecdote: + \begin{quotation} + The old year was turning brown; the West Wind was + calling; + + Tom caught the beechen leaf in the forest falling. + ``I've caught the happy day blown me by the breezes! + Why wait till morrow-year? I'll take it when me pleases. + This I'll mend my boat and journey as it chances + west down the withy-stream, following my fancies!'' + + Little Bird sat on twig. ``Whillo, Tom! I heed you. + I've a guess, I've a guess where your fancies lead you. + Shall I go, shall I go, bring him word to meet you?'' + \end{quotation} + \end{ShowOutput} + % + Using a \Environment{quote} environment instead you get: + % + \begin{ShowOutput} + A small example for a short anecdote: + \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} + The old year was turning brown; the West Wind was + calling; + + Tom caught the beechen leaf in the forest falling. + ``I've caught the happy day blown me by the breezes! + Why wait till morrow-year? I'll take it when me pleases. + This I'll mend my boat and journey as it chances + west down the withy-stream, following my fancies!'' + + Little Bird sat on twig. ``Whillo, Tom! I heed you. + I've a guess, I've a guess where your fancies lead you. + Shall I go, shall I go, bring him word to meet you?'' + \end{quote} + \end{ShowOutput} + % +\end{Example} +% +\EndIndex{Env}{quote}% +\EndIndex{Env}{quotation}% + + + +\begin{Declaration} + \Environment{addmargin}\OParameter{left indentation}\Parameter{indentation}\\ + \Environment{addmargin*}\OParameter{inner indentation}\Parameter{indentation} +\end{Declaration} +\BeginIndex{Env}{addmargin}% +Similar to \Environment{quote} and \Environment{quotation} the +\Environment{addmargin} environment changes the margin\Index{margin}. +Different to the first two environments using \Environment{addmargin} +the user can influence the width of the indentation. Furthermore this +environment doesn't change the indentation of the first line and the +vertical spacing between paragraphs. + +If only the obligatory argument \PName{indentation} is given, both the +left and right margin are expanded by this value. If the optional +argument \PName{indentation} is given the value \PName{left + indentation} is added to \PName{indentation} at the left margin. + +The starred \Environment{addmargin*} only differs from the normal +version in a twoside layout. In addition the difference only occurs if +the optional argument \PName{inner indentation} is used. In this case +this value is added to the normal inner indentation. Then the value of +\PName{indentation} determines the width of the opposite margin. + +Both versions of this environment take also negative values for all +parameters. This has the effect of expanding the environment into the +margin. +\begin{Example} + Suppose you write a documentation which includes short source code + examples. To highlight these you want them separated from the text + by a horizontal line and slightly spanning into the outer + margin. First you define the environment: + \begin{small} +\begin{verbatim} + \newenvironment{SourceCodeFrame}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } +\end{verbatim} + \end{small} + If you now put your source code in such an environment it will show + up as: + \begin{ShowOutput} + \newenvironment{SourceCodeFrame}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + You define yourself the following environment: + \begin{SourceCodeFrame} +\begin{verbatim} +\newenvironment{\SourceCodeFrame}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% +}{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% +} +\end{verbatim} + \end{SourceCodeFrame} + This may be feasible or not. In any way it shows the usage of this + environment. + \end{ShowOutput} + The optional argument of the \Environment{addmargin*} environment + makes sure that the inner margin is extended by 1\Unit{em}. In turn + the outer margin is decreased by 1\Unit{em}. The result is a shift + by 1\Unit{em} to the outside. Instead of \PValue{1em} you can use a + length of, for example, \PValue{2\Macro{parindent}} of course. +\end{Example} +There is one problem with the \Environment{addmargin*} which you +should be aware of. If a page break occurs within an +\Environment{addmargin*} environment the indentation on the following +page is on the wrong side. This means that suddenly the \PName{inner + indentation} is applied on the outside of the page. Therefore it is +recommended to prevent page breaks within this environment. This can +be achieved by using an additional \Macro{parbox} or, as in the +example above, a \Environment{minipage}. This makes use of the fact +that neither the argument of a \Macro{parbox} nor the content of a +\Environment{minipage} is broken at the end of a page. Unfortunately +this is not without disadvantages: In some cases pages can't be filled +correctly which has the effect of several warnings. + +By the way, whether a page is going to be on the left or right side of +the book can't be determined in the first \LaTeX\ compiling for sure. +For details please refer to the explanation for the command +\Macro{ifthispageodd}. +% +\EndIndex{Env}{addmargin}% + + +\begin{Explain} + One concluding note to the list environments: In the internet and + support it is often asked why such an environment is followed by a + indented\Index{indentation} paragraph. In fact this is the result of + demanding a new paragraph. In \LaTeX\ empty lines are interpreted as + a new paragraph. This is also the case before and after list + environments. Thus, if you want a list environment to be set within + a paragraph you have to omit empty lines before and after. To + separate this environment from the rest of your text nevertheless, + you can insert a comment line which only consists of a percent + character in the {\LaTeX} source. +\end{Explain} +\EndIndex[indexother]{}{lists} + +\subsection{Margin Notes} +\label{sec:maincls.marginNotes} + +\begin{Declaration} + \Macro{marginpar}\OParameter{margin note left}\Parameter{margin note}\\ + \Macro{marginline}\Parameter{margin note} +\end{Declaration}% +\BeginIndex{Cmd}{marginpar}% +\BeginIndex{Cmd}{marginline}% +Usually margin notes\Index[indexmain]{margin notes} in {\LaTeX} are +inserted with the command \Macro{marginpar}. They are placed in the +outer margin. In documents with oneside layout the right border is +used. Though \Macro{marginpar} optionally can take a different margin +note in case the output is on the left margin, margin notes are always +in justified layout. But many users prefer left- or right-aligned +margin notes instead. {\KOMAScript} offers the command +\Macro{marginline} for that. +\begin{Example} + At several places in this documentation you find the classes mentioned + written in the margin. This can be produced\footnote{In fact, instead + of \Macro{texttt}, a semantic highlighting was used. To avoid confusion + this was replaced in the example.} with: + \begin{small} +\begin{verbatim} + \marginline{\texttt{scrartcl}} +\end{verbatim} + \end{small} + + Instead of \Macro{marginline} you could have used \Macro{marginpar} + too. In fact the first command is implemented internally as: +\begin{verbatim} + \marginpar[\raggedleft\texttt{scrartcl}] + {\raggedright\texttt{scrartcl}} +\end{verbatim} + Eventually \Macro{marginline} is only an abbreviating writing of the + code above. +\end{Example} +% +\begin{Explain} + Unfortunately \Macro{marginpar} doesn't always work correctly in the + twoside\Index{twoside} layout. Whether a margin note is going to show + up on the left or right is already decided while evaluating the command + \Macro{marginpar}. If the output routine now shifts the margin note + onto the next page the alignment isn't correct anymore. This behaviour + is deeply founded within {\LaTeX} and was therefore declared a feature + by the \LaTeX3 team. \Macro{marginline} suffers from this ``feature'' + too.\par +\end{Explain} +% +\EndIndex{Cmd}{marginpar}% +\EndIndex{Cmd}{marginline}% + + +\subsection{Tables and Figures} +\label{sec:maincls.floats} + +\begin{Explain} + With the floating environments {\LaTeX} offers a very capable and + comfortable mechanism for automatic placement of + figures\Index{figures} and tables\Index{tables}. But often these + floating environments\Index[indexmain] {floating environments} are + slightly misunderstood by beginners. They often ask for a fixed + position of a table or figure within the text. As these floating + environments are being referenced in the text this is not necessary + in most cases. It is not sensible too because such an object can + only be set on the page if there is enough space left. If this is + not the case the object would have to be shifted onto the next page + leaving a huge space on the page before. + + Often in many documents the same optional argument for positioning + an object is found with every floating object. This also makes no + sense. In such cases you should change the standard parameters + globally. For more details refer to \cite{DANTE:FAQ}.\par +\end{Explain} + +One last important note before starting this section: The most +mechanisms described here which extend the capabilities of the +standard classes do not work correctly when used together with +packages which interfere with the typesetting of captions of figures +and tables. This should be without saying but is often neglected. + +\begin{Declaration} + \Macro{caption}\OParameter{entry}\Parameter{title}\\ + \Macro{captionbelow}\OParameter{entry}\Parameter{title}\\ + \Macro{captionabove}\OParameter{entry}\Parameter{title} +\end{Declaration}% +\BeginIndex{Cmd}{caption}% +\BeginIndex{Cmd}{captionabove}% +\BeginIndex{Cmd}{captionbelow}% +In the standard classes captions of tables and figures are inserted +with the \Macro{caption} command below the table or figure. In general +this is correct with figures. Opinions differ as to whether captions +of tables are to be placed above or together with captions of +figures\Index{captions of figures} below the table\Index{captions of + tables}. That's the reason why \KOMAScript{}, unlike the standard +classes, offers \Macro{captionbelow} for captions below and +\Macro{captionabove} for captions above tables or figures. Using +\Macro{caption} together with figures always produces captions below +the figure whereas the behaviour of \Macro{captionbelow} can be +modified using the options +\Option{tablecaptionabove}\IndexOption{tablecaptionabove} and +\Option{tablecaptionbelow}\IndexOption{tablecaptionbelow} (see +\autoref{sec:maincls.formattingOptions}). For compatibility +reasons the default behaviour of \Macro{caption} together with tables +is similar to \Macro{captionbelow}. +% +\begin{Example} + Instead of using captions below the table you want to place your + captions above it\Index{table caption}, because you have tables + which span over more then one page. In the standard classes you + could only write: + \begin{small} +\begin{verbatim} + \begin{table} + \caption{This is an example table} + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} + \end{table} +\end{verbatim} + \end{small} + Then you would get the unsatisfying result: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + This is an example table.}\\ + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} +\end{ShowOutput} + Using \KOMAScript{} you write instead: + \begin{small} +\begin{verbatim} + \begin{table} + \captionabove{This is just an example table} + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} + \end{table} +\end{verbatim} + \end{small} + Then you get: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + This is just an example table}\\\vskip\abovecaptionskip + \begin{tabular}{llll} + This & is & an & example.\\\hline + This & is & an & example.\\ + This & is & an & example. + \end{tabular} + \end{ShowOutput} + + Since you want all your tables typeset with captions above you could + of course use the option \Option{tablecaptionabove} instead (see + \autoref{sec:maincls.formattingOptions}). Then you can use + \Macro{caption} as you would in the standard classes. You will get + the same result as with \Macro{captionabove}. +\end{Example} + +\begin{Explain} + Some would argue that you could achieve the same result using the + \Macro{topcaption} from the \Package{topcapt} + package\IndexPackage{topcapt} (see \cite{package:topcapt}). But that + is not the case. The command \Macro{topcaption} is neglected by + packages which directly redefine the \Macro{caption} macro. The + \Package{hyperref} package (see \cite{package:hyperref}) is one example + for this. In \KOMAScript{} \Macro{captionabove} and + \Macro{captionbelow} are implemented so, that the changes have an + effect on both of these commands. + + If the \Package{longtable} package\IndexPackage{longtable} is used + \KOMAScript{} makes sure that captions above tables which are placed + within a \Environment{longtable} environment have the same + appearance as in a normal \Environment{table} environment. This also + means that you can apply the same settings as in a + \Environment{table} environment. Please note that in the + \Package{longtable} package the maximum width of a table caption can + be limited and the default is set to 4\Unit{in} (see + \cite{package:longtable}). Using \KOMAScript{} this mechanism in + \Package{longtable} only works when the class option + \Option{origlongtable} is set (see + \autoref{sec:maincls.formattingOptions}). If + \Package{caption2}\IndexPackage{caption2} (see + \cite{package:caption2}) is loaded, table captions are handled by + this package. + + Please note that \Macro{captionabove} and \Macro{captionbelow} if placed + within a \Environment{float} environment which was defined using the + \Package{float}\IndexPackage{float} package have the same behaviour as + described in \cite{package:float} for the \Macro{caption} command. In this + case, only the float style determines whether it is a caption below or above + the figure or table. +\end{Explain} + + +\begin{Declaration} + \Environment{captionbeside}\OParameter{entry}% + \Parameter{title}\OParameter{placement}\OParameter{width}% + \OParameter{offset}\\% + \Environment{captionbeside}\OParameter{entry}% + \Parameter{title}\OParameter{placement}\OParameter{width}% + \OParameter{offset}\PValue{*} +\end{Declaration} +\BeginIndex{Env}{captionbeside}% +Apart\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} from +captions above and below the figure you often find captions, in +particular with small figures, which are placed beside the figure. In +general in this case both the baseline of the figure and the caption +are aligned at the bottom. With some fiddling and the use of two +\Macro{parbox} commands this could be achieved in the standard +classes. But \KOMAScript{} offers a special environment for this +problem. This environment can be used within the floating environment. +The first optional parameter \PName{entry} and the obligatory +parameter \PName{title} are similar to the parameters of +\Macro{caption}, \Macro{captionabove} or \Macro{captionbelow}. The +\PName{title} is placed beside the content of the environment in this +case. + +Whether the \PName{title} is placed left or right can be determined by +the parameter \PName{placement}. One of the following letters is +accepted: +\begin{quote} +\begin{labeling}[--~]{\PValue[o]} +\item[\PValue{l}] left +\item[\PValue{r}] right +\item[\PValue{i}] inner margin in twoside layout +\item[\PValue{o}] outer margin in twoside layout +\end{labeling} +\end{quote} +Default setting is at the right side of the content of the +environment. If either \PValue{o} or \PValue{i} are used you have to +run {\LaTeX} twice to get the correct placement. + +As default the content of the environment and the \PName{title} fill +the whole available text width. However, using the optional parameter +\PName{width} it is possible to adjust the used width. This width +could even be more than the current text width. + +When supplying a \PName{width} the used width is centered with respect +to the text width. Using the optional parameter \PName{offset} you can +shift the environment relative to the left margin. A positive value +corresponds to a shift to the right whereas a negative value +corresponds to a shift to the left. An \PName{offset} of 0\Unit{pt} +gives you a left-aligned output. + +Adding a star to the optional parameter \PName{offset} the value means +a shift relative to the right margin on left pages in double sided +layout. A positive value corresponds to a shift towards the outer +margin whereas a negative value corresponds to a shift towards the +inner margin. An \PName{offset} of 0\Unit{pt} means alignment with the +inner margin. As mentioned before, in some cases it takes two \LaTeX{} +runs for this to work correctly. + +\begin{Example} + An example for the usage of the \Environment{captionbeside} environment + can be found in \autoref{fig:maincls.captionbeside}. + This figure was typeset with: + \begin{small} +\begin{verbatim} + \begin{figure} + \begin{captionbeside}[Example for a figure description]% + {A figure description which is neither above nor + below, but beside the figure}[i][\linewidth][2em]* + \fbox{% + \parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbeside} + \end{figure} +\end{verbatim} + \end{small} + \begin{figure} + \begin{captionbeside}[Example for a figure description]% + {A figure description which is neither above nor + below, but beside the figure}[i][\linewidth][2em]* + \fbox{% + \parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbeside} + \end{figure} + Thus, the width is the current available width + \PValue{\Macro{linewidth}}. However, this width is shifted + \PValue{2em} to the outside. The title or the description is placed + inside beside the figure. Therefore, the figure itself is shifted + 2\Unit{em} into the margin. +\end{Example} +% +\EndIndex{Env}{captionbeside} + + +\BeginIndex[indexother]{}{font style} +The font style\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} for the +description and the label~-- ``Figure'' or ``Table'' followed by the +number and the delimiter -- can be changed with the commands mentioned +in \autoref{sec:maincls.font}. The respective elements for this +are \FontElement{caption}\IndexFontElement{caption} and +\FontElement{captionlabel}\IndexFontElement{captionlabel} (see +\autoref{tab:maincls.elementsWithoutText}). First the font style +for the element \FontElement{caption} is applied on the element +\FontElement{captionlabel} too. After this the font style of +\FontElement{captionlabel} is applied on the respective element. The +default settings are listed in \autoref{tab:maincls.captionFont}. +% +\begin{table} + \centering% + \begin{tabular}{ll} + element & default \\\hline\\[-1.75ex] + \FontElement{caption} & \Macro{normalfont} \\ + \FontElement{captionlabel} & \Macro{normalfont} + \end{tabular} + \caption{Font defaults for the elements of figure or table captions} + \label{tab:maincls.captionFont} +\end{table} +% +\begin{Example} + You want the table and figure descriptions typeset in a smaller font + size. Thus you could write the following in the preamble of your + document: + \begin{small} +\begin{verbatim} + \addtokomafont{caption}{\small} +\end{verbatim} + \end{small} + Furthermore, you would like the labels to be printed in sans serif and + bold. You add: + \begin{small} +\begin{verbatim} + \setkomafont{captionlabel}{\sffamily\bfseries} +\end{verbatim} + \end{small} + As you can see, simple extensions of the default definitions are + possible. +\end{Example} +\EndIndex[indexother]{}{font style} +% +\EndIndex{Cmd}{caption}% +\EndIndex{Cmd}{captionabove}% +\EndIndex{Cmd}{captionbelow}% + + +\begin{Explain} +\begin{Declaration} + \PValue{komaabove}\\ + \PValue{komabelow} +\end{Declaration}% +\BeginIndex{Floatstyle}{komaabove}% +\BeginIndex{Floatstyle}{komabelow}% +Using\OnlyAt{\Package{float}} the \Package{float}\IndexPackage{float} package +the appearance of the float environments is solely defined by the \emph{float} +style. This includes the fact whether captions above or below are used. In the +\Package{float} package there is no predefined style which gives you the same +output and offers the same setting options (see below) as \KOMAScript{}. +Therefore \KOMAScript{} defines the two additional styles \PValue{komaabove} +and \PValue{komabelow}. When using the \Package{float} package both these +styles can be activated as the styles \PValue{plain}\IndexFloatstyle{plain}, +\PValue{boxed}\IndexFloatstyle{boxed} or \PValue{ruled}\IndexFloatstyle{ruled} +in \Package{float} are defined. For details refer to \cite{package:float}. +The style \PValue{komaabove} inserts \Macro{caption}, \Macro{captionabove} and +\Macro{captionbelow} above whereas \PValue{komabelow} inserts them below the +float content. +% +\EndIndex{Floatstyle}{komaabove}% +\EndIndex{Floatstyle}{komabelow}% +\end{Explain} + + +\begin{Declaration} + \Macro{captionformat} +\end{Declaration}% +\BeginIndex{Cmd}{captionformat}% +In {\KOMAScript} there are different ways to change the formatting of +the description. The definition of different font styles was already +explained above. This or the caption delimiter between the label and +the label text itself is specified in the macro \Macro{captionformat}. +In difference to all other \Macro{\dots}format commands in this case +it doesn't contain the counter but the items which follow it. The +original definition is: +\begin{verbatim} + \newcommand*{\captionformat}{:\ } +\end{verbatim} +This too can be changed with \Macro{renewcommand}. +\begin{Example} + For some inexplicable reasons you want a dash with spaces before and + after instead of a colon followed by a space as label delimiter. You + define: + \begin{small} +\begin{verbatim} + \renewcommand*{\captionformat}{~--~} +\end{verbatim} + \end{small} + This definition you should put in the preamble of your document. +\end{Example} +% +\EndIndex{Cmd}{captionformat}% + + +\begin{Declaration} + \Macro{figureformat}\\ + \Macro{tableformat} +\end{Declaration}% +\BeginIndex{Cmd}{figureformat}% +\BeginIndex{Cmd}{tableformat}% +It was already mentioned that \Macro{captionformat} doesn't contain a +formatting for the label itself. But this label shouldn't in any case +be changed using redefinitions of the commands for the output of +counters, \Macro{thefigure} or \Macro{thetable}. Such a redefinition +would have unwanted side effects on the output of \Macro{ref} or, for +example, of the list of figures. For this case {\KOMAScript} offers +two \Macro{\dots format} commands instead. These are predefined as +follows: +\begin{verbatim} + \newcommand*{\figureformat}{\figurename~\thefigure\autodot} + \newcommand*{\tableformat}{\tablename~\thetable\autodot} +\end{verbatim} +They also can be adapted to your personal preferences with +\Macro{renewcommand}. +\begin{Example} + From time to time label texts without any label and delimiter are + wanted. In {\KOMAScript} it takes only the following definitions to + achieve this: + \begin{small} +\begin{verbatim} + \renewcommand*{\figureformat}{} + \renewcommand*{\tableformat}{} + \renewcommand*{\captionformat}{} +\end{verbatim} + \end{small} +\end{Example} +% +\EndIndex{Cmd}{figureformat}% +\EndIndex{Cmd}{tableformat}% + +\begin{Declaration} + \Macro{setcapindent}\Parameter{indent}\\ + \Macro{setcapindent*}\Parameter{xindent}\\ + \Macro{setcaphanging} +\end{Declaration}% +\BeginIndex{Cmd}{setcapindent}% +\BeginIndex{Cmd}{setcapindent*}% +\BeginIndex{Cmd}{setcaphanging}% +As mentioned previously, in the standard classes the captions are set +in a not-hanging style. That means that in descriptions with more than +one line the second and subsequent lines start directly beneath the +label. There is no straight way in the standard classes to change +this behaviour. In {\KOMAScript}, on the contrary, beginning at the +second line all lines are indented by the width of the label. + +This behaviour which corresponds to the usage of \Macro{setcaphanging} +can easily be changed by using the command \Macro{setcapindent} or +\Macro{setcapindent*}. Here the parameter \PName{Einzug} determines +the indentation of the second and subsequent lines. + +If you want a line break before the label and the description you +define the indentation \PName{xindent} of the description with the +starred version of the command instead: \Macro{setcapindent*}. + +Using a negative value of \PName{indent} instead, a page break is +inserted and only the first line but not the subsequent lines are +indented by \(-\PName{indent}\). + +Whether one-line captions are set as captions with more than one line +or are treated separately is specified with the class options +\Option{onelinecaption} and \Option{noonelinecaption}. For details +please refer to the explanations of this options in +\autoref{sec:maincls.layoutOptions}. + +\begin{Example} + As examples please refer to the + figures~\ref{fig:maincls.caption.first} to + \ref{fig:maincls.caption.last}. As you can see the usage of a + complete hanging indentation is not preferable together with a small + column width: + \begin{small} +\begin{verbatim} + \begin{figure} + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption{Examples with slightly indented caption + starting at the second line} + \end{figure} +\end{verbatim} + \end{small} + As can be seen the formatting can also be changed locally within the + \Environment{figure} environment\IndexEnv{figure}. + \begin{figure} + \typeout{^^J--- Ignore underfull and overfull \string\hbox:} + \addtokomafont{caption}{\small} + \addtokomafont{captionlabel}{\bfseries} + \centering% + \begin{minipage}{.9\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Example for figure caption]% + {\sloppy Equivalent to the standard setting, similar to the + usage of \Macro{setcaphanging}} + \label{fig:maincls.caption.first} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Example for figure caption]% + {With slightly hanging indentation starting at the second line + using \Macro{setcapindent}\PParameter{1em}} + \end{minipage} + \end{minipage} + + \vspace*{2ex}\noindent% + \begin{minipage}{.9\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent*{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Example for a figure caption]% + {With hanging indentation starting at the second line and line + break before the description using + \Macro{setcapindent*}\PParameter{1em}} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{-1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Example for a figure caption]% + {With indentation in the second line only and line break + before the description using + \Macro{setcapindent}\PParameter{-1em}} + \label{fig:maincls.caption.last} + \end{minipage} + \end{minipage} + \typeout{^^J--- Don't ignore underfull and overfull + \string\hbox:^^J} + \end{figure} +\end{Example} +% +\EndIndex{Cmd}{setcapindent}% +\EndIndex{Cmd}{setcapindent*}% +\EndIndex{Cmd}{setcaphanging}% + + +\begin{Declaration} + \Macro{setcapwidth}\OParameter{justification}\Parameter{width}\\ + \Macro{setcapmargin}\OParameter{margin left}\Parameter{margin}\\ + \Macro{setcapmargin*}\OParameter{margin inside}\Parameter{margin} +\end{Declaration} +\BeginIndex{Cmd}{setcapwidth}% +\BeginIndex{Cmd}{setcapmargin}% +\BeginIndex{Cmd}{setcapmargin*}% +Using\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} these three +commands you can specify the width and justification of the label +text. In general the whole text or column width is available for the +description. + +With the command \Macro{setcapwidth} you can decrease this +\PName{width}. The obligatory argument determines the \PName{with} of +the description. As an optional argument you can supply one letter +which specifies the horizontal justification. The possible +justifications are given in the following list. +\begin{quote} +\begin{labeling}[--~]{\PValue[o]} +\item[\PValue{l}] left-aligned +\item[\PValue{c}] centered +\item[\PValue{r}] right-aligned +\item[\PValue{i}] alignment at the inner margin in a double sided output +\item[\PValue{o}] alignment at the outer margin in a double sided output +\end{labeling} +\end{quote} +The justification inside and outside corresponds to left-aligned and +right-aligned respectively in single sided output. Within +\Package{longtable}\IndexPackage{longtable} tables the justification +inside or outside doesn't work correctly. In particular the captions +of tables of subsequent pages are aligned corresponding to the first +part of the table. This is a problem which has its roots in the +implementation of \Package{longtable}. + +With the command \Macro{setcapmargin} you can specify a \PName{margin} +which is to be left free next to the description in addition to the +normal text margin. If you want margins with different widths at the +left and right side you can specify these using the optional argument +\PName{margin left}. The starred version \Macro{setcapmargin*} defines +instead of a \PName{margin left} a \PName{margin inside} in a double +sided layout. In case of \Package{longtable}\IndexPackage{longtable} +tables you have to deal with the same problem with justification +inside or outside as mentioned with the macro \Macro{setcapwidth}. +Furthermore the usage of \Macro{setcapmargin} or \Macro{setcapmargin*} +switches the option \Option{noonelinecaption} (see +\autoref{sec:maincls.layoutOptions}) for the descriptions which +are typeset with this margin setting. + +\begin{Explain} + \Package{longtable} places the description in a box, which is issued + again at the subsequent pages if needed. While treating a box the + macros needed for the creation of it aren't run through + again. That's why it is not possible for \KOMAScript{} to swop + margin settings in double sided layout on even pages. This would be + necessary to produce a justification which is shifted towards the + outside or inside. + + You can also submit negative values for \PName{margin} and + \PName{margin right} or \PName{margin outside}. This has the effect + of the description spanning into the margin. +\end{Explain} + +\begin{Example} + A rather odd problem is a figure caption which is both centered and + of the same width as the figure itself. If the width of the figure + is known the solution with \KOMAScript{} is quite easy. Suppose the + figure has a width of 8\Unit{cm}, it only takes: + \begin{small} +\begin{verbatim} + \setcapwidth[c]{8cm} +\end{verbatim} + \end{small} + directly in front of \Macro{caption} or \Macro{captionbelow}. If it + is unknown first you have to define a length in the preamble of your + document: + \begin{small} +\begin{verbatim} + \newlength{\figurewidth} +\end{verbatim} + \end{small} + Having done this you can calculate the width directly with the + \LaTeX{} command \Macro{settowidth} (see \cite{latex:usrguide}) + in many cases. A possible solution would look as follows: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \settowidth{\figurewidth}{% + \fbox{\hspace{1em}\KOMAScript\hspace{1em}}% + }% + \fbox{\hspace{1em}\KOMAScript\hspace{1em}}% + \setcapwidth[c]{\figurewidth} + \caption{Example of a centered caption below the figure} + \end{figure} +\end{verbatim} + \end{small} + However, it is awkward to write the content twice and to use + \Macro{setcapwidth} with every figure. But nothing is easier than + defining a new command in the preamble of your document which + hides the three steps: + \begin{enumerate} + \item Defining the width of the argument + \item Specifying the width of the caption + \item Output of the argument + \end{enumerate} + in: + \begin{small} +\begin{verbatim} + \newcommand{\figure2}[1]{% + \settowidth{\figurewidth}{#1}% + \setcapwidth[c]{\figurewidth}% + #1} +\end{verbatim} + \end{small} + Using this command the example abbreviates to: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \figure2{\fbox{\hspace{1em}\KOMAScript\hspace{1em}}}% + \caption{Example of a centered caption below the figure} + \end{figure} +\end{verbatim} + \end{small} + + But a command has the disadvantage that errors in the macros of the + argument in case of arguments with more than one line aren't + reported with the very correct line number by \LaTeX{}. In these + cases the usage of an environment has advantages. But then the + question is raised how the width of the content of the environment + can be determined. The solution offers the \Environment{lrbox} + environment, which is described in \cite{latex:usrguide}: + \begin{small} +\begin{verbatim} + \newsavebox{\figurebox} + \newenvironment{FigureDefinesCaptionWidth}{% + \begin{lrbox}{\figurebox}% + }{% + \end{lrbox}% + \global\setbox\figurebox=\box\figurebox% + \aftergroup\setfigurebox% + } + \newcommand{\setfigurebox}{% + \figure2{\usebox{\figurebox}}} +\end{verbatim} + \end{small} + This definition uses the macro \Macro{figure2} defined above. In + the main text you write: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \begin{FigureDefinesCaptionWidth} + \fbox{\hspace{1em}\KOMAScript\hspace{1em}} + \end{FigureDefinesCaptionWidth} + \caption{Example of a centered caption below the figure} + \end{figure} +\end{verbatim} + \end{small} + Admittingly, the environment in this example is not necessary. But + its definition using \Macro{global} is quite clever. Most users + wouldn't be able to define such an environment without help. But as + this can be very useful, it was introduced in the example above. + + If the \Environment{captionbeside} environment wouldn't exist you + could nevertheless place the figure caption beside the figure in a + quite simple way. For this \Macro{setfigurebox} from the example + above would have to be redefined first: + \begin{small} +\begin{verbatim} + \renewcommand{\setfigurebox}{% + \settowidth{\captionwidth}{\usebox{\figurebox}}% + \parbox[b]{\captionwidth}{\usebox{\figurebox}}% + \hfill% + \addtolength{\captionwidth}{1em}% + \addtolength{\captionwidth}{-\hsize}% + \setlength{\captionwidth}{-\captionwidth}% + \setcapwidth[c]{\captionwidth}% + } +\end{verbatim} + \end{small} + As the next step you only have to put the \Macro{caption} command in + a \Macro{parbox} too: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \begin{FigureSetsCaptionWidth} + \fbox{\rule{0pt}{5\baselineskip}% + \hspace{1em}\KOMAScript\hspace{1em}} + \end{FigureSetsCaptionWidth} + \parbox[b]{\figurewidth}{% + \caption{Example of a centered caption + below the figure} + } + \end{figure} +\end{verbatim} + \end{small} + The \Macro{rule} command in this example only serves as an unvisible + support to produce an example figure with a greater vertical height. +\end{Example} +% +\EndIndex{Cmd}{setcapwidth}% +\EndIndex{Cmd}{setcapmargin}% +\EndIndex{Cmd}{setcapmargin*}% + + +\subsection{Logical Markup of Text} +\label{sec:maincls.emphasis} + +\begin{Explain} + \LaTeX{} offers different possibilities for logical + markup\Index{logical markup}\Index{markup} of text. In a sense, a + heading is a kind of markup too. However, in this section we are + only concerned with direct markup, i.e. markup which doesn't have an + additional meaning and which can be used for different + purposes. More details to the normally defined possibilities you can + find in \cite{lshort}, \cite{latex:usrguide} and + \cite{latex:fntguide}. +\end{Explain} + +\begin{Declaration} + \Macro{textsubscript}\Parameter{text} +\end{Declaration} +\BeginIndex{Cmd}{textsubscript}% +In \autoref{sec:maincls.footnotes} the command +\Macro{textsuperscript}\IndexCmd{textsuperscript} was already +introduced which is a part of the \LaTeX{} kernel. Unfortunately +\LaTeX{} itself doesn't offer a command to produce a text in +subscript\Index{text, subscript}\Index{subscript} instead of +superscript\Index{text, superscript}\Index{superscript}. \KOMAScript{} +defines \Macro{textsubscript} for this. +% +\begin{Example} + You are writing a text on the human metabolism. From time to time + you have to mention some simple sum formulas in which the + numbers are in subscript. Being convinced from logical markup you + first define in the document preamble or in a separate package: + \begin{small} +\begin{verbatim} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} +\end{verbatim} + \end{small} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} + Using this you then write: + \begin{small} +\begin{verbatim} + The cell produces its energy from reaction of + \Molek C6\Molek H{12}\Molek O6 and \Molek O2 to + \Molek H2\Molek O{} and \Molek C{}\Molek O2. + However, Arsenic (\Molek{As}{}) has a detrimental + effect on the metabolism. +\end{verbatim} + \end{small} + The output looks as follows: + \begin{ShowOutput} + The cell produces its energy from reaction of \Molek C6\Molek + H{12}\Molek O6 and \Molek O2 to \Molek H2\Molek O{} and \Molek + C{}\Molek O2. However, Arsenic (\Molek{As}{}) has a detrimental + effect on the metabolism. + \end{ShowOutput} + Some time later you decide that the sum formulas should be + typeset in sans serif. Now you can see the advantages of a + consequent logical markup. You only have the redefine the + \Macro{Molek} command: + \begin{small} +\begin{verbatim} + \newcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} +\end{verbatim} + \end{small} + \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} + Now the output in the whole document changes to: + \begin{ShowOutput} + The cell produces its energy from reaction of \Molek C6\Molek + H{12}\Molek O6 and \Molek O2 to \Molek H2\Molek O{} and \Molek + C{}\Molek O2. However, Arsenic (\Molek{As}{}) has a detrimental + effect on the metabolism. + \end{ShowOutput} +\end{Example} +\begin{Explain} + In the example above the writing ``\verb|\Molek C6|'' is used. This + makes use of the fact that arguments which consist of only one + character doesn't have to be enclosed in parenthesis. That's why + ``\verb|\Molek C6|'' is similar to ``\verb|\Molek{C}{6}|''. You + might already know this from indices or powers in mathematical + environments, such as ``\verb|$x^2$|'' instead of ``\verb|$x^{2}$|'' + for ``$x^2$''. +\end{Explain} +% +\EndIndex{Cmd}{textsubscript}% + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Appendix} +\label{sec:maincls.appendix} + +The last part of a document usually contains the +appendix\Index{appendix}, the bibliography\Index{bibliography} and, if +necessary, the index\Index{index}. + +\begin{Declaration} + \Macro{appendix} +\end{Declaration}% +\BeginIndex{Cmd}{appendix}% +The appendix in the standard as well as the {\KOMAScript} classes is +introduced with \Macro{appendix}. This command switches, among other +things, the chapter numbering to upper case letters thus making sure +that the rules according to \cite{DUDEN} are being followed. These +rules are explained in more detail in the description of the class +options \Option{pointednumbers} and \Option{pointlessnumbers} in +\autoref{sec:maincls.formattingOptions}. + +Please note that \Macro{appendix} is a command, \emph{not} an +environment! This command does not need an argument. The sectioning +commands in the appendix are used in the same way as in the main part. + +% +\EndIndex{Cmd}{appendix} + + +\begin{Declaration} + \Macro{appendixmore} +\end{Declaration}% +\BeginIndex{Cmd}{appendixmore}% +There is a peculiarity within the \Macro{appendix} command in the +{\KOMAScript} classes. In case the command \Macro{appendixmore} is +defined, \Macro{appendix} is executed too. Internally the +{\KOMAScript} classes \Class{scrbook} and \Class{scrreprt} take +advantage of this behaviour for implementing the options +\Option{appendixprefix} and \Option{noappendixprefix} (see +\autoref{sec:maincls.layoutOptions}). You should take care of this +in case you are going to define or redefine the \Macro{appendixmore} +by yourself. In case one of these options is set, you will receive an +error message when using +\verb|\newcommand{\appendixmore}{|\dots\verb|}|. This is thought to +prevent you from changing options without noticing. + +\begin{Example} + You do not want the chapters in the main part of the classes + \Class{scrbook} or \Class{scrreprt} to be introduced by a prefix line + (see layout options \Option{chapterprefix} and \Option{nochapterprefix} + in \autoref{sec:maincls.layoutOptions}). For being consistent you + do not want such a line in the appendix either. Instead you would like + to see the word "`Chapter"' in the language of your choice written in + front of the chapter letter and, simultaneously, in the page headings. + Instead of using the layout options \Option{appendixprefix} or + \Option{noappendixprefix}, you would define in the document preamble: +% + \begin{small} +\begin{verbatim} + \newcommand*{\appendixmore}{% + \renewcommand*{\chapterformat}{% + \appendixname~\thechapter\autodot\enskip} + \renewcommand*{\chaptermarkformat}{% + \appendixname~\thechapter\autodot\enskip} + } +\end{verbatim} + \end{small} +% + In case you are going to change your mind and want to use the option + \Option{appendixprefix} at a later state, you will get an error + message because of the already defined \Macro{appendixmore} command. + This prevents the definition mentioned above from changing the + settings already set using \Option{chapterprefix} and + \Option{nochapterprefix}. + + It is also possible to get a similar behaviour of the appendix for + the class \Class{scrartcl}. You would write in the preamble of your + document: + \begin{small} +\begin{verbatim} + \newcommand*{\appendixmore}{% + \renewcommand*{\othersectionlevelsformat}[1]{% + \ifthenelse{\equal{##1}{section}}{\appendixname~}{}% + \csname the##1\endcsname\autodot\enskip} + \renewcommand*{\sectionmarkformat}{% + \appendixname~\thesection\autodot\enskip} + } +\end{verbatim} + \end{small} + In addition the package \Package{ifthen}\IndexPackage{ifthen} (see + \cite{package:ifthen}) is required. + + Redefined commands are explained in more detail in + \autoref{sec:maincls.structure}. +\end{Example} +% +\EndIndex{Cmd}{appendixmore}% + + +\begin{Declaration} + \Macro{setbibpreamble}\Parameter{Pr\"{a}ambel} +\end{Declaration}% +\BeginIndex{Cmd}{setbibpreamble}% +The command \Macro{setbibpreamble} can be used for setting a preamble +for the bibliography\Index{bibliography}. This can be achieved by +placing the preamble before the command for issuing the bibliography. +However, it doesn't have to be directly in front of it. For example it +could be placed at the beginning of the document. Similar to the class +options \Option{bibtotoc} and \Option{bibtotocnumbered} this command +can only be successful if you haven't loaded a package which prevents +this by redefining the \Environment{thebibliography} environment. +Though the \Package{natbib} package \IndexPackage{natbib} unauthorized +uses internal macros of {\KOMAScript} it could be made sure that +\Macro{setbibpreamble} works with the current version of +\Package{natbib} (see \cite{package:natbib}). + +\begin{Example} + You want to point out that the sorting of the references in the + bibliography is not according to their occuring in the text but in + alphabetical order. You use the following command: + \begin{small} +\begin{verbatim} + \setbibpreamble{References are in alphabetical order. + References with more than one author are sorted + according to the first author.} +\end{verbatim} + \end{small} + The \Macro{bigskip}\IndexCmd{bigskip} command makes sure that the + preamble and the first reference are separated by a big skip. + + Another usage of the preamble in the bibliography would be setting + the references ragged right. Just put the preamble as follows: + \begin{small} +\begin{verbatim} + \setbibpreamble{\raggedright} +\end{verbatim} + \end{small} + You can have a look at the result in the bibliography of this guide. +\end{Example} +% +\EndIndex{Cmd}{setbibpreamble} + + +\begin{Declaration} + \Macro{setindexpreamble} +\end{Declaration}% +\BeginIndex{Cmd}{setindexpreamble}% +Similar to the bibliography you can use a preamble in the index. This +is often the case if you have more than one index or if you use +different kinds of referencing by highlighting the page numbers in +different ways. + +\begin{Example} + You have a document in which terms are both defined an used. The + page numbers of definitions are in bold. Of course you want to make + your reader aware of this fact. Thus you insert a preamble in the + index: + \begin{small} +\begin{verbatim} + \setindexpreamble{In \textbf{bold} printed page numbers + are references to the definition of terms.\par\bigskip} +\end{verbatim} + \end{small} +\end{Example} +% +Please note that the page style of the first page of the index is +changed. The applied page style is defined in the macro +\Macro{indexpagestyle}(see \autoref{sec:maincls.pageStyle}). +The production, sorting and output of the index is done by the +standard \LaTeX{} packages and additional programs. Similar to the +standard classes {\KOMAScript} only provides the basic macros and +environments. +% +\EndIndex{Cmd}{setindexpreamble}% + + +\section{Obsolete Commands} +\label{sec:maincls.obsolete} + +\begin{Explain} + In this section you will find commands, which should not be used any + more. They are part of older \KOMAScript{} versions. For compatibility + reasons they can still be used in the new \KOMAScript{} release. There + are new mechanisms and user interfaces however, which you should use + instead. The reason for listing the obsolete macros in this + documentation is to aid users with understanding old documents. + Furthermore, package authors are free to use these macros in the future. + + \begin{Declaration} + \Macro{capfont} \\ + \Macro{caplabelfont} + \end{Declaration} + \BeginIndex{Cmd}{capfont}% + \BeginIndex{Cmd}{caplabelfont}% + The macro \Macro{capfont} sets the font which is used for captions + in tables and figures. The macro \Macro{caplabelfont} sets the font + which is used for the label and numbering of tables and pictures. + Please use element \FontElement{caption} and + \FontElement{captionlabel} of the current \KOMAScript{} instead + which are described in \autoref{sec:maincls.font}. +% + \EndIndex{Cmd}{capfont}% + \EndIndex{Cmd}{caplabelfont}% + + \begin{Declaration} + \Macro{descfont} + \end{Declaration} + \BeginIndex{Cmd}{descfont}% + This macro sets the font for the optional item arguments of an + \Environment{description} environment. Please use element + \FontElement{descriptionlabel} instead, which are described in + section ~\ref{sec:maincls.font}. +% + \EndIndex{Cmd}{descfont}% + + \begin{Declaration} + \Macro{sectfont} + \end{Declaration} + \BeginIndex{Cmd}{sectfont}% + This macro sets the font which is used for all section headings, the + main title an the highest level below \Macro{part} in the table of + contents. Use element \FontElement{sectioning} instead, which is + described in more detail in \autoref{sec:maincls.font}. +% + \EndIndex{Cmd}{sectfont}% + +\end{Explain} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Authors} +\label{sec:maincls.authors} + +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% In folgender Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item Frank Neukam +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\item Axel Sommerfeldt +\item \textit{Jo\~{a}o Canas Ferreira} +\item \textit{Georg Grandke} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/pglayout.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/pglayout.tex new file mode 100644 index 00000000000..db8df258b43 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/pglayout.tex @@ -0,0 +1,1178 @@ +\ProvidesFile{pglayout.tex}[2004/09/13 KOMA-Script manual,english] +% ============================================================================ +% pglayout.tex (Original German document: satzspgl.tex) +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written especially for use in German language +% documents, so the main documentation is in German. This is the +% English documentation. See readme.txt for other translated +% documents. +% ---------------------------------------------------------------------------- +% satzspgl.tex +% Copyright (c) 2001 Markus Kohm und bei die weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: pglayout.tex +% Translation by: Colin Marquardt (CM) +% +% Contents: Construction of the page layout with +% \Package{typearea.sty} +% Language: English +% Charset of comments: US-ASCII +% Translation of german file: satzspgl.tex +% Date of translated german file: 2003-05-13 +% + +\chapter{Construction of the Page Layout with \Package{typearea}} +\label{cha:typearea} + +\section{Fundamentals of Page Layout} + +\begin{Explain} + If you look at a single page of a book or other prints, you will see + that it consists of top, foot, left and right margins, a (running) + head area, the text block and a (running) foot area. Looking + closer, there is space between the head area and the text block + and between the text block and the foot area. The relations + between these areas are called \emph{page layout}. + + The literature offers and discusses different algorithms and + heuristic approaches for constructing a good page layout. Often, + they are mentioning an approach which involves diagonals and their + intersections. The result is a page where the text block + proportions relate to the proportions of the \emph{page}. In a + single-sided document, the left and the right margin should have + equal widths. + The relation of the upper margin to the lower margin should + be 1\(:\)2. In a double-sided document (e.\,g. a book) however, + the inner margin (the margin at the spine) should be the same as + each of the two outer margins. + + In the previous paragraph, we mentioned and emphasized the + \emph{page}. Erroneously, often it is thought that the format of + the page would be the format of the paper. However, if you look at + a bound document, it is obvious that part of the paper vanishes in + the binding and is not part of the visible page. But the format of + the paper is not important for the layout of a page, it is the + impression of the visible page to the reader. Therefore, it is + clear that the calculation if the page layout must account for the + ``lost'' paper in the binding and add this amount to the width of + the inner margin. This is called \emph{binding correction}. + + The binding correction depends on the process of actually + producing the document and thus can not be calculated in general. + Every production process needs its own parameter. In professional + binding, this parameter is not too important since the printing is + done on oversized paper which is then cropped to the right size. + The cropping is done in a way so that the relations for the + visible double-sided page are as explained above. + + Now we know about the relation of the individual parts of a page. + However, we do not know about the width and the height of the + text block yet. Once we know one of these values, we can calculate + all the other values from the paper format and the page format or + the binding correction. + \begin{eqnarray*} + \Var{textblock~heigth} : \Var{textblock~width} &=& + \Var{page~height} : \Var{page~width}\\ +% + \Var{page~width} &=& \Var{paper~width} - \Var{binding~correction}\\ +% + \Var{top~margin} + \Var{foot~margin} &=& + \Var{page~height} - \Var{textblock~height} \\ +% + \Var{top~margin} : \Var{foot~margin} &=& 1 : 2 \\ +% + \Var{left~margin} : \Var{right~margin} &=& 1 : 1 \\ +% + \Var{half~inner~margin} &=& + \frac{1}{2}\Var{outer~margin} + \Var{binding~correction} \\ + \end{eqnarray*} + The values \Var{left~margin} and \Var{right~margin} are only + existent in a single-sided document while \Var{inner~margin} and + \Var{outer~margin} are only existent in a double-sided document. In + these equations, we work with \Var{half~inner~margin} since the full + inner margin belongs to a double-page. Thus, one page has half of + the inner margin. + + The question of the width of the textblock is also discussed in + the literature. The optimum width depends on several factors: + \begin{itemize} + \item size, width, type of the used font % !!! + \item line spacing % !!! + \item word length + \item available room + \end{itemize} + The importance of the font becomes clear once you think about + serifs. Serifs are fine lines % !!! + finishing off the letters. Letters whose main strokes are running + orthogonal to the text line are disturbing the flow more than they + are leading the eye along the line. These letters have serifs at + the end of the vertical strokes, however, so the horizontal serifs + lead the eye horizontally too. In addition, it helps the eye to + find the beginning of the next line. Thus, the line length for a + serif font can be slightly longer than for a non-serif font. + + In \LaTeX{}, the line spacing is about 20\% of the font + size. With commands like \Macro{linespread} or, better, packages like + \Package{setspace} the line spacing can be changed. A wider line + spacing helps the eye to follow the line. A very wide line + spacing, on the other hand, disturbs reading because the eye has + to move a wide distance between lines. Also, the reader gets + uncomfortable because of the visible stripe effect. The uniform + gray value of the page gets spoiled. Still, with a wider line + spacing, the lines can be longer. + + Literature gives different values for good line lengths, depending + on the author. To some extent, this is due to the native language + of the author. Since the eye jumps from word to word, short words + make this task easier. Not considering language and font, a line + length of 60 to 70 letters including spaces and + punctuation is a usable compromise. This requires well-chosen line + spacing, but \LaTeX{}'s default is usually good enough. + + Before looking at the actual construction of the page layout, + there are some minor things to know. \LaTeX{} doesn't start the + first line of the text block at the upper edge of the text block, + but with a defined distance. Also, \LaTeX{} knows the commands + \Macro{raggedbottom} and \Macro{flushbottom}. \Macro{raggedbottom} + specifies that the last line of a page should be positioned + wherever it was calculated. This means that the position of this + line can be different on each page, up to the height of one line. + In double-sided documents this is usually unwanted. + \Macro{flushbottom} makes sure that the last line is always at the + lower edge of the text block. To achieve this, \LaTeX{} sometimes + needs to stretch vertical glue more than allowed. Paragraph skip + is such a stretchable, vertical glue, even when set to zero. In + order not to stretch the paragraph skip on normal pages where it + is the only stretchable glue, the height of the text block should + be a multiple of the height of the text line, including the + distance from the upper edge of the text block to the first line. + + This concludes the introduction to page layout as handled by + \KOMAScript. Now, we can begin with the actual construction.\par +\end{Explain} + + +\section{Page Layout Construction by Dividing} +\label{sec:typearea.divConstruction} + +\begin{Explain} + + The easiest way to make sure that the text area has the same + ratios as the page is as follows: First, you subtract the + binding correction \Var{BCOR} from the inner edge of the paper. + Then you divide the rest of the page vertically into + \Var{DIV} rows of equal height. Next, you divide the page + horizontally into the same number (\Var{DIV}) of columns. Then you + take the uppermost row as the upper margin and the two lowermost + rows as the lower margin. If you print double-sided, you also take + the innermost column as the inner margin and the two outermost + columns as the outer margin. Then, you add the binding correction + \Var{BCOR} to the inner margin. The remainder of + the page is the text area. The width and the height of the text area result + automatically from the number of rows and columns \Var{DIV}. Since + the margins always need three rows/columns, \Var{DIV} must + be necessarily greater than three. + + In \KOMAScript, this kind of construction is implemented in the + \Package{typearea} package. For A4 paper, \Var{DIV} is predefined + according to the font size (see \autoref{tab:typearea.div}). If there is + no binding correction (\(\Var{BCOR} = 0\Unit{pt}\)), the results + roughly match the values of \autoref{tab:typearea.typearea}. + + In addition to the predefined values, you can specify \Var{BCOR} + and \Var{DIV} as options when loading the package (see + \autoref{sec:typearea.options}). There is also a command to + explicitly calculate the type area by providing these values as + parameters (also see \autoref{sec:typearea.options}). + + The \Package{typearea} package can determine the optimal value + of \Var{DIV} for the font used automatically. Again, see + \autoref{sec:typearea.options}.\par +\end{Explain} + + +\section{Page Layout Construction by Drawing a Circle} +\label{sec:typearea.circleConstruction} + +\begin{Explain} + In addition to the construction method previously described, a somewhat + more classical method can be found in the literature. Aim of this method is + not only identical ratios in the page proportions, but it is considered + optimal when the height of the text block is the same a the width of the + page. The exact method is described in \cite{JTsch87}. + + A disadvantage of this late dark age method is that the width of + the text area is not dependent on the font anymore. Thus, one + doesn't choose the text area to match the font, but the author or + typesetter has to choose the font according to the text area. This + can be considered a ``must''. + + In the \Package{typearea} package this construction is changed + slightly. By using a special (normally senseless) \Var{DIV} value + or a special package option, a \Var{DIV} value is chosen to match + the perfect values as closely as possible. See also + \autoref{sec:typearea.options}.\par +\end{Explain} + + +\section{Options and Macros to Influence the Page Layout} +\label{sec:typearea.options} + +The package \Package{typearea} offers two different user interfaces to +influence type area construction. The first method is to load the +package with options. For information on how to load packages and to +give package options, please refer to the \LaTeX{} literature, e.g. +\cite{lshort} and \cite{latex:usrguide}, or the examples given here. +Since the \Package{typearea} package is loaded automatically when +using the \KOMAScript{} main classes, the package options can be given +as class options (see \autoref{sec:maincls.options}). + +\begin{Declaration} + \Option{BCOR}\PName{Correction} +\end{Declaration}% +\BeginIndex{Option}{BCOR}% +With the \Option{BCOR}\PName{Correction} option you specify the +absolute value of the binding correction, i.e., the width of the area +that is used for the binding, thus ``lost'' from the paper width. + +This value will be used in the layout calculation automatically and +will be added to the inner or left margin respectively. You can use +any valid \TeX{} unit for \PName{Correction}. + +\begin{Example} +Assume you want to produce a financial report, which is to be +printed on A4 paper and bound in a folder. The rim of the folder +covers \(7{,}5\Unit{mm}\). Since the report is thin, only an +additional \(0{,}75\Unit{mm}\) are lost by folding when leafing +through the pages. You would use the following commands: +\begin{verbatim} + \documentclass[a4paper]{report} + \usepackage[BCOR8.25mm]{typearea} +\end{verbatim} +or, using a \KOMAScript-class: +\begin{verbatim} + \documentclass[a4paper,BCOR8.25mm]{scrreprt} +\end{verbatim} +\end{Example} + +Please note: if you use one of the \KOMAScript{} classes, this option +must be given as a class option. If you use another class, this only +works if the class has explicit support for typearea. So when using +the standard classes, you need to give the option when you load +\Package{typearea}. You can also use \Macro{PassOptionsToPackage} +(see \cite{latex:clsguide}) before you are loading +\Package{typearea}, this always works. +% +\EndIndex{Option}{BCOR} + + +\begin{Declaration} + \Option{DIV}\PName{Factor} +\end{Declaration}% +\BeginIndex{Option}{DIV}% +\Option{DIV}\PName{Factor} defines the number of stripes the page +is split into when the page layout is constructed. The exact +method can be found in \autoref{sec:typearea.divConstruction}, +but the most important thing is: the higher \PName{Factor}, the +bigger the resulting text area, and the smaller the margins. For +\PName{Factor}, you can use any integer value larger than 4. +Please note that depending on your other options a very high value +for \PName{Factor} can result in problems: For instance, in +extreme cases, the running title might be outside the actual page +area. So if you use \Option{DIV}\PName{Factor}, it is your own +responsibility to choose a typographically acceptable line length +and to pay attention to the other parameters. + +In \autoref{tab:typearea.typearea} you'll find some page layout +values for the page format A4 without binding correction, with +varying \Var{DIV} factors. Font size is not taken into account. + +\begin{table} + \centering + \begin{tabular}{c|cc|cc} + & \multicolumn{2}{c|}{Text area} & \multicolumn{2}{c}{Margins}\\ + \emph{DIV}& Width [mm] & Height [mm] & upper [mm] & inner [mm] \\ + \hline\rule{0pt}{2.7ex}% + 6 & 105,00 & 148,50 & 49,50 & 35,00 \\ + 7 & 120,00 & 169,71 & 42,43 & 30,00 \\ + 8 & 131,25 & 185,63 & 37,13 & 26,25 \\ + 9 & 140,00 & 198,00 & 33,00 & 23,33 \\ + 10 & 147,00 & 207,90 & 29,70 & 21,00 \\ + 11 & 152,73 & 216,00 & 27,00 & 19,09 \\ + 12 & 157,50 & 222,75 & 24,75 & 17,50 \\ + 13 & 161,54 & 228,46 & 22,85 & 16,15 \\ + 14 & 165,00 & 233,36 & 21,21 & 15,00 \\ + 15 & 168,00 & 237,60 & 19,80 & 14,00 \\ + \end{tabular} + \caption{Page layout values depending on \Var{DIV} for A4} + \label{tab:typearea.typearea} +\end{table} + +\begin{Example} + Imagine you are writing meeting minutes with the + \Class{protocol}\footnote{The class \Class{protocol} is + hypothetical. This manual considers the ideal case where you have + a special class for every use.}-class. The whole thing is supposed to + be double sided. In your company, the Bookman font in 12\Unit{pt} + is used. This standard PostScript font is activated in {\LaTeX} + with the command \Macro{usepackage}\Parameter{bookman}. Bookman runs very + wide, that means, the characters are wide in relation to its + height. Because of that, the default for the \Var{DIV} value in + \Package{typearea} is too small for you. Instead of 12, you want 15. + The minutes will not be bound but punched and filed into a folder, + so you don't need any binding correction. Thus, you write: + \begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{protocol} + \usepackage{bookman} + \usepackage[DIV15]{typearea} +\end{verbatim} + \end{small} + After you are done you get told that the minutes are collected and + bound as a book by the end of the year. The binding is done as a + simple glue binding in a copy shop, since it is done just for ISO\,9000 + anyway and nobody will ever bother to look at the minutes again. For + binding you need \(12\Unit{mm}\) in average. So you change the options + for \Package{typearea} accordingly and use the ISO\,9000 document class: + \begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{iso9000p} + \usepackage{bookman} + \usepackage[DIV15,BCOR12mm]{typearea} +\end{verbatim} + \end{small} + Of course, you can also use a \KOMAScript{} class here: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside,DIV15,BCOR12mm]{scrartcl} + \usepackage{bookman} +\end{verbatim} +\end{small} +\end{Example} +% +Please note: if you use one of the \KOMAScript{} classes, +\Option{BCOR} must +be given as a class option. If you use another class, this only +works if the class has explicit support for typearea. So when +using the standard classes, you need to give \Option{BCOR} when you load +\Package{typearea}. You can use \Macro{PassOptionsToPackage} +(see \cite{latex:clsguide}) too before you are loading +\Package{typearea}, this always works. +% +\EndIndex{Option}{DIV} + +\begin{Declaration} + \Option{DIVcalc}\\ + \Option{DIVclassic} +\end{Declaration}% +\BeginIndex{Option}{DIVcalc}% +\BeginIndex{Option}{DIVclassic}% +As mentioned in \autoref{sec:typearea.divConstruction}, only +paper format A4 has fixed defaults for the \Var{DIV} value. These +are listed in \autoref{tab:typearea.div}. If you choose a +different paper format, \Package{typearea} calculates a good +\Var{DIV} value itself. Of course, you can also have it calculate +that for A4: use \Option{DIVcalc} instead of +\Option{DIV}\PName{Factor}. This works for all other paper formats +as well. If you want to use the automatic calculation, this is +even very useful, since you can then override the defaults that +are given in a configuration file (see +\autoref{sec:typearea.cfg}) with this option. + +\begin{table} + \centering + \begin{tabular}{lccc} + Base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ + \Var{DIV}: & 8 & 10 & 12 \\ + \end{tabular} + \caption{\label{tab:typearea.div}\PName{DIV} defaults for A4} +\end{table} + +The classic construction method as described in +\autoref{sec:typearea.circleConstruction} can also be selected +(with the difference that a good \Var{DIV} value is chosen). In +this case, instead of \Option{DIV}\PName{Factor} or +\Option{DIVcalc}, use the option \Option{DIVclassic}. + +\begin{Example} + In the example for \Option{DIV}\PName{Factor} which used the + Bookman font, there was the problem that we needed a \Var{DIV} + value which suited the font better. As a modification of the first + example, this calculation can be left to \Package{typearea}: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{protocol} + \usepackage{bookman} + \usepackage[DIVcalc]{typearea} +\end{verbatim} +\end{small} +\end{Example} + + +\begin{Declaration} + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV} +\end{Declaration}% +\BeginIndex{Cmd}{typearea}% +If you followed the examples till here, you'll ask yourself how +one can make the calculation of \Var{DIV} depend on the selected +font when one uses one of the \KOMAScript{} classes. Then the +options to \Package{typearea} would have to be made before loading +the e.g. \Package{bookman} package. In this case, +\Package{typearea} could only calculate the page layout for the +standard font, but not for the Bookman font which is really +used. After evaluating the options, \Package{typearea} +calculates the page layout by using the +\Macro{typearea}\OParameter{BCOR}\Parameter{DIV} command. Here, +the chosen \Var{BCOR} value is given as an optional parameter and +\Var{DIV} as a parameter. With the option \Option{DIVcalc}, the +(normally invalid) value~\(1\) is given; with the option +\Option{DIVclassic} the (normally invalid) value~\(3\). You can +also call \Macro{typearea} explicitly in the preamble. + +\begin{Example} +Let us assume again that we want to calculate a good page layout +for the Bookman font. We also want to use a \KOMAScript{} class. +This is possible using the \Macro{typearea}-command with +\Option{DIVcalc} = 1 as \PName{DIV}-parameter: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,BCOR12mm,DIVcalc,twoside]{scrartcl} + \usepackage{bookman} + \typearea[12mm]{1}% same as class options above +\end{verbatim} +\end{small} +\end{Example} + +It would be ridiculous if one had to use the +\Macro{typearea}-command with some pseudo-values, while the +\Option{DIV}-Option allows the use of \Option{DIVcalc} and +\Option{DIVclassic}. Thus the \Macro{typearea} also accepts +symbolic values for the parameter \PName{DIV}: +\begin{labeling}[\ --]{\PValue{classic}} +\item [\PValue{calc}] re-calculate page layout and determine + \Var{DIV}. +\item [\PValue{classic}] re-calculate page layout using the classical + method (circle) . +\item [\PValue{current}] re-calculate page layout with current value + of \Var{DIV}. +\item [\PValue{default}] re-calculate page layout with default values + for the current page- and font size. If no default values exist, + apply \PValue{calc}. +\item [\PValue{last}] re-calculate page layout using the same + \PName{DIV}-argument, which was set last time. +\end{labeling} +The \Macro{typearea} also understands the following symbolic values for +the parameter \PName{BCOR}. Thus it is not neccesary to re-enter +the current value. +\begin{labeling}[\ --]{\PValue{classic}} + \item [\PValue{current}] Re-calculate page layout using the current + value for \Var{BCOR}. +\end{labeling} + +\begin{Example} +Thus calculating a good page layout for the Bookman font and a +\KOMAScript-class is easy when we use symbolic parameter values +for \PName{BCOR} and \PName{DIV}: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,BCOR12mm,DIVcalc,twoside]{scrartcl} + \usepackage{bookman} + \typearea[current]{calc} +\end{verbatim} +\end{small} +If we want to use a fixed value for \Var{DIV} we can use either: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,BCOR12mm,DIV11,twoside]{scrartcl} + \usepackage{bookman} + \typearea[current]{current} +\end{verbatim} +\end{small} +or the old method: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{scrartcl} + \usepackage{bookman} + \typearea[12mm]{11} +\end{verbatim} +\end{small} +In the end it is a matter of personal taste which of these solution you +want to use. +\end{Example} + +Frequently the re-calculation of the page layout is necessary +because the line spacing was changed. Since it is essential that +an integer number of lines fit into the text area, any change in +line spacing requires a re-calculation of page layout. + +\begin{Example} +Assume you want to write a thesis and university regulations +require a font size of 10\Unit{pt} and a line spacing of +2\Unit{pt}. Thus a stretch-factor of 1.25 is required. Let us +also assume that \PName{BCOR} = 12\Unit{mm}. Then you might use: +\begin{small} +\begin{verbatim} + \documentclass[10pt,BCOR12mm,DIVcalc,twoside]{scrreprt} + \linespread{1.25}\selectfont + \typearea[current]{calc} +\end{verbatim} +\end{small}\IndexCmd{linespread} +The command \Macro{selectfont} is required here in order to +activate the new line spacing before the page layout is +calculated. + +The same example again, using the \Package{setspace}-package: +\begin{small} +\begin{verbatim} + \documentclass[10pt,BCOR12mm,DIVcalc,twoside]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \typearea[current]{calc} +\end{verbatim} +\end{small} +Using the \Package{setspace}-package simplifies things, because +you no longer need to calculate the correct stretch-factor, and +you no longer need the \Macro{selectfont}-macro. + +In this context it is appropriate to point out that the line +spacing should be reset for the title page. A complete example +therefore would look like this: +\begin{small} +\begin{verbatim} + \documentclass[10pt,BCOR12mm,DIVcalc,twoside]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \typearea[current]{calc} + \begin{document} + \title{Title} + \author{Markus Kohm} + \begin{spacing}{1} + \maketitle + \tableofcontents + \end{spacing} + \chapter{Ok} + \end{document} +\end{verbatim} +\end{small} +See also the notes in \autoref{sec:typearea.tips}. +\end{Example} + +\begin{Explain} +The command \Macro{typearea} is currently defined in such a way +that it is possible to change the page layout in the middle of a +text. This however makes assumptions about the inner workings of +the \LaTeX-kernel and changes some internal values and +definitions of that kernel. There is some probability, but no +guarantee that this will also work in future versions of \LaTeX. +It must be assumed that this method will not give correct results +in \LaTeX3. However, as author of \KOMAScript{} I expect +considerable incompatibilities when we change to \LaTeX3.\par +\end{Explain} +\EndIndex{Cmd}{typearea} +\EndIndex{Option}{DIVclassic}% +\EndIndex{Option}{DIVcalc} + +\begin{Declaration} + \Option{headinclude}\\ + \Option{headexclude}\\ + \Option{footinclude}\\ + \Option{footexclude} +\end{Declaration}% +\BeginIndex{Option}{headinclude}% +\BeginIndex{Option}{headexclude}% +\BeginIndex{Option}{footinclude}% +\BeginIndex{Option}{footexclude}% +\begin{Explain}% + +So far we have discussed how the page layout is calculated and +what the ratios are between the borders and between borders and +text area. However, one important question has not been answered: +What constitutes the borders? This question appears trivial: +Borders are those parts on the right, left, top and bottom which +remain empty. But this is only half of it. Borders are not always +empty. There could be marginals, for example (for the +\Macro{marginpar}-command refer to \cite{l2kurz} or +\autoref{sec:maincls.marginNotes}). + +One could also ask, whether headers and footers belong to the upper +and lower borders or to the text. This can not be answered +unambiguously. Of course an empty footer or header belong to the +borders, since they can not be distinguished from the rest of the +border. A header or footer, that contains only a page number, will +optically appear more like border. For the optical appearance it is +not important whether headers or footers are easily recognised as such +during reading. Important is only, how a well filled page appears +when viewed out of focus. You could use the glasses of your +far-sighted grand parents, or, lacking those, adjust your vision to +infinity and look at the page with one eye only. Those wearing +spectacles will find this much easier, of course. If the footer +contains not only the page number, but other material like a copyright +notice, it will optically appear more like a part of the text body. +This needs to be taken into account when calculating text layout. + +For the header this is even more complicated. The header frequently +contains running heads \Index[indexmain]{running head}. In case of +running heads with long chapter and section titles the header lines +will be very long and appear to be part of the text body. This effect +becomes even more significant when the header contains not only the +chapter or section title but also the page number. With material on +the right and left side, the header will no longer appear as empty +border. If the length of the titles varies, the header may appear as +border on one page and as text on another. However, this pages should +not be treated differently under any circumstances, as this would lead +to jumping headers. In this case it is probably best to count the +header with the text. + +The decision is easy when text and header or footer are separated +from the text body by a line. This will give a ``closed'' +appearance and header or footer become part of the text body. +Remember: It is irrelevant that the line improves the optical +separation of text and header or footer, important is only the +appearance when viewed out of focus. +\end{Explain} + +The \Package{typearea}-package can not make the decision whether +or not to count headers and footers to the text body or the +border. Options \Option{headinclude} and \Option{footinclude} +cause the header or footer to be counted as text, options +\Option{headexclude} and \Option{footexclude} cause them to be +counted as border. If you are unsure about the correct setting, +re-read above explanations. Default is usually +\Option{headexclude} and \Option{footexclude}., but this can +change depending on \KOMAScript-class and \KOMAScript-packages used +(see \autoref{sec:maincls.options} and \ref{cha:scrpage}). +% +\EndIndex{Option}{headinclude}% +\EndIndex{Option}{headexclude}% +\EndIndex{Option}{footinclude}% +\EndIndex{Option}{footexclude}% + +\begin{Declaration} + \Option{mpinclude}\\ + \Option{mpexclude} +\end{Declaration} +\BeginIndex{Option}{mpinclude}% +\BeginIndex{Option}{mpexclude}% +Besides\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} documents where the head and foot is part + of the text area, there are also documents where the margin-note + area must be counted to the text body as well. + The option \Option{mpinclude} does exactly this. + The effect is that one width-unit of the text-body is taken for + the margin-note area. + Using option \Option{mpexclude}, the default setting, + then the normal margin is used for the margin-note area. + The width of that area is one or one and a half width-unit, + depending on whether one-side or two-side page layout + has been chosen. + The option \Option{mpinclude} is mainly for experts and so + not recommended. + +\begin{Explain} +In the cases where the option \Option{mpinclude} is used +often a wider margin-note area is required. +In many cases not the whole margin-note width should be part +of the text area, for example if the margin is used for quotations. +Such quotations are typeset as ragged text with the flushed +side where the text body is. +Since ragged text gives no homogeneous optical impression +the long lines can reach right into the normal margin. +This can be done using option \Option{mpinclude} and +by an enlargement of length \Length{marginparwidth} after +the type-area has been setup. +The length can be easily enlarged with the command +\Macro{addtolength}. +How much the the length has to be enlarged depends on the +special situation and it requires some flair. +Therefore the option is primarily for experts. +Of course one can setup the margin-width to reach +a third right into the normal margin, for example +using \Macro{setlength}\PParameter{\Length{marginparwidth}}% +\PParameter{1.5\Length{marginparwidth}} gives the desired result. + +Currently there is no option to enlarge the margin by a +given amount. +The only solution is that the option \Option{mpinclude} +is not used, but after the type-area has been calculated +one reduces the width of the text-body \Length{textwidth} +and enlarges the margin width \Length{marginparwidth} +by the same amount. +Unfortunately, this can not be attended when automatic +calculation of the \PName{DIV} value is used. +In contrast \Option{DIVcalc}\IndexOption{DIVcalc} heeds +\Option{mpinclude}. +\end{Explain} +% +\EndIndex{Option}{mpinclude}% +\EndIndex{Option}{mpexclude}% + + +\begin{Declaration} + \PName{Value}\Option{headlines} +\end{Declaration}% +\BeginIndex{Option}{headlines}% +We have seen how to calculate the text layout and how to specify +whether header and footer are part of the text body or the +borders. However, we still have to specify the height in +particular of the header. This is achieved with the option +\Option{headlines}, which is preceded by the number of lines in +the header. \Package{typearea} uses a default of 1.25. This is a +compromise, large enough for underlined headers (see +\autoref{sec:maincls.options}) and small enough that the +relative weight of the top border is not affected to much when +the header is not underlined. Thus in most cases you may leave +\Option{headlines} at its default value and adapt it only in +special cases. + +\begin{Example} + Assume that you want to use a 2-line header. Normally this would + result in a "`\texttt{overfull} \Macro{vbox}"' warning for each + page. To prevent this from hapening, the + \Package{typearea}-package is told to calculate an appropriate + page layout: +\begin{small} +\begin{verbatim} + \documentclass[a4paper]{article} + \usepackage[2.1headlines]{typearea} +\end{verbatim} +\end{small} +If you use a \KOMAScript-class this must be given as a class-option: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,2.1headlines]{scrartcl} +\end{verbatim} +\end{small} +A tool that can be used to define the contents of a header with 2 +lines is described in \autoref{cha:scrpage}. +\end{Example} + +If you use a \KOMAScript-class, this option must be given as +class-option. With other classes this works only, if these +classes explicitly supports \Package{typearea}. If you use the +standard classes, the option must be given when loading +\Package{typearea}. \Macro{PassOptionsToPackage} will work in +both cases (see also \cite{latex:clsguide}). +% +\EndIndex{Option}{headlines} + +\begin{Declaration} + \Macro{areaset}\OParameter{BCOR}\Parameter{Width}\Parameter{Height} +\end{Declaration}% +\BeginIndex{Cmd}{areaset}% +So far we have seen how a good or even very good page layout is +calculated and how the \Package{typearea}-package can support these +calculations, giving you at the same time the freedom to adapt the +layout to your needs. However, there are cases where the text body +has to fit exactly into specified dimensions. At the same time the +borders should be well spaced and a binding correction should be +possible. The \Package{typearea}-package offers the command +\Macro{areaset} for this purpose. As parameters this command accepts +the binding correction and the width and height of the text body. +Width and position of the borders will then be calculated +automatically, taking account of the options \Option{headinclude}, +\Option{headexclude}, \Option{footinclude} and \Option{footexclude} +where needed. + +\begin{Example} +Assume a text, printed on A4 paper, should have a width of +exactly 60 characters of typewriter-font and a height of exactly +30 lines. This could be achieved as follows: +\begin{verbatim} + \documentclass[a4paper,11pt]{article} + \usepackage{typearea} + \newlength{\CharsLX}% Width of 60 characters + \newlength{\LinesXXX}% Height of 30 lines + \settowidth{\CharsLX}{\texttt{1234567890}} + \setlength{\CharsLX}{6\CharsLX} + \setlength{\LinesXXX}{\topskip} + \addtolength{\LinesXXX}{30\baselineskip} + \areaset{\CharsLX}{\LinesXXX} +\end{verbatim} + +\item A poetry book with a square text body with a page length of + \(15\Unit{cm}\) and a binding correction of \(1\Unit{cm}\) could be + achieved like this: +\begin{verbatim} + \documentclass{gedichte} + \usepackage{typearea} + \areaset[1cm]{15cm}{15cm} +\end{verbatim} +\end{Example} +\EndIndex{Cmd}{areaset} + + +\section{Options and Macros for Paper Format Selection} +\label{sec:typearea.paperTypes} + +\Index{paper format}% +The \LaTeX standard classes support the options \Option{a4paper}, +\Option{a5paper}, \Option{b5paper}, \Option{letterpaper}, +\Option{legalpaper} and \Option{executivepaper}. +\begin{Declaration} + \Option{letterpaper} \\ + \Option{legalpaper} \\ + \Option{executivepaper} \\ + \Option{a\Var{X}paper} \\ + \Option{b\Var{X}paper} \\ + \Option{c\Var{X}paper} \\ + \Option{d\Var{X}paper} \\ + \Option{landscape} \\ + \Macro{isopaper}\OParameter{series}\Parameter{number} +\end{Declaration}% +\BeginIndex{Option}{letterpaper} +\BeginIndex{Option}{legalpaper} +\BeginIndex{Option}{executivepaper} +\BeginIndex{Option}{a0paper} +\BeginIndex{Option}{b0paper} +\BeginIndex{Option}{c0paper} +\BeginIndex{Option}{d0paper} +\BeginIndex{Option}{landscape} +\BeginIndex{Cmd}{isopaper}% +The three American formats are supported by \Package{typearea} +in the same way. In addition, all ISO-A-, ISO-B-, ISO-C- and +ISO-D-formats are supported and derived from their basic sizes A0, B0, +C0 and D0. They may be selected directly with options +\Option{a0paper}, \Option{a1paper} and so on. Landscape orientation is +selected with the \Option{landscape}-option just as in the standard +classes. + +Alternatively the paper size can be adjusted with the macro +\Macro{isopaper}. This however required re-calculation of the +text layout with \Macro{typearea} or \Macro{areaset}. I do not +recommend the use of \Macro{isopaper}. + +\begin{Example} + Assume you want to print on ISO-A8 file cards in landscape + orientation. Borders should be very small, no header or footer + will be used. +\begin{verbatim} + \documentclass{article} + \usepackage[headexclude,footexclude, + a8paper,landscape]{typearea} + \areaset{7cm}{5cm} + \pagestyle{empty} + \begin{document} + \section*{Paper Size Options} + letterpaper, legalpaper, executivepaper, a0paper, + a1paper \dots\ b0paper, b1paper \dots\ c0paper, + c1paper \dots\ d0paper, d1paper \dots + \end{document} +\end{verbatim} +\end{Example} + +All \Option{a\Var{X}paper}-, \Option{b\Var{X}paper}-, +\Option{c\Var{X}paper}- and \Option{d\Var{X}paper}-options need +to be given as class options when \KOMAScript{} classes are used. +For other classes this works only if they support +\Package{typearea}. For the standard \LaTeX-classes these options +need to be declared when \Package{typearea} is loaded. +\Macro{PassOptionsToPackage} (see \cite{latex:clsguide}) works in +both cases. +% +\EndIndex{Option}{letterpaper} +\EndIndex{Option}{legalpaper} +\EndIndex{Option}{executivepaper} +\EndIndex{Option}{a0paper} +\EndIndex{Option}{b0paper} +\EndIndex{Option}{c0paper} +\EndIndex{Option}{d0paper} +\EndIndex{Option}{landscape} +\EndIndex{Cmd}{isopaper} + +\begin{Declaration} + \Macro{paperwidth}\\ + \Macro{paperheight} +\end{Declaration}% +\BeginIndex{Cmd}{paperwidth}% +\BeginIndex{Cmd}{paperheight}% +Particularly exotic paper sizes can be defined using the lengths +\Macro{paperwidth} and \Macro{paperheight}. +This requires the re-calculation of the text layout using the +commands \Macro{typearea} or \Macro{areaset}. +% +\begin{Example} +Assume you want to print on endless paper with the dimensions +\(8\frac{1}{4}\Unit{inch} \times 12\Unit{inch}\). This format is +not directly supported by \Package{typearea}. Thus you have to +define it befor calculating the text layout: +\begin{verbatim} + \documentclass{article} + \usepackage{typearea} + \setlength{\paperwidth}{8.25in} + \setlength{\paperheight}{12in} + \typearea{1} +\end{verbatim} +\end{Example} +\EndIndex{Cmd}{paperheight} +\EndIndex{Cmd}{paperwidth} + +\begin{Declaration} + \Option{dvips}\\ + \Option{pdftex}\\ + \Option{pagesize} +\end{Declaration}% +\BeginIndex{Option}{dvips}% +\BeginIndex{Option}{pdftex}% +\BeginIndex{Option}{pagesize}% +\begin{Explain}% + These mechanisms will set internal \LaTeX{} dimensions to values that + header, text body and footer can be printed on paper of the given + size. However, the specifications of the DVI-format\index{DVI} do + not allow the paper format to be specified. If DVI is translated + directly into a low level printer language like PCL (Hewlett-Packard + printers) or Esc-P (Epson), this is usually not important, because + in all these cases the origin is the upper left corner. If however + the DVI-source is translated into languages like + PostScript\Index{PostScript} or PDF\Index{PDF}, that have an origin + in a different position and also contain the paper size explicitly, + the required information is not available in the DVI-file. To solve + this problem the DVI-driver will use the default paper size, which + the user may set per option or in the \TeX-source. In case of the + DVI-driver \File{dvips} this can be done with a + \Macro{special}-command. For {pdf\TeX} two dimensions are set + instead. +\end{Explain} +The option \Option{dvips} writes the paper size as a \Macro{special} +into the DVI-file. This macro is then evaluated by \File{dvips}. +\Option{pdftex} on the other hand writes the paper size into the +pdf\TeX{} page register at the beginning of the document, so that the +correct paper size is used when the resulting PDF-file is viewed or +printed. The option \Option{pagesize} is more flexible and uses the +correct mechanism if either a PDF- or DVI-file is produced. +% +\begin{Example} + Assume you want to create a DVI-file from a document and an + online version in PDF. Then the preamble could look like this: + \begin{small} +\begin{verbatim} + \documentclass{article} + \usepackage[a4paper,pagesize]{typearea} +\end{verbatim} + \end{small} + If the file is run through {pdf\TeX} then the lengths + \Macro{pdfpagewidth} and \Macro{pdfpageheight} will be set to + appropriate values. If on the other hand you create a DVI-file -- + either with {\LaTeX} or {pdf\LaTeX} -- a \Macro{special} will be + written to the beginning of the file. +\end{Example}\IndexCmd{pdfpagewidth}\IndexCmd{pdfpagehight} +\EndIndex{Option}{dvips}% +\EndIndex{Option}{pdftex}% +\EndIndex{Option}{pagesize}% + +\section{Odd Bits without Direct Relevance to Text Layout} +\label{sec:typearea.else} + +\begin{Declaration} + \Macro{ifpdfoutput}\Parameter{then}\Parameter{else} +\end{Declaration}% +\BeginIndex{Cmd}{ifpdfoutput}% +Sometimes it would be nice if certain things would be done +differently in a file, depending on output format. \TeX{} normally +uses DVI as output format. With {pdf\TeX} however we now have the +option to create PDF-files directly. The command +\Macro{ifpdfoutput} is a branching command. If PDF-output is +active, the \PName{then} branch will be executed, if PDF-output +is inactive or {pdf\TeX} is not used at all, the +\PName{else} branch. +\begin{Example} + As you may know {pdf\LaTeX} will produce a DVI-file instead of a + PDF-file, if the counter \Macro{pdfoutput} is assigned the value 0. + Only is the counter is assigned a value different from 0 output is + switched to PDF. Since \Macro{pdfoutput} is unknown when {\LaTeX} is + used instead of {pdf\LaTeX}, \Macro{pdfoutput} can not be set to 0 + generally, if you want DVI-output. A simple solution to this problem + is to execute following command: + \begin{small} +\begin{verbatim} + \ifpdfoutput{\pdfoutput=0}{} +\end{verbatim} + \end{small} + This only works after loading \Package{typearea} package. If you + want the line above to be executed after af package, which set's + \Macro{pdfoutput} to 1 whenever the counter exist, you may combine + it with the \Macro{AfterPackage}\IndexCmd{AfterPackage} command + from \Package{scrlfile} package (see \autoref{cha:scrlfile}). +\end{Example}\IndexCmd{pdfoutput} +\EndIndex{Cmd}{ifpdfoutput} + +\section{Local Defaults in the File \File{typearea.cfg}} +\label{sec:typearea.cfg} +Even before the packet options are used, \Package{typearea} will check +for the presence of the file +\File{typearea.cfg}\IndexFile{typearea.cfg} and, if found, load it. +Thus it is possble to define in this file the parameters for +additional paper sizes. + +\begin{Declaration} + \Macro{SetDIVList}\Parameter{List} +\end{Declaration}% +\BeginIndex{Cmd}{SetDIVList}% +\begin{Explain}% + The \Macro{SetDIVList}-parameter was also intended for use in this + file. Befor the option \Option{DIVcalc} was introduced this was the + only possibility to define \Var{DIV}-values for different paper and + font sizes. This list consists of a number of values in curly + parenthesis. The leftmost value is the font size, \(10\Unit{pt}\), + the next for \(11\Unit{pt}\), the third for \(12\Unit{pt}\) and so + on. If you don't use \Macro{SetDIVList} the predefined + \Macro{SetDIVList}% + \PParameter{\PParameter{8}\PParameter{10}\PParameter{12}} will be + used. If no default value is given for a particular font size, + \(10\) will be used. +\end{Explain} + +This command should no longer be used, automatic calculation of text +layout is recommended instead (see +\autoref{sec:typearea.options}). +% +\EndIndex{Cmd}{SetDIVList} + +\section{Hints} +\label{sec:typearea.tips} +\begin{Explain} +In particular for thesis many rules exist that violate even the +most elementary rules of typography. The reasons for such rules +include typographical incompetence of those making them, but also +the fact that they were originally meant for mechanical +typewriters. With a typewriter or a primitive text processor +dating back to the early ´80s it is not possible to produce +typographically correct output without extreme effort. +Thus rules were created that appeared to be achievable and still +allowed easy correction. To avoid short lines made worse by +ragged margins the borders were kept narrow, and the line spacing +increased to 1.5 for corrections. In a single spaced document +even correction signs would have been difficult to add. +When computers became widely available for text processing, some +students tried to use a particularly ``nice'' font to make their +work look better than it really was. They forgot however that +such fonts are often more difficult to read and therefore +unsuitable for this purpose. Thus two bread-and-butter fonts +became widely used which neither fit together nor are +particularly suitable for the job. In particular Times is a +relatively narrow font which was developed at the beginning of +the 20$^{th}$ century for the narrow columns of British +newspapers. Modern versions usually are somewhat improved. But +still the Times font required in many rules does not really fit +to the border sizes prescribed. + +{\LaTeX} already uses sufficient line spacing, and the borders +are wide enough for corrections. Thus a page will look generous, +even when quite full of text. With \Package{typearea} this is +even more true, especially if the calculation of line length is +left to \Package{typearea} too. For fonts that are sensitive to +long lines the line length can easily be reduced. + +To some extend the questionable rules are difficult to implement +in {\LaTeX}. A fixed number of characters per line can be kept +only when a non-proportional font is used. There are very few +good non-proportional fonts around. Hardly a text typeset in this +way looks really good. In many cases font designers try to +increase the serifes on the `i' or `l' to compensate for the +different character width. This can not work and results in a +fragmented and agitated looking text. If you use {\LaTeX} for +your paper, some of these rules have to be either ignored or at +least interpreted generously. For example you may interpret ``60 +characters per line'' not as a fixed, but average or maximal +value. +\end{Explain} + +As executed, record regulations are usually meant to obtaining an +useful result even if the author does not know, what to be consider +thereby. Usefully means frequently: readable and correctable. In my +opinion the type-area of a text set with \LaTeX{} and the +\Package{typearea} package becomes well done from the beginning fair. +Thus if you are confronted with regulations, which deviate obviously +substantially from it, then I recommend to submit a text single dump +to the responsible person and inquire whether it is permitted to +supply the work despite the deviations in this form. If necessary the +type-area can be moderately adapted by modification of option +\Option{DIV}. I advise against use of \Macro{areaset} for this +purpose however. At worst you may use geometry package (see +\cite{package:geometry}), which is not part of \KOMAScript{}, or +change the type-area parameters of \LaTeX. You may find the values +determined by \Package{typearea} at the log file of your document. +Thus moderate adjustments should be possible. However absolutely make +sure that the proportions of the text area correspond approximate with +those the page with consideration of the binding correction. + +If it should be absolutely necessary to set the text +one-and-a-half-lined then you should not redefine +\Macro{baselinestretch} under any circumstances. Although this +procedure is recommended very frequently, it is however obsolet since +the introduction of \LaTeXe{} in 1994. Use at least the instruction +\Macro{linespread}. I recommend package \Package{setspace} (see +\cite{package:setspace}), which is not part of \KOMAScript. Also you +should use \Package{typearea} to calculate a new type-area after the +conversion of the line space. However you should switch back to the +normal line space for the title, better also for the +directories\,---\,as well as the bibliography and the index. The +\Package{setspace} package offers for this a special environment and +own instructions. + +The \Package{typearea} package even with option \Option{DIVcalc} +calculates a very generous text area. Many conservative typographers +will state that the resulting line length is still excessive. The +calculated \Var{DIV}-value may be found in the \File{log} file to the +respective document. Thus you can select a smaller value easily after +the first \LaTeX{} run. + +The question is asked to me not rarely, why I actually talk section by +section about a type-area calculation, while it would be very many +simpler, only to give you a package, with which one can adjust the +edges as during a text processing. Often also one states, such a +package would be anyway the better solution, since everyone knew, how +good edges are to be selected, and the edges from {\KOMAScript} anyway +would not be well. I take the liberty of translating a suitable +quotation from \cite{TYPO:ErsteHilfe}. You may find the original +german words at the german scrguide. + +\begin{quote} + \textsl{The making by oneself is long usually, the results are often + doubtful, because layman typographers do not see, what is correct + and cannot not know, on what it important. Thus one gets + accustomed to false and bad typography.} [\dots] \textsl{Now the + objection could come, typography is nevertheless taste thing. If + it concerned decoration, perhaps one could let apply the argument, + since it concerns however primarily information with typography, + errors cannot only disturb, but even cause damage.} +\end{quote} + +\section{Authors} +\label{sec:typearea.authors} +The authors listed below are responsible for this chapter or have +contributed to this chapter in different ways. +% Please use \textit{} for the name of the translator add all the +% names of the untranslated german file. If the translator is the +% main author, simply use \textbf. +\begin{itemize} +\item Frank Neukam +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\item Axel Sommerfeldt +\item \textit{Colin Marquardt} +\item \textit{Dr. Engelbert Buxbaum} +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "main.tex" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.bst b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.bst new file mode 100644 index 00000000000..0faff68faec --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.bst @@ -0,0 +1,1700 @@ +%% +%% This is file `scrguide-en.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% english.mbs (with options: `exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% scrguide.mbs (with options: `exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% merlin.mbs (with options: `tail,exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% ---------------------------------------- +%% *** This file was made for creating KOMA-Script scrguide bibliography *** +%% +%% Copyright 1994-2000 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2000/05/04 4.01 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in + % GERMAN + % This is a labelled citation style similar to the standard alpha.bst, + % where labels are of the form Dal90 or DBK89. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem[label]{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [label] + % \cite[chap. 2]{key} ==>> [label, chap. 2] + % The order in the reference list is by label. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ scaps } +FUNCTION {bib.fname.font} +{ bib.name.font } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{english.mbs}[2000/03/15 4.0 (PWD)] + + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pages" } + +FUNCTION {bbl.page} +{ "page" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + % End module: english.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{scrguide.mbs}[2001/03/22 0.1] + % End module: scrguide.mbs +%% Copyright 1994-2000 Patrick W Daly +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" + format.name$ + bib.name.font + bibinfo bibinfo.check + 't := + nameptr #1 > + { + nameptr #2 + #1 + = + numnames #2 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISSN " swap$ * + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" label * "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {if.digit} +{ duplicate$ "0" = + swap$ duplicate$ "1" = + swap$ duplicate$ "2" = + swap$ duplicate$ "3" = + swap$ duplicate$ "4" = + swap$ duplicate$ "5" = + swap$ duplicate$ "6" = + swap$ duplicate$ "7" = + swap$ duplicate$ "8" = + swap$ "9" = or or or or or or or or or +} +FUNCTION {n.separate} +{ 't := + "" + #0 'numnames := + { t empty$ not } + { t #-1 #1 substring$ if.digit + { numnames #1 + 'numnames := } + { #0 'numnames := } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames #5 = + { duplicate$ #1 #2 substring$ swap$ + #3 global.max$ substring$ + "\," swap$ * * + } + 'skip$ + if$ + } + while$ +} +FUNCTION {n.dashify} +{ + n.separate + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ + month "month" bibinfo.check + duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} +FUNCTION{format.year} +{ year "year" bibinfo.check duplicate$ empty$ + { "empty year in " cite$ * + warning$ + } + { + " (" swap$ * ")" * + } + if$ +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ": " * + swap$ + n.dashify + pages multi.page.check + 'bbl.pages + 'bbl.page + if$ + swap$ tie.or.space.prefix + "pages" bibinfo.check + * * + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + bbl.volume swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + } + if$ + format.year * + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + key duplicate$ empty$ + { pop$ + journal duplicate$ empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } + { "journal" bibinfo.check emphasize word.in swap$ * } + if$ + } + { word.in swap$ * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + bib.name.font + "editor" bibinfo.check + editor num.names$ duplicate$ + #2 > + { pop$ + "editor" bibinfo.check + " " * bbl.etal + * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + "editor" bibinfo.check + " " * bbl.etal + * + } + { + bbl.and space.word + * editor #2 "{vv~}{ll}" format.name$ + bib.name.font + "editor" bibinfo.check + * + } + if$ + } + if$ + } + if$ +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { format.booktitle duplicate$ empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { word.in swap$ * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.note output + fin.entry + write.url +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.note output + fin.entry + write.url +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + add.colon + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date output + format.isbn output + format.note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + format.note output + fin.entry + write.url +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + format.note output + fin.entry + write.url +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization "organization" bibinfo.check + duplicate$ empty$ 'pop$ + { output + address "address" bibinfo.check output + } + if$ + } + { format.authors output.nonnull } + if$ + add.colon + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address "address" bibinfo.check output + } + 'skip$ + if$ + } + { + organization "organization" bibinfo.check output + address "address" bibinfo.check output + } + if$ + format.edition output + format.date output + format.note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + add.colon + format.title output + howpublished "howpublished" bibinfo.check output + format.date output + format.note output + fin.entry + write.url + empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization "organization" bibinfo.check output + } + { format.editors output.nonnull } + if$ + add.colon + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + format.publisher.address output + } + if$ + } + { publisher empty$ + { + format.organization.address output } + { + organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + if$ + format.date "year" output.check + format.isbn output + format.issn output + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + add.colon + format.btitle + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + format.date output + format.note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +INTEGERS { et.al.char.used } +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} +EXECUTE {initialize.et.al.char.used} +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{l{}}" format.name$ * } + if$ + } + { s nameptr "{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + nameptr #2 + #1 + = + numnames #2 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} +SORT +STRINGS { longest.label last.sort.label next.extra } +INTEGERS { longest.label.width last.extra.num } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} +EXECUTE {initialize.longest.label} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `scrguide-en.bst'. diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.dbj b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.dbj new file mode 100644 index 00000000000..c5aad98905b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide-en.dbj @@ -0,0 +1,319 @@ +%% Driver file to produce scrguide-en.bst from merlin.mbs +%% Generated with makebst, version 3.2 (1999/02/24) +%% Produced on 2001/03/22 at 14:46 +%% +\input docstrip + +\preamble +---------------------------------------- +*** This file was made for creating KOMA-Script scrguide bibliography *** + +\endpreamble + +\postamble +End of customized bst file +\endpostamble + +\keepsilent + +\askforoverwritefalse +\def\MBopts{\from{merlin.mbs}{% + head,\MBopta} +\from{english.mbs}{\MBopta} +\from{scrguide.mbs}{\MBopta} +\from{merlin.mbs}{tail,\MBopta}} +\def\MBopta{% + exlang%: External language file +% ,cite%: Cite key +% ,alfph,alf-f%: Alpha style, Jones90 +% ,alph,alf-1%: Alpha style, Jon90 + ,alph%: Alpha style, Jon90 or JWB90 +% ,ay%: Author-year +% %(def) Numerical +%-------------------- +% ,html,htdes%: Hypertext with keys +% ,html,htlist%: Hypertext list +% ,html%: Hypertext + %: (def) Normal LaTeX +%-------------------- +% ,lang%: Add language field + %: (def) No language field +%-------------------- +% ,annote%: Annotations + %: (def) No annotations +%-------------------- + ,vonx%: Sort without von part +% %(def) Sort on von part +%-------------------- +% ,nm-revv1%: First name reversed, with full names +% ,nm-rev1%: Only first name reversed, initials +% ,nm-rvv%: Surname + spaceless initials +% ,nm-rvx%: Surname + pure initials +% ,nm-rv%: Surname + dotless initials +% ,nm-rev%: Surname + initials +% ,nm-init,ed-au%: Initials + surname +% ,nm-revf%: Full, surname first + ,ed-au%: Full, surname last +%-------------------- +% ,aunm-sl%: Names separated by slash +% ,aunm-semi%: Names separated by semi-colon + %: (def) Author names separated by commas +%-------------------- +% ,nmdash%: Repeated author/editor names replaced by dash + %: (def) Author/editor names always present +%-------------------- + ,nmlm%: Limited authors +% %(def) All authors +%-------------------- + ,x2%: Maximum of 2 authors + ,m2%: Minimum of 2 authors +% ,nmft,nmft-def%: User defined author font +% ,nmft,nmft-bf%: Bold authors +% ,nmft,nmft-it%: Italic authors + ,nmft,nmft-sc%: Small caps authors +% %(def) Normal font for author names +%-------------------- +% ,fnm-def%: First names in user defined font +% ,fnm-rm%: First names in normal font + %: (def) First names same font as surnames +%-------------------- + ,nmfted%: Editors incollection like authors +% %(def) Editors incollection normal font +%-------------------- + ,nmand-rm%: `And' in normal font +% %(def) `And' in author font +%-------------------- +% ,dt-end%: Date at very end + ,dt-jnl%: Date part of journal spec. +% ,dt-beg%: Date after authors +% %(def) Date at end +%-------------------- +% ,yr-blk%: Date preceded by space +% ,yr-com%: Date preceded by comma +% ,yr-per%: Date preceded by period +% ,yr-col%: Date preceded by colon +% ,yr-brk%: Date in brackets +% ,yr-par%: Date in parentheses + %: (def) Plain month and year +%-------------------- +% ,xmth%: Date is year only + %: (def) Date is month and year +%-------------------- +% ,dtrev%: Date as year month + %: (def) Date as month year +%-------------------- +% ,yrp-x%: No punct. after date +% ,yrp-per%: Period after date +% ,yrp-semi%: Semi-colon after date +% ,yrp-col%: Colon after date + %: (def) Date with standard block punctuation +%-------------------- +% ,yrpp-xsp%: No space after date + %: (def) Space after date +%-------------------- +% ,dtbf%: Date in bold face + %: (def) Date in normal font +%-------------------- +% ,tit-qq,qt-g,qx%: Title in guillemets +% ,tit-qq,qx%: Title in double quotes +% ,tit-qq,qt-s,qx%: Title in single quotes +% ,tit-qq,qt-g%: Title and punctuation in guillemets +% ,tit-qq%: Title and punctuation in double quotes +% ,tit-qq,qt-s%: Title and punctuation in single quotes + ,tit-it%: Title italic +% %(def) Title plain +%-------------------- + ,atit-u%: Title style +% %(def) Sentence style +%-------------------- +% ,jtit-x%: No article title + %: (def) Article title present +%-------------------- +% ,jxper%: Dotless journal names + %: (def) Periods in journal names +%-------------------- +% ,jttl-rm%: Journal title normal + %: (def) Journal title italics +%-------------------- +% ,thtit-a%: Thesis title like article + %: (def) Thesis titles like books +%-------------------- + ,trtit-b%: Tech. report title like books +% %(def) Tech. report title like articles +%-------------------- +% ,trnum-it%: Tech. report and number italic + %: (def) Tech. report and number plain +%-------------------- +% ,vol-2bf%: Volume and number bold +% ,vol-bf%: Volume bold +% ,vol-it%: Volume italic + %: (def) Volume plain +%-------------------- +% ,vnum-x%: Journal vol, without number +% ,vnum-b%: Journal vol number +% ,vnum-h%: Journal vol, \# number +% ,vnum-nr%: Journal vol, no. num +% ,vnum-cm%: Journal vol, num +% ,vnum-sp%: Journal vol (num) + %: (def) Journal vol(num) +%-------------------- +% ,volp-blk%: Volume with blank +% ,volp-com%: Volume with comma +% ,volp-semi%: Volume with semi-colon + ,volp-sp%: Volume with colon and space +% %(def) Volume with colon +%-------------------- +% ,jdt-pc%: Year, comma, pages +% ,jdt-p%: Year with pages + ,jdt-vs%: Journal vol (year) +% ,jdt-v%: Journal vol(year) +% %(def) Journal year like others +%-------------------- +% ,jpg-1%: Only start page number + %: (def) Start and stop page numbers +%-------------------- +% ,pgsep-p%: Period inserted over 9999 + ,pgsep-s%: Thin space inserted over 9999 +% ,pgsep-c%: Comma inserted over 9999 +% %(def) No separators for large page numbers +%-------------------- + ,jwdpg%: Include `page' in articles +% %(def) Article pages numbers only +%-------------------- +% ,pp-last%: Pages at end + %: (def) Pages given mid text +%-------------------- + ,jwdvol%: Include `volume' in articles +% %(def) Article volume as number only +%-------------------- +% ,num-xser%: Allows number without series + %: (def) Standard BibTeX +%-------------------- +% ,numser%: Just before publisher + %: (def) After chapter and pages +%-------------------- +% ,jnm-x%: Space after journal + %: (def) Comma after journal +%-------------------- +% ,btit-rm,bt-rm%: Book title plain + %: (def) Book title italic +%-------------------- +% ,bkpg-x%: Pages in book bare +% ,bkpg-par%: Pages in book in parentheses + %: (def) Pages in book plain +%-------------------- +% ,pg-bk%: For book: 345 pages + %: (def) Total book pages not printed +%-------------------- +% ,add-pub%: Address: Publisher + %: (def) Publisher, address +%-------------------- +% ,pub-date,pub-xpar,pub-xc%: Publisher and date, no parentheses, no comma +% ,pub-date,pub-xpar%: Publisher and date without parentheses +% ,pub-date,pub-xc%: Publisher and date in parentheses, no comma +% ,pub-date%: Publisher and date in parentheses +% ,pub-par%: Publisher in parentheses + %: (def) Publisher as normal block +%-------------------- +% ,pre-edn%: Publisher after edition +% ,pre-pub%: Publisher before chapter, pages + %: (def) Publisher after chapter, pages +%-------------------- +% %(def) No ISBN + ,isbn%: Include ISBN +%-------------------- +% %(def) No ISSN + ,issn%: Include ISSN +%-------------------- +% ,url,url-nl%: URL on new line +% ,url,url-nt%: URL as note +% ,url,url-blk%: Include URL + ,url,url-nl%: (def) URL on new line +%-------------------- +% ,edparc,bkedcap%: `Name, (Editor)' +% ,edparc%: `Name, (editor)' + ,edpar,bkedcap%: `Name (Editor),' +% ,edpar%: `Name (editor),' +% %(def) Word `editor' after name +%-------------------- +% ,edby-par,edbyy%: Booktitle (.., editor) +% ,edby,edbyy%: Booktitle, .., editor +% ,edby-parc,edbyx%: Booktitle, (editor..) +% ,edby-par,edbyx%: Booktitle (editor..) +% ,edby,edbyw%: Booktitle, (editor) .. +% ,edby,edbyx%: Booktitle, editor .. +% ,edby-parc%: Booktitle, (edited by ..) +% ,edby-par%: Booktitle (edited by ..) +% ,edby%: Booktitle, edited by .. + %: (def) .., editor, booktitle +%-------------------- +% ,blk-tita%: Period after titles of articles +% ,blk-tit%: Period after titles of articles, books, etc +% ,blk-com,com-blank%: Blanks between blocks +% ,blk-com,com-semi%: Semi-colon between blocks + ,blk-com%: Comma between blocks +% %(def) \newblock after blocks +%-------------------- +% ,blknt%: Notes preceded by period + %: (def) Notes have regular punctuation +%-------------------- + ,au-col%: Author block with colon +% %: (def) Author block normal +%-------------------- +% ,in-x%: No word `in' +% ,in-col%: Colon after `in' + %: (def) Space after `in' +%-------------------- +% ,injnl%: Add `in' before journal name + %: (def) No `in' before journal name +%-------------------- +% ,fin-bare%: No period at end + %: (def) Period at very end +%-------------------- + ,german%: German language +% ,pp%: `Seite' abbreviated + %: (def) `Seite(n)' +%-------------------- +% ,ed%: `Herausgeber' abbreviated + %: (def) `Herausgeber' +%-------------------- +% ,abr%: Abbreviations + %: (def) No abbreviations +%-------------------- + ,ord%: Numerical editions +% %(def) Write out editions +% ,xedn%: Editions as in database +%-------------------- + %: (def) PhD as `Dissertation' +% ,ger-phd%: PhD as `Doktorarbeit +%-------------------- +% ,jabr%: Abbreviated journal names + %: (def) Full journal names +%-------------------- +% ,varand%: Use \BIBand +% ,amper%: Use ampersand + %: (def) Use word `and' +%-------------------- +% ,and-com%: Comma even with 2 authors + ,and-xcom%: No comma before `and' +% %(def) Comma before `and' +%-------------------- +% ,xand%: No `and' + %: (def) With `and' +%-------------------- + ,etal-rm%: Roman et al +% ,etal-it%: Italic et al +% %(def) Plain et al +%-------------------- +% ,em-ul%: Underlining +% ,em-x%: No italics +% ,em-it%: Use true italics + %: (def) Use emphasis +%-------------------- + ,nfss%: NFSS +% %(def) No NFSS +%-------------------- +,{% + }} +\generate{\file{scrguide-en.bst}{\MBopts}} +\endbatchfile diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.bib b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.bib new file mode 100644 index 00000000000..9a022fb01de --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.bib @@ -0,0 +1,362 @@ +% +% Bibliographie fuer den scrguide +% + +@Article{ DANTE:TK0297:MJK1, + author = {Markus Kohm}, + title = {{\KOMAScript} -- Eine Alternative zu den + Standardklassen?}, + journal = {Die \TeX nische Kom\"odie}, + year = 1996, + volume = {2}, + pages = {14--33}, + note = {{DANTE} e.\,V.} +} + +@Article{ DANTE:TK0402:MJK, + author = {Markus Kohm}, + title = {Satzspiegelkonstruktionen im Vergleich}, + journal = {Die \TeX nische Kom\"odie}, + volume = {4}, + year = 2002, + pages = {28--48}, + note = {{DANTE} e.\,V.} +} + +@Article{ DANTE:TK0203:MJK, + author = {Markus Kohm}, + title = {Moderne Briefe mit {\KOMAScript}}, + journal = {Die \TeX nische Kom\"odie}, + volume = {2}, + year = 2003, + pages = {32--51}, + note = {{DANTE} e.\,V.} +} + +@Book{ DUDEN, + author = {DUDEN}, + title = {Die deutsche Rechtschreibung}, + publisher = {DUDENVERLAG}, + year = 1996, + address = {Mannheim}, + edition = 21 +} + +@Book{ knuth:mfbook, + author = {Donald E. Knuth}, + title = {The {\MF book}}, + publisher = {Addison-Wesley Publishing Company}, + year = 1991, + address = {Reading, Mass.}, + edition = 6, + volume = {C}, + series = {Computers and Typesetting} +} + +@Book{ knuth:texbook, + author = {Donald E. Knuth}, + title = {The {\TeX book}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Reading, Mass.}, + year = 1990, + edition = {19}, + volume = {A}, + series = {Computers and Typesetting} +} + +@Book{ JTsch87, + author = {Jan Tschichold}, + title = {Ausgew{\"a}hlte Aufs{\"a}tze {\"u}ber Fragen der Gestalt des Buches und der Typographie}, + publisher = {Birkh{\"a}user Verlag}, + year = 1987, + address = {Basel}, + edition = 2 +} + +@Book{ TYPO:ErsteHilfe, + author = {Hans Peter Willberg and Friedrich Forssman}, + title = {Erste Hilfe in Typografie}, + subtitle = {Ratgeber f{\"u}r Gestaltung mit Schrift}, + publisher = {Verlag Hermann Schmidt}, + year = 2000, + address = {Mainz} +} + +@Manual{ l2kurz, + author = {Walter Schmidt and J{\"o}rg Knappen and Hubert Partl and Irene +Hyna}, + title = {{\LaTeXe}-Kurzbeschreibung}, + year = 1999, + month = apr, + url = {CTAN://info/lshort/german/} +} + +@Manual{ lshort, + author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth +Schlegl}, + title = {The Not So Short Introduction to {\LaTeXe}}, + year = 1999, + month = apr, + version = {3.7}, + url = {CTAN://info/lshort/} +} + +@Book{ latexbook, + author = {Leslie Lamport}, + title = {Das {\LaTeX -Handbuch}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Bonn, Paris {u.\,a.}}, + year = 1995 +} + +@Manual{ btxdoc, + author = {Oren Patashnik}, + title = {{Bib\TeX ing}}, + year = 1988, + month = feb, + url = {CTAN://biblio/bibtex/distribs/doc/btxdoc.tex} +} + +@Manual{ btxhak, + author = {Oren Patashnik}, + title = {Designing {Bib\TeX} Styles}, + year = 1988, + month = feb, + url = {CTAN://biblio/bibtex/distribs/doc/btxhak.tex} +} + +@Misc{ DANTE:FAQ, + author = {Bernd Raichle and Rolf Niepraschk and Thomas Hafner}, + title = {DE-{\TeX}-/DANTE-FAQ}, + year = 2002, + month = may, + edition = {71}, + url = {http://www.dante.de/faq/de-tex-faq/} +} + +@Misc{ UK:FAQ, + editor = {Robin Fairbairns}, + title = {TeX Frequently Asked Questions on the Web}, + year = 2002, + month = may, + edition = {3.0b}, + url = {http://www.tex.ac.uk/faq/} +} + +@Misc{ latex:classes, + author = {Leslie Lamport and Frank Mittelbach and Johannes Braams}, + title = {Standard Document Classes for {\LaTeX} version 2e}, + year = 2000, + month = may, + edition = {1.4b}, + url = {CTAN://macros/latex/base/classes.dtx} +} + +@Misc{ package:adrconv, + author = {Axel Kielhorn}, + title = {adrconv}, + year = 1999, + month = nov, + edition = {1.2}, + url = {CTAN://macros/latex/contrib/adrconv/} +} + +@Misc{ url:aka, + author = {Axel Kielhorn}, + title = {{\LaTeX} page}, + url = {http://www-public.tu-bs.de:8080/~i0080108/latex.html} +} + +@Misc{ latex:clsguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} for class and package writers}, + year = 1999, + month = sep, + url = {CTAN://macros/latex/doc/clsguide.pdf} +} + +@Misc{ latex:usrguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} for authors}, + year = 1999, + month = sep, + url = {CTAN://macros/latex/doc/usrguide.pdf} +} + +@Misc{ latex:fntguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} font selection}, + year = 2000, + month = jan, + url = {CTAN://macros/latex/doc/fntguide.pdf} +} + +@Misc{ package:setspace, + author = {Geoffrey Tobin}, + title = {{\Package{setspace}} {\LaTeX} package}, + year = 2000, + month = dec, + edition = {6.7}, + url = {CTAN://macros/latex/contrib/setspace/} +} + +@Misc{ package:geometry, + author = {Hideo Umeki}, + title = {The {\Package{geometry}} package}, + year = 2000, + month = jun, + edition = {2.3}, + url = {CTAN://macros/latex/contrib/geometry/} +} + +@Misc{ package:german, + author = {Bernd Raichle}, + title = {{\Package{german}} package}, + year = 1998, + month = jul, + edition = {2.5e}, + url = {CTAN://language/german/} +} + +@Misc{ package:ngerman, + author = {Bernd Raichle}, + title = {{\Package{ngerman}} package}, + year = 1998, + month = jul, + edition = {2.5e}, + url = {CTAN://language/german/} +} + +@Misc{ package:graphics, + author = {David P. Carlisle}, + title = {Packages in the `graphics' bundle}, + year = 1999, + month = feb, + url = {CTAN://macros/latex/required/graphics/} +} + +@Misc{ package:multicol, + author = {Frank Mittelbach}, + title = {An environment for multicolumn output}, + year = 2000, + month = jul, + edition = {1.5z}, + url = {CTAN://macros/latex/required/tools/} +} + +@Misc{ package:ifthen, + author = {David Carlisle}, + title = {The \textsf{ifthen} package}, + year = 1999, + month = sep, + edition = {1.1b}, + url = {CTAN://macros/latex/base/} +} + +@Misc{ package:french, + author = {Bernard Gaulle}, + title = {Les distributions de fichiers de francisation pour LaTeX}, + year = 2003, + month = dec, + edition = {5,80}, + url = {CTAN://language/french/} +} + +@Misc{ package:babel, + author = {Johannes Braams}, + title = {Babel, a multilangual package for use with \LaTeX's standard +document classes}, + year = 2001, + month = feb, + edition = {3.7}, + url = {CTAN://macros/latex/required/babel/} +} + +@Misc{ package:extsizes, + author = {James Kilfiger}, + title = {{\Package{extsizes}}, a non standard \LaTeX-package}, + year = 1999, + month = nov, + edition = {1.4a}, + url = {CTAN://macros/latex/contrib/extsizes/} +} + +@Misc{ package:natbib, + author = {Patrick W. Daly}, + title = {Natural Sciences Citations an References}, + year = 1999, + month = may, + edition = {7.0}, + url = {CTAN://macros/latex/contrib/natbib/} +} + +@Misc{ package:fancyhdr, + author = {Piet van Oostrum}, + title = {Page layout in \LaTeX}, + year = 2000, + month = oct, + edition = {2.0}, + url = {CTAN://macros/latex/contrib/fancyhdr/} +} + +@Misc{ package:topcapt, + author = {Robin Fairbairns}, + title = {topcapt.sty}, + year = 1999, + month = mar, + edition = {1.1a}, + url = {CTAN://macros/latex/contrib/misc/topcapt.sty} +} + +@Misc{ package:caption2, + author = {Harald Axel Sommerfeldt}, + title = {caption package}, + year = 1995, + month = oct, + edition = {2.0(BETA)}, + url = {CTAN://macros/latex/contrib/caption/} +} + +@Misc{ package:hyperref, + author = {Sebastian Rahtz}, + title = {Hypertext marks in {\LaTeX}: the \textsf{hyperref} package}, + year = 2001, + month = feb, + edition = {6.71c}, + url = {CTAN://macros/latex/contrib/hyperref/} +} + +@Misc{ package:float, + author = {Anselm Lingnau}, + title = {An Improved Environment for Floats}, + year = 2001, + month = jul, + edition = {1.2e}, + url = {CTAN://macros/latex/contrib/float/} +} + +@Misc{ package:longtable, + author = {David Carlise}, + title = {The \textsf{longtable} package}, + year = 1998, + month = may, + edition = {4.09}, + url = {CTAN://macros/latex/required/tools/} +} + +@Misc{ package:ragged2e, + author = {Martin Schr{\"o}der}, + title = {The \textsf{Ragged2e}-package}, + year = 2003, + month = jan, + edition = {2.00}, + url = {CTAN://macros/latex/contrib/ms/} +} + +@Misc{ homepage, + key = {KDP}, + title = {The \KOMAScript{} Documentation Project}, + url = {http://koma-script.net.tf} +} + +% end of file `scrguide.bib' diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.gst b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.gst new file mode 100644 index 00000000000..d00586a733c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.gst @@ -0,0 +1,33 @@ +% MakeIndex-Style fuer die Aenderungsliste der KOMA-Script-Anleitung +% Dies basiert auf "scrguide.ist" +% Aenderungen: +% 2000-06-10 MK: encap wieder auf '|' geaendert, damit hyperref +% problemlos funktioniert. +% 2001-08-11 MK: die Ueberschrift "Symbols" wird unterdrueckt. +% +% Aufruf: +% makeind(e)x -g -r -s scrguide.gst scrguide.glo -oscrguide.chn +% + +level '>' +actual '=' +encap '|' +quote '~' +% +% ein 'small'er Index macht sich irgendwie besser und spart Papier +preamble "\\begin{thechangelist}\n" +postamble "\n\\end{thechangelist}\n" +% +% und Punkte sind sowieso immer gut (es sei denn, sie liegen in Flensburg) +delim_0 "~\\dotfill~" +delim_1 "~\\dotfill~" +delim_2 "~\\dotfill~" +% +% Bitte keine Indexbuchstaben +headings_flag 0 +% +% Wir verwenden ein anderes Schluesselwort +keyword "\\glossaryentry" +% +% Ende der Datei `scrguide.gst' + diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.ist b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.ist new file mode 100644 index 00000000000..2a415626b24 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.ist @@ -0,0 +1,32 @@ +% MakeIndex-Style fuer die KOMA-Script-Anleitung +% Dies ist auf meinen Mist gewachsen (Harald Sommerfeldt) +% Aenderungen: +% 2000-06-10 MK: encap wieder auf '|' geaendert, damit hyperref +% problemlos funktioniert. +% 2001-08-11 MK: die Ueberschrift "Symbols" wird unterdrueckt. +% +% Aufruf: +% makeind(e)x -g -r -s scrguide.ist scrguide.idx +% + +level '>' +actual '=' +encap '|' +quote '~' +% +% ein 'small'er Index macht sich irgendwie besser und spart Papier +preamble "\\begin{theindex}\\small\n" +postamble "\n\\end{theindex}\n" +% +% und Punkte sind sowieso immer gut (es sei denn, sie liegen in Flensburg) +delim_0 "\\ \\hspace{0pt plus 1fil}\\penalty0\\null\\nobreak\\dotfill~" +delim_1 "~\\dotfill\\penalty0\\ " +delim_2 "~\\dotfill\\penalty0\\ " +% +% fehlen nur noch die Indexbuchstaben zu unserem Gl"uck +heading_prefix "\\indexsection{" +heading_suffix "}\n" +headings_flag 1 +symhead_positive "" +% +% Ende der Datei `scrguide.ist' diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.mbs b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.mbs new file mode 100644 index 00000000000..a9041ed07c0 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide.mbs @@ -0,0 +1,145 @@ +%\iffalse THIS IS A META COMMENT +% File: scrguide.mbs +% Copyright 2001 Markus Kohm +% E-mail: markus.kohm@gmx.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is part of the KOMA-Script bundle, +%==================================================================== +% A Journal Definition File for extra journals +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % Begin module: +%\fi + % \ProvidesFile{scrguide.mbs}[2001/03/22 0.1] +%\iffalse +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{scrguide.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \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} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{0.1}{2001/03/22}{Initial contributed version} +% +% \pagestyle{myheadings} +% \markboth{Markus Kohm}{Extra Journal Names} +% +% \title{{\bfseries Extra Journal Definition File}\\ +% for master bibliographic style files} +% +% \author{Markus Kohm} +% +% \GetFileInfo{scrguide.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% +% This file adds a list of preprogrammed extra journal names to +% bibliographic style files, in both full and abbreviated versions. +% These defined journal names will be added to those in the main master +% bibliography style file. +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains support for +% external definition files. +% % +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information. +% +% A journal-names files should contain at most only one option, \texttt{jabr}. +% This is because \texttt{merlin} version~3.5 can now handle several +% journal-name files, but does not look into them for the options, but +% rather asks for \texttt{jabr} from the main file. For compatibility with +% older versions, the option menu must be kept here. +% +% \begin{macrocode} +%<*options> +\mes{^^JEXTRA JOURNAL NAMES:} +\optdef{*}{}{Full extra journal names}{} +\optdef{a}{jabr}{Abbreviate extra names}{for journals} +\getans +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options> +%<*jabr> +MACRO{DTK}{"Die \TeX\-nische Ko\-m\^^b{o}\-die"} +MACRO{TUGboat}{"TUGboat"} +MACRO{TTN}{"\TeX{} and TUG News"} +MACRO{KOMAScript}{\KOMAScript} +% +% + % End module: scrguide.mbs +% \end{macrocode} +% \Finale diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide2.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide2.tex new file mode 100644 index 00000000000..3c65a16c78c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/english/scrguide2.tex @@ -0,0 +1,1081 @@ +\ProvidesFile{scrguide2.tex}[2004/09/22 KOMA-Script Anleitung/Manual] +\newcommand*{\mainfilename}{scrguide2.tex} +% ============================================================================ +% scrguide2.tex +% Copyright (c) 2001-2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% scrclass2.tex +% Copyright (c) 2001-2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: Hauptdokument +% Authors: Markus Kohm (MJK) +% Contents: Alle Definitionen sowie das Grundgeruest des Dokuments. +% Languages: English, Deutsch +% Characterset of comments: +% US-ASCII +% + +% ---------------------------------------------------------------------------- +% Predefinition +% Vorabdefinition +% ---------------------------------------------------------------------------- +\newcommand*{\thisfilename}{\mainfilename} + +% Date of the newest file will become docdate. +\newcommand{\OrigProvidesFile}{} +\let\OrigProvidesFile\ProvidesFile +\makeatletter +\newcommand*{\@SplitDate}{} +\def\@SplitDate#1/#2/#3 #4\eol{% + \def\thisisodate{#1-#2-#3}% + \count0=#1#2#3\relax + \ifnum \count0>\maxdate\relax + \xdef\maxdate{\the\count0}% + \xdef\docdate{\thisisodate} + \fi + \immediate\write\@auxout{% + \string\gdef\string\maxdate{\maxdate}% + \string\gdef\string\docdate{\docdate} + }% +} +\renewcommand*{\ProvidesFile}[1]{% + \renewcommand*{\thisfilename}{#1}% + \OrigProvidesFile{#1}% +} +\newcommand*{\SplitFileName}{} +\def\SplitFileName#1.#2\eol{\def\@tempa{#1}\def\@tempb{#2}}% +\def\@providesfile#1[#2]{% + \wlog{File: #1 #2}% + \edef\@tempa{#1}% + \expandafter\xdef\csname ver@\@tempa\endcsname{#2}% + \expandafter\SplitFileName\@tempa\eol + \def\@tempa{tex}\ifx\@tempa\@tempb + \edef\@tempa{\csname ver@\thisfilename\endcsname}% + \expandafter\@SplitDate\@tempa\eol + \fi + \endgroup +} +\AtBeginDocument{% + \renewcommand*{\thisfilename}{\mainfilename}% + {% + \edef\@tempa{\csname ver@\thisfilename\endcsname}% + \expandafter\@SplitDate\@tempa\eol + }% +} +\makeatother +\newcommand*{\docdate}{\AtEndDocument{% + \typeout{Document Warning: Rerun to get \string\docdate\space right!}}} +\newcommand*{\maxdate}{0} + +% ---------------------------------------------------------------------------- +% Language dependencies +% Sprachabhaengigkeiten + +% The LaTeX names of the supported languages +% Die LaTeX namen der unterstuetzen Sprachen +\providecommand{\NameGerman}{ngerman}% Neue Deutsche Rechtschreibung +\providecommand{\NameEnglish}{english} + +% Primary language is german +% Die Primaere Dokumentation wird auf deutsch erstellt +\ifx\UseLanguage\undefined\let\UseLanguage\NameGerman\fi + +% Some names, if not already defined +\providecommand*{\LanguageShortcut}{} +\providecommand{\AutoRefTextFarAway}{auf } +\providecommand{\MyPrelimText}{% + Diese Dokumentation ist im Entwurfsstadium (\thisfilename: + \docdate).} +\providecommand{\SubTitleName}{ein wandelbares \LaTeXe{}-Paket} +\providecommand{\ExampleName}{Beispiel} +\providecommand{\ClassName}{Klasse} +\providecommand{\PackageName}{Paket} +\providecommand{\EnvironmentName}{Umgebung} +\providecommand{\OptionName}{Option} +\providecommand{\MacroName}{Befehl} +\providecommand{\CounterName}{Z\"ahler} +\providecommand{\LengthName}{L\"ange} +\providecommand{\PseudoPrefix}{Pseudo-} +\providecommand{\PLengthName}{\PseudoPrefix\LengthName} +\providecommand{\VariableName}{Variable} +\providecommand{\PagestyleName}{Seitenstil} +\providecommand{\StyleName}{Stil} +\providecommand{\FloatstyleName}{float-\StyleName} +\providecommand{\FileName}{Datei} +\providecommand{\TitleText}{Das\ \KOMAScript-Paket} +\providecommand{\ManualName}{Anleitung} +\providecommand{\ManualFromText}{Autoren der Anleitung:} +\providecommand{\NoteName}{Notizen} +\providecommand{\FontElementName}{Element} +\providecommand{\genIndexName}{Allgemeiner Index} +\providecommand{\cmdIndexName}{Index der Befehle, Umgebungen und + Variablen} +\providecommand{\cmdIndexShortName}{Index der Befehle etc.} +\providecommand{\lenIndexName}{Index der L\"angen und Z\"ahler} +\providecommand{\lenIndexShortName}{Index der L\"angen etc.} +\providecommand{\elmIndexName}{Index der Elemente mit + M\"oglichkeit zur Schriftumschaltung} +\providecommand{\elmIndexShortName}{Index der Elemente} +\providecommand{\filIndexName}{Index der Dateien, Klassen und Pakete} +\providecommand{\filIndexShortName}{Index der Dateien etc.} +\providecommand{\optIndexName}{Index der Klassen- und + Paketoptionen} +\providecommand{\optIndexShortName}{Index der Optionen} +\providecommand{\ChangeListName}{\"Anderungsliste} +\providecommand{\LegalText}{% + Haftungsauschluss:\\ + Es wird keinerlei Haftung \"ubernommen f\"ur irgendwelche Sch\"aden, + die aus der Benutzung der Bestandteile des hier beschriebenen + Paketes resultieren. Siehe hierzu auch den Text der Datei + \File{LEGALDE.TXT}, die zwingender Bestandteil des Paketes ist.} +\providecommand{\LegalTextB}{% + Vorabversion ohne Optimierung des Seitenumbruchs\par + \vspace{\baselineskip} + Diese Anleitung ist als Bestandteil von \KOMAScript{} frei + im Sinne der \LaTeX{} Project Public License Version 1.0. Eine f\"ur + \KOMAScript{} g\"ultige deutsche \"Ubersetzung liegt \KOMAScript{} in + der Datei \File{LEGALDE.TXT} bei. Diese Anleitung -- auch in + gedruckter Form -- darf nur zusammen mit den \"ubrigen Bestandteilen + von \KOMAScript{} weitergegeben und verteilt werden. Eine Verteilung + der Anleitung unabh\"angig von den \"ubrigen Bestandteilen von + \KOMAScript{} bedarf der ausdr\"ucklichen Genehmigung der Autoren.} +\providecommand{\WhoIsWho}{% + Die folgenden Personen waren an \KOMAScript{} auf die eine oder + andere Art beteiligt: \textbf{Stefan Brill} (Korrektur), + \textbf{Christian Buss} (Korrektur), \textbf{Dr.~Engelbert Buxbaum} + (\"Ubersetzung), \textbf{Jo\~ao Canas Ferreira} (\"Ubersetzung), + \textbf{Michael Dewey} (Sprachanpassung), \textbf{Luzia Dietsche} + (Beta-Test), \textbf{Georg Grandke} (\"Ubersetzung, Korrektur), + \textbf{Ralph J. Hangleiter} (Sprachanpassung), \textbf{Henk + Jongbloets} (Sprachanpassung), \textbf{Axel Kielhorn} + (\Class{scrlettr}, \Package{addrconv}, Ideen), \textbf{Markus Kohm} + (Entwicklung, Dokumentation, Übersetzung, Support, Release), + \textbf{Torsten Kr\"uger} (Beta-Test, Korrektur, kritische Fragen, + Ideen, Motor), \textbf{Enrico Kunz} (Dokumentation, Korrektur), + \textbf{Werner Lemberg} (\"Ubersetzung), \textbf{Branka + Lon\v{c}arevi\'c} (Sprachanpassung), \textbf{Alejandro + L\'opez-Valencia} (Sprachanpassung), \textbf{Colin Marquardt} + (\"Ubersetzung), \textbf{Peter Marx} (Release), \textbf{Jens-Uwe + Morawski} (Dokumentation, \"Ubersetzung, Koordination, Korrektur, + Ideen, Motor), \textbf{Simone Naldi} (Sprachanpassung), + \textbf{Frank Neukam} (\textsc{Script} und \textsc{Script2.0}), + \textbf{Thomas Neumann} (Dokumentation, Korrektur), \textbf{Rolf + Niepraschk} (Korrektur), \textbf{Carsten Schurig} (Beta-Test), + \textbf{Axel Sommerfeldt} (Dokumentation) sowie diverse nette + Menschen, die Bugreports oder aufmunternde Mails geschrieben, + Verbesserungen und Erweiterungen gew\"unscht, beschrieben und + teilweise auch angeboten haben. Wer auch immer meint, ich habe ihn + oder sie vergessen, m\"oge sich auf der Stelle bei mir melden.} +\providecommand{\IndexPreambleText}{% + Fett hervorgehobene Zahlen geben die Seiten der Erkl\"arung zu einem + Stichwort wieder. Normal gedruckte Zahlen verweisen hingegen auf + Seiten mit zus\"atzlichen Informationen zum jeweiligen Stichwort.} +\providecommand{\ChangeListPreambleText}{% + Sie finden im Folgenden eine Auf\/listung aller wesentlichen + \"Anderungen der Benutzerschnittstelle im \KOMAScript-Paket der + neueren Zeit. Die Liste ist sortiert nach Klassen beziehungsweise + Paketen und Versionen. Zu jeder Version ist dann jeweils angegeben, + auf welchen Seiten dieser Dokumentation die \"Anderungen zu finden + sind. Auf den entsprechenden Seiten finden Sie dazu passende + Randmarkierungen.} +\providecommand{\CTANserver}{ftp.dante.de} +\providecommand{\BibPreambleText}{% + Sie finden im Folgenden eine ganze Reihe von Literaturangaben. Auf + all diese wird im Text verwiesen. In vielen F\"allen handelt es sich + um Dokumente oder ganze Verzeichnisse, die im Internet verf\"ugbar + sind. In diesen F\"allen ist statt eines Verlages eine URL angegeben. + Wird auf ein \LaTeX-Paket verwiesen, so findet der Verweis in der + Regel in der Form \glqq \url{CTAN://}\emph{Verweis}\grqq{} statt. + Der Pr\"afix \glqq \url{CTAN://}\grqq{} steht dabei f\"ur das + \TeX-Archiv eines jeden CTAN-Servers oder -Spiegels. Sie k\"onnen + den Pr\"afix beispielsweise durch + \url{ftp://\CTANserver/tex-archive/} ersetzen. Bei + \LaTeX-Paketen ist au\ss erdem zu beachten, dass versucht wurde, + die Version anzugeben, auf die im Text Bezug genommen wurde. Bei + einigen Paketen war es mehr ein Ratespiel, eine einheitliche + Versionsnummer und ein Erscheinungsdatum zu finden. Auch muss die + angegebene Version nicht immer die neueste verf\"ugbare Version sein. + Wenn Sie sich ein Paket neu besorgen und installieren, sollten Sie + jedoch zun\"achst immer die aktuelle Version ausprobieren. Bevor Sie + ein Dokument oder Paket von einem Server herunterladen, sollten Sie + au\ss erdem \"uberpr\"ufen, ob es sich nicht bereits auf Ihrem + Rechner befindet.} +% >>> BEGIN layout.tex TEXT-SAMPLES, german +% CHANGES ONLY BY THE AUTHOR OF layout.tex +% (1) example text command; the default definition (50) returns +% the whole text. +\providecommand{\XmpText}[1][50]{% + \ifnum #1<51 + Dieser Blindtext wird gerade von 130 Millionen Rezeptoren + Ihrer Netzhaut erfasst. + \ifnum #1>1 + Die Zellen werden dadurch in einen Erregungszustand versetzt, + \ifnum #1>2 + der sich vom Sehnerv in den hinteren Teil Ihres + \ifnum #1>3 + Gehirns ausbreitet. + Von dort aus \"ubertr\"agt sich die Erregung in + Sekundenbruchteilen auch in andere Bereiche Ihres + Gro\ss hirns. + Ihr Stirnlappen wird stimuliert. + Von dort aus gehen jetzt Willensimpulse aus, die + \fi\fi\fi + \fi + \ifnum #1>49 + Ihr zentrales Nervensystem in konkrete Handlungen umsetzt. + Kopf und Augen reagieren bereits. + Sie folgen dem Text, nehmen die darin enthaltenen Informationen + auf und leiten diese \"uber den Sehnerv weiter. + \fi} +% +% (2) the next two commands are language-dependent, since +% in some languages additional commands may required +\providecommand{\XmpTopText}{\XmpText[3]} +\providecommand{\XmpBotText}{\XmpText[2]} +% (3) Randnotizen/margin notes +\providecommand{\XmpMarginTextA}{Netzhaut} +\providecommand{\XmpMarginTextB}{(\textit{Retina})} +% (4) scrpage Markierungen/marks +\providecommand{\ScrpageMark}{\marginline{\small\sffamily\slshape scrpage}} +\providecommand{\ScrpageNote}{\marginline{\small\sffamily\slshape scrpage!}} +% +% <<< END layout.tex TEXT-SAMPLES + +% Laden der Kapitel +% Load chapters +\providecommand*{\LoadChapters}{% + \include{einleit} % Einleitung + \include{satzspgl} % Der Satzspiegel mit typearea + \include{hauptcls} % Die Hauptklassen scrbook, scrreprt, scrartcl + \include{layout} % Kopf- und Fusszeilen mit scrpage(2) + \include{datmzeit} % scrdate und scrtime + \include{brief} % Die scrlettr Klasse + \include{adressen} % scraddr + \include{adrkonv} % Adresskonvertierung mit addrconv + \include{datladen} % Paketabh"angigkeiten mit scrlfile beherrschen +} + +% End of language dependencies +% Ende der Sprachabhaengigkeiten +% ---------------------------------------------------------------------------- + +% ---------------------------------------------------------------------------- +% Class and packages / Klasse und Pakete +% You should only use classes and packages from KOMA-Script or base or tools. +% Everything else should be done writing your own macros (see below). +% Nach Moeglichkeit sollten nur solche Klassen und Pakete verwendet werden, +% die entweder zu KOMA-Script oder zu base oder tools gehoeren. Alles andere +% sollte notfalls durch eigene Makrodefinitionen (s. u.) abgedeckt werden. + +\documentclass[% + \UseLanguage,% language setting, used by many packages + pagesize,% write pagesize to DVI or PDF + 10pt,% use this font size + a5paper,% use ISO A5 + headinclude,% head is par of type area + 1headlines,% need only one line for the head + DIV15,% same value as with headexclude +% DIVcalc,% typearea has to calculate DIV for good linewidth + bibtotoc,% write bibliography-chapter to table of contents + idxtotoc,% write index-chapter to table of contents + cleardoubleplain,% \cleardoublepage generates pages with pagestyle plain + smallheadings,% use small version of headings (better at A5) + listsleft,% improved list of tables + final% final version +% draft% draft version +]{scrbook} + +\usepackage[latin1]{inputenc} +\usepackage{% + scrdate,scrtime,% need by the chapter about them + varioref,% posibility of better references + ae,% hope we can change this soon + babel,% we use different languages + graphicx,% +% array,% +% longtable,% + makeidx% must be to create the index +} + +\begingroup + \def\KOMAScript{KOMA-Script} + \xdef\PDFTitleText{\TitleText} +\endgroup +\ifx\BUCH\undefined\else\InputIfFileExists{scrbook}{}{}\fi +\ifpdfoutput{% + \usepackage[pdftex,bookmarks,% + pdfcreator={LaTeX2e, KOMA-Script (scrbook), hyperref},% + pdfkeywords={TeX LaTeX KOMA-Script scrbook scrreprt + scrartcl scrlttr2 typearea scrtime scrdate + scraddr scrpage scrpage2 scrlfile},% + pdftitle=\PDFTitleText]{hyperref} +}{% Make shure, we're using hypertex not dvips + \usepackage[hypertex,bookmarks]{hyperref} +} + +\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} + +% Add \autopageref to hyperref: +\makeatletter +\DeclareRobustCommand{\autopageref}[1]{% + \expandafter\auto@setpageref\csname r@#1\endcsname + \@secondoffive + {#1}% +} + +\newcommand*{\auto@setpageref}[3]{% + \@safe@activestrue + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \def\@currentHtag{\pageautorefname~}% + \hyper@@link + {\expandafter\@fifthoffive#1}% + {\expandafter\@fourthoffive#1\@empty\@empty}% +% {\@currentHtag\expandafter#2#1\@empty\@empty\null}% +% {\expandafter\@fifthoffive#1}% +% {page.\expandafter\@secondoffive#1\@empty\@empty}% + {\@currentHtag\expandafter#2#1\@empty\@empty\null}% + \fi + \@safe@activesfalse +} + +\AtBeginDocument{\providecommand*{\pageautorefname}{\pagename}} + +\def\test@reftype#1.#2\\{% + \test@@reftype#1*\\% +} +\def\test@@reftype#1*#2\\{% + \@ifundefined{#1autorefname}{% + \@ifundefined{#1name}{% + \def\@currentHtag{}% + \@latex@warning{no tag name for #1 at \the\inputlineno}% + }{% + \def\@currentHtag{\csname#1name\endcsname~}% + }% + }{% + \def\@currentHtag{\csname#1autorefname\endcsname~}% + }% +} +\makeatother + +% autoname \subsection, \subsubsection ... same like \section +\providecommand*{\autorefnametillsection}{% + \let\subsectionautorefname=\sectionautorefname + \let\subsubsectionautorefname=\sectionautorefname + \let\paragraphautorefname=\sectionrefname + \let\subparagraphautorefname=\sectionrefname + % shouldn't be here, but it is easy this way: + \def\autoreftextfaraway##1{\AutoRefTextFarAway~\autopageref{##1}}% +} +\makeatletter +\addto\captionsenglish{\autorefnametillsection} +\addto\captionsngerman{\autorefnametillsection} +\AtBeginDocument{\autorefnametillsection} +\makeatother + +% Add \autovref to varioref: +\makeatletter +\DeclareRobustCommand\autovref{\@ifstar + {\let\vref@space\relax\autovr@f}% + {\let\vref@space\nobreakspace\autovr@f}} +\def\autovr@f#1{{% + \let\reftextfaraway\autoreftextfaraway + \leavevmode\unskip\vref@space + \autoref{#1}% + \@vpageref[\unskip]{#1}% +}} +\makeatother + +% Make CTAN:// be an alias of ftp://\CTANserver/tex-archive/ +\makeatletter +\def\url@#1{\expandafter\url@@#1\@nil} +\def\url@@#1://#2\@nil{% + \def\@tempa{#1}\def\@tempb{CTAN}\ifx\@tempa\@tempb + \hyper@linkurl{\Hurl{#1://#2}}{ftp://\CTANserver/tex-archive/#2}% + \else + \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}% + \fi +} +\makeatother + +\ifx\UseLanguage\NameGerman +% hyphenation +% Trennung + \hyphenation{% + Stan-dard-an-wei-sung Stan-dard-an-wei-sung-en + Da-tei-na-me Da-tei-na-men Da-tei-na-mens + Pa-pier-rand Pa-pier-ran-des + } +\fi + +\ifdim\overfullrule>0pt + \usepackage{showkeys,prelim2e}% Draft only / nur im Entwurfsstadium + % Hinweis: Mit showkeys funktioniert + % der haengende Einzug (z. B. + % in Bildunterschriften) nicht! + + \renewcommand{\PrelimText}{% + \textnormal{% + \footnotesize% + \PrelimTextStyle% + \PrelimWords{}}% + } + \renewcommand{\PrelimTextStyle}{\sffamily\itshape} + \renewcommand{\PrelimWords}{\MyPrelimText} +% +\fi + +\usepackage{mparhack} +% End of class and packages. +% Ende der Klasse und Pakete. +% ---------------------------------------------------------------------------- + +% ---------------------------------------------------------------------------- +% The markup commands of the hole document. +% Die im Gesamtdokument verwendeten Markup-Anweisungen. +% +% REMARK: Normaly you should not pack as much markup commands and +% definitions into the preamble. And you never should +% redefine or use internal macros of LaTeX kernel, classes or +% packages. It would be better to write your own package or +% class instead of. +% There is only one reason not to do so at this manual: We +% wanted to avoid disappointment of the usual user, having +% one more class or package at the bundle only used by this +% manual. +% Many of the following macros are stolen from other +% packages or classes, which where made to document packages +% and classes +% +% HINWEIS: Normalerweise sollte man die Preambel eines Dokuments nicht derart +% Markup-Anweisungen und Definitionen vollstopfen. Schon gar nicht +% sollte man interne Makros definieren oder verwenden. Stattdessen +% ist es sinnvoller, ein eigenes Paket (engl. package) oder eine +% eigene Klasse (engl. class) hierfuer zu erstellen. +% Im Falle dieser Anleitung wurde dies nur aus einem einzigen Grund +% nicht getan: Der reine Anwender sollte nicht dadurch verwirrt +% werden, dass eine weitere Klasse oder ein weiteres Paket existiert, +% das jedoch nicht dokumentiert ist. +% Diverse Makros, die im folgenden definiert sind, entstammen anderen +% Paketen und Klassen, die speziell fuer die Dokumentation von +% Paketen und Klassen erstellt wurden. + +% New, only defined for scrguide: +% Neu, fuer den scrguide: + +\newcommand*{\textsfrm}[1]{% + \begingroup + \edef\@tempa{\sfdefault}% + \ifx\@tempa\f@family\textrm{#1}\else\textsf{#1}\fi + \endgroup +} + +\DeclareRobustCommand*{\Class}[1]{\textsfrm{#1}} +\DeclareRobustCommand*{\Package}[1]{\textsfrm{#1}} +\DeclareRobustCommand*{\File}[1]{\texttt{#1}} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptII}{\textsc{Script-2}} +\ifx\KOMAScript\undefined% + \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +\fi + +\makeatletter +\DeclareRobustCommand{\BibTeX}{B\kern-.05em% + % Der folgende Hack stammt aus der Definition des + % Makros \LaTeX, siehe Datei `ltlogos.dtx' der + % LaTeX2e-Verteilung. + \hbox{$\m@th$% %% force math size calculations + \csname S@\f@size\endcsname \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + I\kern-.025emB}% + \kern-.08em% + \-\TeX% +} +\makeatother + +\newcommand*{\Var}[1]{\ensuremath{\textit{#1}}} +\newcommand*{\Const}[1]{\ensuremath{\textrm{#1}}} +\newcommand*{\Unit}[1]{\ensuremath{\,\textrm{#1}}} + +\DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\Option}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Environment}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Counter}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Length}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\PLength}[1]{\mbox{\PValue{#1}}} +\DeclareRobustCommand*{\Variable}[1]{\mbox{\PValue{#1}}} +\DeclareRobustCommand*{\FontElement}[1]{\PValue{#1}}% use \mbox? + +\DeclareRobustCommand*{\EMail}[1]{\textless #1\textgreater} +\DeclareRobustCommand*{\TextEMail}[1]{{\small\EMail{#1}}} + +% - parameter and argument in different cases: +% - Verschiedene Auftreten von Parametern/Argumenten: +\DeclareRobustCommand*{\PName}[1]{\mbox{\textit{#1}}}% Parametername +\DeclareRobustCommand*{\PValue}[1]{\texttt{#1}}% Parameterwert + +\DeclareRobustCommand*{\Parameter}[1]{% Parameter/Argument + \texttt{\{}\PName{#1}\texttt{\}}} +\DeclareRobustCommand*{\OParameter}[1]{% Parameter/Argument optional + \texttt{[%] + }\PName{#1}\texttt{%[ + ]}} +\DeclareRobustCommand*{\AParameter}[1]{% Parameter/Argument alternative + \texttt{(%) + }\PName{#1}\texttt{%( + )}} +\DeclareRobustCommand*{\PParameter}[1]{% Parameter/Argument as/als + % part of commands / Befehlsbestandteil + \texttt{\{#1\}}} + +\newenvironment{Example}{% + \begin{labeling}{{\sectfont\ExampleName:\ }} + \item[{\sectfont\ExampleName:\ }]} + {\end{labeling}} + +\makeatletter +\newsavebox\ShowOutputBox +\newenvironment{ShowOutput}[1][0pt]{\par + \begin{lrbox}{\ShowOutputBox}% + \begin{minipage}{.9\linewidth}% + \vspace*{\baselineskip}\vspace{-#1}% +}{% + \end{minipage} + \end{lrbox}% + \setlength{\unitlength}{1pt}% + \setlength{\@tempdima}{\ht\ShowOutputBox}% + \addtolength{\@tempdima}{\dp\ShowOutputBox}% + \setlength{\@tempdima}{.75\@tempdima}% + \edef\MidY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{5pt}% + \edef\HighY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{-10pt}% + \edef\LowY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{5pt}% + \setlength{\@tempdima}{.9\linewidth}\edef\QuadIV{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.675\linewidth}\edef\QuadIII{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.45\linewidth}\edef\QuadII{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.225\linewidth}\edef\QuadI{\strip@pt\@tempdima}% + \centering + \begin{picture}(\QuadIV,\MidY) + \qbezier(0,\MidY)(\QuadI,\HighY)(\QuadII,\MidY)% + \qbezier(\QuadII,\MidY)(\QuadIII,\LowY)(\QuadIV,\MidY) + \put(0,0){\makebox(\QuadIV,\MidY)[c]{% + \scalebox{.75}{\usebox{\ShowOutputBox}}% + }% + }% + \put(0,-5){\line(0,1){\HighY}}% + \put(\QuadIV,-5){\line(0,1){\HighY}}% + \qbezier(0,-5)(\QuadI,0)(\QuadII,-5)% + \qbezier(\QuadII,-5)(\QuadIII,-10)(\QuadIV,-5) + \end{picture}\par + \vspace{1ex plus 1ex minus .5ex}% +} +\makeatother + +\newenvironment{Explain}{% + \small\sffamily +}{\normalcolor\par} + + +% Aenderungsmarkierungen f"ur Dinge, die ab einer bestimmten Version +% neu sind oder geaendert wurden. Rein textuelle "Anderungen werden +% hier nicht erfasst. +\providecommand*{\ChangedAt}[2]{% + \marginline{\footnotesize\fbox{\strut#1}}% + \glossary{#2>#1|indexrm}% +} +\newcommand*{\OnlyAt}[1]{% + \marginline{\def\and{,\\}\footnotesize #1}% +} +\makeglossary +\makeatletter +\newcommand\printchangelist{\@input@{\jobname.chn}} +\newenvironment{thechangelist} + {\setchapterpreamble{\ChangeListPreambleText\par\bigskip} + \addchap{\ChangeListName} + \markboth{\ChangeListName}{\ChangeListName} + \setlength{\parindent}{0pt} + \setlength{\parskip}{0pt plus .3pt} + \def\and{,\ } + \let\item\@idxitem} + {\clearpage} +\makeatother + +% >>> BEGIN layout.tex EXAMPLE-COMMANDS +% The commands can also be used in other parts of the guide, +% in order make some examples better readable. +% CHANGES ONLY BY THE AUTHOR OF layout.tex +% +\newenvironment{XmpTopPage} + {\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,35)% + \thinlines + \qbezier(0,5)(25,7)(50,5)\qbezier(50,5)(75,3)(100,5) + \put(0,5){\line(0,1){30}} + \thicklines + \put(100,5){\line(0,1){30}}\put(0,35){\line(1,0){100}} + \small}{\end{picture}\end{center}\vspace{-1.5\baselineskip}} +% +\newenvironment{XmpBotPage} + {\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,37)% + \thinlines + \qbezier(0,35)(25,37)(50,35)\qbezier(50,35)(75,33)(100,35) + \put(0,5){\line(0,1){30}} + \thicklines + \put(100,5){\line(0,1){30}}\put(0,5){\line(1,0){100}} + \small}{\end{picture}\end{center}\vspace{-1.5\baselineskip}} +% +\newcommand{\XmpSetText}[2][\XmpText]{% + \put(#2){\makebox(0,0)[tl]{\parbox{70mm}{#1}}}} +% +\newcommand{\XmpMarginNote}[1]{% + \put(#1){\makebox(0,5)[tl]{\scriptsize\XmpMarginTextA}} + \put(#1){\makebox(0,5)[bl]{\scriptsize\XmpMarginTextB}}} +% +\newcommand{\XmpRule}[2]{\put(#1){\line(1,0){#2}}} +% +\newcommand{\XmpHeading}[3][\KOMAScript\hfill 3]{% + \put(#2){\makebox(#3,0)[l]{#1}}} +% +% <<< END layout.tex EXAMPLE-COMMANDS + + +% Change defaults of KOMA-Script +% Voreinstellungen von KOMA-Script aendern: +\renewcommand*{\sectfont}{\normalfont\normalcolor\sffamily\bfseries} +\renewcommand*{\capfont}{\normalfont\normalcolor\small} +\renewcommand*{\caplabelfont}{\normalfont\normalcolor\sffamily\bfseries} + +% Bibliography +\newcommand*{\urlprefix}{} + +% From ltxguide.cls with some modifications: +% - Load config file, if found. This is some early, but must be to +% avoid problems with redefinitions at ltxguide.cfg. +% Aus ltxguide.cls uebernommen und teilweise modifiziert: +% - Konfigurationsdatei laden, falls vorhanden. Dies geschieht genaugenommen +% wesentlich zu frueh. Allerdings koennte es sonst zu erheblichen Problemen +% kommen, falls in ltxguide.cfg kritische Redefinitionen vorgenommen werden. +\InputIfFileExists{ltxguide.cfg}{\typeout{``ltxguide.cfg'' loaded.}}{} + +% - macros to declare macros, environments and options. +% - Makros zur Deklaration von Makros, Umgebungen, Optionen. +\newenvironment{Declaration}% + {\par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \vspace{-\baselineskip}% + \noindent\hspace{-1em}% + \begin{tabular}{|l|}\hline\ignorespaces}% + {\\\hline\end{tabular}\nobreak\par\nobreak + \vspace{1.5\baselineskip}\vspace{-\baselineskip}% + \noindent\ignorespacesafterend} + +\iffalse% experimental (needs array-package) +\renewenvironment{Declaration}% + {\par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \vspace{-\baselineskip}% + \noindent +% \ifthispageodd{% +% \hspace*{\fill}% +% \begin{tabular}{@{}r!{\vrule width 1.2pt}} +% \multicolumn{1}{@{}r@{\vrule width 1.2pt}} +% {\rule[2ex]{1em}{1.2pt}}\\[-2ex]\ignorespaces% +% }{% + \hspace{-1em}% + \begin{tabular}{!{\vrule width 1.2pt}l@{}} + \multicolumn{1}{@{\vrule width 1.2pt}l@{}} + {\rule[2ex]{1em}{1.2pt}}\\[-2ex]\ignorespaces% +% }% + } + {\\\end{tabular}% +% \ifthispageodd{\hspace{-1em}}{}% + \nobreak\par\nobreak + \vspace{1.5\baselineskip}\vspace{-\baselineskip}% + \noindent\ignorespacesafterend} +\fi + +% - Index: +\makeindex % Oh, yes, we want one ... +% ... or maybe more +\newif\ifusemultiindex +\IfFileExists{\jobname-gen.ind}{\usemultiindextrue}{\usemultiindexfalse} +\ifusemultiindex +\makeatletter +\usepackage{multicol} + +\newcommand*{\printmultiindex}[3][]{% + \def\indexname{#2}% + \ifx\relax#1\relax\let\index@preamble=\relax + \else\def\index@preamble{#1}% + \fi + \label{idx:#3}% + \@input@{\jobname-#3.ind}% +} +\renewenvironment{theindex}{% + \setchapterpreamble{\index@preamble} + \begin{multicols}{2}[\idx@heading\vspace{-1\baselineskip}]% + \parindent\z@ + \setlength{\parskip}{\z@ \@plus .3\p@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \let\item\@idxitem +}{% + \end{multicols}% +} + +\newcommand*{\CrossIndex}[3]{% + \Index{#1=\UseIndex{#2}\protect#1>#3=\UseIndex{#2}\SeeSign\protect#3}% +} + +\renewcommand*{\printindex}{% + \setchapterpreamble{\index@preamble}% + \addchap{\indexname}% + \let\index@preamble=\relax + \renewcommand*\idx@heading{% + \addsec{\indexname}% + \markright{\indexname}% + \ifx\index@preamble\relax + \else\index@preamble\let\index@preamble=\relax\fi + }% + \printmultiindex{\genIndexName}{gen}% + \printmultiindex[% + \CrossIndex{\MacroName}{gen}{\cmdIndexShortName}% + \CrossIndex{\EnvironmentName}{gen}{\cmdIndexShortName}% + \CrossIndex{\CounterName}{gen}{\cmdIndexShortName}% + \CrossIndex{\LengthName}{gen}{\cmdIndexShortName}% + ]{\cmdIndexName}{cmd}% + \printmultiindex[% + \CrossIndex{\LengthName}{gen}{\lenIndexShortName}% + \CrossIndex{\PLengthName}{gen}{\lenIndexShortName}% + \CrossIndex{\CounterName}{gen}{\lenIndexShortName}% + ]{\lenIndexName}{len}% + \printmultiindex[% + \CrossIndex{\FontElementName}{gen}{\elmIndexShortName}% + ]{\elmIndexName}{elm}% + \printmultiindex[% + \CrossIndex{\FileName}{gen}{\filIndexShortName}% + \CrossIndex{\PackageName}{gen}{\filIndexShortName}% + \CrossIndex{\ClassName}{gen}{\filIndexShortName}% + ]{\filIndexName}{fil}% + \printmultiindex[% + \CrossIndex{\OptionName}{gen}{\optIndexShortName}% + ]{\optIndexName}{opt}% +} +\makeatother +\fi + +\DeclareRobustCommand*{\SeeSign}{\ensuremath{\protect\rightarrow}~} +\newcommand*{\seeindex}[2]{\pageref{idx:#1}} + +\newcommand*{\AddSeeIndex}[4]{% +\ifusemultiindex + \Index[seeindex{#4}]{#1=\UseIndex{#2}#1>#3=\UseIndex{#2}\SeeSign#3}% +\fi +} + +\newcommand*{\indexsection}[1]{% + \ifx\empty#1\empty\else + \hspace{0pt plus 2fil}{{\sectfont #1}}\hspace{0pt plus + 1fil}\nopagebreak + \fi +} + +\makeatletter +\newcommand*{\IndexSeeAt}[6][\relax]{% + % #1 = optional entry note (\PagestyleName) + % #2 = Entry + % #3 = see-from-index to be used (cmd) + % #4 = see-to-index (gen) + % #5 = see-to-index name (\genIndexShortName) + % #6 = output command (\Macro) + \ifusemultiindex +% \edef\@tempa{idx@f@\string#1.\string#2.#3.#4}% + \edef\@tempa{idx@f@\string#2.#3.#4}% + \expandafter\ifx\csname \@tempa\endcsname\relax + \expandafter\gdef\csname \@tempa\endcsname{}% +% \ifx\relax#1\relax + \Index[seeindex{#4}]{% + #2=\UseIndex{#3}#6{#2}>#5=\UseIndex{#3}\SeeSign\protect#5}% +% \else +% \Index[seeindex{#4}]{% +% #2 (#1)=\UseIndex{#3}#6{#2} (\protect#1)>% +% #5=\UseIndex{#3}\SeeSign\protect#5}% +% \fi + \fi + \fi +} +\makeatother + +\newcommand*{\Index}[2][indexother]{\index{#2|#1}} +\newcommand*{\BeginIndex}[3][indexmain]{% + \expandafter\ifx\csname Index#2\endcsname\relax + \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% + Document scrguide Error: \string\BeginIndex\space with unknown + index% + }{Check the \string\BeginIndex-command or add a new index type + ``#2''.}{% + See scrguide2.tex for more information.}% + \else + \csname Index#2\endcsname[(%) + #1]{#3}% + \fi + \ignorespaces} +\newcommand*{\EndIndex}[3][indexmain]{% + \expandafter\ifx\csname Index#2\endcsname\relax + \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% + Document scrguide Error: \string\EndIndex\space with unknown + index% + }{Check the \string\BeginIndex-command or add a new index type + ``#2''.}{% + See scrguide2.tex for more information.}% + \else + \csname Index#2\endcsname[%( + )#1]{#3}% + \fi} + +\DeclareRobustCommand*{\UseIndex}[1]{\ignorespaces} + +\newcommand*{\DefineSingleIndex}[4][\relax]{% + % #1 = optional entry note (\MacroName) + % #2 = index macro postfix (Cmd) + % #3 = index to be used (cmd) + % #4 = output command (\Macro) + \ifx\relax#1\relax + % n + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2=\UseIndex{#3}#4{##2}}% + }% + \else + % ne + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2 (#1)=\UseIndex{#3}#4{##2} (\protect #1)}% + }% + \fi +} + +\newcommand*{\DefineDoubleIndex}[4][\relax]{% + % #1 = optional entry note (\PagestyleName) + % #2 = index macro postfix (Pagestyle) + % #3 = see-from-index to be used (cmd) + % #4 = output command (\Macro) + \ifx\relax#1\relax + % n,v + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2=\UseIndex{gen}#4{##2}}% + \IndexSeeAt{##2}{#3}{gen}{\genIndexName}{#4}% + }% + \else + % ne+nu,v + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2 (#1)=\UseIndex{gen}#4{##2} (\protect #1)}% + \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#4{##2}}% + \IndexSeeAt[#1]{##2}{#3}{gen}{\genIndexName}{#4}% + }% + \fi +} + +\newcommand*{\DefineTripleIndex}[6][\relax]{% + % #1 = optional entry note (\LengthName) + % #2 = index macro postfix (Length) + % #3 = index to be used (len) + % #4 = index name (\lenIndexShortName) + % #5 = also-from-index to be used (cmd) + % #6 = output command (\Macro) + \ifx\relax#1\relax + % v,v,n + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \IndexSeeAt{##2}{gen}{#3}{#4}{#6}% + \IndexSeeAt{##2}{#5}{#3}{#4}{#6}% + \Index[##1]{##2=\UseIndex{len}#6{##2}}% + \IndexSeeAt{##2}{#3}{gen}{\genIndexName}{#4}% + }% + \else + % v+nu,v,ne + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \IndexSeeAt[#1]{##2}{gen}{#3}{#4}{#6}% + \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#6{##2}}% + \IndexSeeAt[#1]{##2}{#5}{#3}{#4}{#6}% + \Index[##1]{##2 (#1)=\UseIndex{len}#6{##2} (\protect #1)}% + }% + \fi +} + +\DefineSingleIndex{Cmd}{cmd}{\Macro} +\DefineDoubleIndex[\PagestyleName]{Pagestyle}{cmd}{\PValue} +\DefineDoubleIndex[\FloatstyleName]{Floatstyle}{cmd}{\PValue} +\DefineTripleIndex[\CounterName]{Counter} + {len}{\lenIndexShortName}{cmd}{\Counter} +\DefineTripleIndex[\LengthName]{Length} + {len}{\lenIndexShortName}{cmd}{\Length} +\ifusemultiindex + \DefineSingleIndex[\EnvironmentName]{Env}{cmd}{\Environment} + \DefineSingleIndex{Option}{opt}{\Option} + \DefineSingleIndex[\PackageName]{Package}{fil}{\Package} + \DefineSingleIndex[\ClassName]{Class}{fil}{\Class} + \DefineSingleIndex{File}{fil}{\File} + \DefineSingleIndex[\VariableName]{Variable}{cmd}{\Variable} + \DefineSingleIndex{FontElement}{elm}{\FontElement} + \DefineSingleIndex{PLength}{len}{\PLength} +\else + \DefineDoubleIndex[\EnvironmentName]{Env}{cmd}{\Environment} + \DefineDoubleIndex{Option}{opt}{\Option} + \DefineDoubleIndex[\PackageName]{Package}{fil}{\Package} + \DefineDoubleIndex[\ClassName]{Class}{fil}{\Class} + \DefineDoubleIndex{File}{fil}{\File} + \DefineDoubleIndex[\VariableName]{Variable}{cmd}{\Variable} + \DefineDoubleIndex{FontElement}{elm}{\FontElement} + \DefineDoubleIndex{PLength}{len}{\PLength} + \iffalse + \newcommand*{\IndexPLength}[2][indexother]{% + \Index[#1]{% + \PLengthName=\protect\PLengthName>% + #2=\PLength{#2}}% + \Index[#1]{% + #2 (\PLengthName)=% + \PLength{#2}\hspace{0pt plus .1fil} \penalty100 + \protect\mbox{(\protect\PLengthName)}}} + \fi +\fi + +\newcommand*{\indexrm}[1]{\textrm{\hyperpage{#1}}} +\newcommand*{\indexother}{}\let\indexother\indexrm +\newcommand*{\indexit}[1]{\textit{\hyperpage{#1}}} +\newcommand*{\indexbf}[1]{\textbf{\hyperpage{#1}}} +\newcommand*{\indexmain}{}\let\indexmain\indexbf +\newcommand*{\indexsl}[1]{\textsl{\hyperpage{#1}}} +\newcommand*{\indexsf}[1]{\textsf{\hyperpage{#1}}} +\newcommand*{\indexsc}[1]{\textsc{\hyperpage{#1}}} +\providecommand*{\hyperpage}[1]{#1} + +% End of markup commands +% Ende der Markup Anweisungen. +% ---------------------------------------------------------------------------- + +% ---------------------------------------------------------------------------- +% We want a flushleft bibliography +% Das Literaturverzeichnis soll linksbuendig werden +% ---------------------------------------------------------------------------- +\makeatletter +\g@addto@macro\@openbib@code\raggedright +\makeatother +\setbibpreamble{\BibPreambleText\bigskip} + +\setindexpreamble{\IndexPreambleText\bigskip} + +\InputIfFileExists{koma.scrguide.overload}{}{} + +% ---------------------------------------------------------------------------- +% ??? +% Das Rahmendokument: +\begin{document} + +% - The title +% - Der Titel +\ifpdfoutput{% + \hypersetup{pdfauthor={Markus Kohm, Jens-Uwe Morawski},% + pdfsubject=\ManualName}}{} +\ifx\booktitle\undefined +\title{\TitleText} +\uppertitleback{\LegalText} +\lowertitleback{\LegalTextB} +\dedication{\sffamily\raggedright{\huge\KOMAScript\\} + \SubTitleName\\ + \vspace{5\baselineskip plus 1filll}% + \parbox{\textwidth}{\normalsize\WhoIsWho}} +\author{Frank Neukam\and Markus Kohm\and Axel Kielhorn} +\subject{\ManualName} +\publishers{\textbf{\ManualFromText}\\[1ex] + Markus Kohm\hfil% + \hfil Jens-Uwe Morawski} +\date{\docdate} +\maketitle +\else +\booktitle +\fi + +% - The lists +% - Die Verzeichnisse +\tableofcontents +%\listoffigures +\listoftables + +% - die Kapitel +% - chapters +\LoadChapters + +% - Correction after include +% - Korrektur nach include +\renewcommand*{\thisfilename}{\mainfilename} + +% - bibliography +% - Literaturverzeichnis +\bibliographystyle{scrguide% + \ifx\LanguageShortcut\empty\else-\LanguageShortcut\fi} +\bibliography{scrguide} + +% - index +% - Index +\makeatletter +\ifx\nochangelist\undefined\printchangelist\fi +\printindex +\makeatother + +% This has to be the last thing, so wie do it at \end{document} and +% set this just before \end{document}. The use of the subparagraph +% counter is just a hack. +\AtEndDocument{% + \newcommand\QuadPages{% + \setcounter{subparagraph}{\value{page}}% + \divide\value{subparagraph} by 2\relax% + \multiply\value{subparagraph} by 2\relax% + \ifnum\value{subparagraph}=\value{page}\let\QuadPages=\relax + \null\thispagestyle{empty}\clearpage + \else\null\newpage\fi + \QuadPages} + \clearpage + \markboth{\NoteName}{\NoteName}\QuadPages +} + +\end{document} +% End of ??? +% Ende des Rahmendokuments. +% ---------------------------------------------------------------------------- + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/hauptcls.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/hauptcls.tex new file mode 100644 index 00000000000..5b17861c9ee --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/hauptcls.tex @@ -0,0 +1,5308 @@ +\ProvidesFile{hauptcls.tex}[2004/09/16 KOMA-Script Anleitung] +% ============================================================================ +% hauptcls.tex +% Copyright (c) 2001-2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% hauptcls.tex +% Copyright (c) 2001-2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Hauptklassen +% Autoren: Markus Kohm (MJK) +% Inhalt: Die Anleitung zu den Hauptklassen scrbook, scrreprt, scrartcl. +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% Korrektur: +% Thomas Neumann (2001-06-21 bis 2001-06-30) +% Enrico Kunz +% + +\chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}} +\label{cha:maincls} + +\AddSeeIndex{Anweisung}{gen}{\cmdIndexShortName}{cmd}% +\AddSeeIndex{Makro}{gen}{\cmdIndexShortName}{cmd}% + +\begin{Explain} + Die Hauptklassen des \KOMAScript-Pakets sind als Äquivalent zu den + \LaTeX-Standard"-klassen angelegt. Das bedeutet, dass zu den drei + Standardklassen \Class{book}\IndexClass{book}, \Class{report}% + \IndexClass{report} und \Class{article}\IndexClass{article} im + \KOMAScript-Paket Entsprechungen zu finden sind. Daneben ist auch + für die Standardklasse \Class{letter}\IndexClass{letter} eine + Entsprechung vorhanden. + Der Briefklasse in {\KOMAScript} ist jedoch ein eigenes Kapitel + gewidmet, da sie sich von den drei Hauptklassen grundsätzlich + unterscheidet (siehe \autoref{cha:scrlttr2}). Die Namen der + {\KOMAScript}-Klassen sind aus dem Präfix "`\texttt{scr}"' + und den gekürzten Namen der Standardklassen zusammengesetzt. + Um die Länge des Namens auf acht Buchstaben zu beschränken, werden + dabei notfalls von hinten her die Vokale weggelassen. Eine + Gegenüberstellung zeigt \autoref{tab:maincls.overview}. Dort + sind auch die \Script-Stile für \LaTeX2.09 aufgeführt, die Eingang + in {\KOMAScript} gefunden haben.\par +\end{Explain} + +Die einfachste Möglichkeit, an Stelle einer Standardklasse eine +\KOMAScript-Klasse zu verwenden, ist die Ersetzung des Klassennamens +in der Anweisung \verb|\documentclass| entsprechend +\autoref{tab:maincls.overview}. Normalerweise sollte das Dokument +danach ebenso fehlerfrei mit \LaTeX{} bearbeitbar sein, wie dies vor +der Ersetzung der Fall war. Das Aussehen ändert sich allerdings. +Außerdem gibt es mit den \KOMAScript-Klassen weitere Möglichkeiten und +Optionen, die in den nachfolgenden Abschnitten beschrieben sind. + +\begin{table}[htbp] + \centering + \begin{tabular}{lll} + Standard-Klasse & \KOMAScript-Klasse & \Script-Stil + (\LaTeX2.09)\\ + \hline\rule{0pt}{2.7ex}% + \Class{article} & \Class{scrartcl} & \File{script\textunderscore + s} \\ + \Class{report} & \Class{scrreprt} & \File{script} \\ + \Class{book} & \Class{scrbook} & \File{script} \\ + \Class{letter} & \Class{scrlettr} & \File{script\textunderscore + l} \\ + \end{tabular} + \caption[Klassengegenüberstellung]{Gegenüberstellung der + Standardklassen, der \KOMAScript-Klassen und der veralteten + \Script-Stile} + \label{tab:maincls.overview} +\end{table} + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Die Optionen} +\label{sec:maincls.options} + +Dieser Abschnitt behandelt alle Klassenoptionen der drei Hauptklassen. +Die Mehrzahl der Optionen ist in genau der gleichen Form auch in den +Standardklassen zu finden. Da die Erfahrung jedoch zeigt, dass viele +Optionen der Standardklassen unbekannt sind, wurde deren Beschreibung +hier aufgenommen. Dies stellt eine Abweichung von dem Grundsatz dar, +im \File{scrguide} nur die Dinge zu beschreiben, die abweichend von +den Standardklassen implementiert sind. + +In \autoref{tab:maincls.stdOptions} finden Sie diejenigen +Optionen aufgeführt, die bei mindestens einer {\KOMAScript}-Klasse +voreingestellt sind. Dabei ist für jede der drei +\KOMAScript-Hauptklassen angegeben, ob die Option voreingestellt +ist oder nicht, oder ob sie für die jeweilige Klasse überhaupt +nicht definiert ist. Eine nicht definierte Option kann natürlich +weder voreingestellt sein, noch vom Anwender gewählt werden. + +\begin{table}[htbp] + \centering + \begin{tabular}{llll} + Option & + \Class{scrbook} & \Class{scrreprt} & \Class{scrartcl} \\ + \hline\rule{0pt}{2.7ex}% + \Option{11pt} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{a4paper} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{abstractoff} & + \emph{nicht definiert} & Voreinstellung & Voreinstellung \\ + \Option{bigheadings} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{final} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{footnosepline} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{headnosepline} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{listsindent} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{nochapterprefix} & + Voreinstellung & Voreinstellung & \emph{nicht definiert} \\ + \Option{onelinecaption} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{notitlepage} & + & & Voreinstellung \\ + \Option{onecolumn} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{oneside} & + & Voreinstellung & Voreinstellung \\ + \Option{openany} & + & Voreinstellung & Voreinstellung \\ + \Option{openright} & + Voreinstellung & & \\ + \Option{parindent} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{tablecaptionbelow} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{titlepage} & + Voreinstellung & Voreinstellung \\ + \Option{tocindent} & + Voreinstellung & Voreinstellung & Voreinstellung \\ + \Option{twoside} & + Voreinstellung & & \\ + \end{tabular} + \caption{Voreingestellte Optionen der \KOMAScript-Klassen} + \label{tab:maincls.stdOptions} +\end{table} + +\begin{Explain} + Lassen Sie mich der Erläuterung der Optionen noch eine Bemerkung + vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, + welche Einstellungen konkret zu wählen sind. Bei einigen + Optionen, wie der Auswahl des Papierformats, mögen sie bereits vorab + feststehen. Aber schon die Frage nach dem \Var{DIV}-Wert für den + Satzspiegel könnte im Voraus schwer zu beantworten sein. + Andererseits sollten diese Angaben für die Haupttätigkeiten des + Autors: Entwurf der Gliederung, Schreiben des Textes, + Zusammenstellen von Abbildungen, Tabellen und Verzeichnissen + zunächst auch unerheblich sein. Konzentrieren Sie sich als Autor + erst einmal auf den Inhalt. Wenn der dann steht, können Sie sich um + die Feinheiten der Form kümmern. Neben der Auswahl der Optionen + gehören dazu dann auch Dinge wie die Korrektur der Trennung und + möglicherweise dezente Eingriffe in den Seitenumbruch oder die + Verteilung von Abbildungen und Tabellen. Als Beispiel hierfür sei + \autoref{tab:maincls.stdOptions} genannt, die ich mehrfach vom + Anfang des Abschnitts an das Ende verschoben habe und umgekehrt. Die + Wahl der tatsächlichen Position wird erst bei Fertigstellung des + Dokuments feststehen.\par +\end{Explain} + + +\subsection{Optionen für den Satzspiegel} +\label{sec:maincls.typeareaOptions} + +Während bei den Standardklassen der Satzspiegel\Index{Satzspiegel} +allein durch das Laden der Optionendateien \File{size10.clo}, +\File{size11.clo}, \File{size12.clo} beziehungsweise +\File{bk10.clo}, \File{bk11.clo}, \File{bk12.clo} und festen, in +den Klassen definierten Werten bestimmt wird, verwenden die +\KOMAScript-Klassen keinen festen Satzspiegel, sondern einen, der +von Papierformat\Index{Papierformat} und Schriftgröße abhängt. +Dazu stützen sich alle drei Hauptklassen auf das +\Package{typearea}-Paket\IndexPackage{typearea} (siehe +\autoref{cha:typearea}). Das Paket wird von den Klassen +automatisch geladen. Es ist also nicht notwendig, es mit +\verb|\usepackage{typearea}| selbst einzuladen. + +\begin{Declaration} + \Option{letterpaper} \\ + \Option{legalpaper} \\ + \Option{executivepaper} \\ + \Option{a\Var{X}paper} \\ + \Option{b\Var{X}paper} \\ + \Option{c\Var{X}paper} \\ + \Option{d\Var{X}paper} \\ + \Option{landscape} +\end{Declaration}% +\BeginIndex{Option}{letterpaper} +\BeginIndex{Option}{legalpaper} +\BeginIndex{Option}{executivepaper} +\BeginIndex{Option}{a0paper} +\BeginIndex{Option}{b0paper} +\BeginIndex{Option}{c0paper} +\BeginIndex{Option}{d0paper} +\BeginIndex{Option}{landscape}% +Die grundlegenden Optionen zur Auswahl des Papierformats werden nicht +direkt von den Klassen ausgeführt. Stattdessen werden diese als +globale Optionen automatisch vom \Package{typearea}-Paket behandelt +(siehe \autoref{sec:typearea.options}). Die Optionen +\Option{a5paper}, \Option{a4paper}, \Option{letterpaper}, +\Option{legalpaper} und \Option{executivepaper} entsprechen den +gleichnamigen Optionen der Standardklassen und ergeben die gleichen +Papierformate. Der aus dem jeweiligen Format berechnete Satzspiegel +ist dann jedoch ein anderer. +% +\EndIndex{Option}{letterpaper} +\EndIndex{Option}{legalpaper} +\EndIndex{Option}{executivepaper} +\EndIndex{Option}{a0paper} +\EndIndex{Option}{b0paper} +\EndIndex{Option}{c0paper} +\EndIndex{Option}{d0paper} +\EndIndex{Option}{landscape} + +\begin{Explain} + Tatsächlich werden die Optionen für das A-, B-, C- oder D-Format vom + \Package{typearea}-Paket nicht deshalb ausgewertet, weil es sich um + globale Optionen handelt, sondern nur weil die \KOMAScript-Klassen + sie explizit an das \Package{typearea}-Paket weiterreichen. Dies hat + seine Gründe in der Implementierung der Optionen im + \Package{typearea}-Paket beziehungsweise in der Funktion des + Mechanismus zur Weiterleitung und Auswertung von Optionen, der von + \LaTeX{} zur Verfügung gestellt wird. + + Dies gilt in gleicher Weise für die nachfolgend aufgeführten + Optionen zur Einstellung der Bindekorrektur, des Divisors und der + Anzahl der Kopfzeilen. +\end{Explain} + + +\begin{Declaration} + \Option{BCOR}\PName{Korrektur}\\ + \Option{DIV}\PName{Faktor}\\ + \Option{DIVcalc}\\ + \Option{DIVclassic}\\ + \PName{Wert}\Option{headlines} +\end{Declaration}% +\BeginIndex{Option}{BCOR}% +\BeginIndex{Option}{DIV}% +\BeginIndex{Option}{DIVcalc}% +\BeginIndex{Option}{DIVclassic}% +\BeginIndex{Option}{headlines}% +Die Optionen für den Divisor und die +Bindekorrektur\Index{Bindekorrektur} werden direkt an das +\Package{typearea}-Paket weitergeleitet (siehe +\autoref{sec:typearea.options}). Dies geschieht in Abweichung zu +den Standardklassen, bei denen eine entsprechende Weiterleitung nicht +stattfindet. Das gilt ebenfalls für die Option zur Einstellung der +Anzahl der Kopfzeilen. +% +\EndIndex{Option}{BCOR}% +\EndIndex{Option}{DIV}% +\EndIndex{Option}{DIVcalc}% +\EndIndex{Option}{DIVclassic}% +\EndIndex{Option}{headlines} + + +\subsection{Optionen für das Layout} +\label{sec:maincls.layoutOptions} + +In diesem Unterabschnitt werden alle Optionen zusammengefasst, die +sich im erweiterten Sinne auf das Layout und nicht nur auf den +Satzspiegel auswirken. Genaugenommen sind natürlich alle +Satzspiegeloptionen (siehe +\autoref{sec:maincls.typeareaOptions}) Layoutoptionen. +Teilweise gilt dies auch umgekehrt. + +\begin{Declaration} + \Option{oneside}\\ + \Option{twoside} +\end{Declaration}% +\BeginIndex{Option}{oneside} +\BeginIndex{Option}{twoside}% +Diese beiden Optionen funktionieren genau wie bei den +Standardklassen. Bei der Option \Option{oneside} wird ein +einseitiges\Index{einseitig} Layout mit einem einseitigen +Satzspiegel gewählt. Dies bedeutet insbesondere auch, dass +normalweise mit einem flatternden unteren Rand gearbeitet wird. + +Bei der Option \Option{twoside} wird ein doppelseitiges Layout mit +einem doppelseitigen\Index{doppelseitig} Satzspiegel gewählt. Dazu +wird der \LaTeX-Befehl \Macro{flushbottom}\IndexCmd{flushbottom} +ausgeführt, der dafür sorgt, dass am Seitenende umbrochener Seiten +kein variabler Leerraum zu finden ist. Will man stattdessen einen +flatternden unteren Rand, so kann man dies mit Hilfe des +\LaTeX-Befehls \Macro{raggedbottom}\IndexCmd{raggedbottom} erreichen. +% +\EndIndex{Option}{oneside}% +\EndIndex{Option}{twoside}% + + +\begin{Declaration} + \Option{onecolumn}\\ + \Option{twocolumn} +\end{Declaration}% +\BeginIndex{Option}{onecolumn} +\BeginIndex{Option}{twocolumn}% +Diese beiden Optionen funktionieren genau wie bei den +Standardklassen. Mit ihrer Hilfe wird zwischen einem +einspaltigen\Index{einspaltig} und einem +zweispaltigen\Index{zweispaltig} Layout umgeschaltet. Die in +{\LaTeX} eingebauten Möglichkeiten für mehrspaltigen Satz reichen +oft nur für einfache Aufgaben aus. Es gibt jedoch das +Standardpaket \Package{multicol}, mit dem sehr viel flexiblerer +Mehrspaltensatz möglich ist (siehe +\cite{package:multicol}).\Index{Spalten}\IndexPackage{multicol} +% +\EndIndex{Option}{onecolumn} +\EndIndex{Option}{twocolumn} + + +\begin{Declaration} + \Option{openany}\\ + \Option{openright} +\end{Declaration}% +\BeginIndex{Option}{openany}% +\BeginIndex{Option}{openright}% +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +Diese beiden Optionen funktionieren genau wie bei den +Standardklassen. Sie haben Auswirkungen auf die Auswahl der +Seite, auf der ein Kapitel\Index[indexmain]{Kapitel} beginnen kann +und existieren daher bei \Class{scrartcl} nicht, da dort die +oberste Gliederungsebene unter dem Teil der Abschnitt ist. Die +Gliederungsebene Kapitel gibt es bei \Class{scrartcl} nicht. + +Ein Kapitel beginnt immer auf einer neuen Seite. Mit der Option +\Option{openany} kann dies jede neue Seite sein. Bei Wahl der +Einstellung \Option{openright} wird jedoch zwingend eine neue rechte +Seite vorgeschrieben, wie es bei Büchern allgemein üblich ist. +Dazu wird gegebenenfalls eine linke Seite +eingefügt. Diese leeren Seiten werden durch implizite Ausführung des +\LaTeX-Befehls \Macro{cleardoublepage}\IndexCmd{cleardoublepage} +erzeugt. + +Da zwischen rechten und linken Seiten nur im doppelseitigen Layout +unterschieden wird, hat die Option \Option{openright} im einseitigen +Layout keinerlei Auswirkungen. Sie sollten sie deshalb zusammen mit +der Option \Option{twoside} einsetzen. +% +\EndIndex{Option}{openany} +\EndIndex{Option}{openright} + +\begin{Declaration} + \Option{cleardoublestandard}\\ + \Option{cleardoubleplain}\\ + \Option{cleardoubleempty} +\end{Declaration}% +\BeginIndex{Option}{cleardoublestandard}% +\BeginIndex{Option}{cleardoubleplain}% +\BeginIndex{Option}{cleardoubleempty}% +Will man, dass mit der \Macro{cleardoublepage}-Anweisung +eingefügte Leerseiten keinen Kolumnentitel,\Index{Kolumnentitel} +sondern nur eine Seitenzahl oder auch weder Kolumnentitel noch +Seitenzahl enthalten, so bleibt bei den Standardklassen nur, die +Anweisung entsprechend umzudefinieren. {\KOMAScript} bietet +Optionen, um dem Anwender dies abzunehmen. Mit der Option +\Option{cleardoublestandard} hat man das Standardverhalten von +\Macro{cleardoublepage}. Bei Verwendung der Option +\Option{cleardoubleplain} wird die leere, linke Seite hingegen +mit dem Seitenstil \PValue{plain}\IndexPagestyle{plain} +ausgegeben. Bei Verwendung der Option \Option{cleardoubleempty} +findet entsprechend der Seitenstil +\PValue{empty}\IndexPagestyle{empty} Anwendung. Die Seitenstile +werden in \autoref{sec:maincls.pageStyle} näher erläutert. +% +\EndIndex{Option}{cleardoublestandard}% +\EndIndex{Option}{cleardoubleplain}% +\EndIndex{Option}{cleardoubleempty}% + + +\begin{Declaration} + \Option{parskip}\\ + \Option{parskip*}\\ + \Option{parskip+}\\ + \Option{parskip-}\\ + \Option{halfparskip}\\ + \Option{halfparskip*}\\ + \Option{halfparskip+}\\ + \Option{halfparskip-}\\ + \Option{parindent} +\end{Declaration}% +\BeginIndex{Option}{parskip}% +\BeginIndex{Option}{parskip*}% +\BeginIndex{Option}{parskip+}% +\BeginIndex{Option}{parskip-}% +\BeginIndex{Option}{halfparskip}% +\BeginIndex{Option}{halfparskip*}% +\BeginIndex{Option}{halfparskip+}% +\BeginIndex{Option}{halfparskip-}% +\BeginIndex{Option}{parindent}% +\begin{Explain}% + Die Standardklassen setzen Absätze\Index[indexmain]{Absatz} + normalerweise mit Absatzeinzug und ohne Absatzabstand. Bei + Verwendung eines normalen Satzspiegels, wie ihn \Package{typearea} + bietet, ist dies die vorteilhafteste Absatzauszeichnung. Würde man + ohne Einzug und Abstand arbeiten, hätte der Leser als Anhaltspunkt + nur die Länge der letzten Zeile. Im Extremfall kann es sehr schwer + sein, zu erkennen, ob eine Zeile voll ist oder nicht. Des Weiteren + stellt der Typograf fest, dass die Auszeichnung des Absatzendes am + Anfang der nächsten Zeile leicht vergessen ist. Demgegenüber ist + eine Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand + hat den Nachteil, dass er in verschiedenem Zusammenhang leicht + verloren geht. So wäre nach einer abgesetzten Formel nicht mehr + festzustellen, ob der Absatz fortgesetzt wird oder ein neuer + beginnt. Auch am Seitenanfang müsste zurückgeblättert werden, um + feststellen zu können, ob mit der Seite auch ein neuer Absatz + beginnt. All diese Probleme sind beim Absatzeinzug nicht gegeben. + Eine Kombination von Absatzeinzug und Absatzabstand ist wegen der + übertriebenen Redundanz abzulehnen. Der + Einzug\Index[indexmain]{Einzug} alleine ist deutlich genug. Der + einzige Nachteil des Absatzeinzuges liegt in der Verkürzung der + Zeile. Damit gewinnt der Absatzabstand\Index{Absatzabstand} bei + ohnehin kurzen Zeilen, etwa im Zeitungssatz, seine Berechtigung. +\end{Explain} + +Unabhängig von obigen Erläuterungen wird hin und wieder ein Layout mit +Absatzabstand an Stelle des Absatzeinzugs gefordert. \KOMAScript{} +bietet hierfür mit \Option{parskip}, \Option{parskip-}, \Option{parskip*}, +\Option{parskip+} sowie \Option{halfparskip}, \Option{halfparskip-}, +\Option{halfparskip*} und \Option{halfparskip+} eine ganze +Reihe von Optionen. + +Die vier \Option{parskip}-Optionen setzen jeweils einen Absatzabstand +von einer Zeile. Die vier \Option{halfparskip}-Optionen verwenden nur +eine halbe Zeile. +Um zu verhindern, dass beispielsweise beim Seitenwechsel ein +Absatzwechsel unerkannt bleibt, wird bei jeweils drei Varianten dafür +gesorgt, dass die letzte Zeile eines Absatzes nicht komplett gefüllt +wird. Bei der Variante ohne Plus und Stern bleibt mindestens ein +Leeraum von 1\Unit{em}. Bei der Plus-Variante bleibt mindestens ein +Drittel einer normalen Zeile und bei der Stern-Variante mindestens ein +Viertel einer normalen Zeile frei. Bei der Minus-Variante werden keine +Vorkehrungen für die letzte Zeile eines Absatzes getroffen. + +Alle acht Optionen zur Auswahl eines Absatzabstandes verändern +außerdem den Abstand vor, nach und innerhalb von Listenumgebungen. +Dadurch wird verhindert, dass diese Umgebungen oder Absätze innerhalb +dieser Umgebungen stärker vom Text abgesetzt werden als die Absätze +des normalen Textes voneinander. Darüber hinaus wird dafür gesorgt, +dass im Inhalts-, Abbildungs- und Tabellenverzeichnis ohne +zusätzlichem Absatzabstand gearbeitet wird. + +Voreingestellt ist bei \KOMAScript{} das Verhalten der Option +\Option{parindent}. Hierbei gibt es keinen Absatzabstand, sondern +einen Absatzeinzug von 1\Unit{em}. +% +\EndIndex{Option}{parskip}% +\EndIndex{Option}{parskip*}% +\EndIndex{Option}{parskip+}% +\EndIndex{Option}{parskip-}% +\EndIndex{Option}{halfparskip}% +\EndIndex{Option}{halfparskip*}% +\EndIndex{Option}{halfparskip+}% +\EndIndex{Option}{halfparskip-}% +\EndIndex{Option}{parindent}% + + +\begin{Declaration} + \Option{headsepline}\\ + \Option{headnosepline}\\ + \Option{footsepline}\\ + \Option{footnosepline} +\end{Declaration}% +\BeginIndex{Option}{headsepline}% +\BeginIndex{Option}{headnosepline}% +\BeginIndex{Option}{footsepline}% +\BeginIndex{Option}{footnosepline}% +Wird unter Kolumnentiteln eine horizontale Linie\Index{Trennlinie} +gewünscht, so lässt sich diese mit der Option \Option{headsepline} +einschalten. Die Option \Option{headnosepline} stellt die Umkehrung +dar. Bei den Seitenstilen \PValue{empty} und \PValue{plain} hat dies +selbstverständlich keine Auswirkung, da hier auf einen +Seitenkopf\Index{Seitenkopf} ausdrücklich verzichtet werden soll. +Typografisch betrachtet hat eine solche Linie immer die Auswirkung, +dass der Kopf optisch näher an den Text heranrückt. Dies bedeutet nun +nicht, dass der Kopf räumlich weiter vom Textkörper\Index{Textbereich} +weggerückt werden müsste. Stattdessen sollte der Kopf dann bei der +Berechnung des Satzspiegels als zum Textkörper gehörend betrachtet +werden. Dies wird bei {\KOMAScript} dadurch erreicht, dass bei +Verwendung der Klassenoption \Option{headsepline} automatisch die +Paketoption \Option{headinclude} an das \Package{typearea}-Paket +weitergereicht wird. + +Für eine Trennlinie\Index{Trennlinie} über dem Seitenfuß gibt es +die analog funktionierenden Optionen \Option{footsepline} und +\Option{footnosepline}. Bei Aktivierung der Trennlinie mit +\Option{footsepline} wird automatisch die Option +\Option{footinclude} an das \Package{typearea}-Paket +weitergereicht. Im Gegensatz zu \Option{headsepline} wirkt sich +die Option \Option{footsepline} auch beim Seitenstil +\PValue{plain} aus, da \PValue{plain} eine Seitenzahl im Fuß +ausgibt. +% +\EndIndex{Option}{headsepline}% +\EndIndex{Option}{headnosepline}% +\EndIndex{Option}{footsepline}% +\EndIndex{Option}{footnosepline}% + + +\begin{Declaration} + \Option{titlepage}\\ + \Option{notitlepage} +\end{Declaration}% +\BeginIndex{Option}{titlepage}% +\BeginIndex{Option}{notitlepage}% +Die beiden Optionen funktionieren genau wie bei den +Standardklassen. Mit der Option \Option{titlepage} wird erreicht, +dass für die gesamte Titelei\Index[indexmain]{Titel} eigene Seiten +verwendet werden. Diese Seiten werden innerhalb von +\Environment{titlepage}-Umgebungen gesetzt und erhalten somit +normalerweise weder Seitenkopf noch Seitenfuß. Bei {\KOMAScript} +wurde die Titelei gegenüber den Standardklassen stark erweitert +(siehe dazu \autoref{sec:maincls.titles}). + +Demgegenüber wird mit der Option \Option{notitlepage} erreicht, dass +ein sogenannter \emph{in-page} Titel gesetzt wird. Das heißt, die +Titelei wird lediglich speziell hervorgehoben, auf der Titelseite kann +aber nachfolgend weiteres Material, beispielsweise eine +Zusammenfassung oder ein Abschnitt gesetzt werden. +% +\EndIndex{Option}{titlepage}% +\EndIndex{Option}{notitlepage}% + + +\begin{Declaration} + \Option{chapterprefix}\\ + \Option{nochapterprefix} +\end{Declaration}% +\BeginIndex{Option}{chapterprefix}% +\BeginIndex{Option}{nochapterprefix}% +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +Bei den Standardklassen \Class{book} und \Class{report} werden +Kapitelüberschriften% +\Index[indexmain]{Kapitelueberschriften=Kapitelüberschriften} +in der Form ausgegeben, dass zunächst in einer Zeile +"`Kapitel"'\footnote{Bei Verwendung einer anderen Sprache als Deutsch + wird "`Kapitel"' selbstverständlich in der jeweiligen + Sprache gesetzt.} % +gefolgt von der Kapitelnummer steht. Erst ab der nächsten Zeile wird +dann die Überschrift in linksbündigem Flattersatz ausgegeben. Bei +{\KOMAScript} kann dieses Verhalten mit der Klassenoption +\Option{chapterprefix} ebenfalls erreicht werden. Voreingestellt ist +jedoch das Verhalten der Option \Option{nochapterprefix}. Die +Optionen wirken sich außerdem auf das Aussehen der automatischen +Kolumnentitel für Kapitel aus (siehe +\autoref{sec:maincls.pageStyle}). +% +\EndIndex{Option}{chapterprefix}% +\EndIndex{Option}{nochapterprefix}% + + +\begin{Declaration} + \Option{appendixprefix}\\ + \Option{noappendixprefix} +\end{Declaration}% +\BeginIndex{Option}{appendixprefix}% +\BeginIndex{Option}{noappendixprefix}% +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +Zuweilen kommt es vor, dass man die Kapitelüberschriften im +Hauptteil durchaus in der einfachen Form von +\Option{nochapterprefix} setzten möchte. Gleichzeitig sollen die +Überschriften im Anhang\Index{Anhang} jedoch davon abweichend mit +einer Präfixzeile, "`Anhang"' gefolgt vom Buchstaben des Anhangs, +versehen werden. Dies ist mit der Klassenoption +\Option{appendixprefix} möglich. Da sich jedoch dadurch ein +inkonsistentes Layout ergibt, rate ich von der Verwendung ab. + +Lediglich aus Gründen der symmetrischen Vollständigkeit gibt es auch +die Umkehrungsoption \Option{noappendixprefix}. Mir ist jedoch keine +sinnvolle Anwendung dieser Option bekannt. +% +\EndIndex{Option}{appendixprefix}% +\EndIndex{Option}{noappendixprefix}% + + +\begin{Declaration} + \Option{onelinecaption}\\ + \Option{noonelinecaption} +\end{Declaration} +\BeginIndex{Option}{onelinecaption}% +\BeginIndex{Option}{noonelinecaption}% +Bei den Standardklassen wird generell zwischen einzeiligen und +mehrzeiligen Über- oder Unterschriften von Tabellen und Abbildungen +unterschieden. Einzeilige Texte werden dabei grundsätzlich zentriert, +während mehrzeilige Texte linksbündig im Blocksatz gesetzt +werden. Dieses Verhalten, das auch bei \KOMAScript{} voreingestellt +ist, entspricht der Option \Option{onelinecaption}. Bei Verwendung der +Option \Option{noonelinecaption} findet hingegen keine +Sonderbehandlung für einzeilige Texte statt. + +\begin{Explain} + Der Verzicht auf die Sonderbehandlung wird auch gerne als Lösung für + einen weiteren Nebeneffekt beschrieben, der manchmal höchst + erwünscht ist. Werden Fußnoten innerhalb von \Macro{caption} + gesetzt, so werden diese in der Regel falsch nummeriert. Dies liegt + daran, dass bereits beim Ausmessen, ob ein einzeiliger Text + vorliegt, der Fußnotenzähler für jede Fußnote einmal erhöht + wird. Bei Verwendung der Option \Option{noonelinecaption} findet + dieses Ausmessen jedoch gar nicht erst statt. Die Nummern der + Fußnoten sind damit korrekt. + + Bei \KOMAScript{} ist ab Version 2.8q jedoch ohnehin eine Umgehung + dieses Problems eingebaut. Damit kann man Fußnoten auch mit + \Option{onelinecaption} in Über- oder Unterschriften von Tabellen + und Abbildungen verwenden. Allerdings sollte bei Verwendung von + Fußnoten in Gleitumgebungen, der Inhalt der Gleitumgebung immer in + eine \Environment{minipage}-Umgebung verpackt werden. So bleiben + Gleitumgebung und Fußnote garantiert zusammen. Persönlich halte ich + die Verwendung von Fußnoten in Gleitumgebungen, also von Verweisen + innerhalb von Verweisen, für stilistisch fragwürdig. +\end{Explain} +% +\EndIndex{Option}{onelinecaption}% +\EndIndex{Option}{noonelinecaption}% + +\subsection{Optionen für die Schriftwahl} +\label{sec:maincls.fontOptions} + +Schriftoptionen wirken sich auf die Größe der Grundschrift +oder der Schrift einzelner Teile aus. +% Theoretisch wären auch +% Optionen, die sich auf die Schriftart auswirken, Schriftoptionen. +% Solche Optionen gibt es bei {\KOMAScript} derzeit jedoch nicht. + +\begin{Declaration} + \Option{10pt}\\% + \Option{11pt}\\% + \Option{12pt}\\ + \Option{\Var{X}pt} +\end{Declaration}% +\BeginIndex{Option}{10pt}% +\BeginIndex{Option}{11pt}% +\BeginIndex{Option}{12pt}% +\BeginIndex{Option}{\Var{X}pt}% +Die Optionen \Option{10pt}, \Option{11pt} und \Option{12pt} +entsprechen den Standardoptionen. Im Gegensatz zu den Standardklassen +kann bei {\KOMAScript} jedoch auch eine andere +Schriftgröße\Index[indexmain]{Schriftgroesse=Schriftgröße} eingestellt +werden. Da bei {\LaTeX} jedoch nur Klassenoptionsdateien für +10\Unit{pt}, 11\Unit{pt} und 12\Unit{pt} mitgeliefert werden und +{\KOMAScript} keine entsprechenden Dateien bereit stellt, müssen Sie +selbst für diese Dateien sorgen. Das Paket \Package{extsizes} (siehe +\cite{package:extsizes}) stellt beispielsweise mit \File{size14.clo} +solche Dateien zur Verfügung. Diese können bei \KOMAScript{} direkt +verwendet werden, indem die entsprechende Größe, beispielsweise +\Option{14pt}\IndexOption{14pt}, als Klassenoption angegeben wird. Bei +sehr großen Schriften kann es jedoch zu einem arithmetischen Überlauf +bei der Satzspiegelberechnung im \Package{typearea}-Paket kommen. +% +\EndIndex{Option}{10pt}% +\EndIndex{Option}{11pt}% +\EndIndex{Option}{12pt}% +\EndIndex{Option}{\Var{X}pt}% + + +\begin{Declaration} + \Option{smallheadings}\\ + \Option{normalheadings}\\ + \Option{bigheadings} +\end{Declaration}% +\BeginIndex{Option}{smallheadings}% +\BeginIndex{Option}{normalheadings}% +\BeginIndex{Option}{bigheadings}% +Die +Überschriften\index{Ueberschriften=Überschriften}\index{Gliederung} +werden sowohl bei den Standardklassen als auch bei {\KOMAScript} +normalerweise recht groß gesetzt. Dies gefällt nicht jedem und wirkt +insbesondere bei kleinen Papiergrößen oft störend. Daher stehen bei +{\KOMAScript} neben den mit der Option \Option{bigheadings} sehr groß +eingestellen Überschriften die beiden Optionen \Option{normalheadings} +und \Option{smallheadings} zur Ver"-fügung, mit denen man insgesamt +kleinere Überschriften erhält. +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Die Abstände vor und nach +Kapitelüberschriften werden von diesen Optionen ebenfalls beeinflusst. +Auf Kapitelüberschriften wirken sich außerdem die Layoutoptionen +\Option{chapterprefix} und \Option{nochapterprefix} sowie im Anhang +\Option{appendixprefix} und \Option{noappendixprefix} aus, die in +\autoref{sec:maincls.layoutOptions} beschrieben worden sind. +% +\EndIndex{Option}{smallheadings}% +\EndIndex{Option}{normalheadings}% +\EndIndex{Option}{bigheadings}% + + + +\subsection{Optionen für das Inhaltsverzeichnis} +\label{sec:maincls.tocOptions} + +Bei {\KOMAScript} gibt es mehrere Optionen, die sich auf den Inhalt +des Inhaltsverzeichnisses\Index[indexmain]{Inhaltsverzeichnis} +auswirken. Die Form des Inhaltsverzeichnisses ist zwar fest, es kann +jedoch durch Optionen zwischen unterschiedlichen Varianten gewählt +werden. + +\begin{Declaration} + \Option{liststotoc}\\ + \Option{idxtotoc}\\ + \Option{bibtotoc}\\ + \Option{bibtotocnumbered}\\ + \Option{liststotocnumbered} +\end{Declaration}% +\BeginIndex{Option}{liststotoc}% +\BeginIndex{Option}{idxtotoc}% +\BeginIndex{Option}{bibtotoc}% +\BeginIndex{Option}{bibtotocnumbered}% +\BeginIndex{Option}{liststotocnumbered}% +\begin{Explain}% + Normalerweise erscheinen Tabellen-\Index{Tabellenverzeichnis} und + Abbildungsverzeichnis\Index{Abbildungsverzeichnis}, + Index\Index{Index} und + Literaturverzeichnis\Index{Literaturverzeichnis} nicht im + Inhaltsverzeichnis. Im klassischen Buchdruck wird auf entsprechende + Einträge bewusst verzichtet. Das ist unter Anderem deshalb so, weil + stillschweigend von einer ganz bestimmten Verteilung dieser + Verzeichnisse ausgegangen wird, wenn die entsprechenden Teile + überhaupt verwendet werden: + \begin{itemize} + \item Inhaltsverzeichnis nach der Titelei, + \item Tabellen- und Abbildungsverzeichnis nach dem + Inhaltsverzeichnis, + \item Index ganz am Ende, + \item Literaturverzeichnis vor dem Index. + \end{itemize} + Bücher, die all diese Verzeichnisse aufweisen, sind außerdem häufig + mit diesen praktischen Bändern gebunden, die man an den + entsprechenden Stellen ins Buch legen kann, so dass besagte + Verzeichnisse höchstens einmal gesucht werden müssen.\par +\end{Explain} + +Neuerdings ist es üblich geworden, dass Tabellen- und +Abbildungsverzeichnis sowie das Literaturverzeichnis, seltener der +Index im Inhaltsverzeichnis zu finden sind. Dies hat sicher auch +mit der neuen Mode zu tun, Abbildungs- und Tabellenverzeichnis ans +Buchende zu stellen. Beide Verzeichnisse haben von Aufbau und +Intention eine deutliche Ähnlichkeit mit dem Inhaltsverzeichnis. +Daher betrachte ich die Entwicklung skeptisch. Da es keinen Sinn +hat, nur das Tabellen- oder nur das Abbildungsverzeichnis ohne +das jeweils andere ins Inhaltsverzeichnis aufzunehmen, gibt es +nur eine Option \Option{liststotoc}, mit der beide Verzeichnisse +gemeinsam ins Inhaltsverzeichnis aufgenommen werden. Dabei werden +auch Verzeichnisse berücksichtigt, die mit Hilfe des +\Package{float}-Pakets\IndexPackage{float} ab Version 1.2e +erstellt werden (siehe \cite{package:float}). Als Verzeichnisse, +die den Inhalt anderer Abschnitte des Werks auf"|führen, erhalten +Tabellen-, Abbildungs- und die mit dem \Package{float}-Paket +erzeugten Verzeichnisse grundsätzlich keine Kapitelnummer. + +Der Index erhält mit der Option \Option{idxtotoc} einen Eintrag ins +Inhaltsverzeichnis. Da der Index ebenfalls nur Verweise auf den Inhalt +anderer Abschnitte enthält, wird auch er grundsätzlich nicht +nummeriert. + +Das Literaturverzeichnis stellt eine etwas andere Art von Verzeichnis +dar. Hier wird nicht der Inhalt des vorliegenden Werks aufgelistet, +sondern auf externe Inhalte verwiesen. Mit dieser Begründung könnte +man argumentieren, dass das Literaturverzeichnis ein eigenes Kapitel +bzw. einen eigenen Abschnitt darstellt, und somit eine Nummer +verdient. Die Option \Option{bibtotocnumbered} führt genau dazu, +einschließlich des dann fälligen Eintrags in das Inhaltsverzeichnis. +Ich selbst bin der Meinung, dass bei dieser Argumentation auch ein +klassisches, kommentiertes Quellenverzeichnis ein eigenes Kapitel +wäre. Außerdem ist das Literaturverzeichnis letztlich nichts, was man +selbst geschrieben hat. Deshalb verdient es allenfalls einen nicht +nummerierten Eintrag ins Inhaltsverzeichnis, was mit der Option +\Option{bibtotoc} erreicht wird. + +Nachdem\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} ich bereits +der Option \Option{liststotoc} recht skeptisch und der Option +\Option{bibtotocnumbered} ablehnend gegenüberstehe, sollte es nicht +wundern, dass ich die Option \Option{liststotocnumbered} nur +zähneknirschend implementiert habe. Als nächstes will noch jemand, +dass das Inhaltsverzeichnis nummeriert und im Inhaltsverzeichnis +aufgeführt wird. Wer daher eine Erklärung zur Option +\Option{liststotoc} erwartet, sucht in dieser Anleitung vergeblich +danach. Eine entsprechende Option für das Stichwortverzeichnis wäre +ebenfalls derart unsinnig, dass ich ihre Implementierung bisher +standhaft abgelehnt habe. +% +\EndIndex{Option}{liststotoc}% +\EndIndex{Option}{idxtotoc}% +\EndIndex{Option}{bibtotoc}% +\EndIndex{Option}{bibtotocnumbered}% +\EndIndex{Option}{liststotocnumbered}% + +\begin{Declaration} + \Option{tocindent}\\ + \Option{tocleft} +\end{Declaration}% +\BeginIndex{Option}{tocindent}% +\BeginIndex{Option}{tocleft}% +Normalerweise\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} wird das +Inhaltsverzeichnis\Index{Inhaltsverzeichnis} so formatiert, dass die +Gliederungsebenen unterschiedlich weit eingezogen werden. Dabei wird +für die Gliederungsnummer jeder Ebene ein Raum fester Breite +vorgesehen, in dem die Nummer linksbündig gesetzt wird. Dies +entspricht der Verwendung der Option \Option{tocindent}. + +Werden sehr viele Gliederungspunkte verwendet, so werden die +Gliederungsnummern sehr breit. Damit reicht der vorgesehene Platz +nicht aus. In \cite{DANTE:FAQ} wird für solche Fälle vorgeschlagen, +die Erzeugung des Inhaltsverzeichnisses umzudefinieren. \KOMAScript{} +bietet jedoch eine alternative Formatierung an, bei der das Problem +nicht auf"|tritt. Bei Verwendung der Option \Option{tocleft} werden die +unterschiedlichen Gliederungsebenen nicht unterschiedlich weit +eingezogen. Stattdessen wird eine tabellenartige Form gewählt, in der +alle Gliederungsnummern und alle Gliederungstexte jeweils in einer +Spalte linksbündig untereinander stehen. Der für die +Gliederungsnummern benötigte Platz wird dabei automatisch ermittelt. + +\begin{Explain} + Damit der Platz, der für die Gliederungsnummern benötigt wird, bei + Option \Option{tocleft} automatisch ermittelt werden kann, müssen + einige Makros umdefiniert werden. Es ist zwar unwahrscheinlich, aber + nicht ausgeschlossen, dass dies zu Problemen bei Verwendung + anderer Pakete führt. Sollten Sie diesen Verdacht haben, + probieren Sie alternativ die Option \Option{tocindent}, die ohne + solche Umdefinierungen auskommt. Bei Verwendung von Paketen, die + ebenfalls in die Formatierung des Inhaltsverzeichnisses eingreifen, + ist außerdem damit zu rechnen, dass die Optionen \Option{tocleft} + und \Option{tocindent} nicht funktionieren. Sicherheitshalber sollte + man bei Verwendung solcher Pakete keine der beiden Optionen als + globale Optionen, also nicht als Klassenoptionen, angeben. + + Bei Option \Option{tocleft} erfolgt die Ermittlung der für die + Gliederungsnummern benötigten Breite während der Ausgabe des + Inhaltsverzeichnisses. Nach einer Änderung, die sich auf das + Inhaltsverzeichnis auswirkt, werden maximal drei \LaTeX-Durchläufe + benötigt, bis das Inhaltsverzeichnis mit korrektem Wert dargestellt + wird. +\end{Explain} +% +\EndIndex{Option}{tocindent}% +\EndIndex{Option}{tocleft}% + + +\subsection{Optionen für die Verzeichnisse der Gleitumgebungen} +\label{sec:maincls.listsOptions} + +Die bekanntesten Verzeichnisse von Gleitumgebungen sind das Abbildungs- und +das Tabellenverzeichnis. Beispielsweise mit Hilfe des +\Package{float}-Pakets\IndexPackage{float} (siehe \cite{package:float}) können +jedoch eigene Gleitumgebungen erstellt werden, die ebenfalls in Verzeichnissen +erfasst werden. + +\begin{Explain} + Ob sich \KOMAScript-Optionen auf Verzeichnisse auswirken, die mit Hilfe von + anderen Paketen erstellt werden, hängt maßgeblich von diesen Paketen ab. Bei + den Verzeichnissen des \Package{float}-Pakets\IndexPackage{float} ist dies + normalerweise der Fall. + + Neben den hier angegebenen Optionen gibt es weitere, die sich zwar + auf die Verzeichnisse der Gleitumgebungen, nicht jedoch auf deren + Formatierung oder Inhalt auswirken. Stattdessen haben sie + Auswirkungen auf den Inhalt des Inhaltsverzeichnisses. Deshalb + finden sich die entsprechenden Erläuterungen in + \autoref{sec:maincls.tocOptions}. +\end{Explain} + +\begin{Declaration} + \Option{listsindent}\\ + \Option{listsleft} +\end{Declaration}% +\BeginIndex{Option}{listsindent}% +\BeginIndex{Option}{listsleft}% +Normalerweise\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} werden die +Verzeichnisse\Index{Abbildungsverzeichnis}\Index{Tabellenverzeichnis} +der Gleitumgebungen so formatiert, dass für die Nummer ein Raum fester +Breite verwendet wird. Dies entspricht der Verwendung der Option +\Option{listsindent}. + +Werden die Nummern sehr breit, weil beispielsweise sehr viele Tabellen +verwendet werden, so reicht der vorgesehene Platz irgendwann nicht +mehr aus. Vergleichbar zur Option \Option{tocleft} bietet +\KOMAScript{} daher die Option \Option{listsleft}. Dabei wird die +Breite der Nummern automatisch ermittelt und der Platz entsprechend +angepasst. Bezüglich der Nebenwirkungen und Funktionsweise gilt, was +in \autoref{sec:maincls.tocOptions} für die Option \Option{tocleft} +erklärt wurde. Es sei an dieser Stelle jedoch nochmals darauf +hingewiesen, dass mit der Option \Option{listsleft} mehrere +\LaTeX-Durchläufe benötigt werden, bis die Verzeichnisse ihre +endgültige Form erhalten haben. +% +\EndIndex{Option}{listsindent}% +\EndIndex{Option}{listsleft}% + + +\subsection{Optionen für die Formatierung} +\label{sec:maincls.formattingOptions} + +Formatierungsoptionen sind alle Optionen, welche die Form oder +Formatierung einer Ausgabe beeinflussen und nicht in einen anderen +Abschnitt eingeordnet werden können. Es sind also sozusagen die +\emph{sonstigen Optionen}. + +\begin{Declaration} + \Option{abstracton}\\ + \Option{abstractoff} +\end{Declaration}% +\BeginIndex{Option}{abstracton}% +\BeginIndex{Option}{abstractoff}% +\OnlyAt{\Class{scrreprt}\and\Class{scrartcl}}% +Bei den Standardklassen setzt die \Environment{abstract}-Umgebung +noch den zentrierten Titel"`\abstractname"' vor die +Zusammenfassung\Index[indexmain]{Zusammenfassung}. Früher war dies +durchaus üblich. Inzwischen sind wir durch das Zeitunglesen darin +geübt, einen entsprechend hervorgehobenen Text am Anfang eines +Artikels oder Berichts als Zusammenfassung zu erkennen. Dies gilt +umso mehr, wenn dieser Text noch vor dem Inhaltsverzeichnis steht. +Zudem verwundert es, wenn ausgerechnet diese Überschrift klein und +zentriert ist. {\KOMAScript} bietet mit den Optionen +\Option{abstracton} und \Option{abstractoff} die Möglichkeit, die +Überschrift über der Zusammenfassung ein- oder auszuschalten. + +\begin{Explain} + Bei Büchern wird in der Regel eine andere Art der Zusammenfassung + verwendet. Dort setzt man ein entsprechendes Kapitel an den Anfang + oder Ende des Werks. Oft wird diese Zusammenfassung entweder mit + der Einleitung oder einem weiteren Ausblick verknüpft. Daher gibt es + bei \Class{scrbook} überhaupt keine \Environment{abstract}-Umgebung. + Bei Berichten im weiteren Sinne, etwa einer Studien- oder + Diplomarbeit, ist ebenfalls eine Zusammenfassung in dieser Form zu + empfehlen.\par +\end{Explain} +% +\EndIndex{Option}{abstracton}% +\EndIndex{Option}{abstractoff}% + + +\begin{Declaration} + \Option{pointednumbers}\\ + \Option{pointlessnumbers} +\end{Declaration}% +\BeginIndex{Option}{pointednumbers}% +\BeginIndex{Option}{pointlessnumbers}% +\begin{Explain}% + Nach {\small DUDEN} steht in Gliederungen\Index{Gliederung}, in + denen ausschließlich arabische Ziffern für die + Nummerierung\Index{Nummerierung} verwendet werden, am Ende der + Gliederungsnummern kein abschließender Punkt (siehe + \cite[R\,3]{DUDEN}). Wird hingegen innerhalb der Gliederung auch mit + römischen Zahlen oder Groß- oder Kleinbuchstaben gearbeitet, so + steht am Ende aller Gliederungsnummer ein abschließender Punkt + (siehe \cite[R\,4]{DUDEN}). In {\KOMAScript} ist ein Automatismus + eingebaut, der diese etwas komplexe Regel zu erfüllen versucht. Der + Automatismus wirkt sich so aus, dass normalerweise bei Verwendung + des Gliederungsbefehls \Macro{part} oder eines Anhangs + (\Macro{appendix}) auf Gliederungsnummer mit abschließendem Punkt + umgeschaltet wird. Diese Information wird in der \File{aux}-Datei + gespeichert und wirkt sich dann beim nächsten \LaTeX-Lauf auf das + gesamte Dokument aus.\par +\end{Explain} + +Manchmal versagt der Automatismus zum Setzen oder Weglassen des +abschließenden Punktes in der Gliederungsnummer oder andere Sprachen +sehen andere Regeln vor. Deshalb ist es mit der Option +\Option{pointednumbers} möglich, den Punkt manuell einzuschalten oder +mit der Option \Option{pointlessnumbers} zu verbieten. + +Es ist zu beachten, dass der Automatismus immer erst für den nächsten +\LaTeX-Lauf die Verwendung des abschließenden Punktes ein- oder +ausschaltet. Bevor also versucht wird, die korrekte Darstellung über +Verwendung einer der Optionen zu erzwingen, sollte grundsätzlich ein +weiterer \LaTeX-Lauf ohne Dokumentänderung durchgeführt werden. + +Richtig, die korrekten Namen für diese Optionen wären +\Option{dottednumbers}\IndexOption{dottednumbers} und +\Option{dotlessnumbers}\IndexOption{dotlessnumbers} oder Ähnliches. +Wie das Leben so spielt, war mir die Bedeutung der statt dessen +gewählten Namen vor ein paar Jahren bei der Implementierung nicht +klar. +% +\EndIndex{Option}{pointednumbers}% +\EndIndex{Option}{pointlessnumbers}% + + +\begin{Declaration} + \Option{leqno} +\end{Declaration}% +\BeginIndex{Option}{leqno}% +Gleichungen\Index{Gleichungen} werden normalerweise auf der +rechten Seite nummeriert. Mit Hilfe der Standardoption +\Option{leqno} wird die Standardoptionsdatei \File{leqno.clo} +geladen. Dadurch erfolgt die Nummerierung von Gleichungen links. +% +\EndIndex{Option}{leqno}% + + +\begin{Declaration} + \Option{fleqn} +\end{Declaration}% +\BeginIndex{Option}{fleqn}% +Gleichungen werden normalerweise horizontal zentriert ausgegeben. Mit +Hilfe der Standardoption \Option{fleqn} wird die Standardoptionsdatei +\File{fleqn.clo} geladen. Dadurch erfolgt die Ausgabe von Gleichungen +linksbündig. +% +\EndIndex{Option}{fleqn}% + + +\begin{Declaration} + \Option{tablecaptionbelow}\\ + \Option{tablecaptionabove} +\end{Declaration}% +\BeginIndex{Option}{tablecaptionbelow}% +\BeginIndex{Option}{tablecaptionabove}% +Wie in \autoref{sec:maincls.floats} erläutert wird, verhält sich +\Macro{caption}\IndexCmd{caption} bei Abbildungen\Index{Abbildungen} +immer wie \Macro{captionbelow}\IndexCmd{captionbelow}. Bei Tabellen +ist das Verhalten hingegen von zwei Optionen abhängig. Mit der +Voreinstellung \Option{tablecaptionbelow} verhält sich \Macro{caption} +auch bei Tabellen wie \Macro{captionbelow}. Mit der Option +\Option{tablecaptionabove} verhält sich \Macro{caption} jedoch wie +\Macro{captionabove}\IndexCmd{captionabove}. + +Bitte\OnlyAt{\Package{float}}\IndexPackage{float} beachten +Sie, dass bei Verwendung des \Package{float}-Pakets die Optionen +\Option{tablecaptionbelow} und \Option{tablecaptionabove} nicht +mehr funktionieren, sobald Sie \Macro{refloatstyle} auf Tabellen +anwenden. Näheres zum \Package{float}-Paket und +\Macro{refloatstyle} entnehmen Sie bitte \cite{package:float}. +% +\EndIndex{Option}{tablecaptionbelow}% +\EndIndex{Option}{tablecaptionabove}% + + +\begin{Declaration} + \Option{origlongtable} +\end{Declaration}% +\BeginIndex{Option}{origlongtable}% +\begin{Explain}% + Beim Paket\OnlyAt{\Package{longtable}} + \Package{longtable}\IndexPackage{longtable} (siehe + \cite{package:longtable}) werden Tabellenüberschriften intern mit + dem Befehl \Macro{LT@makecaption} gesetzt. Damit diese + Tabellenüberschriften zu denen normaler Tabellen passen, definieren + die \KOMAScript-Klassen diese Anweisung normalerweise um. Siehe + hierzu auch \autoref{sec:maincls.floats}. Diese Umdefinierung + erfolgt mit Hilfe von \Macro{AfterPackage} unmittelbar nach dem + Laden von \Package{longtable}. Ist das Paket + \Package{caption2}\IndexPackage{caption2} (siehe + \cite{package:caption2}) geladen, unterbleibt die Umdefinierung in + \KOMAScript, um \Package{caption2} nicht in die Quere zu kommen. +\end{Explain} +Falls die Tabellenüberschriften des \Package{longtable}-Pakets von den +\KOMAScript-Klassen nicht umdefiniert werden sollen, kann die Option +\Option{origlongtable} gesetzt werden. +% +\EndIndex{Option}{origlongtable}% + + +\begin{Declaration} + \Option{openbib} +\end{Declaration}% +\BeginIndex{Option}{openbib}% +Die Standardoption \Option{openbib} schaltet auf eine alternative +Formatierung des Literaturverzeichnisses\Index{Literaturverzeichnis} +um. Dabei wird zum einen die erste Zeile der Literaturangabe, die +normalerweise den Autor enthält, weniger stark eingerückt. Zum anderen +wird der Befehl \Macro{newblock} so umdefiniert, dass er einen Absatz +einfügt. Ohne die Option fügt \Macro{newblock} lediglich einen +dehnbaren horizontalen Abstand ein. +% +\EndIndex{Option}{openbib} + + +\begin{Declaration} + \Option{draft}\\ + \Option{final} +\end{Declaration}% +\BeginIndex{Option}{draft}% +\BeginIndex{Option}{final}% +Die beiden Standardoptionen \Option{draft} und \Option{final} werden +normalerweise verwendet, um zwischen Dokumenten im +Entwurfsstadium\Index{Entwurf} und fertigen +Dokumenten\Index{Endfassung} zu unterscheiden. Insbesondere werden mit +der Option \Option{draft} kleine schwarze Kästchen aktiviert, die im +Falle von überlangen Zeilen am Zeilenende ausgegeben werden. Diese +Kästchen erleichtern dem ungeübten Auge, Absätze ausfindig zu machen, +die manueller Nachbearbeitung bedürfen. Demgegenüber erscheinen mit +der Option \Option{final} keine solchen Kästchen. + +Die beiden Optionen werden übrigens auch von anderen Paketen ausgewertet +und beeinflussen deren Eigenschaften. So +verzichtet das Paket \Package{graphics}\IndexPackage{graphics} +oder \Package{graphicx}\IndexPackage{graphicx} bei Verwendung der +Option \Option{draft} auf die Ausgabe der Grafiken. Stattdessen +werden lediglich Rahmen in der entsprechenden Größe und die +Dateinamen der Grafiken ausgegeben (siehe +\cite{package:graphics}). +% +\EndIndex{Option}{draft}% +\EndIndex{Option}{final}% + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Generelle Dokumenteigenschaften} +\label{sec:maincls.general} + +Einige Dokumenteigenschaften sind keinem speziellen Abschnitt des +Dokuments wie der Titelei, dem Text oder dem Literaturverzeichnis +zuzuordnen, sondern betreffen das Dokument insgesamt. Ein Teil dieser +Eigenschaften wurde bereits im \autoref{sec:maincls.options} +erläutert. + +\subsection{Änderung der verwendeten Schriftart} +\label{sec:maincls.font} + +\BeginIndex{}{Schriftart}\BeginIndex{}{Schriftgroesse=Schriftgröße}% +\begin{Explain} +\KOMAScript{} verwendet für verschiedene Elemente des Textes zum +Zwecke der Hervorhebung keine fest eingestellten Schriften und +Schriftauszeichungen. Stattdessen existieren Schriftvariablen in Form +von Anweisungen, in denen die Befehle zur Schriftumschaltung abgelegt +sind. In früheren Versionen von \KOMAScript{} musste der Anwender zur +Änderung der Auszeichnung eines Elements die entsprechende Anweisung +mit Hilfe von \Macro{renewcommand} umdefinieren. Manchmal war es auch +nicht einfach, aus dem Namen des Elements auf die zugehörige Anweisung +zu schließen. Außerdem musste zur Umdefinierung häufig erst einmal +festgestellt werden, wie die ursprüngliche Definition lautete. + +Genaugenommen waren all diese Erschwernisse durchaus beabsichtigt. +Denn eigentlich sollte es sich dabei nicht um eine +Benutzerschnittstelle, sondern um eine Schnittstelle für Paketautoren +handeln, die eigene Klassen oder Pakete um \KOMAScript{} herum bauen. +Über die Jahre hat sich aber gezeigt, dass die Schnittstelle trotzdem +hauptsächlich von Anwendern verwendet wird. Also wurde eine neue, +einfachere Schnittstelle geschaffen. Dennoch rät der Autor dem +typografischen Laien ausdrücklich davon ab, Schriftgrößen und andere +-auszeichnungen nach eigenem Geschmack zu ändern. Wissen und +Fingerspitzengefühl sind Grundvoraussetzungen für die Auswahl und die +Mischung unterschiedlicher Schriftgrößen, "~attribute und "~familien. +\end{Explain} + + +\begin{Declaration} + \Macro{setkomafont}\Parameter{Element}\Parameter{Befehle}\\ + \Macro{addtokomafont}\Parameter{Element}\Parameter{Befehle}\\ + \Macro{usekomafont}\Parameter{Element} +\end{Declaration}% +\BeginIndex{Cmd}{setkomafont}% +\BeginIndex{Cmd}{addtokomafont}% +\BeginIndex{Cmd}{usekomafont}% +\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}% +Mit Hilfe der beiden Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} ist es möglich, die \PName{Befehle} festzulegen, +mit denen die Schrift eines bestimmten \PName{Element}s +umgeschaltet wird. Theoretisch könnten als \PName{Befehle} alle +möglichen Anweisungen einschließlich Textausgaben verwendet werden. +Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, +mit denen wirklich nur ein Schriftattribut umgeschaltet wird. In der +Regel werden dies die Befehle \Macro{normalfont}, \Macro{rmfamily}, +\Macro{sffamily}, \Macro{ttfamily}, \Macro{mdseries}, +\Macro{bfseries}, \Macro{upshape}, \Macro{itshape}, \Macro{slshape}, +\Macro{scshape} sowie die Größenbefehle \Macro{Huge}, \Macro{huge}, +\Macro{LARGE} etc. sein. Die Erklärung zu diesen Befehlen entnehmen +Sie bitte \cite{l2kurz}, \cite{latex:usrguide} oder +\cite{latex:fntguide}. Auch Farbumschaltungen wie \Macro{normalcolor} +sind möglich (siehe \cite{package:graphics}). Das Verhalten bei +Verwendung anderer Anweisungen, inbesondere solcher, die zu +Umdefinierungen führen oder Ausgaben tätigen, ist nicht definiert. +Seltsames Verhalten ist möglich und stellt keinen Fehler dar. + +Mit \Macro{setkomafont} wird die Schriftumschaltung eines Elements mit +einer völlig neuen Definition versehen. Demgegenüber wird mit +\Macro{addtokomafont} die existierende Definition lediglich erweitert. +Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments zu +verwenden. Beispiele für die Verwendung entnehmen Sie bitte den +Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der +einzelnen Elemente sind in \autoref{tab:maincls.elementsWithoutText} +aufgelistet. Die Voreinstellungen sind den jeweiligen Abschnitten zu +entnehmen. +% +% Mit tabularx.sty oder array.sty waere folgende Tabelle viel +% einfacher zu loesen: +\begin{table} + \centering% + \begin{tabular}{lp{.6\linewidth}} + Element & Beschreibung \\\hline\\[-2ex] + \FontElement{caption}\IndexFontElement[indexmain]{caption} + & \raggedright Text einer Abbildungs- oder + Tabellenunter- oder "~überschrift \tabularnewline%[.75ex] + \FontElement{captionlabel}\IndexFontElement[indexmain]{captionlabel} + & \raggedright Label einer Abbildungs- oder + Tabellenunter- oder "~überschrift; Anwendung erfolgt nach dem + Element \FontElement{caption} \tabularnewline%[.75ex] + \FontElement{chapter}\IndexFontElement[indexmain]{chapter} + & \raggedright Überschrift der Ebene + \Macro{chapter} \tabularnewline%[.75ex] + \FontElement{descriptionlabel}% + \IndexFontElement[indexmain]{descriptionlabel} + & \raggedright Labels, also das + optionale Argument von \Macro{item}, in einer + \Environment{description}-Umgebung \tabularnewline%[.75ex] + \FontElement{dictumauthor}\IndexFontElement[indexmain]{dictumauthor} + & \raggedright Urheber eines schlauen Spruchs; Anwendung erfolgt + nach dem Element \FontElement{dictumtext} \tabularnewline%[.75ex] + \FontElement{dictumtext}\IndexFontElement[indexmain]{dictumtext} + & \raggedright Text eines schlauen Spruchs (siehe Anweisung + \Macro{dictum}) \tabularnewline%[.75ex] + \FontElement{pagefoot}\IndexFontElement[indexmain]{pagefoot} + & \raggedright eigentlich der Fuß einer Seite, + jedoch auch der Kopf der Seite \tabularnewline%[.75ex] + \FontElement{footnote}\IndexFontElement[indexmain]{footnote} + & \raggedright Marke und Text einer Fußnote \tabularnewline%[.75ex] + \FontElement{footnotelabel}% + \IndexFontElement[indexmain]{footnotelabel} + & \raggedright Marke einer Fußnote; Anwendung erfolgt nach dem + Element \FontElement{footnote} \tabularnewline%[.75ex] + \FontElement{footnotereference}% + \IndexFontElement[indexmain]{footnotereference} + & Referenzierung der Fußnotenmarke im Text \tabularnewline%[.75ex] + \FontElement{pagehead}\IndexFontElement[indexmain]{pagehead} + & \raggedright eigentlich der Kopf einer Seite, + jedoch auch der Fuß der Seite \tabularnewline%[.75ex] + \FontElement{pagenumber}\IndexFontElement[indexmain]{pagenumber} + & \raggedright Seitenzahl im Kopf oder Fuß der + Seite \tabularnewline%[.75ex] + \FontElement{paragraph}\IndexFontElement[indexmain]{paragraph} + & \raggedright Überschrift der Ebene + \Macro{paragraph} \tabularnewline%[.75ex] + \FontElement{part}\IndexFontElement[indexmain]{part} + & \raggedright Überschrift der Ebene \Macro{part} + jedoch ohne die Zeile mit der Nummer des Teils + \tabularnewline%[.75ex] + \FontElement{partnumber}\IndexFontElement[indexmain]{partnumber} + & \raggedright Zeile mit der Nummer des + Teils in Überschrift der Ebene \Macro{part} + \tabularnewline%[.75ex] + \FontElement{section}\IndexFontElement[indexmain]{section} + & \raggedright Überschrift der Ebene + \Macro{section} \tabularnewline%[.75ex] + \FontElement{sectioning}\IndexFontElement[indexmain]{sectioning} + & \raggedright alle Gliederungsüberschriften, + also die Argumente von \Macro{part} bis \Macro{subparagraph} und + \Macro{minisec} sowie die Überschrift der Zusammenfassung; die + Anwendung erfolgt vor dem Element der jeweiligen Gliederungebene + \tabularnewline%[.75ex] + \FontElement{subparagraph}% + \IndexFontElement[indexmain]{subparagraph} + & \raggedright Überschrift der Ebene + \Macro{subparagraph} \tabularnewline%[.75ex] + \FontElement{subsection}\IndexFontElement[indexmain]{subsection} + & \raggedright Überschrift der Ebene + \Macro{subsection} \tabularnewline%[.75ex] + \FontElement{subsubsection}% + \IndexFontElement[indexmain]{subsubsection} + & \raggedright Überschrift der Ebene + \Macro{subsubsection} \tabularnewline%[.75ex] + \FontElement{title}\IndexFontElement[indexmain]{title} + & \raggedright Haupttitel des Dokuments, also das + Argument von \Macro{title} \tabularnewline%[.75ex] + \end{tabular} + \caption{Elemente, deren Schrift bei \KOMAScript{} mit + \Macro{setkomafont} und \Macro{addtokomafont} verändert werden + kann} + \label{tab:maincls.elementsWithoutText} +\end{table} + +Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf +diejenige umgeschaltet werden, die für das angegebene \PName{Element} +definiert ist. +\begin{Example} + Angenommen, Sie wollen, dass für das Element + \FontElement{captionlabel} dieselbe Schriftart wie + für das Element \FontElement{descriptionlabel} verwendet wird. Das + erreichen Sie einfach mit: + \begin{small} +\begin{verbatim} + \setkomafont{captionlabel}{\usekomafont{descriptionlabel}} +\end{verbatim} + \end{small} + Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen + Elementen. +\end{Example} +% +\EndIndex{Cmd}{setkomafont}% +\EndIndex{Cmd}{addtokomafont}% +\EndIndex{Cmd}{usekomafont}% +\EndIndex{}{Schriftart}\EndIndex{}{Schriftgroesse=Schriftgröße}% + +\subsection{Seitenstil} +\label{sec:maincls.pageStyle} + +Eine der allgemeinen Eigenschaften eines Dokuments ist der +Seitenstil\Index[indexmain]{Seitenstil}. Bei {\LaTeX} versteht man +unter dem Seitenstil in erster Linie den Inhalt der Kopf- und +Fußzeilen. + +\begin{Declaration} + \Macro{pagestyle}\PParameter{empty}\\ + \Macro{pagestyle}\PParameter{plain}\\ + \Macro{pagestyle}\PParameter{headings}\\ + \Macro{pagestyle}\PParameter{myheadings}\\ + \Macro{thispagestyle}\Parameter{lokaler Seitenstil} +\end{Declaration}% +\BeginIndex{Cmd}{pagestyle}% +\BeginIndex{Cmd}{thispagestyle}% +\BeginIndex{Pagestyle}{empty}% +\BeginIndex{Pagestyle}{plain}% +\BeginIndex{Pagestyle}{headings}% +\BeginIndex{Pagestyle}{myheadings}% +Üblicherweise wird zwischen vier verschiedenen Seitenstilen +unterschieden. +\begin{description} +\item[empty] ist der Seitenstil, bei dem Kopf- und Fußzeile + vollständig leer bleiben. Dies ist bei {\KOMAScript} vollkommen + identisch zu den Standardklassen. +\item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel\Index{Kolumnentitel} verwendet, sondern nur eine + Seitenzahl ausgegeben wird. Bei den Standardklassen wird diese + Seitenzahl immer mittig im Fuß ausgegeben. Bei {\KOMAScript} erfolgt + die Ausgabe stattdessen im doppelseitigen\Index{doppelseitig} Layout + außen im Fuß. Der einseitige Seitenstil entspricht bei {\KOMAScript} + dem der Standardklassen. +\item[headings] ist der Seitenstil für lebende Kolumnentitel. Das sind + Kolumnentitel, bei denen Überschriften automatisch in den Seitenkopf + übernommen werden. Im Internet oder in Beschreibungen zu + \LaTeX-Paketen findet man auch häufig die englische Bezeichnung + "`\emph{running headline}"'. + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}} Bei den Klassen + \Class{scrbook}\IndexClass{scrbook} und + \Class{scrreprt}\IndexClass{scrreprt} werden dabei im doppelseitigen + Layout die Überschriften der Kapitel und der Abschnitte in der + Kopfzeile wiederholt -- bei {\KOMAScript} jeweils außen, bei den + Standardklassen innen. Die Seitenzahl wird bei {\KOMAScript} im Fuß + außen, bei den Standardklassen im Kopf außen gesetzt. Im einseitigen + Layout werden nur die Überschriften der Kapitel verwendet und bei + {\KOMAScript} zentriert im Kopf ausgegeben. Die Seitenzahlen werden + bei {\KOMAScript} dann zentriert im Fuß gesetzt. + \OnlyAt{\Class{scrartcl}}Bei + \Class{scrartcl}\IndexClass{scrartcl} wird entsprechend verfahren, + jedoch eine Ebene tiefer bei Abschnitt und Unterabschnitt angesetzt, + da die Gliederungsebene Kapitel hier nicht existiert. + + Während die Standardklassen automatische Kolumnentitel immer in + Versalien -- also Großbuchstaben -- setzen, verwendet {\KOMAScript} + die Schreibweise, die in der Überschrift vorgefunden wurde. Dies hat + verschiedene typografische Gründe. So sind Versalien als + Auszeichnung eigentlich viel zu mächtig. Verwendet man sie trotzdem, + sollten sie um einen Punkt kleiner gesetzt und leicht gesperrt + werden. All dies findet bei den Standardklassen keine Beachtung. +\item[myheadings] entspricht weitgehend dem Seitenstil + \texttt{headings}, allerdings werden die Kolumnentitel nicht + automatisch erzeugt, sondern liegen in der Verantwortung des + Anwenders. Er verwendet dazu die Anweisungen + \Macro{markboth}\IndexCmd{markboth} und + \Macro{markright}\IndexCmd{markright}. +\end{description} +Die Form der Seitenstile \texttt{headings} und \texttt{myheadings} +wird außerdem durch jede der vier Klassenoptionen \Option{headsepline}, +\Option{headnosepline}, \Option{footsepline} und +\Option{footnosepline} (siehe \autoref{sec:maincls.layoutOptions}) +beeinflusst. Der Seitenstil ab der aktuellen Seite wird mit der +Anweisung \Macro{pagestyle} umgeschaltet. Demgegenüber verändert +\Macro{thispagestyle} nur den Seitenstil der aktuellen Seite. + +Der Seitenstil kann jederzeit mit Hilfe der +\Macro{pagestyle}-Anweisung gesetzt werden und gilt dann ab der +nächsten Seite, die ausgegeben wird. Üblicherweise setzt man den +Seitenstil jedoch nur einmal zu Beginn des Dokuments oder in der +Präambel. Für eine Änderung des Seitenstils nur der aktuellen Seite +verwendet man stattdessen die Anweisung \Macro{thispagestyle}. Dies +geschieht auch an einigen Stellen im Dokument automatisch. +Beispielsweise wird bei allen Kapitelanfangsseiten implizit die +Anweisung \Macro{thispagestyle}\PParameter{plain} ausgeführt. + +Bitte beachten Sie auch, dass die Umschaltung zwischen automatischen +und manuellen Kolumnentiteln bei Verwendung des +\Package{scrpage2}-Pakets nicht mehr über den Seitenstil, sondern mit +speziellen Anweisungen erfolgt. Die Seitenstile \texttt{headings} und +\texttt{myheadings} sollten zusammen mit diesem Paket nicht verwendet +werden (siehe \autoref{cha:scrpage}). +% +\EndIndex{Cmd}{pagestyle}% +\EndIndex{Cmd}{thispagestyle}% +\EndIndex{Pagestyle}{empty}% +\EndIndex{Pagestyle}{plain}% +\EndIndex{Pagestyle}{headings}% +\EndIndex{Pagestyle}{myheadings}% + + +\BeginIndex[indexother]{}{Schriftart}% +Um die Schriftarten von Kopf und Fuß der Seite oder der Seitenzahl zu +ändern\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % +verwenden Sie die Benutzerschnittstelle, die in +\autoref{sec:maincls.font} beschrieben ist. Für den Kopf und +den Fuß ist dabei das gleiche Element zuständig, das Sie wahlweise mit +\FontElement{pagehead}\IndexFontElement{pagehead} oder +\FontElement{pagefoot}\IndexFontElement{pagefoot} benennen können. +Das Element für die Seitenzahl innerhalb des Kopfes oder Fußes heißt +\FontElement{pagenumber}\IndexFontElement{pagenumber}. Die +Voreinstellungen sind in +\autoref{tab:maincls.defaultFontsHeadFoot} zu finden. +% +\begin{table} + \centering% + \begin{tabular}{ll} + Element & Voreinstellung \\\hline\\[-1.75ex] + \FontElement{pagefoot}\IndexFontElement{pagefoot} & + \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ + \FontElement{pagehead}\IndexFontElement{pagehead} & + \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ + \FontElement{pagenumber}\IndexFontElement{pagenumber} & + \Macro{normalfont}\Macro{normalcolor}\\ + \end{tabular} + \caption{Schriftvoreinstellungen für die Elemente des Seitenstils} + \label{tab:maincls.defaultFontsHeadFoot} +\end{table} +% +\begin{Example} + Angenommen, Sie wollen Kopf und Fuß einen Schriftgrad kleiner und + kursiv setzen. Die Seitenzahl soll jedoch nicht kursiv, sondern fett + gesetzt werden. Davon abgesehen, dass das Ergebnis grauenvoll + aussehen wird, können Sie dies wie folgt erreichen: + \begin{small} +\begin{verbatim} + \setkomafont{pagehead}{% + \normalfont\normalcolor\itshape\small + } + \setkomafont{pagenumber}{\normalfont\bfseries} +\end{verbatim} + \end{small} + Wollen Sie hingegen lediglich, dass zusätzlich zur bereits + voreingestellten schrägen Variante ebenfalls eine kleinere Schrift + verwendet wird, so genügt: + \begin{small} +\begin{verbatim} + \addtokomafont{pagefoot}{\small} +\end{verbatim} + \end{small} + Wie Sie sehen, ist im letzten Beispiel das Element + \FontElement{pagefoot} verwendet. Das gleiche Ergebnis erhalten Sie + auch, wenn Sie stattdessen \FontElement{pagehead} verwenden (siehe + \autoref{tab:maincls.elementsWithoutText} auf + Seite~\pageref{tab:maincls.elementsWithoutText}). +\end{Example} +Es ist an dieser Stelle nicht möglich, Versalien für die +automatischen Kolumnentitel zu erzwingen. Wenn Sie dies wünschen, +verwenden Sie bitte das \Package{scrpage2}-Paket (siehe +\autoref{cha:scrpage}). + +Eine sinnvolle Verwendung können die Befehle +\Macro{usekomafont}\PParameter{pagehead} und +\Macro{usekomafont}\PParameter{pagenumber} finden, wenn Sie eigene +Seitenstile definieren. Falls Sie dafür nicht das \KOMAScript-Paket +\Package{scrpage2} (siehe \autoref{cha:scrpage}), sondern +beispielsweise das Paket \Package{fancyhdr}\IndexPackage{fancyhdr} +(siehe \cite{package:fancyhdr}) einsetzen, können Sie diese Befehle in +Ihren Definitionen verwenden. Dadurch bleiben Sie zu \KOMAScript{} +möglichst kompatibel. Verwenden Sie diese Befehle in Ihren eigenen +Definitionen nicht, so bleiben Schriftänderungen wie in den +vorangehenden Beispielen unbeachtet. Die Pakete +\Package{scrpage}\IndexPackage{scrpage} und +\Package{scrpage2}\IndexPackage{scrpage2} sorgen selbst für maximale +Kompatibilität. +% +\EndIndex[indexother]{}{Schriftart}% + + +\begin{Declaration} + \Macro{titlepagestyle}\\ + \Macro{partpagestyle}\\ + \Macro{chapterpagestyle}\\ + \Macro{indexpagestyle} +\end{Declaration}% +\BeginIndex{Cmd}{titlepagestyle}% +\BeginIndex{Cmd}{partpagestyle}% +\BeginIndex{Cmd}{chapterpagestyle}% +\BeginIndex{Cmd}{indexpagestyle}% +Auf einigen Seiten wird mit Hilfe von \Macro{thispagestyle} +automatisch ein anderer Seitenstil gewählt. Welcher Seitenstil dies +ist, wird diesen vier Makros entnommen. In der Voreinstellung ist der +Seitenstil in allen vier Fällen \PValue{plain}. Die Bedeutung der +einzelnen Makros entnehmen Sie bitte der folgenden Liste: +\begin{labeling}[~--]{\Macro{chapterpagestyle}} +\item[\Macro{titlepagestyle}] Seitenstil der Seite mit der + Titelei bei \emph{in-page}-Titeln +\item[\Macro{partpagestyle}] Seitenstil der Seiten mit + \Macro{part}-Titeln +\item[\Macro{chapterpagestyle}] + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}} Seitenstil auf + Kapitelanfangsseiten +\item[\Macro{indexpagestyle}] Seitenstil der ersten Indexseite +\end{labeling} +Die Seitenstile können mit Hilfe von \Macro{renewcommand} umdefiniert +werden. +\begin{Example} + Angenommen, Sie wollen, dass die Seiten mit der + \Macro{part}-Überschrift nicht mit einer Nummer versehen + werden. Dann setzen Sie folgende Anweisung beispielsweise in der + Präambel Ihres Dokuments: + \begin{small} +\begin{verbatim} + \renewcommand*{\partpagestyle}{empty} +\end{verbatim} + \end{small} + Wie Sie oben erfahren haben, ist der Seitenstil \PValue{empty} genau + das, was in diesem Beispiel verlangt wird. Natürlich können Sie auch + einen selbstdefinierten Seitenstil verwenden. + + Angenommen, Sie haben mit dem Paket \Package{scrpage2} (siehe + \autoref{cha:scrpage}) einen eigenen Seitenstil für + Kapitelanfangsseiten definiert. Diesem Seitenstil haben Sie den + passenden Namen \PValue{chapter} gegeben. Um diesen nun auch + tatsächlich zu verwenden, definieren Sie das Makro + \Macro{chapterpagestyle} entsprechend um: + \begin{small} +\begin{verbatim} + \renewcommand*{\chapterpagestyle}{chapter} +\end{verbatim} + \end{small} + + Angenommen, Sie wollen, dass das Inhaltsverzeichnis eines Buches + insgesamt nicht mit Seitenzahlen versehen wird. Danach soll + aber wieder mit dem Seitenstil \PValue{headings} gearbeitet + werden, sowie mit \PValue{plain} auf den Kapitelanfangsseiten. Dann + verwenden Sie folgende Anweisungen: + \begin{small} +\begin{verbatim} + \clearpage + \pagestyle{empty} + \renewcommand*{\chapterpagestyle}{empty} + \tableofcontents + \clearpage + \pagestyle{headings} + \renewcommand*{\chapterpagestyle}{plain} +\end{verbatim} + \end{small} + + Die Umdefinierungen der beiden anderen Seitenstilvorgaben + funktionieren in gleicher Weise. +\end{Example} +\begin{Explain} + Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit + lebenden Kolumnentiteln arbeiten indem er einfach eine Definition + wie +\begin{verbatim} + \renewcommand*{\chapterpagestyle}{headings} +\end{verbatim} + verwendet, wird sich möglicherweise wundern. Zwar wird dadurch + tatsächlich auch auf Kapitelanfangsseiten der Seitenstil + \PValue{headings} verwendet. Allerdings erscheint bei Verwendung der + Option \Option{openright} trotzdem kein Kolumnentitel. Die Ursache + dafür ist im \LaTeX-Kern zu finden. Dort ist \Macro{rightmark}, die + Marke für rechte Seiten, mit: +\begin{verbatim} + \let\@rightmark\@secondoftwo + \def\rightmark{\expandafter\@rightmark\firstmark\@empty\@empty} +\end{verbatim} + definiert. Es wird also die rechte Marke von \Macro{firstmark} + gesetzt. \Macro{firstmark} beinhaltet die erste linke und rechte + Marke, die auf einer Seite gesetzt wurde. Innerhalb von + \Macro{chapter} wird mit \Macro{markboth} die linke Marke auf die + Kapitelüberschrift und die rechte Marke auf einen leeren Inhalt + gesetzt. Damit ist also die erste rechte Marke auf einer rechten + Kapitelanfangsseite leer. Daher ist auf diesen Seiten auch der + Kolumnentitel leer. + + Nun könnte man natürlich in der Dokumentpräambel \Macro{rightmark} + so umdefinieren, dass statt der ersten, die letzte rechte Marke + einer Seite verwendet wird: +\begin{verbatim} + \makeatother + \renewcommand*{\rightmark}{% + \expandafter\@rightmark\botmark\@empty\@empty + } + \makeatletter +\end{verbatim} + Damit würde man aber auf rechten Kapitelanfangsseiten als + Kolumnentitel den Titel der letzten Abschnittsüberschrift + (\Macro{section}) dieser Seite erhalten. Das wäre verwirrend und + ist grundsätzlich abzulehnen. + + Ebenso verwirrend und damit abzulehnen wäre, wenn auf rechten + Kapitelanfangsseiten plötzlich als Kolumnentitel nicht die + Abschnittsüberschrift, sondern die Kapitelüberschrift erscheinen + würde. Das voreingestellte Verhalten ist also korrekt. +\end{Explain} +% +\EndIndex{Cmd}{titlepagestyle}% +\EndIndex{Cmd}{partpagestyle}% +\EndIndex{Cmd}{chapterpagestyle}% +\EndIndex{Cmd}{indexpagestyle}% + + +\begin{Declaration} + \Macro{clearpage}\\ + \Macro{cleardoublepage}\\ + \Macro{cleardoublestandardpage}\\ + \Macro{cleardoubleplainpage}\\ + \Macro{cleardoubleemptypage} +\end{Declaration}% +\BeginIndex{Cmd}{clearpage}% +\BeginIndex{Cmd}{cleardoublepage}% +\BeginIndex{Cmd}{cleardoublestandardpage}% +\BeginIndex{Cmd}{cleardoubleplainpage}% +\BeginIndex{Cmd}{cleardoubleemptypage}% +Im \LaTeX-Kern existiert die Anweisung \Macro{clearpage}, die dafür +sorgt, dass alle noch nicht ausgegebenen Fließumgebungen ausgegeben +werden und anschließend eine neue Seite begonnen wird. Außerdem +existiert die Anweisung \Macro{cleardoublepage}, die wie +\Macro{clearpage} arbeitet, durch die aber im doppelseitigen Layout +(siehe Layoutoption \Option{twoside} in +\autoref{sec:maincls.layoutOptions}) eine neue rechte Seite +begonnen wird. Dazu wird gegebenenfalls eine leere linke Seite im +aktuellen Seitenstil ausgegeben. + +Bei {\KOMAScript} arbeitet \Macro{cleardoublestandardpage} genau in +der soeben beschriebene Art und Weise. Die Anweisung +\Macro{cleardoubleplainpage} ändert demgegenüber den Seitenstil der +leeren linken Seite zusätzlich auf \PValue{plain}, um den +Kolumnentitel zu unterdrücken. Analog dazu wird bei der Anweisung +\Macro{cleardoubleemptypage} der Seitenstil \PValue{empty} verwendet, +um sowohl Kolumnentitel als auch Seitenzahl auf der leeren linken +Seite zu unterdrücken. Die Seite ist damit vollständig leer. Die +Arbeitsweise der \Macro{cleardoublepage}-Anweisung ist hingegen von +den in \autoref{sec:maincls.layoutOptions} erklärten Layoutoptionen +\Option{cleardoublestandard}, \Option{cleardoubleplain} und +\Option{cleardoubleempty} abhängig und entspricht je nach Option einer +der drei Anweisungen. +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% + + +\begin{Declaration} + \Macro{ifthispageodd}\Parameter{Wahr}\Parameter{Falsch} +\end{Declaration}% +\BeginIndex{Cmd}{ifthispageodd}% +\begin{Explain}% + Eine Besonderheit von \LaTeX{} besteht darin, dass es nicht einfach + möglich ist, festzustellen, auf welcher Seite man sich gerade befindet. + Damit ist auch schwer zu sagen, ob die aktuelle Seite eine + gerade oder eine ungerade Seitenzahl besitzt. Einige werden nun + einwenden, dass es doch die \TeX-Verzweigung \Macro{ifodd} gibt, die + man nur auf den aktuellen Seitenzähler anwenden muss. Dies ist + jedoch ein Irrtum. Zum Zeitpunkt der Auswertung einer solchen + Verzweigung weiß \LaTeX{} nämlich gar nicht, ob der gerade + bearbeitete Text noch auf dieser Seite oder erst auf der + nächsten gesetzt wird. Der Seitenumbruch findet nämlich nicht + bereits beim Einlesen des Absatzes, sondern erst in der + \emph{output}-Routine von \LaTeX{} statt. Zu dem Zeitpunkt wäre aber eine + Eingabe der Form \verb|\ifodd\value{page}| bereits vollständig + ausgewertet. + + Um zuverlässig festzustellen, ob ein Text auf einer geraden oder + einer ungeraden Seite ausgegeben wird, muss man normalerweise mit + einem Label und einer Seitenreferenz auf dieses Label + arbeiten. Dabei muss man auch noch spezielle Vorkehrungen für den + ersten \LaTeX-Durchlauf treffen, bei dem das Label noch nicht + bekannt ist. +\end{Explain} +Will man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden +oder einer ungeraden Seite ausgegeben wird, so verwendet man die +Anweisung \Macro{ifthispageodd}. Dabei wird das \PName{Wahr}-Argument +nur dann ausgeführt, wenn man sich gerade auf einer ungeraden Seite +befindet. Anderenfalls wird das \PName{Falsch}-Argument ausgeführt. + +\begin{Explain} +Genau genommen geht es natürlich nicht darum, wo man sich gerade +befindet, sondern entscheidend ist, ob eine Seitenreferenz auf ein +Label, das an dieser Stelle gesetzt würde, eine gerade oder eine +ungerade Seite referenzieren würde. +\end{Explain} +\begin{Example} + Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer + geraden oder ungeraden Seite ausgegeben wird. Sie könnten dann + beispielsweise mit der Eingabe + \begin{small} +\begin{verbatim} + Dies ist eine Seite mit \ifthispageodd{ungerader}{gerader} + Seitenzahl. +\end{verbatim} + \end{small} + die Ausgabe + \begin{quote} + Dies ist eine Seite mit \ifthispageodd{ungerader}{gerader} + Seitenzahl. + \end{quote} + erhalten. +\end{Example} + +Da die Anweisung \Macro{ifthispageodd} mit einem Mechanismus arbeitet, +der einem Label und einer Referenz darauf sehr ähnlich ist, werden +nach jeder Textänderung mindestens zwei \LaTeX-Durchläufe +benötigt. Erst dann ist die Entscheidung korrekt. Im ersten Durchlauf +wird eine Heuristik für die Entscheidung verwendet. + +\begin{Explain} + Es sind Fälle denkbar, in denen die Anweisung \Macro{ifthispageodd} + nie zum korrekten Ergebnis führt. Nehmen wir an, dass die Anweisung + innerhalb einer Box verwendet wird. Eine Box wird von \LaTeX{} + immer im Ganzen gesetzt. In ihr findet kein Seitenumbruch + statt. Nehmen wir weiter an, der \PName{Wahr}-Teil wäre sehr groß, + der \PName{Falsch}-Teil aber leer. Nehmen wir außerdem an, dass die + Box mit dem \PName{Falsch}-Teil noch auf die aktuelle, gerade Seite + passt, mit dem \PName{Wahr}-Teil jedoch nicht. Nehmen wir weiter an, + \KOMAScript{} entscheidet beim ersten Durchlauf heuristisch, dass der + \PName{Wahr}-Teil zutrifft. Die Entscheidung war damit falsch und + wird im nächsten Durchlauf revidiert. Dadurch wird aber der + \PName{Falsch}-Teil statt dem \PName{Wahr}-Teil abgearbeitet. Die + Entscheidung wird also im nächsten Durchlauf wieder revidiert und + immer so weiter. + + Diese Fälle sind zwar selten. Trotzdem soll niemand sagen, ich habe + nicht darauf hingewiesen, dass sie möglich sind. +\end{Explain} +% +\EndIndex{Cmd}{ifthispageodd} + +\begin{Declaration} + \Macro{pagenumbering}\Parameter{Nummerierungsstil} +\end{Declaration} +\BeginIndex{Cmd}{pagenumbering}% +Diese Anweisung funktioniert bei \KOMAScript{} genau in der gleichen +Weise wie bei den Standardklassen. Genaugenommen handelt es sich dabei +um eine Fähigkeit des \LaTeX-Kerns. Mit der Anweisung kann der +\PName{Nummerierungsstil} für die Seitenzahlen umgeschaltet werden. +Die Umschaltung gilt ab sofort, also ab der Seite, auf der diese +Anweisung aufgerufen wird. Die möglichen Angaben für den +\PName{Nummerierungsstil} sind \autoref{tab:numberKind} zu +entnehmen. Der Aufruf von \Macro{pagenumbering} setzt gleichzeitig die +Seitenzahl\Index{Seitenzahl} zurück. Die nächste ausgegebene Seite hat +also die Nummer 1 im gewählten \PName{Nummerierungsstil}. +% +\begin{table} + \centering + \begin{tabular}{lll} + Nummerierungsstil & Beispiel & Bedeutung \\\hline\\[-2ex] + \PValue{arabic} & 8 & arabische Zahlen \\ + \PValue{roman} & viii & kleine römische Zahlen \\ + \PValue{Roman} & VIII & große römische Zahlen \\ + \PValue{alph} & h & Kleinbuchstaben \\ + \PValue{Alph} & H & Großbuchstaben \\ + \end{tabular} + \caption{Verfügbare Nummerierungsstile für Seitenzahlen} + \label{tab:numberKind} +\end{table} +% +\EndIndex{Cmd}{pagenumbering} + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Die Titelei} +\label{sec:maincls.titles} + +\begin{Explain} + Nachdem die Optionen und einige allgemeine Dinge nun bekannt sind, + beginnen wir das Dokument, wo es normalerweise beginnt: mit der + Titelei. Unter der Titelei\Index{Titel} versteht man alles, was im + weitesten Sinne zum Titel eines Dokuments gehört. Wie in + \autoref{sec:maincls.layoutOptions} bereits erwähnt, wird + grundsätzlich zwischen Titelseiten und \emph{in-page} Titeln + unterschieden. Artikelklassen wie \Class{article} oder + \Class{scrartcl} haben \emph{in-page} Titel voreingestellt, während + bei Klassen wie \Class{report}, \Class{book}, \Class{scrreprt} und + \Class{scrbook} Titelseiten voreingestellt sind. Diese + Voreinstellung ist mit den Klassenoptionen \Option{titlepage} und + \Option{notitlepage} beeinflussbar. +\par +\end{Explain} + + +\begin{Declaration} + \Environment{titlepage} +\end{Declaration}% +\BeginIndex{Env}{titlepage}% +Grundsätzlich werden bei den Standardklassen und bei {\KOMAScript} +alle Titelseiten in einer speziellen Umgebung, der +\Environment{titlepage}-Umgebung, gesetzt. Diese Umgebung startet +immer mit einer neuen Seite -- im zweiseitigen Layout sogar mit +einer neuen rechten Seite -- im einspaltigen Modus. Für eine +Seite wird der Seitenstil mit +\Macro{thispagestyle}\PParameter{empty} geändert, so dass weder +Seitenzahl noch Kolumnentitel ausgegeben werden. Am Ende der +Umgebung wird die Seite automatisch beendet. Sollten Sie nicht +das automatische Layout der Titelei verwenden können, ist zu +empfehlen, eine eigene Titelei mit Hilfe dieser Umgebung zu +entwerfen. + +\begin{Example} + Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links + möglichst groß und fett das Wort "`Me"' steht -- kein Autor, kein Datum, + nichts weiter. Folgendes Dokument ermöglicht das: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{verbatim} + \end{small} + Einfach? Stimmt. +\end{Example} +% +\EndIndex{Env}{titlepage} + + +\begin{Declaration} + \Macro{maketitle}\OParameter{Seitenzahl} +\end{Declaration}% +\BeginIndex{Cmd}{maketitle}% +Während bei den Standardklassen nur maximal eine Titelseite mit den +drei Angaben Titel, Autor und Datum existiert, können bei +{\KOMAScript} mit \Macro{maketitle} bis zu sechs Titelseiten gesetzt +werden. Im Gegensatz zu den Standardklassen kennt \Macro{maketitle} +bei {\KOMAScript} außerdem noch ein optionales nummerisches Argument. +Findet es Verwendung, so wird die Nummer als Seitenzahl der ersten +Titelseite benutzt. Diese Seitenzahl wird jedoch nicht ausgegeben, +sondern beeinflusst lediglich die Zählung. Sie sollten hier +unbedingt eine ungerade Zahl wählen, da sonst die gesamte Zählung +durcheinander gerät. Meiner Auf"|fassung nach gibt es nur zwei +sinnvolle Anwendungen für das optionale Argument. Zum einen könnte man +dem Schmutztitel\Index[indexmain]{Schmutztitel} die logische Seitenzahl +-1 geben, um so die Seitenzählung erst ab der Haupttitelseite mit +1 zu beginnen. Zum anderen könnte man mit einer höhere Seitenzahl +beginnen, beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu +berücksichtigen, die erst vom Verlag hinzugefügt werden. Wird eine +\emph{in-page}-Titelei verwendet, wird das optionale Argument +ignoriert. Dafür kann der Seitenstil einer solchen Titelei durch +Umdefinierung des Makros \Macro{titlepagestyle} verändert werden. +Siehe hierzu \autoref{sec:maincls.pageStyle}. + +Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der +Titelei. Das Setzen der Titelei erfolgt immer mit +\Macro{maketitle}. Mit den nachfolgend erklärten Anweisungen +werden lediglich die Inhalte der Titelei festgelegt. Sie müssen +daher auch unbedingt vor \Macro{maketitle} verwendet werden. Es +ist jedoch nicht notwendig und bei Verwendung des +\Package{babel}-Pakets\IndexPackage{babel} (siehe +\cite{package:babel}) auch nicht empfehlenswert, diese +Anweisungen in der Dokumentpräambel vor +\Macro{begin}\PParameter{document} zu verwenden. +Beispieldokumente finden Sie am Ende des Abschnitts. + + +\begin{Declaration} + \Macro{extratitle}\Parameter{Schmutztitel} +\end{Declaration}% +\BeginIndex{Cmd}{extratitle}% +\begin{Explain}% + Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor + Verschmutzung geschützt. Diese Aufgabe übernahm dann die erste Seite + des Buches, die meist einen Kurztitel, eben den \emph{Schmutztitel} + trug. Auch heute noch wird diese Extraseite vor dem eigentlichen + Haupttitel gerne verwendet und enthält dann Verlagsangaben, + Buchreihennummer und ähnliche Angaben.\par +\end{Explain} +Bei {\KOMAScript} ist es möglich, vor der eigentlichen Titelseite eine +weitere Seite zu setzen. Als \PName{Schmutztitel} kann dabei +beliebiger Text -- auch mehrere Absätze -- gesetzt werden. Der Inhalt +von \PName{Schmutztitel} wird von {\KOMAScript} ohne zusätzliche +Beeinflussung der Formatierung ausgegeben. Dadurch ist dessen +Gestaltung völlig dem Anwender überlassen. Die Rückseite des +Schmutztitels bleibt leer. Der Schmutztitel ergibt auch +dann eine eigene Titelseite, wenn mit \emph{in-page}-Titeln gearbeitet +wird. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels +erfolgt als Bestandteil der Titelei mit \Macro{maketitle}. + +\begin{Example} + Kommen wir auf das Beispiel von oben zurück und gehen davon aus, + dass das spartanische "`Me"' nur den Schmutztitel darstellt. Nach + dem Schmutztitel soll noch der Haupttitel folgen. Dann kann wie + folgt verfahren werden: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge Me}} + \title{It's me} + \maketitle + \end{document} +\end{verbatim} + \end{small} + Sie können den Schmutztitel aber auch horizontal zentriert und etwas + tiefer setzen: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \begin{document} + \extratitle{\vspace*{4\baselineskip} + \begin{center}\textbf{\Huge Me}\end{center}} + \title{It's me} + \maketitle + \end{document} +\end{verbatim} + \end{small} + Die Anweisung \Macro{title} ist grundsätzlich notwendig, damit die + Beispiele fehlerfrei sind. Sie wird nachfolgend erklärt. +\end{Example} +% +\EndIndex{Cmd}{extratitle} + + +\begin{Declaration} + \Macro{titlehead}\Parameter{Titelkopf}\\ + \Macro{subject}\Parameter{Typisierung}\\ + \Macro{title}\Parameter{Titel}\\ + \Macro{author}\Parameter{Autor}\\ + \Macro{date}\Parameter{Datum}\\ + \Macro{publishers}\Parameter{Herausgeber}\\ + \Macro{and}\\ + \Macro{thanks}\Parameter{Fußnote} +\end{Declaration}% +\BeginIndex{Cmd}{titlehead}% +\BeginIndex{Cmd}{subject}% +\BeginIndex{Cmd}{title}% +\BeginIndex{Cmd}{author}% +\BeginIndex{Cmd}{date}% +\BeginIndex{Cmd}{publishers}% +\BeginIndex{Cmd}{and}% +\BeginIndex{Cmd}{thanks}% +Für den Inhalt der Haupttitelseite stehen sechs Elemente zur +Verfügung. Der \PName{Titelkopf}\Index[indexmain]{Titelkopf} wird +mit der Anweisung \Macro{titlehead} definiert. Er wird über die +gesamte Textbreite in normalem Blocksatz am Anfang der Seite +ausgegeben. Er kann vom Anwender frei gestaltet werden. + +Die \PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar +über dem \PName{Titel} ausgegeben. Dabei wird eine gegenüber der +Grundschrift leicht vergößerte Schrift verwendet. + +Der \PName{Titel} wird in einer sehr großen Schrift +ausgegeben. Dabei\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +findet neben der Größenumschaltung auch die Schriftumschaltung für das +Element \FontElement{title}\IndexFontElement{title} Anwendung. +Voreingestellt ist die gleiche Schrift, die für das Element +\FontElement{sectioning}\IndexFontElement{sectioning} verwendet +wird (siehe \autoref{tab:maincls.elementsWithoutText}). Die Größe ist +jedoch davon unabhängig (siehe \autoref{tab:maincls.mainTitle}). Die +Voreinstellungen können mit Hilfe der Anweisungen aus +\autoref{sec:maincls.font} verändert werden. + +Unter dem \PName{Titel} folgt der \PName{Autor}\Index[indexmain]{Autor}. +Es können auch mehrere Autoren innerhalb des Arguments von +\Macro{author} angegeben werden. Diese sind dann mit \Macro{and} +voneinander zu trennen. + +Unter dem Autor oder den Autoren folgt das Datum\Index{Datum}. +Dabei ist das aktuelle Datum, \Macro{today}\IndexCmd{today}, +voreingestellt. Es kann jedoch mit \Macro{date} eine beliebige +Angabe -- auch ein leere -- erreicht werden. + +Als Letztes folgt schließlich der +\PName{Herausgeber}\Index[indexmain]{Herausgeber}. Selbstverständlich +kann diese Anweisung auch für andere Angaben geringer Wichtigkeit +verwendet werden. Notfalls kann durch Verwendung einer \Macro{parbox} +über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe +nicht zentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als +Äquivalent zum Titelkopf zu betrachten. Dabei ist jedoch zu beachten, +dass sie oberhalb von eventuell vorhandenen Fußnoten ausgegeben wird. + +Fußnoten\Index{Fussnoten=Fußnoten} werden auf der Titelseite +nicht mit \Macro{footnote}, sondern mit der Anweisung +\Macro{thanks} erzeugt. Sie dienen in der Regel für Anmerkungen +bei den Autoren. Als Fußnotenzeichen werden dabei Symbole statt +Zahlen verwendet. + +Bis auf den \PName{Titelkopf} und eventuelle Fußnoten werden alle +Ausgaben horinzontal zentriert. Diese Angaben sind noch einmal kurz +zusammengefasst in \autoref{tab:maincls.mainTitle} zu finden. +\begin{table} + \centering + \begin{tabular}{llll} + Element & Anweisung & Schrift + & Ausrichtung \\ + \hline\rule{0pt}{2.7ex}% + Seitenkopf & \Macro{titlehead} & \Macro{normalsize} + & Blocksatz \\ + Typisierung & \Macro{subject} & \Macro{Large} + & zentriert \\ + Titel & \Macro{title} & \Macro{huge} + & zentriert \\ + Autoren & \Macro{author} & \Macro{Large} + & zentriert \\ + Datum & \Macro{date} & \Macro{Large} + & zentriert \\ + Herausgeber & \Macro{publishers} & \Macro{Large} + & zentriert \\ + \end{tabular} + \caption[Der Haupttitel]{Schriftgröße und horizontale + Ausrichtung der Elemente der Haupttitelseite in der Reihenfolge + ihrer vertikalen Position von oben nach unten bei Verwendung von + \Macro{maketitle}} + \label{tab:maincls.mainTitle} +\end{table} + +\begin{Example} + Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei + vorgegeben, dass die Titelseite oben linksbündig das Institut + einschließlich Adresse und rechtsbündig das Semester wiedergibt. Wie + üblich ist ein Titel einschließlich Autor und Abgabedatum zu setzen. + Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es + sich um eine Diplomarbeit handelt. Sie könnten das wie folgt + erreichen: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \usepackage{ngerman} + \begin{document} + \titlehead{{\Large Universit"at Schlauenheim + \hfill SS~2001\\} + Institut f"ur Raumkr"ummung\\ + Hochschulstra"se~12\\ + 34567 Schlauenheim} + \subject{Diplomarbeit} + \title{Digitale Raumsimulation mit dem DSP\,56004} + \author{cand. stup. Uli Ungenau} + \date{30. Februar 2001} + \publishers{Betreut durch Prof. Dr. rer. stup. Naseweis} + \maketitle + \end{document} +\end{verbatim} + \end{small} +\end{Example} + +\begin{Explain} + Ein häufiges Missverständnis betrifft die Bedeutung der + Haupttitelseite. Irrtümlich wird oft angenommen, es handle sich + dabei um den Buchumschlag oder Buchdeckel. Daher wird häufig + erwartet, dass die Titelseite nicht den Randvorgaben für + doppelseitige Satzspiegel gehorcht, sondern rechts und links gleich + große Ränder besitzt. Nimmt man jedoch einmal ein Buch zur Hand und + klappt es auf, trifft man sehr schnell auf mindestens eine + Titelseite unter dem Buchdeckel innerhalb des sogenannten + Buchblocks. Genau diese Titelseiten werden mit \Macro{maketitle} + gesetzt. Wie beim Schmutztitel handelt es sich also auch bei der + Haupttitelseite um eine Seite innerhalb des Buchblocks, die deshalb + dem Satzspiegel des gesamten Dokuments gehorcht. Überhaupt ist ein + Buchdeckel, das \emph{Cover}, etwas, was man in einem getrennten + Dokument erstellt. Schließlich hat er oft eine sehr individuelle + Gestalt. Es spricht auch nichts dagegen, hierfür ein Grafik- oder + DTP-Programm zu Hilfe zu nehmen. Ein getrenntes Dokument sollte auch + deshalb verwendet werden, weil es später auf ein anderes + Druckmedium, etwa Karton, und möglicherweise mit einem anderen + Drucker ausgegeben werden soll.\par +\end{Explain} +% +\EndIndex{Cmd}{titlehead}% +\EndIndex{Cmd}{subject}% +\EndIndex{Cmd}{title}% +\EndIndex{Cmd}{author}% +\EndIndex{Cmd}{date}% +\EndIndex{Cmd}{publishers}% +\EndIndex{Cmd}{and}% +\EndIndex{Cmd}{thanks}% + + +\begin{Declaration} + \Macro{uppertitleback}\Parameter{Titelrückseitenkopf}\\ + \Macro{lowertitleback}\Parameter{Titelrückseitenfuß} +\end{Declaration}% +\BeginIndex{Cmd}{uppertitleback}% +\BeginIndex{Cmd}{lowertitleback}% +% +Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite +des Blatts mit der Titelseite leer. Bei {\KOMAScript} lässt sich die +Rückseite der Haupttitelseite hingegen für weitere Angaben +nutzen. Dabei wird zwischen genau zwei Elementen unterschieden, die +der Anwender frei gestalten kann: dem \PName{Titelrückseitenkopf} und +dem \PName{Titelrückseitenfuß}. Dabei kann der Kopf bis zum Fuß +reichen und umgekehrt. Nimmt man diese Anleitung als Beispiel, so +wurde der Haftungsausschluss mit Hilfe von \Macro{uppertitleback} +gesetzt. +\EndIndex{Cmd}{uppertitleback}% +\EndIndex{Cmd}{lowertitleback}% + + +\begin{Declaration} + \Macro{dedication}\Parameter{Widmung} +\end{Declaration}% +\BeginIndex{Cmd}{dedication}% +{\KOMAScript} bietet eine eigene Widmungsseite. Diese +Widmung\Index{Widmung} wird zentriert und in etwas größerer Schrift +gesetzt. Die Rückseite ist wie bei der Seite mit dem Schmutztitel +grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen +Titelei mit \Macro{maketitle} ausgegeben und muss daher vor dieser +Anweisung definiert sein. + +\begin{Example} + Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den + Sie Ihrer Frau widmen wollen. Das könnte wie folgt aussehen: + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \usepackage{ngerman} + \begin{document} + \extratitle{\textbf{\Huge In Liebe}} + \title{In Liebe} + \author{Prinz Eisenherz} + \date{1412} + \lowertitleback{Dieser Gedichtband wurde mit Hilfe von + {\KOMAScript} und {\LaTeX} gesetzt.} + \uppertitleback{Selbstverlach\par + Auflage: 1 Exemplar} + \dedication{Meinem Schnuckelchen\\ + in ewiger Liebe\\ + von Deinem Hasenboppelchen.} + \maketitle + \end{document} +\end{verbatim} + \end{small} +\end{Example} +% +\EndIndex{Cmd}{dedication} +% +\EndIndex{Cmd}{maketitle} + + +\begin{Declaration} + \Environment{abstract} +\end{Declaration}% +\BeginIndex{Env}{abstract}% +\OnlyAt{\Class{scrartcl}\and\Class{scrreprt}}% +Insbesondere bei Artikeln, seltener bei Berichten findet man +unmittelbar unter der Titelei und noch vor dem Inhaltsverzeichnis +eine Zusammenfassung\Index{Zusammenfassung}. Diese wird daher +oftmals als Bestandteil der Titelei betrachtet. Einige +\LaTeX-Klassen bieten eine spezielle Umgebung für diese +Zusammenfassung, die \Environment{abstract}-Umgebung. Diese wird +unmittelbar ausgegeben, ist also nicht Bestandteil der mit +\Macro{maketitle} gesetzten Titelei. Bitte beachten Sie +unbedingt, dass es sich bei \Environment{abstract} um eine +Umgebung und nicht um eine Anweisung handelt. Ob die +Zusammenfassung mit einer Überschrift versehen wird oder nicht, +wird über die Optionen \Option{abstracton} und +\Option{abstractoff} gesteuert (siehe +\autoref{sec:maincls.formattingOptions}). + +Bei Büchern (\Class{scrbook}) ist die Zusammenfassung häufig +Bestandteil der Einleitung oder eines gesonderten Kapitels am Ende des +Dokuments. Daher gibt es hier keine \Environment{abstract}-Umgebung. +Bei Verwendung der Klasse \Class{scrreprt} ist es sicher eine +Überlegung wert, ob man nicht genauso verfahren sollte. +% +\EndIndex{Env}{abstract} + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Das Inhaltsverzeichnis} +\label{sec:maincls.toc} + +Auf die Titelei folgt normalerweise das +Inhaltsverzeichnis\Index{Inhaltsverzeichnis}. Häufig findet man nach +dem Inhaltsverzeichnis auch noch die Verzeichnisse der +Gleitumgebungen, beispielsweise von Tabellen und Abbildungen (siehe +\autoref{sec:maincls.floats}). + +\begin{Declaration} + \Macro{tableofcontents}\\ + \Macro{contentsname} +\end{Declaration}% +\BeginIndex{Cmd}{tableofcontents}% +\BeginIndex{Cmd}{contentsname}% +Die Ausgabe des Inhaltsverzeichnisses erreicht man mit +\Macro{tableofcontents}. Um ein korrektes Inhaltsverzeichnis zu +erhalten, sind nach jeder Änderung mindestens zwei \LaTeX-Läufe +notwendig. Mit der Option \Option{liststotoc} kann erreicht werden, +dass das Abbildungs- und das Tabellenverzeichnis im Inhaltsverzeichnis +aufgeführt werden. Mit \Option{idxtotoc} existiert auch eine +entsprechende Option für den Index. Im klassischen Buchdruck ist dies +eher unüblich. Das Literaturverzeichnis findet man etwas häufiger im +Inhaltsverzeichnis aufgeführt. Auch hierfür gibt es mit +\Option{bibtotoc} und \Option{bibtotocnumbered} Optionen. Diese +Optionen sind in \autoref{sec:maincls.tocOptions} näher +erläutert. + +Das Inhaltsverzeichnis wird als nicht nummeriertes Kapitel gesetzt und +unterliegt damit den Seiteneffekten der \Macro{chapter*}-Anweisung, +die in \autoref{sec:maincls.structure} genannt sind. Allerdings +werden bei Verwendung automatischer Kolumnentitel\Index{Kolumnentitel} +diese sowohl für linke als auch rechte Seiten korrekt mit der +Überschrift des Inhaltsverzeichnisses belegt. Der Text der Überschrift +ist im Makro \Macro{contentsname} abgelegt. +% +\EndIndex{Cmd}{tableofcontents}% +\EndIndex{Cmd}{contentsname}% + +Für den Aufbau des Inhaltsverzeichnisses gibt es zwei Varianten. +Bei der Standardvariante werden die Gliederungsebenen so +eingerückt, dass die Gliederungsnummer jeweils linksbündig mit dem +Text der nächst höheren Ebene abschließt. Der Platz für die +Gliederungsnummer ist dadurch jedoch limitiert und reicht für +etwas mehr als 1,5 Stellen je Gliederungsebene. Sollte dies zu +einem Problem werden, lässt sich über die Option \Option{tocleft} ein +Verhalten einstellen, bei dem alle Einträge +des Inhaltsverzeichnisses linksbündig untereinander gesetzt werden +(siehe \autoref{sec:maincls.tocOptions}). + + +Der Eintrag für die oberste Gliederungsebene unter \Macro{part}, also +\Macro{chapter} bei \Class{scrbook}\IndexClass{scrbook} und +\Class{scrreprt}\IndexClass{scrreprt} beziehungsweise \Macro{section} +bei \Class{scrartcl}\IndexClass{scrartcl} wird nicht eingerückt. Dafür +findet auf ihn die Schriftart für das Element +\FontElement{sectioning}\IndexFontElement{sectioning} (siehe +\autoref{tab:maincls.elementsWithoutText}) Anwendung. Gleichzeitig +befinden sich zwischen dem Text der Gliederungsebene und der +Seitenzahl keine Pünktchen. Die typografischen Gründe dafür liegen in +der normalerweise anderen Schriftart sowie der erwünschten +Hervorhebung. Das Inhaltsverzeichnis dieser Anleitung ist mit +den Voreinstellungen gesetzt und dient als Beispiel. + + +\begin{Declaration} + \Counter{tocdepth} +\end{Declaration}% +\BeginIndex{Counter}{tocdepth}% +Normalerweise werden bei den Klassen \Class{scrbook} und +\Class{scrreprt} die Gliederungsebenen \Macro{part} bis +\Macro{subsection} und bei der Klasse \Class{scrartcl} die Ebenen +\Macro{part} bis \Macro{subsubsection} in das Inhaltsverzeichnis +aufgenommen. Gesteuert wird dies über den Zähler \Counter{tocdepth}. +Dabei steht der Wert -1 für \Macro{part}, 0 für +\Macro{chapter} und so weiter. Da bei \Class{scrartcl} die Ebene +\Macro{chapter} nicht existiert, beginnt bei dieser Klasse die Zählung +mit \Macro{part} bei 0. Durch Setzen oder Erhöhen oder Verringern des +Zählers kann bestimmt werden, bis zu welcher Gliederungsebene Einträge +in das Inhaltsverzeichnis erfolgen sollen. Dies ist übrigens bei den +Standardklassen ganz genauso. + +Bei Verwendung des \Package{scrpage2}-Pakets\IndexPackage{scrpage2} +(siehe \autoref{cha:scrpage}) muss man sich nicht die nummerischen +Werte der einzelnen Gliederungsebenen merken. Dann stehen dafür die +Makros \Macro{chapterlevel}, \Macro{sectionlevel} und so weiter bis +hinunter zu \Macro{subparagraphlevel} zur Verfügung. +\begin{Example} + Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene + \Macro{subsubsection} verwendet wird. Gehen wir weiter davon aus, + dass Sie diese Gliederungsebene aber nicht im Inhaltsverzeichnis + haben wollen. Dann könnte die Präambel Ihres Dokuments wie folgt + aussehen: + \begin{small} +\begin{verbatim} + \documentclass{scrartcl} + \setcounter{tocdepth}{2} +\end{verbatim} + \end{small} + Sie setzen den Zähler \Counter{tocdepth} also auf 2, weil Sie + wissen, dass dies der Wert für \Macro{subsection} ist. Wissen Sie + stattdessen nur, dass normalerweise bei \Class{scrartcl} Einträge in + das Inhaltsverzeichnis bis zur Ebene \Macro{subsubsection} erfolgen, + können Sie auch einfach vom voreingestellten Wert des Zählers + \Counter{tocdepth} eins abziehen: + \begin{small} +\begin{verbatim} + \documentclass{scrartcl} + \addtocounter{tocdepth}{-1} +\end{verbatim} + \end{small} + Wieviel Sie von \Counter{tocdepth} subtrahieren oder dazu addieren + müssen, kön"-nen Sie natürlich auch einfach nach einem ersten + \LaTeX-Lauf im Inhaltsverzeichnis abzählen. +\end{Example} +\iffalse +Ein kleiner Tip am Rande: In obigem Beispiel benötigen Sie immer +irgendein Vorwissen. Es geht aber auch ohne indem Sie zunächst zwei +\LaTeX-Läufe durchführen. Dann zählen Sie am Inhaltsverzeichnis ab, +wieviele Ebenen Sie zu \Counter{tocdepth} hinzuaddieren oder davon +abziehen müssen. Dies erledigen Sie dann wie eben mit Hilfe von +\Macro{addtocounter} in der Präambel Ihres Dokuments. +\fi +% +\EndIndex{Counter}{tocdepth}% + + +\section{Die Verzeichnisse der Gleitumgebungen} + +In der Regel findet man die Verzeichnisse der +Gleitumgebungen\index{Gleitumgebung}, also +Tabellen-\index{Tabellenverzeichnis} und +Abbildungsverzeichnisse\index{Abbildungsverzeichnis}, unmittelbar nach +dem Inhaltsverzeichnis. In einigen Dokumenten wandern diese auch in +den Anhang. Der Autor bevorzugt jedoch die Platzierung unmittelbar +nach dem Inhaltsverzeichnis. Daher erfolgt die Erklärung auch in diesem +Abschnitt. +\begin{Declaration} + \Macro{listoftables}\\ + \Macro{listoffigures} +\end{Declaration} +\BeginIndex{Cmd}{listoftables}% +\BeginIndex{Cmd}{listoffigures}% +Mit diesen Anweisungen kann ein Verzeichnis der Tabellen +beziehungsweise der Abbildungen ausgegeben werden. Änderungen, die +Auswirkungen auf diese Verzeichnisse haben, werden erst nach zwei +\LaTeX{}-Läufen sichtbar. Die Form der Verzeichnisse kann durch +die Optionen \Option{listsindent} und \Option{listsleft} beeinflusst +werden (siehe \autoref{sec:maincls.listsOptions}). Darüber +hinaus wirken sich indirekt die Optionen \Option{liststotoc} und +\Option{liststotocnumbered} aus (siehe +\autoref{sec:maincls.tocOptions}). +% +\EndIndex{Cmd}{listoftables}% +\EndIndex{Cmd}{listoffigures}% + + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Der Text} +\label{sec:maincls.mainText} + +In diesem Abschnitt finden Sie alles, was \KOMAScript{} für die +Erstellung des eigentlichen Textes bereitstellt. Dies ist der Teil, +auf den Sie sich bei einem Dokument zunächst konzentrieren +sollten. Selbstverständlich gehören dazu auch Tabellen, Abbildungen +und vergleichbares Material. + + +\subsection{Abgrenzung} +\label{sec:maincls.separation} + +\OnlyAt{\Class{scrbook}}Bevor wir tatsächlich zum Text kommen, +sind noch drei Anweisungen kurz anzusprechen, die es bei der +Standardklasse \Class{book} und der {\KOMAScript}-Klasse +\Class{scrbook} gibt. Sie können bei einem Buch zur Abgrenzung des +\emph{Vorspanns}\Index{Vorspann}, des +\emph{Hauptteils}\Index{Hauptteil} und des +\emph{Nachspanns}\Index{Nachspann} verwendet werden. + +\begin{Declaration} + \Macro{frontmatter}\\ + \Macro{mainmatter}\\ + \Macro{backmatter} +\end{Declaration}% +\BeginIndex{Cmd}{frontmatter}% +\BeginIndex{Cmd}{mainmatter}% +\BeginIndex{Cmd}{backmatter}% +Mit \Macro{frontmatter} wird der Vorspann eingeleitet. Im Vorspann +werden die nummerierten Seiten mit römischen Seitenzahlen versehen. +Kapitelüberschriften sind im Vorspann nicht nummeriert. +Abschnittsüberschriften wären jedoch nummeriert, gingen von +Kapitelnummer 0 aus und wären außerdem über Kapitelgrenzen hinweg +durchgehend nummeriert. Dies spielt jedoch keine Rolle, da der +Vorspann allenfalls für die Titelei, das +Inhalts-\Index{Inhaltsverzeichnis}, +Abbildungs-\Index{Abbildungsverzeichnis} und +Tabellenverzeichnis\Index{Tabellenverzeichnis} und ein +Vorwort\Index{Vorwort} verwendet wird. Das Vorwort kann also als +normales Kapitel gesetzt werden. Ein Vorwort sollte niemals in +Abschnitte unterteilt, sondern möglichst kurz gefasst werden. Im +Vorwort wird also keine tiefere Gliederungsebene als Kapitel benötigt. + +Mit \Macro{mainmatter} wird der Hauptteil eingeleitet. Existiert kein +Vorspann, so kann diese Anweisung auch entfallen. Im Hauptteil sind +arabische Seitenzahlen voreingestellt. Die Seitenzählung beginnt im +Hauptteil wieder mit 1. + +Mit \Macro{backmatter} wird der Nachspann eingeleitet. Was zum +Nachspann gehört, ist unterschiedlich. Manchmal wird im Nachspann nur +das Literaturverzeichnis\Index{Literaturverzeichnis}, manchmal nur +der Index\Index{Index} gesetzt. Manchmal erscheint der gesamte +Anhang im Nachspann. Der Nachspann gleicht im übrigen dem Vorspann. +% +\EndIndex{Cmd}{frontmatter}% +\EndIndex{Cmd}{mainmatter}% +\EndIndex{Cmd}{backmatter}% + + +\subsection{Gliederung}\Index[indexmain]{Gliederung} +\label{sec:maincls.structure} + +Unter der Gliederung versteht man die Einteilung eines Dokuments in +Teile, Kapitel, Abschnitte und weitere Gliederungsebenen. + +\begin{Declaration} + \Macro{part}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{chapter}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{section}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{subsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{subsubsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{paragraph}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{subparagraph}\OParameter{Kurzform}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{part}% +\BeginIndex{Cmd}{chapter}% +\BeginIndex{Cmd}{section}% +\BeginIndex{Cmd}{subsection}% +\BeginIndex{Cmd}{subsubsection}% +\BeginIndex{Cmd}{paragraph}% +\BeginIndex{Cmd}{subparagraph}% +Die Standardgliederungsbefehle funktionieren bei {\KOMAScript} beinahe +genau wie bei den Standardklassen. So kann ganz normal über ein +optionales Argument ein abweichender Text für den Kolumnentitel und +das Inhaltsverzeichnis vorgegeben werden. +\OnlyAt{\Class{scrartcl}}\Macro{chapter} existiert nur bei Buch- +und Berichtklassen, also bei \Class{book}, \Class{scrbook}, +\Class{report} und \Class{scrreport}, nicht jedoch bei den +Artikelklassen \Class{article} und \Class{scrartcl}. \Macro{chapter} +unterscheidet sich bei {\KOMAScript} außerdem gravierend von der +Version der Standardklassen. Bei den Standardklassen wird die +Kapitelnummer mit dem Präfix "`Kapitel"' beziehungsweise dem +Kapitelnamen in der gewählten Sprache in einer Zeile vor dem +eigentlichen Text der Überschrift ausgegeben. Diese sehr mächtige +Form wird bei {\KOMAScript} durch eine einfache Nummer vor dem Text +abgelöst, lässt sich aber durch die Option \Option{chapterprefix} +wieder einstellen (siehe \autoref{sec:maincls.layoutOptions}). + + + +Bitte beachten Sie, dass \Macro{part} und \Macro{chapter} den +Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist bei +\KOMAScript{} in den Makros \Macro{partpagestyle} und +\Macro{chapterpagestyle} abgelegt (siehe +\autoref{sec:maincls.pageStyle}). + +\BeginIndex[indexother]{}{Schriftart}% +\BeginIndex[indexother]{}{Schriftgroesse=Schriftgröße}% +Die Schriftart aller Gliederungsebenen\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +kann mit der in \autoref{sec:maincls.font} beschriebenen +Anweisungen \Macro{setkomafont}\IndexCmd{setkomafont} und +\Macro{addtokomafont}\IndexCmd{addtokomafont} bestimmt werden. Dabei +wird zunächst generell das Element +\FontElement{sectioning}\IndexFontElement{sectioning} und +anschließend zusätzlich je Gliederungsebene ein spezifisches Element +verwendet (siehe \autoref{tab:maincls.elementsWithoutText}). Die +Schriftart für das Element +\FontElement{sectioning}\IndexFontElement{sectioning} ist als +\Macro{normalfont}""\Macro{normalcolor}""\Macro{sffamily}""% +\Macro{bfseries} vordefiniert. Die Voreinstellungen für die +spezifischen Elemente sind mit einer Schriftgröße vorbelegt und daher +von den Klassenoptionen \Option{bigheadings}, \Option{normalheadings} +und \Option{smallheadings} (siehe +\autoref{sec:maincls.fontOptions}) abhängig. Sie finden die +Voreinstellungen in \autoref{tab:maincls.structureElementsFont}. +% +\begin{table} + \centering% + \begin{tabular}{lll} + Klassenoption & Element & Voreinstellung\\\hline\\[-1.6ex] + \Option{bigheadings} + & \FontElement{part}\IndexFontElement{part} + & \Macro{Huge} \\ + & \FontElement{partnumber}\IndexFontElement{partnumber} + & \Macro{huge} \\ + & \FontElement{chapter}\IndexFontElement{chapter} + & \Macro{huge} \\ + & \FontElement{section}\IndexFontElement{section} + & \Macro{Large} \\ + & \FontElement{subsection}\IndexFontElement{subsection} + & \Macro{large} \\ + & \FontElement{subsubsection}\IndexFontElement{subsubsection} + & \Macro{normalsize} \\ + & \FontElement{paragraph}\IndexFontElement{paragraph=} + & \Macro{normalsize} \\ + & \FontElement{subparagraph}\IndexFontElement{subparagraph} + & \Macro{normalsize} \\[1ex] + \Option{normalheadings} + & \FontElement{part} & \Macro{huge} \\ + & \FontElement{partnumber} & \Macro{huge} \\ + & \FontElement{chapter} & \Macro{LARGE} \\ + & \FontElement{section} & \Macro{Large} \\ + & \FontElement{subsection} & \Macro{large} \\ + & \FontElement{subsubsection} & \Macro{normalsize} \\ + & \FontElement{paragraph} & \Macro{normalsize} \\ + & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex] + \Option{smallheadings} + & \FontElement{part} & \Macro{LARGE} \\ + & \FontElement{partnumber} & \Macro{LARGE} \\ + & \FontElement{chapter} & \Macro{Large} \\ + & \FontElement{section} & \Macro{large} \\ + & \FontElement{subsection} & \Macro{normalsize} \\ + & \FontElement{subsubsection} & \Macro{normalsize} \\ + & \FontElement{paragraph} & \Macro{normalsize} \\ + & \FontElement{subparagraph} & \Macro{normalsize} + \end{tabular} + \caption{Schriftvoreinstellungen für die Elemente der Gliederung} + \label{tab:maincls.structureElementsFont} +\end{table} + +\begin{Example} + Angenommen, Sie verwenden die Klassenoption \Option{bigheadings} und + stellen fest, dass die sehr großen Überschriften von Teildokumenten + zu fett wirken. Nun könnten Sie natürlich wie folgt verfahren: + \begin{small} +\begin{verbatim} + \setkomafont{sectioning}{\normalfont\normalcolor\sffamily} + \part{Anhänge} + \addtokomafont{sectioning}{\bfseries} +\end{verbatim} + \end{small} + Auf diese Weise würden Sie nur für die eine Überschrift "`Anhänge"' + das Schriftattribut \textbf{Fett} abschalten. Sehr viel komfortabler + und eleganter ist es aber, stattdessen generell für + \Macro{part}-Überschriften eine entsprechende Änderung vorzunehmen. + Das ist wahlweise mit: + \begin{small} +\begin{verbatim} + \addtokomafont{part}{\normalfont\sffamily} + \addtokomafont{partnumber}{\normalfont\sffamily} +\end{verbatim} + \end{small} + oder einfach mit: + \begin{small} +\begin{verbatim} + \addtokomafont{part}{\mdseries} + \addtokomafont{partnumber}{\mdseries} +\end{verbatim} + \end{small} + möglich. Die letzte Version ist vorzuziehen, da diese auch dann noch + zum gewünschten Ergebnis führt, wenn Sie später das + \FontElement{sectioning}-Element\IndexFontElement{sectioning} + wie folgt ändern: + \begin{small} +\begin{verbatim} + \setkomafont{sectioning}{\normalfont\normalcolor\bfseries} +\end{verbatim} + \end{small} + Mit dieser Änderung verzichten Sie darauf, für alle + Gliederungsebenen serifenlose Schrift voreinzustellen. +\end{Example} + +Ich möchte Sie eindringlich davor warnen, die Möglichkeit zur +Schriftumschaltung zu missbrauchen, um wild Schriften, Schriftgrößen +und Schriftattribute miteinander zu mischen. Die Auswahl der richtigen +Schrift für die richtige Aufgabe ist eine Sache für Experten und hat +sehr, sehr wenig mit dem persönlichem Geschmack eines Laien zu +tun. Siehe hierzu auch das Zitat am Ende von +\autoref{sec:typearea.tips} und die folgende Erklärung. + +\begin{Explain} + Unterschiedliche Schriften für unterschiedliche Gliederungsebenen + sind mit {\KOMAScript}-Mitteln möglich. Der Laie sollte sie aber + meiden wie der Teufel das Weihwasser. Dies hat typografische Gründe. + + Eine Regel der Typografie besagt, dass man möglichst wenig Schriften + miteinander mischen soll. Serifenlose für die Überschriften scheinen + bereits ein Verstoß gegen diese Regel zu sein. Allerdings muss man + wissen, dass fette, große, serifenbehaftete Buchstaben oft viel zu + mächtig für eine Überschrift sind. Man müsste dann strenggenommen + zumindest auf eine normale statt eine fette oder halbfette Schrift + ausweichen. In tiefen Gliederungsebenen kann das aber wieder zu + schwach sein. Andererseits haben Serifenlose in Überschriften eine + sehr angenehme Wirkung und fast nur für Überschriften eine + Berechtigung. Daher wurde diese Voreinstellung für {\KOMAScript} mit + gutem Grund gewählt. + + Größere Vielfalt sollte aber vermieden werden. Schriftenmischung + ist etwas für Profis. Aus den genannten Gründen sollten Sie bei + Verwendung anderer als der Standard-\TeX-Fonts -- egal ob + CM-\Index{CM-Fonts} oder EC-Fonts\Index{EC-Fonts} -- bezüglich der + Verträglichkeit der serifenlosen und serifenbehafteten Schrift einen + Experten zu Rate ziehen oder die Schrift für das Element + \FontElement{sectioning}\IndexFontElement{sectioning} + vorsichtshalber wie in obigem Beispiel umdefinieren. Die häufig + anzutreffenden Kombinationen Times mit Helvetica oder Palatino mit + Helvetica werden vom Autor als ungünstig betrachtet. +\end{Explain} +\EndIndex[indexother]{}{Schriftart}% +\EndIndex[indexother]{}{Schriftgroesse=Schriftgröße}% +% +\EndIndex{Cmd}{part}% +\EndIndex{Cmd}{chapter}% +\EndIndex{Cmd}{section}% +\EndIndex{Cmd}{subsection}% +\EndIndex{Cmd}{subsubsection}% +\EndIndex{Cmd}{paragraph}% +\EndIndex{Cmd}{subparagraph}% + + +\begin{Declaration} + \Macro{part*}\Parameter{Überschrift}\\ + \Macro{chapter*}\Parameter{Überschrift}\\ + \Macro{section*}\Parameter{Überschrift}\\ + \Macro{subsection*}\Parameter{Überschrift}\\ + \Macro{subsubsection*}\Parameter{Überschrift}\\ + \Macro{paragraph*}\Parameter{Überschrift}\\ + \Macro{subparagraph*}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{part*}% +\BeginIndex{Cmd}{chapter*}% +\BeginIndex{Cmd}{section*}% +\BeginIndex{Cmd}{subsection*}% +\BeginIndex{Cmd}{subsubsection*}% +\BeginIndex{Cmd}{paragraph*}% +\BeginIndex{Cmd}{subparagraph*}% +Ebenso existieren die Sternvarianten der Gliederungsbefehle, bei +denen keine Nummerierung\Index{Nummerierung} erfolgt, kein +Kolumnentitel\Index{Kolumnentitel} gesetzt wird und kein Eintrag +ins Inhaltsverzeichnis\Index{Inhaltsverzeichnis} stattfindet. +Der Verzicht auf den Kolumnentitel hat übrigens einen oftmals +unerwünschten Effekt. Geht beispielsweise ein mit +\Macro{chapter*} gesetztes Kapitel über mehrere Seiten, so taucht +plötzlich der Kolumnentitel des letzen Kapitels wieder auf. +{\KOMAScript} bietet dafür aber eine Lösung, die im Folgenden +beschrieben wird. \OnlyAt{\Class{scrartcl}}\Macro{chapter*} +existiert selbstverständlich nur bei Buch- und Berichtklassen, +also bei \Class{book}, \Class{scrbook}, \Class{report} und +\Class{scrreport}, nicht jedoch bei den Artikelklassen +\Class{article} und \Class{scrartcl}. + +Bitte beachten Sie, dass \Macro{part*} und \Macro{chapter*} den +Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist bei +\KOMAScript{} in den Makros \Macro{partpagestyle} und +\Macro{chapterpagestyle} abgelegt (siehe +\autoref{sec:maincls.pageStyle}). + +Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +gilt das Gleiche wie zuvor in der Erklärung zu den sternlosen +Varianten geschrieben. Die Elemente tragen die gleichen Namen, da sie +nicht Varianten, sondern Gliederungsebenen bezeichnen. +% +\EndIndex{Cmd}{part*}% +\EndIndex{Cmd}{chapter*}% +\EndIndex{Cmd}{section*}% +\EndIndex{Cmd}{subsection*}% +\EndIndex{Cmd}{subsubsection*}% +\EndIndex{Cmd}{paragraph*}% +\EndIndex{Cmd}{subparagraph*}% + +\iffalse +Bei den Standardklassen gibt es keine weiteren Gliederungsbefehle. Es +existiert also insbesondere keine Anweisungen, mit denen man nicht +nummerierte Kapitel oder nicht nummerierte Abschnitte erzeugen kann, +die ins Inhaltsverzeichnis aufgenommen werden und bei denen ein +automatischer Kolumentitel erzeugt wird. +\fi +\begin{Declaration} + \Macro{addpart}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{addpart*}\Parameter{Überschrift}\\ + \Macro{addchap}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{addchap*}\Parameter{Überschrift}\\ + \Macro{addsec}\OParameter{Kurzform}\Parameter{Überschrift}\\ + \Macro{addsec*}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{addpart}% +\BeginIndex{Cmd}{addpart*}% +\BeginIndex{Cmd}{addchap}% +\BeginIndex{Cmd}{addchap*}% +\BeginIndex{Cmd}{addsec}% +\BeginIndex{Cmd}{addsec*}% +{\KOMAScript} bietet über die Gliederungsbefehle der Standardklassen +hinaus die Anweisungen \Macro{addchap} und \Macro{addsec}. Diese +ähneln bis auf die fehlende Nummerierung sehr den Standardanweisungen +\Macro{chapter} und \Macro{section}. Sie erzeugen also sowohl einen +automatischen Kolumnentitel als auch einen Eintrag ins +Inhaltsverzeichnis. Die Sternvarianten \Macro{addchap*} und +\Macro{addsec*} gleichen hingegen den Standardanweisungen +\Macro{chapter*} und \Macro{section*} mit einem winzigen aber +wichtigen Unterschied: Die Kolumnentitel werden gelöscht. Dadurch wird +der oben erwähnte Effekt veralteter Kolumnentitel ausgeschlossen. +Stattdessen bleibt der Kolumnentitel auf Folgeseiten leer. +\OnlyAt{\Class{scrartcl}}\Macro{addchap} und \Macro{addchap*} +existieren selbstverständlich nur bei Buch- und Berichtklassen, also +bei \Class{book}, \Class{scrbook}, \Class{report} und +\Class{scrreport}, nicht jedoch bei den Artikelklassen \Class{article} +und \Class{scrartcl}. + +Die Anweisung \Macro{addpart} erstellt entsprechend einen nicht +nummerierten Dokumentteil mit einem Eintrag ins Inhaltsverzeichnis. Da +bereits \Macro{part} und \Macro{part*} den Kolumnentitel löschen, +ergibt sich hier nicht das oben genannte Problem mit veralteten +Kolumnentiteln. Die Sternvariante \Macro{addpart*} ist daher identisch +mit der Sternvariante \Macro{part*} und wurde nur aus +Konsistenzgründen definiert. + +Bitte beachten Sie, dass \Macro{addpart} und \Macro{addchap} und deren +Sternvarianten den Seitenstil für eine Seite umschaltet. Der jeweilige +Seitenstil ist in den Makros \Macro{partpagestyle} und +\Macro{chapterpagestyle} abgelegt (siehe +\autoref{sec:maincls.pageStyle}). + +Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +gilt das gleiche wie zuvor in der Erklärung zu \Macro{part*}, +\Macro{chapter*} und \Macro{section*} geschrieben. Die Elemente +tragen die gleichen Namen, da sie nicht Varianten, sondern +Gliederungsebenen bezeichnen. +% +\EndIndex{Cmd}{addpart}% +\EndIndex{Cmd}{addpart*}% +\EndIndex{Cmd}{addchap}% +\EndIndex{Cmd}{addchap*}% +\EndIndex{Cmd}{addsec}% +\EndIndex{Cmd}{addsec*}% + + +\begin{Declaration} + \Macro{minisec}\Parameter{Überschrift} +\end{Declaration}% +\BeginIndex{Cmd}{minisec}% +Manchmal ist eine Art Überschrift\Index{Ueberschriften=Überschriften} +wünschenswert, die zwar hervorgehoben wird, ansonsten aber eng mit dem +nachfolgenden Text zusammenhängt. Eine solche Überschrift soll dann +ohne große Abstände gesetzt werden. + +Der Befehl \Macro{minisec} bewirkt genau eine derartige Überschrift. +Diese Überschrift ist keiner Gliederungsebene zugeordnet. Eine solche +\emph{Mini-section} wird nicht in das Inhaltsverzeichnis aufgenommen +und erhält auch keine Nummerierung. +\begin{Example} + Sie haben einen Bausatz für eine Mausefalle entwickelt und wollen + diesen getrennt nach den benötigen Materialien und der Anleitung für + die Montage beschreiben. Das könnte so gemacht werden: + \begin{small} +\begin{verbatim} + \minisec{Bauteile} + + \begin{flushleft} + 1 Brett ($100\times 50 \times 12$)\\ + 1 Bierflaschenschnappverschluss\\ + 1 Kugelschreiberfeder\\ + 1 Reißzwecke\\ + 2 Schrauben\\ + 1 Hammer\\ + 1 Messer + \end{flushleft} + + \minisec{Montage} + + Zunächst suche man das Mauseloch. Dann lege man die + Reißzwecke innen unmittelbar hinter das Loch, damit bei + den folgenden Aktionen die Maus nicht entschlüpfen kann. + Anschließend klopfe man mit dem Hammer den + Bierflaschenschnappverschluss in das Mauseloch. Sollte + der Verschluss nicht groß genug sein, um das Loch + vollständig und dauerhaft zu verschließen, nehme man + stattdessen das Brett und schraube es unter Zuhilfenahme + der beiden Schrauben und des Messers vor das Loch. Statt + des Messers kann selbstverständlich auch ein + Schraubendreher verwendet werden. + + Die Kugelschreiberfeder fiel dem Tierschutz zum Opfer. +\end{verbatim} + \end{small} + Das Ganze sieht anschließend so aus: + \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em} + \minisec{Bauteile} + + \begin{flushleft} + 1 Brett ($100\times 50 \times 12$)\\ + 1 Bierflaschenschnappverschluss\\ + 1 Kugelschreiberfeder\\ + 1 Reißzwecke\\ + 2 Schrauben\\ + 1 Hammer\\ + 1 Messer + \end{flushleft} + + \minisec{Montage} + + Zunächst suche man das Mauseloch. Dann lege man die Reißzwecke + innen unmittelbar hinter das Loch, damit bei den folgenden + Aktionen die Maus nicht entschlüpfen kann. Anschließend klopfe man + mit dem Hammer den Bierflaschenschnappverschluss in das Mauseloch. + Sollte der Verschluss nicht groß genug sein, um das Loch + vollständig und dauerhaft zu verschließen, nehme man stattdessen + das Brett und schraube es unter Zuhilfenahme der beiden Schrauben + und des Messers vor das Loch. Statt des Messers kann + selbstverständlich auch ein Schraubendreher verwendet werden. + + Die Kugelschreiberfeder fiel dem Tierschutz zum Opfer. +% Mit der Kugelschreiberfeder hat es eine besondere +% Bewandtnis. Sie stammt noch aus dem Selbstbauprojekt +% "`Mauseschnappfalle"', das dem Tierschutz zum Opfer gefallen ist. + \end{ShowOutput} +\end{Example} + +Die Schriftart des Gliederungsbefehls \Macro{minisec} kann nur über +das Element \FontElement{sectioning}\IndexFontElement{sectioning} +beeinflusst werden (siehe +\autoref{tab:maincls.elementsWithoutText}). Ein spezifisches +Element nur für \Macro{minisec} existiert nicht. Damit kann auch die +voreingestellte Größe nicht verändert werden. +% +\EndIndex{Cmd}{minisec}% + + +\begin{Declaration} + \Macro{raggedsection} +\end{Declaration}% +\BeginIndex{Cmd}{raggedsection}% +Bei den Standardklassen werden die Überschriften ganz normal im +Blocksatz ausgegeben. Dadurch können in den Überschriften Trennungen +auf"|treten und mehrzeilige Überschriften werden auf Textbreite gedehnt. +Dieses Vorgehen ist in der Typografie eher unüblich. {\KOMAScript} +setzt Überschriften daher in linksbündigem Flattersatz mit hängendem +Einzug. Verantwortlich ist dafür die Anweisung \Macro{raggedsection}, +die vordefiniert ist als: +\begin{verbatim} + \newcommand*{\raggedsection}{\raggedright} +\end{verbatim} +Diese Anweisung kann mit \Macro{renewcommand} umdefiniert werden. +\begin{Example} + Sie wollen auch für Überschriften Blocksatz. Dazu schreiben Sie in + die Präambel Ihres Dokuments: + \begin{small} +\begin{verbatim} + \renewcommand*{\raggedsection}{} +\end{verbatim} + \end{small} + oder kürzer: + \begin{small} +\begin{verbatim} + \let\raggedsection\relax +\end{verbatim} + \end{small} + Sie erreichen somit eine ähnliche Formatierung der Überschriften wie + bei den Standardklassen. Noch ähnlicher wird es, wenn sie diese + Änderung mit der oben vorgestellten Änderung für das Element + \FontElement{sectioning}\IndexFontElement{sectioning} + kombinieren. +\end{Example} +% +\EndIndex{Cmd}{raggedsection}% + + +\begin{Declaration} + \Macro{partformat}\\ + \Macro{chapterformat}\\ + \Macro{othersectionlevelsformat}\Parameter{Gliederungsname}\\ + \Macro{autodot} +\end{Declaration}% +\BeginIndex{Cmd}{partformat}% +\BeginIndex{Cmd}{chapterformat}% +\BeginIndex{Cmd}{othersectionlevelsformat}% +\BeginIndex{Cmd}{autodot}% +\begin{Explain}% + Bekanntlich gibt es bei {\LaTeX} zu jedem Zähler eine Anweisung + \Macro{the}\PName{Zählername}, mit welcher der Zähler ausgegeben + werden kann. Die Darstellung der Zähler für die einzelnen + Gliederungsebenen setzt sich dabei je nach Klasse ab \Macro{section} + (\Class{book}, \Class{scrbook}, \Class{report}, \Class{scrreprt}) + oder ab \Macro{subsection} (\Class{article}, \Class{scrartcl}) aus + der Darstellung des Zählers für die übergeordnete Ebene, gefolgt von + einem Punkt und der arabischen Zahl des \PName{Zählername}ns der + jeweiligen Ebene zusammen.\par +\end{Explain} + +\KOMAScript{} hat der Ausgabe der Gliederungsnummern eine weitere +logische Ebene zugefügt. Die Zähler werden für die jeweilige +Überschrift nicht einfach nur ausgegeben. Sie werden mit Hilfe der +Anweisungen \Macro{partformat}, \Macro{chapterformat} und +\Macro{othersectionlevelsformat} formatiert. +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Die Anweisung +\Macro{chapterformat} existiert selbstverständlich nicht in der Klasse +\Class{scrartcl}. + +Wie bereits in \autoref{sec:maincls.formattingOptions} erläutert wurde, +müssen nach \cite{DUDEN} die Gliederungsnummern je nach Gliederung mit +einem nachfolgenden Punkt versehen werden oder dieser hat zu +entfallen. Die Anweisung \Macro{autodot} ist bei {\KOMAScript} für die +Einhaltung dieser Regel verantwortlich. Auf den Punkt folgt bei allen +Gliederungsebenen außer \Macro{part} noch ein \Macro{enskip}. Dies +entspricht einem Leerraum von 0,5\Unit{em}. + +Die Anweisung \Macro{othersectionlevelsformat} erwartet als Parameter +den Namen der Gliederungsebene, also "`\PName{section}"', +"`\PName{subsection}"' \dots{} In der Voreinstellung gibt es also nur +für die Ebenen \Macro{part} und \Macro{chapter} eigene +Formatieranweisungen, während alle anderen Giederungsebenen mit Hilfe +einer einzigen Formatieranweisung abgedeckt werden. Dies ist allein +historisch begründet. Als Werner Lemberg für sein \Package{CJK}-Paket +eine entsprechende Erweiterung von {\KOMAScript} angeregt hat, wurde +nur diese Unterscheidung benötigt. + +Die Formatierungsanweisungen können mit Hilfe von \Macro{renewcommand} +umdefiniert werden, um sie eigenen Anforderungen anzupassen. +Nachfolgend finden Sie die Originaldefinitionen aus den +{\KOMAScript}-Klassen: +\begin{verbatim} + \newcommand*{\partformat}{\partname~\thepart\autodot} + \newcommand*{\chapterformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\othersectionlevelsformat}[1]{% + \csname the#1\endcsname\autodot\enskip} +\end{verbatim} + +\begin{Example} + Angenommen, Sie wollen, dass bei \Macro{part} das Wort "`Teil"' vor + der Nummer nicht ausgegeben wird. Dann können Sie beispielsweise + folgende Anweisung in die Präambel Ihres Dokuments schreiben: + \begin{small} +\begin{verbatim} + \renewcommand*{\partformat}{\thepart\autodot} +\end{verbatim} + \end{small} + Genaugenommen könnten Sie an dieser Stelle auch auf \Macro{autodot} + verzichten und stattdessen einen festen Punkt setzen. Da + \Macro{part} mit römischen Zahlen nummeriert wird, muss der Punkt + laut \cite{DUDEN} folgen. Allerdings bringen Sie + sich dann um die Möglichkeit, eine der Optionen + \Option{pointednumbers} und \Option{pointlessnumbers} einzusetzen + und so von der Regel abzuweichen. Näheres zu den Klassenoptionen + siehe \autoref{sec:maincls.formattingOptions}. + + Eine weitere Möglichkeit wäre, die Nummerierung der Abschnitte + so in den Rand zu platzieren, dass der Überschriftentext + links mit dem umgebenden Text abschließt. Dies erreicht man + mit: + \begin{small} +\begin{verbatim} + \renewcommand*{\othersectionlevelsformat}[1]{% + \llap{\csname the#1\endcsname\autodot\enskip}} +\end{verbatim} + \end{small} + Die wenig bekannte \TeX-Anweisung \Macro{llap}\IndexCmd{llap} sorgt + dabei dafür, dass das Argument links von der aktuellen Position + ausgegeben wird, ohne dass dabei die Position verändert wird. Eine + bessere \LaTeX-Lösung für dieses Problem wäre: + \begin{small} +\begin{verbatim} + \renewcommand*{\othersectionlevelsformat}[1]{% + \makebox[0pt][r]{\csname the#1\endcsname\autodot\enskip}} +\end{verbatim} + \end{small} + Näheres zu den optionalen Argument von \Macro{makebox} ist + \cite{latex:usrguide} zu entnehmen. +\end{Example} +% +\EndIndex{Cmd}{partformat}% +\EndIndex{Cmd}{chapterformat}% +\EndIndex{Cmd}{othersectionlevelsformat}% +\EndIndex{Cmd}{autodot}% + + +\begin{Declaration} + \Macro{chapappifchapterprefix}\Parameter{Zusatztext}\\ + \Macro{chapapp} +\end{Declaration}% +\BeginIndex{Cmd}{chapappifchapterprefix}% +\BeginIndex{Cmd}{chapapp}% +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +\ChangedAt{v2.8o}{\Class{scrbook}\and\Class{scrreprt}}% +Diese beiden Anweisungen werden nicht nur intern von {\KOMAScript} +verwendet, sondern stehen auch dem Anwender zur Verfügung. +Nachfolgend werden sie beispielsweise für die Umdefinierung anderer +Anweisungen verwendet. Bei Verwendung der Layoutoption +\Option{chapterprefix} (siehe \autoref{sec:maincls.layoutOptions}) +setzt \Macro{chapappifchapterprefix} im Hauptteil des Dokuments das +Wort "`Kapitel"'\Index{Kapitel} in der aktuellen Sprache gefolgt vom +\PName{Zusatztext}. Im Anhang\Index{Anhang} wird stattdessen das Wort +"`Anhang"' in der aktuellen Sprache, ebenfalls gefolgt vom +\PName{Zusatztext}, ausgegeben. Bei der Einstellung +\Option{nochapterprefix} wird hingegen nichts ausgegeben. + +Die Anweisung \Macro{chapapp} setzt immer das Wort "`Kapitel"' +beziehungsweise "`Anhang"'. Dabei spielen die Optionen +\Option{chapterprefix} und \Option{nochapterprefix} keine Rolle. + +Da es Kapitel nur bei den Klassen \Class{scrbook} und \Class{scrreprt} +gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen. +% +\EndIndex{Cmd}{chapappifchapterprefix}% +\EndIndex{Cmd}{chapapp}% + + +\begin{Declaration} + \Macro{chaptermark}\Parameter{Kolumnentitel}\\ + \Macro{sectionmark}\Parameter{Kolumnentitel}\\ + \Macro{subsectionmark}\Parameter{Kolumnentitel}\\ + \Macro{chaptermarkformat}\\ + \Macro{sectionmarkformat}\\ + \Macro{subsectionmarkformat} +\end{Declaration}% +\BeginIndex{Cmd}{chaptermark}% +\BeginIndex{Cmd}{sectionmark}% +\BeginIndex{Cmd}{subsectionmark}% +\BeginIndex{Cmd}{chaptermarkformat}% +\BeginIndex{Cmd}{sectionmarkformat}% +\BeginIndex{Cmd}{subsectionmarkformat}% +\begin{Explain}% + Wie bereits in \autoref{sec:maincls.pageStyle} erwähnt, arbeitet + der Seitenstil \PValue{headings} mit automatischen + Kolumnentiteln\Index{Kolumnentitel}. Dazu werden die Anweisungen + \Macro{chaptermark} und \Macro{sectionmark} beziehungsweise + \Macro{sectionmark} und \Macro{subsectionmark} entsprechend + definiert. Jeder Gliederungsbefehl (\Macro{chapter}, + \Macro{section}, \Macro{subsection} \dots) führt automatisch eine + entsprechende \Macro{\dots mark}-Anweisung aus. Der übergebene + Parameter beinhaltet dabei den Text der + Gliederungsüberschrift\Index{Ueberschriften=Überschriften}. Die + zugehörige Gliederungsnummer wird automatisch in der \Macro{\dots + mark}-Anweisung hinzugefügt. Die Formatierung erfolgt dabei je + nach Gliederungsebene mit der Anweisung \Macro{chaptermarkformat}, + \Macro{sectionmarkformat} oder \Macro{subsectionmarkformat}. + \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Selbst\-verständlich + gibt es bei \Class{scrartcl} weder \Macro{chaptermark} noch + \Macro{chaptermarkformat}. \OnlyAt{\Class{scrartcl}} + \Macro{subsectionmark} und \Macro{subsectionmarkformat} existieren + dafür nur bei \Class{scrartcl}. Dies ändert sich allerdings bei + Verwendung des \Package{scrpage2}-Pakets (siehe + \autoref{cha:scrpage}). +\end{Explain} +So wie mit \Macro{chapterformat} und \Macro{othersectionlevelsformat} die +Nummern der Gliederungsüberschriften formatiert ausgegeben werden, +werden mit den Anweisungen \Macro{chaptermarkformat} (nicht +\Class{scrartcl}), \Macro{sectionmarkformat} und +\Macro{subsectionmarkformat} (nur \Class{scrartcl}) die Nummern der +Gliederungsebenen in den automatischen Kolumnentiteln formatiert +ausgegeben. Sie können mit \Macro{renewcommand} eigenen Anforderungen +angepasst werden. Die Originaldefinitionen aus den +{\KOMAScript}-Klassen sind: +\begin{verbatim} + \newcommand*{\chaptermarkformat}{% + \chapappifchapterprefix{\ }\thechapter\autodot\enskip} + \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} + \newcommand*{\subsectionmarkformat}{% + \thesubsection\autodot\enskip} +\end{verbatim} +\begin{Example} + Angenommen, Sie wollen, dass der Kapitelnummer in den Kolumnentiteln + das Wort "`Kapitel"' vorangestellt wird. Dann setzen Sie + beispielsweise folgende Definition in die Präambel Ihres Dokuments: + \begin{small} +\begin{verbatim} + \renewcommand*{\chaptermarkformat}{% + \chapapp~\thechapter\autodot\enskip} +\end{verbatim} + \end{small} +\end{Example} +Wie Sie sehen, finden hier die Anweisungen \Macro{chapappifchapterprefix} und +\Macro{chapapp} Verwendung, die weiter oben erklärt wurden. +% +\EndIndex{Cmd}{chaptermark}% +\EndIndex{Cmd}{sectionmark}% +\EndIndex{Cmd}{subsectionmark}% +\EndIndex{Cmd}{chaptermarkformat}% +\EndIndex{Cmd}{sectionmarkformat}% +\EndIndex{Cmd}{subsectionmarkformat}% + + +\begin{Declaration} + \Counter{secnumdepth} +\end{Declaration}% +\BeginIndex{Counter}{secnumdepth}\BeginIndex{}{Nummerierung}% +Normalerweise werden bei den Klassen +\Class{scrbook}\IndexClass{scrbook} und +\Class{scrreprt}\IndexClass{scrreprt} die Gliederungsebenen +\Macro{part}\IndexCmd{part}\IndexCmd{chapter}\IndexCmd{section} bis +\Macro{subsection}\IndexCmd{subsection} und bei der Klasse +\Class{scrartcl}\IndexClass{scrartcl} die Ebenen \Macro{part} bis +\Macro{subsubsection}\IndexCmd{subsubsection} nummeriert. Gesteuert +wird dies über den \LaTeX-Zähler \Counter{secnumdepth}. Dabei steht +der Wert -1 für \Macro{part}, 0 für \Macro{chapter} und so +weiter. Da bei \Class{scrartcl} die Ebene \Macro{chapter} nicht +existiert, beginnt bei dieser Klasse die Zählung mit \Macro{part} bei +0. Durch Setzen oder Erhöhen oder Verringern des Zählers kann +bestimmt werden, bis zu welcher Gliederungsebene eine Nummerierung +erfolgen soll. Dies ist übrigens bei den Standardklassen ganz genauso. +Vergleichen Sie hierzu auch die Erklärung zum Zähler +\Counter{tocdepth} in \autoref{sec:maincls.toc}. +% +\EndIndex{Counter}{secnumdepth}\EndIndex{}{Nummerierung} + + +\begin{Declaration} + \Macro{setpartpreamble}% + \OParameter{Position}\OParameter{Breite}\Parameter{Präambel}\\ + \Macro{setchapterpreamble}% + \OParameter{Position}\OParameter{Breite}\Parameter{Präambel} +\end{Declaration}% +\BeginIndex{Cmd}{setpartpreamble}% +\BeginIndex{Cmd}{setchapterpreamble}% +\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Teile und Kapitel können +bei {\KOMAScript} mit einer \PName{Präambel} versehen werden. Dies ist +insbesondere im zweispaltigen Layout mit der Klassenoption +\Option{twocolumn}\IndexOption{twocolumn} nützlich, da die +\PName{Präambel} zusammen mit der Überschrift einspaltig gesetzt wird. +Die \PName{Präambel} kann auch mehrere Absätze beinhalten. Die +Anweisung zum Setzen der \PName{Präambel} muss vor der jeweiligen +\Macro{part}- oder \Macro{addpart}- bzw. \Macro{chapter}- oder +\Macro{addchap}-Anweisung stehen. +\begin{Example} + Sie schreiben einen Bericht über den Zustand einer Firma. Dabei + organisieren Sie den Bericht so, dass jeder Abteilung ein eigener + Teilbericht spendiert wird. Jedem dieser Teile soll außerdem eine + Zusammenfassung vorangestellt werden. Diese Zusammenfassung soll auf + der Titelseite jedes Teils stehen. Das ist wie folgt möglich: + \begin{small} +\begin{verbatim} + \setpartpreamble{% + \begin{abstract} + Dies ist ein Blindtext. Er dient lediglich zur + Demonstration der Möglichkeiten von \KOMAScript. + \end{abstract} + } + \part{Abteilung Grünschnitt} +\end{verbatim} + \end{small} + Je nach Einstellung der Optionen für die + Überschriftengröße\Index{Ueberschriften=Überschriften} (siehe + \autoref{sec:maincls.fontOptions}) und der Optionen für die + Form der \Environment{abstract}-Umgebung\IndexEnv{abstract} (siehe + \autoref{sec:maincls.formattingOptions}), sieht das Ergebnis ungefähr + wie folgt aus: + \begin{ShowOutput}\centering + {\LARGE\usekomafont{sectioning} Teil III.\par\vspace{20pt}} + {\LARGE\usekomafont{sectioning} Abteilung Grünschnitt\strut\par} + \begin{quote}\small + \vspace{6ex} + \begin{center} + \usekomafont{sectioning}\abstractname + \end{center} + \vspace{2ex} + Dies ist ein Blindtext. Er dient lediglich zur + Demonstration der Möglichkeiten von \KOMAScript. + \end{quote} + \end{ShowOutput} +\end{Example} +Bitte beachten Sie, dass Sie für die Abstände der Prämbel zur +Teilüberschrift bzw. zum Kapiteltext selbst verantwortlich +sind. Bitte beachten Sie auch, dass die +\Environment{abstract}-Umgebung bei der Klasse \Class{scrbook} nicht +existiert (siehe \autoref{sec:maincls.titles}). + +Das\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} erste +optionale Argument \PName{Position} bestimmt über ein bis zwei +Buchstaben die Position, an der die Präambel ausgegeben wird. Für die +vertikale Position existieren derzeit zwei Möglichkeiten: +\begin{description} +\item [\quad\texttt{o}:] über der Überschrift +\item [\quad\texttt{u}:] unter der Überschrift +\end{description} +Es kann jeweils eine Präambel unter und eine Präambel über der +Überschrift gesetzt werden. Für die horizontale Position existieren +derzeit drei Möglichkeiten: +\begin{description} +\item [\quad\texttt{l}:] linksbündig +\item [\quad\texttt{r}:] rechtsbündig +\item [\quad\texttt{c}:] zentriert +\end{description} +Dabei wird allerdings nicht der Text der \PName{Präambel} entsprechend +angeordnet, sondern eine Box, deren Breite durch das zweite optionale +Argument \PName{Breite} bestimmt wird. Wird auf das zweite optionale +Argument verzichtet, so wird stattdessen die gesamte Textbreite +verwendet. Damit bleibt die Option zur horizontalen Positionierung in +diesem Fall wirkungslos. Es kann jeweils ein Buchstaben für die +vertikale mit einem Buchstaben für die horizontale Anordnung +kombiniert werden. +% +\EndIndex{Cmd}{setpartpreamble}% +\EndIndex{Cmd}{setchapterpreamble}% + + +\begin{Declaration} + \Macro{dictum}\OParameter{Urheber}\Parameter{Spruch}\\ + \Macro{dictumwidth}\\ + \Macro{dictumauthorformat}\Parameter{Urheber}\\ + \Macro{raggeddictum}\\ + \Macro{raggeddictumtext}\\ + \Macro{raggeddictumauthor} +\end{Declaration}% +\BeginIndex{Cmd}{dictum}% +\BeginIndex{Cmd}{dictumwidth}% +\BeginIndex{Cmd}{dictumauthorformat}% +\BeginIndex{Cmd}{raggeddictum}% +\BeginIndex{Cmd}{raggeddictumtext}% +\BeginIndex{Cmd}{raggeddictumauthor}% +Neben\OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% +\ChangedAt{v2.8q}{\Class{scrbook}\and\Class{scrreprt}} einleitenden +Sätzen ist eine häufige Anwendung für \Macro{setpartpreamble} oder +\Macro{setchapterpreamble} ein kluger \PName{Spruch}\Index{Spruch}. +Ein solcher Spruch kann mit der Anweisung \Macro{dictum} gesetzt +werden. Dabei ist vorgesehen, dass \Macro{dictum} als obligatorisches +Argument einer der Anweisungen \Macro{setchapterpreamble} oder +\Macro{setpartpreamble} verwendet wird. Dies ist jedoch nicht +zwingend. + +Der Spruch wird zusammen mit einem optional anzugebenden +\PName{Urheber} in einer \Macro{parbox}\IndexCmd{parbox} (siehe +\cite{latex:usrguide}) der Breite \Macro{dictumwidth} gesetzt. Dabei +ist \Macro{dictumwidth} keine Länge, die mit \Macro{setlength} gesetzt +wird. Es handelt sich im ein Makro, das mit \Macro{renewcommand} +umdefiniert werden kann. Vordefiniert ist \verb;0.3333\textwidth;, +also ein Drittel der jeweiligen Textbreite. Die Box selbst wird mit +der Anweisung \Macro{raggeddictum} ausgerichtet. Voreingestellt ist +dabei \Macro{raggedleft}\IndexCmd{raggedleft}, also rechtsbündig. +\Macro{raggeddictum} kann mit Hilfe von \Macro{renewcommand} +umdefiniert werden. + +Innerhalb der Box wird der \PName{Spruch} mit \Macro{raggeddictumtext} +angeordnet. Voreingestellt ist hier +\Macro{raggedright}\IndexCmd{raggedright}, also linksbündig. Eine +Umdefinierung ist auch hier mit \Macro{renewcommand} möglich. Die +Ausgabe erfolgt in der für Element \FontElement{dictumtext} eingestellten +Schriftart, die mit den Anweisungen aus +\autoref{sec:maincls.font} geändert werden kann. Die +Voreinstellung entnehmen Sie bitte \autoref{tab:maincls.dictumfont}. + +Ist ein \PName{Urheber} angegeben, so wird dieser mit einer Linie über +die gesamte Breite der \Macro{parbox} vom \PName{Spruch} abgetrennt. +Mit \Macro{raggeddictumauthor} wird die Ausrichtung vorgenommen. +Voreingestellt ist \Macro{raggedleft}. Auch diese Anweisung kann mit +\Macro{renewcommand} umdefiniert werden. Die Ausgabe erfolgt in der +Form, die mit \Macro{dictumauthorformat} festgelegt ist. Das Makro +erwartet schlicht den \Macro{Urheber} als Argument. In der +Voreinstellung ist \Macro{dictumauthorformat} als +\begin{small} +\begin{verbatim} + \newcommand*{\dictumauthorformat}[1]{(#1)} +\end{verbatim} +\end{small} +definiert. Der \PName{Urheber} wird also in runde Klammern +gesetzt. Für das Element \PName{dictumauthor} kann dabei eine +Abweichung der Schrift von der des Elementes \PName{dictumtext} +definiert werden. Die Voreinstellung entnehmen Sie bitte +\autoref{tab:maincls.dictumfont}. Eine Änderung ist mit Hilfe der +Anweisungen aus \autoref{sec:maincls.font} möglich. +% +\begin{table} + \centering% + \begin{tabular}{ll} + Element & Voreinstellung \\\hline\\[-1.6ex] + \FontElement{dictumtext} & + \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ + \FontElement{dictumauthor} & + \Macro{itshape}\\ + \end{tabular} + \caption{Schriftvoreinstellungen für die Elemente des Spruchs} + \label{tab:maincls.dictumfont} +\end{table} +% +Wird \Macro{dictum} innerhalb der Anweisung \Macro{setchapterpreamble} +oder \Macro{setpartpreamble} verwendet, so ist Folgendes zu +beachten: Die horizontale Anordnung erfolgt immer mit +\Macro{raggeddictum}. Das optionale Argument zur horizontalen +Anordnung, das die beiden Anweisungen vorsehen, bleibt daher ohne +Wirkung. \Macro{textwidth} ist nicht die Breite des gesamten +Textkörpers, sondern die aktuelle Textbreite. Ist also +\Macro{dictumwidth} auf \verb;.5\textwidth; gesetzt und bei +\Macro{setchapterpreamble} wird als optionales Argument für die Breite +ebenfalls \verb;.5\textwidth; angegeben, so erfolgt die Ausgabe in +einer Box, deren Breite ein Viertel der Breite des Textkörper ist. Es +wird empfohlen, bei Verwendung von \Macro{dictum} auf die optionale +Angabe einer Breite bei \Macro{setchapterpreamble} oder +\Macro{setpartpreamble} zu verzichten. + +Sollen mehrere schlaue Sprüche untereinander gesetzt werden, so +sollten diese durch einen zusätzlichen Abstand vertikal voneinander +abgesetzt werden. Ein solcher kann leicht mit der Anweisung +\Macro{bigskip}\IndexCmd{bigskip} gesetzt werden. + +\begin{Example} + Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen sie in + der Präambel zur Kapitelüberschrift einen schlauen Spruch + setzen. Dieser soll unter der Überschrift erscheinen. Also schreiben + Sie: + \begin{small} +\begin{verbatim} + \setchapterpreamble[u]{% + \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots}} + \chapter{Die moderne Ehe} +\end{verbatim} + \end{small} + Die Ausgabe erfolgt dann in der Form: + \begin{ShowOutput} + {\usekomafont{sectioning}\usekomafont{chapter}% + 17\enskip Die moderne Ehe\par} + \vspace{\baselineskip} + \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots} + \end{ShowOutput} + + Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der + verfügbaren Textbreite für den Spruch verwendet wird, so definieren + Sie \Macro{dictumwidth} wie folgt um: + \begin{small} +\begin{verbatim} + \renewcommand*{\dictumwidth}{.25\textwidth} +\end{verbatim} + \end{small} +\end{Example} + +An dieser Stelle sei noch auf das Paket~\cite{package:ragged2e} +hingewiesen, mit dem man Flattersatz mit Trennung erreichen +kann. +\EndIndex{Cmd}{dictum}% +\EndIndex{Cmd}{dictumwidth}% +\EndIndex{Cmd}{dictumauthorformat}% +\EndIndex{Cmd}{raggeddictum}% +\EndIndex{Cmd}{raggeddictumtext}% +\EndIndex{Cmd}{raggeddictumauthor}% + + +\subsection{Fußnoten} +\label{sec:maincls.footnotes} + +Eine nicht auf den Text beschränkte Eigenschaft eines Dokuments +ist das Aussehen der Fußnoten. Da Fußnoten\Index{Fussnoten=Fußnoten} +aber hauptsächlich im Text auf"|treten, werden sie in diesem +Abschnitt aufgeführt. + +\begin{Declaration} + \Macro{footnote}\OParameter{Nummer}\Parameter{Text}\\ + \Macro{footnotemark}\OParameter{Nummer}\\ + \Macro{footnotetext}\OParameter{Nummer}\Parameter{Text} +\end{Declaration}% +\BeginIndex{Cmd}{footnote}% +\BeginIndex{Cmd}{footnotemark}% +\BeginIndex{Cmd}{footnotetext}% +Fußnoten werden bei {\KOMAScript} genau wie bei den Standardklassen +mit der Anweisung \Macro{footnote} oder den paarweise zu verwendenden +Anweisungen \Macro{footnotemark} und \Macro{footnotetext} erzeugt. +Genau wie bei den Standardklassen ist es möglich, dass innerhalb einer +Fußnote ein Seitenumbruch erfolgt. Dies geschieht in der Regel dann, +wenn die zugehörige Fußnotenmarkierung so weit unten auf der Seite +gesetzt wird, dass keine andere Wahl bleibt, als die Fußnote auf die +nächste Seite zu umbrechen. +% +\EndIndex{Cmd}{footnote}% +\EndIndex{Cmd}{footnotemark}% +\EndIndex{Cmd}{footnotetext}% + + +\begin{Declaration} + \Macro{deffootnote}\OParameter{Markenbreite}\Parameter{Einzug}% + \Parameter{Absatzeinzug}\Parameter{Markendefinition}\\ + \Macro{deffootnotemark}\Parameter{Markendefinition}\\ + \Macro{thefootnotemark}\\ + \Macro{textsuperscript}\Parameter{Text} +\end{Declaration}% +\BeginIndex{Cmd}{deffootnote}% +\BeginIndex{Cmd}{deffootnotemark}% +\BeginIndex{Cmd}{thefootnotemark}% +\BeginIndex{Cmd}{textsuperscript}% +{\KOMAScript} setzt die Fußnoten etwas anders als die Standardklassen. +Die Fußnotenmarkierung im Text, also die Referenzierung der Fußnote, +erfolgt wie bei den Standardklassen durch kleine hochgestellte Zahlen. +Genauso werden die Markierungen auch in der Fußnote selbst +wiedergegeben. Sie werden dabei rechtsbündig in einem Feld der +Breite \PName{Markenbreite} gesetzt. Die erste Zeile der Fußnote +schließt direkt an das Feld der Markierung an. + +Alle weiteren Zeilen werden um den Betrag von \PName{Einzug} +eingezogen ausgegeben. Wird der optionale Parameter +\PName{Markenbreite} nicht angegeben, dann entspricht er dem +Wert von \PName{Einzug}. +Sollte die Fußnote aus mehreren Absätzen bestehen, dann wird die +erste Zeile eines Absatzes zusätzlich mit dem Einzug der +Größe \PName{Absatzeinzug} versehen. + +\begin{figure} + \centering\setlength{\unitlength}{1mm} + \begin{picture}(100,22) + \thinlines + % frame of following paragraph + \put(5,0){\line(1,0){90}} + \put(5,0){\line(0,1){5}} + \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}} + \put(95,0){\line(0,1){10}} + \put(10,10){\line(1,0){85}} + % frame of first paragraph + \put(5,11){\line(1,0){90}} + \put(5,11){\line(0,1){5}} + \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}} + \put(95,11){\line(0,1){10}} + \put(15,21){\line(1,0){80}} + % box of the footnote mark + \put(0,16.5){\framebox(14.5,4.5){\mbox{}}} + % description of paragraphs + \put(45,16){\makebox(0,0)[l]{\textsf{erster Absatz einer Fußnote}}} + \put(45,5){\makebox(0,0)[l]{\textsf{folgender Absatz einer Fußnote}}} + % help lines + \thicklines + \multiput(0,0)(0,3){7}{\line(0,1){2}} + \multiput(5,0)(0,3){3}{\line(0,1){2}} + % parameters + \put(2,7){\vector(1,0){3}} + \put(5,7){\line(1,0){5}} + \put(15,7){\vector(-1,0){5}} + \put(15,7){\makebox(0,0)[l]{\small\PName{Absatzeinzug}}} + % + \put(-3,13){\vector(1,0){3}} + \put(0,13){\line(1,0){5}} + \put(10,13){\vector(-1,0){5}} + \put(10,13){\makebox(0,0)[l]{\small\PName{Einzug}}} + % + \put(-3,19){\vector(1,0){3}} + \put(0,19){\line(1,0){14.5}} + \put(19.5,19){\vector(-1,0){5}} + \put(19.5,19){\makebox(0,0)[l]{\small\PName{Markenbreite}}} + \end{picture} + \caption{Parameter für die Darstellung der Fußnoten} + \label{fig:maincls.deffootnote} +\end{figure} + +\autoref{fig:maincls.deffootnote} veranschaulicht die +verschiedenen Parameter nochmals. Die Voreinstellung in +\KOMAScript{} entspricht folgender Definition: +\begin{small} +\begin{verbatim} + \deffootnote[1em]{1.5em}{1em} + {\textsuperscript{\thefootnotemark}} +\end{verbatim} +\end{small} +Dabei wird mit Hilfe von \Macro{textsuperscript} sowohl die +Hochstellung als auch die Wahl einer kleineren Schrift +erreicht. \Macro{thefootnotemark} ist die aktuelle Fußnotenmarke ohne +jegliche Formatierung. + +Auf\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} die Fußnote +einschließlich der Markierung findet außerdem die für das Element +\FontElement{footnote}\IndexFontElement{footnote} eingestellte +Schriftart Anwendung. Die Schriftart der Markierung kann jedoch mit +Hilfe der Anweisungen aus \autoref{sec:maincls.font} für das +Element +\FontElement{footnotelabel}\IndexFontElement{footnotelabel} +davon abweichend eingestellt werden. Siehe hierzu auch +\autoref{tab:maincls.elementsWithoutText}. Voreingestellt ist jeweils +keine Umschaltung der Schrift. + +Die Fußnotenmarkierung im Text wird getrennt von der +Markierung vor der Fußnote definiert. Dies geschieht mit der Anweisung +\Macro{deffootnotemark}. Voreingestellt ist hier: +\begin{small} +\begin{verbatim} + \deffootnotemark{% + \textsuperscript{\thefootnotemark}} +\end{verbatim} +\end{small} +Dabei findet\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} die +Schriftart für das Element +\FontElement{footnotereference}\IndexFontElement{footnotereference} +Anwendung (siehe \autoref{tab:maincls.elementsWithoutText}). Die +Markierungen im Text und in der Fußnote selbst sind also identisch. +Die Schriftart kann mit Hilfe der Anweisungen aus +\autoref{sec:maincls.font} jedoch geändert werden. + +\begin{Example} + Relativ häufig wird gewünscht, dass die Markierung in der Fußnote + selbst weder hochgestellt noch kleiner gesetzt wird. Dabei soll sie + aber nicht direkt am Text kleben, sondern geringfügig davor + stehen. Dies kann zum einen wie folgt erreicht werden: + \begin{small} +\begin{verbatim} + \deffootnote{1em}{1em}{\thefootnotemark\ } +\end{verbatim} + \end{small} + Die Fußnotenmarkierung einschließlich dem folgenden Leerzeichen + wird also rechtsbündig in eine Box der Breite 1\Unit{em} gesetzt. + Die folgenden Zeilen der Fußnote werden gegenüber dem linken Rand + ebenfalls um 1\Unit{em} eingezogen. + + Eine weitere, oft gefragte Formatierung sind linksbündige + Fußnoten. Diese können mit folgender Definition erhalten werden: + \begin{small} +\begin{verbatim} + \deffootnote{1.5em}{1em}{% + \makebox[1.5em][l]{\thefootnotemark}} +\end{verbatim} + \end{small} + + Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen + Schriftart, beispielsweise serifenlos gesetzt werden, so ist dies + ganz einfach mit Hilfe der Anweisungen aus + \autoref{sec:maincls.fontOptions} zu lösen: + \begin{small} +\begin{verbatim} + \setkomafont{footnote}{\sffamily} +\end{verbatim} + \end{small} +\end{Example} +Wie die Beispiele zeigen, ermöglicht {\KOMAScript} mit dieser +einfachen Benutzerschnittstelle eine große Vielfalt unterschiedlicher +Fußnotenformatierungen. +% +\EndIndex{Cmd}{deffootnote}% +\EndIndex{Cmd}{deffootnotemark}% +\EndIndex{Cmd}{thefootnotemark}% +\EndIndex{Cmd}{textsuperscript}% + + +\subsection{Listen} +\label{sec:maincls.lists} +\BeginIndex[indexother]{}{Listen} + +{\LaTeX} und die Standardklassen bieten verschiedene Umgebungen +für Listen. All diese Umgebungen bietet {\KOMAScript} +selbstverständlich auch, teilweise jedoch mit leichten +Abwandlungen oder Erweiterungen. Grundsätzlich gilt, dass Listen +-- auch unterschiedlicher Art -- bis zu einer Tiefe von vier +Listen geschachtelt werden können. Eine tiefere Schachtelung wäre +auch aus typografischen Gründen kaum sinnvoll, da genaugenommen +schon mehr als drei Ebenen nicht mehr überblickt werden können. +Ich empfehle in solchen Fällen, die eine große Liste in mehrere +kleinere Listen aufzuteilen. + +\begin{Declaration} + \Environment{itemize}\\ + \Macro{item}\\ + \Macro{labelitemi}\\ + \Macro{labelitemii}\\ + \Macro{labelitemiii}\\ + \Macro{labelitemiv} +\end{Declaration}% +\BeginIndex{Env}{itemize}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{labelitemi}% +\BeginIndex{Cmd}{labelitemii}% +\BeginIndex{Cmd}{labelitemiii}% +\BeginIndex{Cmd}{labelitemiv}% +Die einfachste Form einer Liste ist die Stichpunkt- oder +\Environment{itemize}-Liste. Die Benutzer einer unbeliebten +Textverarbeitung nennen diese Form der Liste auch gerne +\emph{Bulletpoints}. Vermutlich können sie sich nicht vorstellen, dass +je nach Ebene auch ein anderes Zeichen als ein fetter Punkt zur +Einleitung eines Stichpunkts verwendet werden kann. Bei {\KOMAScript} +werden je nach Ebene folgende Zeichen verwendet: "`{\labelitemi}"', +"`{\labelitemii}"', "`{\labelitemiii}"' und "`{\labelitemiv}"'. Die +Definition der Zeichen für die einzelnen Ebenen sind in den Makros +\Macro{labelitemi}, \Macro{labelitemii}, \Macro{labelitemiii} und +\Macro{labelitemiv} abgelegt. Sie können mit \Macro{renewcommand} +umdefiniert werden. Die einzelnen Stichpunkte werden mit \Macro{item} +eingeleitet. +\begin{Example} + Sie haben eine einfache Aufzählung, die in mehreren Ebenen + geschachtelt ist. Sie schreiben beispielsweise: + \begin{small} +\begin{verbatim} + \minisec{Die Fahrzeuge im Spiel} + \begin{itemize} + \item Flugzeuge + \begin{itemize} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{itemize} + \item einmotorig + \begin{itemize} + \item{düsengetrieben} + \item{propellergetrieben} + \end{itemize} + \item mehrmotorig + \end{itemize} + \item Drehflügler + \end{itemize} + \item Motorräder + \begin{itemize} + \item historisch korrekt + \item futurisch nicht real + \end{itemize} + \item Automobile + \begin{itemize} + \item Personenwagen + \item Lastwagen + \end{itemize} + \end{itemize} +\end{verbatim} + \end{small} + Anschließend erhalten Sie: + \begin{ShowOutput}[\baselineskip] + \minisec{Die Fahrzeuge im Spiel} + \begin{itemize} + \item Flugzeuge + \begin{itemize} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{itemize} + \item einmotorig + \begin{itemize} + \item{düsengetrieben} + \item{propellergetrieben} + \end{itemize} + \item mehrmotorig + \end{itemize} + \item Drehflügler + \end{itemize} + \item Motorräder + \begin{itemize} + \item historisch korrekt + \item futurisch nicht real + \end{itemize} + \item Automobile + \begin{itemize} +% \item Rennwagen + \item Personenwagen + \item Lastwagen + \end{itemize} +% \item Fahrräder + \end{itemize} + \end{ShowOutput} +\end{Example} +% +\EndIndex{Env}{itemize}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{labelitemi}% +\EndIndex{Cmd}{labelitemii}% +\EndIndex{Cmd}{labelitemiii}% +\EndIndex{Cmd}{labelitemiv}% + + +\begin{Declaration} + \Environment{enumerate}\\ + \Macro{item}\\ + \Macro{theenumi}\\ + \Macro{theenumii}\\ + \Macro{theenumiii}\\ + \Macro{theenumiv}\\ + \Macro{labelenumi}\\ + \Macro{labelenumii}\\ + \Macro{labelenumiii}\\ + \Macro{labelenumiv} +\end{Declaration}% +\BeginIndex{Env}{enumerate}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{theenumi}% +\BeginIndex{Cmd}{theenumii}% +\BeginIndex{Cmd}{theenumiii}% +\BeginIndex{Cmd}{theenumiv}% +\BeginIndex{Cmd}{labelenumi}% +\BeginIndex{Cmd}{labelenumii}% +\BeginIndex{Cmd}{labelenumiii}% +\BeginIndex{Cmd}{labelenumiv}% +Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits +vom {\LaTeX}-Kern vorgesehen. Die Nummerierung\Index{Nummerierung} +erfolgt je nach Ebene in unterschiedlicher Art: mit arabischen Zahlen, +mit Kleinbuchstaben, mit kleinen römischen Zahlen und mit +Großbuchstaben. Die Art der Nummerierung wird dabei über die Makros +\Macro{theenumi} bis \Macro{theenumiv} festgelegt. Das Format der +Ausgabe wird von den Makros \Macro{labelenumi} bis \Macro{labelenumiv} +bestimmt. Dabei folgt auf den Wert der zweiten Ebene, der in +Kleinbuchstaben ausgegeben wird, eine runde Klammer, während die Werte +aller anderen Ebenen von einem Punkt gefolgt werden. Die einzelnen +Stichpunkte werden wieder mit \Macro{item} eingeleitet. +\begin{Example} + Übernehmen wir das Beispiel der \Environment{itemize}-Umgebung, + wobei wir jede \Environment{itemize}-Umgebung durch eine + \Environment{enumerate}-Umgebung ersetzen. Das Ergebnis wäre dann: + \begin{ShowOutput}[\baselineskip] + \minisec{Die Fahrzeuge im Spiel} + \begin{enumerate} + \item Flugzeuge + \begin{enumerate} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{enumerate} + \item einmotorig + \begin{enumerate} + \item{düsengetrieben}\label{xmp:maincls.jets} + \item{propellergetrieben} + \end{enumerate} + \item mehrmotorig + \end{enumerate} + \item Drehflügler + \end{enumerate} + \item Motorräder + \begin{enumerate} + \item historisch korrekt + \item futurisch nicht real + \end{enumerate} + \item Automobile + \begin{enumerate} +% \item Rennwagen + \item Personenwagen + \item Lastwagen + \end{enumerate} +% \item Fahrräder + \end{enumerate} + \end{ShowOutput} + Innerhalb der Aufzählung können ganz normal mit \Macro{label} Marken + gesetzt werden, auf die dann mit \Macro{ref} zugegriffen werden + kann. So wurde oben hinter den düsengetriebenen, einmotorigen + Flugzeugen mit "`\Macro{label}\PParameter{bsp:duesen}"' ein Label + gesetzt. Der \Macro{ref}-Wert ist dann "`\ref{xmp:maincls.jets}"'. +\end{Example} +% +\EndIndex{Env}{enumerate}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{theenumi}% +\EndIndex{Cmd}{theenumii}% +\EndIndex{Cmd}{theenumiii}% +\EndIndex{Cmd}{theenumiv}% +\EndIndex{Cmd}{labelenumi}% +\EndIndex{Cmd}{labelenumii}% +\EndIndex{Cmd}{labelenumiii}% +\EndIndex{Cmd}{labelenumiv}% + + +\begin{Declaration} + \Environment{description}\\ + \Macro{item}\OParameter{Stichwort} +\end{Declaration}% +\BeginIndex{Env}{description}% +\BeginIndex{Cmd}{item}% +Eine weitere Listenform ist die Stichwortliste. Sie dient in +erster Linie der Beschreibung einzelner Begriffe. Diese werden +als optionale Parameter bei \Macro{item} angegeben. Die +Schriftart\Index{Schriftart}\ChangedAt{v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % +die für die Hervorhebung des Stichworts verwendet wird, kann mit Hilfe +der in \autoref{sec:maincls.font} beschriebenen Anweisungen für +das Element +\FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} (siehe +\autoref{tab:maincls.elementsWithoutText}) geändert werden. In der +Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} verwendet. +\begin{Example} + Sie wollen, dass die Stichworte statt serifenlos und fett lediglich + fett aber in der Standardschriftart ausgegeben werden. Mit + \begin{small} +\begin{verbatim} + \setkomafont{descriptionlabel}{\normalfont\bfseries} +\end{verbatim} + \end{small} + definieren Sie daher die Schrift entsprechend um. + + Ein Beispiel für die Ausgabe einer Stichwortliste ist die Aufzählung + der Seitenstile in \autoref{sec:maincls.pageStyle}. Der Quelltext + dazu lautet (stark gekürzt): + \begin{small} +\begin{verbatim} + \begin{description} + \item[empty] ist der Seitenstil, bei dem Kopf- und + Fußzeile vollständig leer bleiben. + \item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel verwendet wird. + \item[headings] ist der Seitenstil für automatische + Kolumnentitel. + \item[myheadings] ist der Seitenstil für manuelle + Kolumnentitel. + \end{description} +\end{verbatim} + \end{small} + Diese gekürzte Version ergibt: + \begin{ShowOutput} + \begin{description} + \item[empty] ist der Seitenstil, bei dem Kopf- und + Fußzeile vollständig leer bleiben. + \item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel verwendet wird. + \item[headings] ist der Seitenstil für automatische + Kolumnentitel. + \item[myheadings] ist der Seitenstil für manuelle + Kolumnentitel. + \end{description} + \end{ShowOutput} +\end{Example} +% +\EndIndex{Env}{description}% +\EndIndex{Cmd}{item}% + + +\begin{Declaration} + \Environment{labeling}\OParameter{Trennzeichen}\Parameter{längstes + Muster}\\ + \Macro{item}\OParameter{Schlüsselwort} +\end{Declaration}% +\BeginIndex{Env}{labeling}% +\BeginIndex{Cmd}{item}% +Eine andere Form der Stichwortliste ist nur bei den +{\KOMAScript}-Klassen gegeben: die \Environment{labeling}-Umgebung. Im +Unterschied zur \Environment{description}-Umgebung kann hier ein +Muster angegeben werden, dessen Länge die Einrücktiefe bei allen +Stichpunkten ergibt. Darüber hinaus kann zwischen Stichpunkt und +Beschreibungstext ein optionales \PName{Trennzeichen} festgelegt +werden. +\begin{Example} + Wir schreiben das Beispiel der \Environment{description}-Umgebung + etwas um: + \begin{small} +\begin{verbatim} + \begin{labeling}[~--]{% + \usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Seitenstil für leere Seiten ohne Kopf und Fuß + \item[\usekomafont{descriptionlabel}plain] + Seitenstil für Kapitelanfänge ganz ohne Kolumnentitel + \item[\usekomafont{descriptionlabel}headings] + Seitenstil für automatische Kolumnentitel + \item[\usekomafont{descriptionlabel}myheadings] + Seitenstil für manuelle Kolumnentitel + \end{labeling} +\end{verbatim} + \end{small} + Als Ergebnis erhalten wir dann: + \begin{ShowOutput} + \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] Seitenstil für leere + Seiten ohne Kopf und Fuß + \item[\usekomafont{descriptionlabel}plain] Seitenstil für + Kapitelanfänge ganz ohne Kolumnentitel + \item[\usekomafont{descriptionlabel}headings] Seitenstil für + automatische Kolumnentitel + \item[\usekomafont{descriptionlabel}myheadings] Seitenstil für + manuelle Kolumnentitel + \end{labeling} + \end{ShowOutput} + Wie in diesem Beispiel zu sehen ist, muss eine eventuell geforderte + Schriftumschaltung bei dieser Umgebung sowohl im Muster als auch im + optionalen Parameter jeder \Macro{item}-Anweisung wiederholt + werden. +\end{Example} +Gedacht war die Umgebung ursprünglich für Strukturen wie +"`Voraussetzung, Aussage, Beweis"' oder "`Gegeben, Gesucht, Lösung"' +wie man sie in Vorlesungsskripten häufiger findet. Inzwischen findet +die Umgebung aber ganz unterschiedliche Anwendungen. So wurde die +Umgebung für Beispiele in dieser Anleitung mit Hilfe der +\Environment{labeling}-Umgebung definiert. +% +\EndIndex{Env}{labeling}% +\EndIndex{Cmd}{item}% + + +\begin{Declaration} + \Environment{verse} +\end{Declaration}% +\BeginIndex{Env}{verse}% +Die \Environment{verse}-Umgebung wird normalerweise nicht als +Listenumgebung wahrgenommen, da hier nicht mit \Macro{item} gearbeitet +wird. Stattdessen wird wie innerhalb der +\Environment{flushleft}-Umgebung mit festen Zeilenumbrüchen +gearbeitet. Intern handelt es sich jedoch sowohl bei den +Standardklassen als auch bei {\KOMAScript} durchaus um eine +Listenumgebung. + +Die \Environment{verse}-Umgebung findet hauptsächlich für +Gedichte\Index{Gedichte} Anwendung. Dabei werden die Zeilen links und +rechts eingezogen. Einzelne Verse werden mit einem festen +Zeilenumbruch, also mit \verb|\\| beendet. Strophen werden ganz normal +als Absatz gesetzt, also durch eine Leerzeile getrennt. Häufig findet +stattdessen auch \Macro{medskip}\IndexCmd{medskip} oder +\Macro{bigskip}\IndexCmd{bigskip} Verwendung. Will man verhindern, +dass am Ende eines Verses ein Seitenumbruch erfolgt, so verwendet man +ganz normal \verb|\\*| an Stelle von \verb|\\|. +\begin{Example} + Als Beispiel ein kurzes Gedicht von Wilhelm Busch: + \begin{small} +\begin{verbatim} + \begin{verse} + Wenn einer, der mit Mühe kaum\\* + Gekrochen ist auf einen Baum,\\* + Schon meint, dass er ein Vogel wär,\\* + So irrt sich der. + \end{verse} +\end{verbatim} + \end{small} + Mit dem Resultat: + \begin{ShowOutput} + \begin{verse} + Wenn einer, der mit Mühe kaum\\* + Gekrochen ist auf einen Baum,\\* + Schon meint, dass er ein Vogel wär,\\* + So irrt sich der. + \end{verse} + \end{ShowOutput} + Bei einem sehr langen Vers kann mit \verb|\\*| allerdings nicht + verhindert werden, dass innerhalb des Verses ein Seitenumbruch + erfolgt. Dies wäre beispielsweise hier möglich: + \begin{ShowOutput} + \begin{verse} + Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\ + \bigskip + Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein + Sohn. + \end{verse} + \end{ShowOutput} + Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit + scheinbar seltsamen Fragen zu {\LaTeX} oder den dazugehörigen Antworten + konfrontiert ist: + \begin{ShowOutput} + \begin{verse} + Wir mögen's keinem gerne gönnen,\\* + Dass er was kann, was wir nicht können.\\ + \bigskip + Wie klein ist das, was einer ist,\\* + Wenn man's mit seinem Dünkel misst. + \end{verse} + \end{ShowOutput} + Hier fand übrigens \Macro{bigskip} Anwendung, um die beiden Sprüche + voneinander zu trennen. +\end{Example} +% +\EndIndex{Env}{verse}% + + +\begin{Declaration} + \Environment{quote}\\ + \Environment{quotation} +\end{Declaration}% +\BeginIndex{Env}{quote}% +\BeginIndex{Env}{quotation}% +Diese beiden Umgebungen sind intern ebenfalls Listenumgebungen und +sowohl bei den Standardklassen als auch bei {\KOMAScript} zu finden. +Beide Umgebungen setzen Blocksatz, der sowohl rechts als auch links +eingezogen ist. Verwendet werden die Umgebungen häufig, um längere +Zitate\Index{Zitate} abzusetzen. Der Unterschied zwischen beiden liegt +in der Art und Weise, wie Absätze abgesetzt werden. Während bei +\Environment{quote} Absätze durch vertikalen Abstand gekennzeichnet +werden, wird bei \Environment{quotation} mit horizontalem Einzug der +ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den ersten +Absatz einer \Environment{quotation}-Umgebung. Wollen Sie dort den +Einzug verhindern, müssen Sie die +\Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen. +\begin{Example} + Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie + folgende \Environment{quotation}-Umgebung: + % + \begin{small} +\begin{verbatim} + Ein kleines Beispiel für eine Anekdote: + \begin{quotation} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. + Als die Haushälterin öffnet, steht ein unrasierter Mann + in einem reichlich schäbigen Mantel vor der Tür und hält + seine Strickmütze in der Hand. + + "`Gute Frau, ich habe seit drei Tagen nichts gegessen"', + verkündet der Mann in bestem Hochdeutsch aber recht + gequältem Ton, der bestens zu seinem Gesichtsausdruck + passt. + + Die Frau schüttelt mitleidig den Kopf. + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quotation} +\end{verbatim} + \end{small} + Das Ergebnis ist dann: + \begin{ShowOutput} + Ein kleines Beispiel für eine Anekdote: + \begin{quotation} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die + Haushälterin öffnet, steht ein unrasierter Mann in einem + reichlich schäbigen Mantel vor der Tür und hält seine + Strickmütze in der Hand. + + "`Gute Frau, ich habe seit drei Tagen nichts gegessen"', + verkündet der Mann in bestem Hochdeutsch aber recht gequältem + Ton, der bestens zu seinem Gesichtsausdruck passt. + + Die Frau schüttelt mitleidig den Kopf. + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quotation} + \end{ShowOutput} + % + Wenn Sie stattdessen eine \Environment{quote}-Umgebung + verwenden, sieht das Ganze so aus: + % + \begin{ShowOutput} + Ein kleines Beispiel für eine Anekdote: + \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die + Haushälterin öffnet, steht ein unrasierter Mann in einem + reichlich schäbigen Mantel vor der Tür und hält seine + Strickmütze in der Hand. + + "`Gute Frau, ich habe seit drei Tagen nichts gegessen"', + verkündet der Mann in bestem Hochdeutsch aber recht gequältem + Ton, der bestens zu seinem Gesichtsausdruck passt. + + Die Frau schüttelt mitleidig den Kopf. + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quote} + \end{ShowOutput} + % +\end{Example} +% +\EndIndex{Env}{quote}% +\EndIndex{Env}{quotation}% + + +\begin{Declaration} + \Environment{addmargin}\OParameter{linker Einzug}\Parameter{Einzug}\\ + \Environment{addmargin*}\OParameter{innerer Einzug}\Parameter{Einzug} +\end{Declaration} +\BeginIndex{Env}{addmargin}% +Wie die \Environment{quote} und \Environment{quotation} handelt es +sich bei \Environment{addmargin} um eine Umgebung, die den +Rand\Index{Rand} verändert. Im Unterschied zu den beiden +erstgenannten Umgebungen kann der Anwender jedoch bei +\Environment{addmargin} wählen, um welchen Wert der Rand verändert +werden kann. Des Weiteren verändert die Umgebung den Absatzeinzug und +den Absatzabstand nicht. + +Ist nur das obligatorische Argument \PName{Einzug} +angegeben, so wird der Inhalt der Umgebung rechts und links um diesen +Wert eingezogen. Ist das optionale Argument \PName{linker Einzug} +hingegen angegeben, so wird links abweichend von \PName{Einzug} der +Wert \PName{linker Einzug} zum Rand addiert. + +Die Sternvariante \Environment{addmargin*} unterscheidet sich nur im +doppelseitigen Satz von der Variante ohne Stern. Wobei der Unterschied +auch dann nur auf"|tritt, wenn das optionale Argument \PName{innerer + Einzug} verwendet wird. Dabei wird dann der Wert von \PName{innerer + Einzug} zum inneren Randanteil der Seite addiert. Dies ist bei +rechten Seiten der linke Rand der Seite, bei linken Seiten jedoch der +rechte Rand der Seite. \PName{Einzug} gilt dann für den jeweils +anderen Rand. + +Bei beiden Varianten der Umgebung sind für alle Parameter auch +negative Werte erlaubt. Damit kann man erreichen, dass die Umgebung in +den Rand hineinragt. +\begin{Example} + Angenommen, Sie schreiben eine Anleitung, in der kurze + Quellcode-Beispiele enthalten sind. Um diese sehr stark + hervorzuheben, sollen sie mit horizontalen Linien vom Text abgesetzt + und leicht in den äußeren Rand verschoben werden. Sie definieren + sich dafür zunächst eine Umgebung: + \begin{small} +\begin{verbatim} + \newenvironment{QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } +\end{verbatim} + \end{small} + Wird obiger Quellcode in einer solchen Umgebung gesetzt, so ergibt + sich: + \begin{ShowOutput} + \newenvironment{QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + Sie definieren sich oder überhaupt zunächst die folgende Umgebung: + \begin{QuellcodeRahmen} +\begin{verbatim} +\newenvironment{\QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% +}{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% +} +\end{verbatim} + \end{QuellcodeRahmen} + Das mag praktisch sein oder unpraktisch, zumindest jedoch zeigt es, + wie die Umgebung verwendet werden kann. + \end{ShowOutput} + Das optionale Argument der \Environment{addmargin*}-Umgebung sorgt + dafür, dass der innere Rand um den Wert + 1\Unit{em} vergrößert wird. Dafür wird der äußere + Rand um den negativen Wert vergrößert, also in Wirklichkeit um + 1\Unit{em} verkleinert. Dies resultiert in einer + Verschiebung um 1\Unit{em} nach außen. Selbstverständlich kann statt + \PValue{1em} auch eine Länge, beispielsweise + \PValue{2\Macro{parindent}}, verwendet werden. +\end{Example} +Ein Problem mit der \Environment{addmargin*}-Umgebung soll nicht +verschwiegen werden. Tritt ein Seitenumbruch mitten in einer +\Environment{addmargin*}-Umgebung auf, so findet der Einzug auf +der zweiten Seite vertauscht statt. Das heißt, dass der \PName{innere + Einzug} plötzlich außen vorgenommen wird. Es empfiehlt sich +daher, in dieser Umgebung den Seitenumbruch ganz zu verhindern. Das +kann man erreichen, indem man zusätzlich eine \Macro{parbox} oder +wie in obigem Beispiel eine \Environment{minipage} verwendet. Dabei +wird von dem Umstand Gebrauch gemacht, dass weder das Argument einer +\Macro{parbox} noch der Inhalt einer \Environment{minipage} umbrochen +wird. Leider handeln Sie sich damit einen anderen Nachteil ein: Seiten +können unter Umständen nicht mehr korrekt gefüllt werden. Dies führt +dann auch zu entsprechenden Warnungen. + +Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens +zuverlässig nicht beim ersten \LaTeX-Durchlauf festgestellt +werden. Siehe dazu die Erklärung zur Anweisung \Macro{ifthispageodd}. +% +\EndIndex{Env}{addmargin}% + + +\begin{Explain} + Erlauben Sie mir noch eine abschließende Bemerkung zu den + Listenumgebungen. Im Internet und im Support wird häufig danach + gefragt, warum nach einer Listenumgebung ein Einzug\Index{Einzug} + wie bei einem Absatz erfolge. Tatsächlich ist dies gar nicht der + Fall, sondern der Effekt resultiert daraus, dass der Anwender einen + Absatz verlangt. Bei {\LaTeX} werden Leerzeilen als Absatz + interpretiert. Dies gilt auch vor und nach Listenumgebungen. Soll + eine Listenumgebung also innerhalb eines Absatzes gesetzt werden, so + ist weder davor noch danach eine Leerzeile zu setzen. Um die + Umgebung trotzdem in der \LaTeX-Datei besser vom Rest abzusetzen, + kann man davor und dahinter eine leere Kommentarzeile setzen, also + eine Zeile, die direkt mit einem Prozentzeichen beginnt und nichts + weiter enthält.\par +\end{Explain} +\EndIndex[indexother]{}{Listen} + +\subsection{Randnotizen} +\label{sec:maincls.marginNotes} + +\begin{Declaration} + \Macro{marginpar}\OParameter{Randnotiz links}\Parameter{Randnotiz}\\ + \Macro{marginline}\Parameter{Randnotiz} +\end{Declaration}% +\BeginIndex{Cmd}{marginpar}% +\BeginIndex{Cmd}{marginline}% +Randnotizen\Index[indexmain]{Randnotizen} werden normalerweise bei +{\LaTeX} mit der Anweisung \Macro{marginpar} gesetzt. Sie werden +dabei im äußeren Rand gesetzt. Bei einseitigen Dokumenten wird +der rechte Rand verwendet. Zwar kann bei \Macro{marginpar} +optional eine abweichende Randnotiz angegeben werden, falls die +Randnotiz im linken Rand landet, jedoch werden Randnotizen immer +im Blocksatz ausgegeben. Die Erfahrung zeigt, dass bei +Randnotizen statt dem Blocksatz oft je nach Rand linksbündiger +oder rechtsbündiger Flattersatz zu bevorzugen ist. {\KOMAScript} +bietet hierfür die Anweisung \Macro{marginline}. +\begin{Example} + In der Einleitung ist an einer Stelle die Klassenangabe + \Class{scrartcl} im Rand zu finden. Diese kann mit: + \begin{small} +\begin{verbatim} + \marginline{\texttt{scrartcl}} +\end{verbatim} + \end{small} + erreicht werden.\footnote{Tatsächlich wurde nicht \Macro{texttt}, + sondern eine semantische Auszeichnung verwendet. Um nicht unnötig + zu verwirren, wurde diese im Beispiel ersetzt.} + + Statt \Macro{marginline} wäre auch die Verwendung von + \Macro{marginpar} möglich gewesen. Tatsächlich wird bei obiger + Anweisung intern nichts anders gemacht als: +\begin{verbatim} + \marginpar[\raggedleft\texttt{scrartcl}] + {\raggedright\texttt{scrartcl}} +\end{verbatim} + Letztlich ist \Macro{marginline} also nur eine abkürzende + Schreibweise. +\end{Example} + +\begin{Explain} + Leider funktioniert \Macro{marginpar} im + doppelseitigen\Index{doppelseitig} Layout nicht immer ganz korrekt. + Die Entscheidung, ob eine Randnotiz links oder rechts landet, wird + bereits bei der Auswertung von \Macro{marginpar} getroffen. + Verschiebt nun die Ausgaberoutine eine Randnotiz über einen + Seitenumbruch auf die nächste Seite, so ist die Formatierung nicht + mehr korrekt. Dieses Verhalten ist tief in {\LaTeX} verankert und + wurde vom \LaTeX3-Team deshalb als Feature deklariert. + \Macro{marginline} ändert nichts an diesem unerwünschten + Verhalten.\par +\end{Explain} +% +\EndIndex{Cmd}{marginpar}% +\EndIndex{Cmd}{marginline}% + + +\subsection{Tabellen und Abbildungen} +\label{sec:maincls.floats} + +\begin{Explain} + {\LaTeX} bietet mit den Fließumgebungen einen sehr leistungsfähigen + und komfortablen Mechanismus für die automatische Anordnung von + Abbildungen\Index{Abbildungen} und Tabellen\Index{Tabellen}. + Genaugenommen sollte statt von "`Tabellen"' von "`Tafeln"' die Rede + sein. Dies wäre auch zur Unterscheidung der Umgebungen + \Environment{table}\IndexEnv{table} und + \Environment{tabular}\IndexEnv{tabular} von Vorteil. Es hat sich im + Deutschen aber für beides die Bezeichnung "`Tabelle"' eingebürgert. + Das kommt vermutlich daher, dass man in + \Environment{table}-Umgebungen üblicherweise + \Environment{tabular}-Umgebungen setzt. + + Häufig werden die Fließumgebungen\Index[indexmain]% + {Fliessumgebung=Fließumgebung} von Anfängern nicht richtig + verstanden. So wird oft die Forderung aufgestellt, eine Tabelle oder + Abbildung genau an einer bestimmten Position im Text zu setzen. Dies + ist jedoch nicht erforderlich, da auf Fließumgebungen im Text über + eine Referenz verwiesen wird. Es ist auch nicht sinnvoll, da eine + solches Objekt an einer Stelle nur dann gesetzt werden kann, wenn + auf der Seite noch genügend Platz für das Objekt vorhanden ist. Ist + dies nicht der Fall, müsste das Objekt auf die nächste Seite + umbrochen werden und auf der aktuellen Seite würde ein + möglicherweise sehr großer leerer Raum bleiben. + + Häufig findet sich in einem Dokument auch bei jedem Fließobjekt das + gleiche optionale Argument zur Platzierung des Objekts. Auch dies + ist nicht sinnvoll. In solchen Fällen sollte man besser den + Standardwert global ändern. Näheres dazu ist \cite{DANTE:FAQ} zu + entnehmen.\par +\end{Explain} + +Ein wichtiger Hinweis sei diesem Abschnitt noch vorangestellt: Die +meisten Mechanismen, die hier vorgestellt werden und über die +Fähigkeiten der Standardklassen hinaus gehen, funktionieren nicht +mehr, wenn Sie ein Paket verwenden, das in die Generierung von +Tabellen- und Abbildungstiteln eingreift und deren Aussehen +verändert. Dies sollte selbstverständlich sein, wird aber leider +häufig nicht bedacht. + +\begin{Declaration} + \Macro{caption}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ + \Macro{captionbelow}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ + \Macro{captionabove}\OParameter{Verzeichniseintrag}\Parameter{Titel} +\end{Declaration}% +\BeginIndex{Cmd}{caption}% +\BeginIndex{Cmd}{captionabove}% +\BeginIndex{Cmd}{captionbelow}% +Tabellen und Abbildungen werden bei den Standardklassen mit Hilfe +der Anweisung \Macro{caption} mit einem \PName{Titel} in Form +einer Unterschrift\Index{Tabellenunterschrift} versehen. Bei +Abbildungen ist dies grundsätzlich korrekt. Bei Tabellen wird +gestritten, ob der \PName{Titel} als Überschrift über oder +konsistent mit der Bildunterschrift\Index{Bildunterschrift} unter +die Tabelle gehört. Daher bietet \KOMAScript{} im Gegensatz zu den +Standardklassen die Anweisungen \Macro{captionbelow} für +\PName{Titel} in Form von Unterschriften und \Macro{captionabove} +für \PName{Titel} in Form von Überschriften. \Macro{caption} +verhält sich bei Abbildungen immer wie \Macro{captionbelow}. Bei +Tabellen lässt sich das Verhalten von \Macro{caption} hingegen +mit den Optionen +\Option{tablecaptionabove}\IndexOption{tablecaptionabove} und +\Option{tablecaptionbelow}\IndexOption{tablecaptionbelow} steuern +(siehe \autoref{sec:maincls.formattingOptions}). Aus Gründen der +Kompatibilität ist voreingestellt, dass sich \Macro{caption} auch +bei Tabellen wie \Macro{captionbelow} verhält. +% +\begin{Example} + Sie wollen mit + Tabellenüberschriften\Index{Tabellenueberschrift=Tabellenüberschrift} + statt mit Tabellenunterschriften arbeiten, weil Sie teilweise + Tabellen haben, die über mehr als eine Seite gehen. Mit den + Standardklassen bliebe Ihnen nur die Möglichkeit: + \begin{small} +\begin{verbatim} + \begin{table} + \caption{Dies ist nur eine Beispieltabelle} + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{table} +\end{verbatim} + \end{small} + Damit hätten Sie das unschöne Ergebnis: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + Dies ist nur eine + Beispieltabelle}\\ + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{ShowOutput} + Bei \KOMAScript{} schreiben Sie hingegen: + \begin{small} +\begin{verbatim} + \begin{table} + \captionabove{Dies ist nur eine Beispieltabelle} + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{table} +\end{verbatim} + \end{small} + Sie erhalten dann das gewünschte Ergebnis: + \begin{ShowOutput}\centering + {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} + Dies ist nur eine + Beispieltabelle}\\\vskip\abovecaptionskip + \begin{tabular}{llll} + Dies & ist & ein & Beispiel.\\\hline + Bitte & lassen & Sie & den \\ + Inhalt & dieser & Tabelle & unbeachtet. + \end{tabular} + \end{ShowOutput} + Da Sie konsistent alle Tabellen mit Überschriften versehen, können + Sie stattdessen natürlich auch die Option \Option{tablecaptionabove} + setzen (siehe \autoref{sec:maincls.formattingOptions}). Dann genügt + es, wenn Sie wie bei den Standardklassen \Macro{caption} verwenden. + Sie erhalten trotzdem das Ergebnis von \Macro{captionabove}. +\end{Example} + +\begin{Explain} + Einige werden nun einwenden, dass man das Gleiche auch mit dem + \Package{topcapt}-Paket\IndexPackage{topcapt} und der dort + definierten Anweisung \Macro{topcaption} erreichen kann (siehe + \cite{package:topcapt}). + Dies ist jedoch nicht der Fall. \Macro{topcaption} bleibt von + Paketen, die direkt das \Macro{caption}-Makro umdefinieren + unberücksichtigt. Ein Beispiel dafür ist das + \Package{hyperref}-Paket (siehe \cite{package:hyperref}). + Demgegenüber sind \Macro{captionabove} und \Macro{captionbelow} so + implementiert, dass sich die Änderungen auch auf diese beiden + Anweisungen auswirken. + + Bei Verwendung des + \Package{longtable}-Pakets\IndexPackage{longtable} wird dafür + gesorgt, dass auch die Tabellenüberschriften, die innerhalb einer + \Environment{longtable}-Umgebung gesetzt werden, in Aussehen und + Form denen einer normalen \Environment{table}-Umgebung entsprechen. + Es gelten damit auch dieselben Einstellmöglichkeiten. Bitte beachten + Sie, dass beim \Package{longtable}-Paket normalerweise die maximale + Breite einer Tabellenüberschrift begrenzt werden kann und per + Voreinstellung auf 4\Unit{in} begrenzt ist (siehe + \cite{package:longtable}). Bei Verwendung von \KOMAScript{} + funktioniert der entsprechende Mechanismus aus \Package{longtable} + jedoch nur, wenn die Klassenoption \Option{origlongtable} (siehe + \autoref{sec:maincls.formattingOptions}) gesetzt wird. Ist das + Paket \Package{caption2}\IndexPackage{caption2} (siehe + \cite{package:caption2}) geladen, so werden die + Tabellenüberschriften von jenem Paket behandelt. + + Bitte beachten Sie, dass sich \Macro{captionabove} und \Macro{captionbelow} + innerhalb einer \Environment{float}-Umgebung, die mit Hilfe des + \Package{float}-Pakets\IndexPackage{float} definiert wurde, genau wie in + \cite{package:float} für die \Macro{caption}-Anweisung beschrieben + verhalten. In diesem Fall kontrolliert allein der float-Stil, ob es sich um + eine Überschrift oder um eine Unterschrift handelt. +\end{Explain} + + +\begin{Declaration} + \Environment{captionbeside}\OParameter{Verzeichniseintrag}% + \Parameter{Titel}\OParameter{Anordnung}\OParameter{Gesamtbreite}% + \OParameter{Offset}\\% + \Environment{captionbeside}\OParameter{Verzeichniseintrag}% + \Parameter{Titel}\OParameter{Anordnung}\OParameter{Gesamtbreite}% + \OParameter{Offset}\PValue{*} +\end{Declaration} +\BeginIndex{Env}{captionbeside}% +Neben \ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% +den Unter- und Überschriften findet man insbesondere bei kleineren +Abbildungen häufiger Beschreibungen, die neben der Abbildung gesetzt +werden. Dabei schließt normalerweise die Unterkante der Beschreibung +mit der Unterkante der Abbildung ab. Natürlich kann man mit etwas +Geschick und beispielsweise zwei \Macro{parbox}-Anweisungen +dergleichen auch in den Standardklassen erreichen. \KOMAScript{} +bietet jedoch eine spezielle Umgebung. Diese Umgebung kann innerhalb +der Gleitumgebungen verwendet werden. Der erste optionale Parameter +\PName{Verzeichniseintrag} und der obligatorische Parameter +\PName{Titel} entsprechen dabei genau den gleichnamigen Parametern von +\Macro{caption}, \Macro{captionabove} oder \Macro{captionbelow}. Der +\PName{Titel} wird dabei neben den Inhalt der Umgebung gesetzt. + +Ob der \PName{Titel} rechts oder links daneben gesetzt wird, kann mit +dem optionalen Parameter \PName{Anordnung} bestimmt werden. Es darf +genau einer der folgenden Buchstaben angegeben werden: +\begin{quote} +\begin{labeling}[--~]{\PValue[o]} +\item[\PValue{l}] links +\item[\PValue{r}] rechts +\item[\PValue{i}] innen, also auf rechten Seiten links und auf + linken Seiten rechts +\item[\PValue{o}] außen, also auf rechten Seiten rechts und auf + linken Seiten links +\end{labeling} +\end{quote} +Voreingestellt ist rechts neben dem Inhalt der Umgebung. Bei +Verwendung von \PValue{o} oder \PValue{i} für \emph{Anordnung} außen +oder innen werden unter Umständen zwei \LaTeX-Durchläufe benötigt, +um die korrekte Anordnung zu erreichen. + +Normalerweise nehmen der Inhalt der Umgebung und der \PName{Titel} die +gesamte verfügbare Breite ein. Es besteht jedoch die Möglichkeit, mit +dem optionalen Parameter \PName{Gesamtbreite} eine andere Breite +anzugeben. Diese kann auch größer als die Breite des Textkörpers +sein. + +Bei Angabe einer \PName{Gesamtbreite} wird die genutzte Breite +normalerweise bezüglich der Breite des Textkörpers zentriert. Mit dem +optionalen Argument \PName{Offset} kann stattdessen eine Verschiebung +relativ zum linken Rand angegeben werden. Ein positiver Wert +entspricht einer Verschiebung nach rechts, ein negativer Wert einer +Verschiebung nach links. Mit einem \PName{Offset} von 0\Unit{pt} +erfolgt die Ausgabe linksbündig. + +Wird hinter den optionalen Parameter \PName{Offset} noch ein Stern +gesetzt, so stellt der \PName{Offset} im doppelseitigen Druck auf +linken Seiten eine Verschiebung relativ zum rechten Rand dar. Ein +positiver Wert entspricht dann einer Verschiebung nach außen, während +ein negativer Wert für eine Verschiebung nach innen steht. Ein +\PName{Offset} von 0\Unit{pt} wäre dann also bündig zum inneren +Rand. Diese Variante benötigt unter Umständen zwei \LaTeX-Durchläufe, +um die korrekte Verschiebung zu erreichen. + +\begin{Example} + Ein Beispiel für die Verwendung der + \Environment{captionbeside}-Umgebung ist in + \autoref{fig:maincls.captionbeside} zu finden. Gesetzt wurde + diese Abbildung mit: + \begin{small} +\begin{verbatim} + \begin{figure} + \begin{captionbeside}[Beispiel f"ur Bildbeschreibung]% + {Eine Bildbeschreibung weder über noch unter der + Abbildung, sondern daneben}[i][\linewidth][2em]* + \fbox{% + \parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbeside} + \end{figure} +\end{verbatim} + \end{small} + \begin{figure} + \begin{captionbeside}[Beispiel f"ur Bildbeschreibung]% + {Eine Bildbeschreibung weder über noch unter der Abbildung, + sondern daneben}[i][\linewidth][2em]* + \fbox{% + \parbox[b][5\baselineskip][c]{.25\textwidth}{% + \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} + \end{captionbeside} + \label{fig:maincls.captionbeside} + \end{figure} + Die Gesamtbreite ist also die aktuell verfügbare Breite + \PValue{\Macro{linewidth}}. Diese wird jedoch um \PValue{2em} nach + außen verschoben. Der Titel oder die Beschreibung steht innen neben + der Abbildung. Damit erscheint die Abbildung selbst um 2\Unit{em} in + den Rand gerückt. +\end{Example} +% +\EndIndex{Env}{captionbeside} + + +\BeginIndex[indexother]{}{Schriftart} +Die Schriftart\ChangedAt{% + v2.8p}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % +für die Beschreibung und das Label~-- "`Abbildung"' oder "`Tabelle"' +gefolgt von der Nummer und einem Trennzeichen -- kann über die in +\autoref{sec:maincls.font} beschriebenen Anweisungen verändert +werden. Zuständig sind hier die Elemente +\FontElement{caption}\IndexFontElement{caption} und +\FontElement{captionlabel}\IndexFontElement{captionlabel} (siehe +\autoref{tab:maincls.elementsWithoutText}). Dabei wird die +Schriftart für das Element \FontElement{caption} zunächst auch auf das +Element \FontElement{captionlabel} angewandt, bevor dessen spezifische +Schriftart Anwendung findet. Die Vorbelegungen sind +\autoref{tab:maincls.captionFont} zu entnehmen. +% +\begin{Example} + Sie wollen, dass Tabellen- und Abbildungsbeschreibungen in einer + kleineren Schriftart gesetzt werden. Also setzen Sie + beispielsweise in der Präambel Ihres Dokuments: + \begin{small} +\begin{verbatim} + \addtokomafont{caption}{\small} +\end{verbatim} + \end{small} + Außerdem hätten Sie gerne, dass das Label serifenlos und fett + gedruckt wird. Sie setzen also außerdem: + \begin{small} +\begin{verbatim} + \setkomafont{captionlabel}{\sffamily\bfseries} +\end{verbatim} + \end{small} + Wie Sie sehen, kann auch hier einfach eine Erweiterung der + Vorbelegung verwendet werden. +\end{Example} +% +\begin{table} + \centering% + \begin{tabular}{ll} + Element & Voreinstellung \\\hline\\[-1.75ex] + \FontElement{caption} & \Macro{normalfont} \\ + \FontElement{captionlabel} & \Macro{normalfont} + \end{tabular} + \caption{Schriftvoreinstellungen für die Elemente der Tabellen- oder + Abbildungsunterschrift bzw. -überschrift} + \label{tab:maincls.captionFont} +\end{table} +% +\EndIndex[indexother]{}{Schriftart} +% +\EndIndex{Cmd}{caption}% +\EndIndex{Cmd}{captionabove}% +\EndIndex{Cmd}{captionbelow}% + + +\begin{Explain} +\begin{Declaration} + \PValue{komaabove}\\ + \PValue{komabelow} +\end{Declaration}% +\BeginIndex{Floatstyle}{komaabove}% +\BeginIndex{Floatstyle}{komabelow}% +\OnlyAt{\Package{float}}Bei Verwendung des +\Package{float}-Pakets\IndexPackage{float} wird das Aussehen der damit +definierten Fließumgebungen allein vom \emph{float}-Stil bestimmt. Dies +schließt auch die Frage ein, ob mit Überschriften oder Unterschriften +gearbeitet wird. Im \Package{float}-Paket gibt es keinen vordefinierten Stil, +der im Aussehen dem von \KOMAScript{} entspricht und dieselben +Einstellmöglichkeiten (siehe unten) bietet. \KOMAScript{} definiert deshalb +zusätzlich die beiden Stile \PValue{komaabove} und \PValue{komabelow}. Diese +können bei Verwendung des \Package{float}-Pakets wie die dort definierten +Stile \PValue{plain}\IndexFloatstyle{plain}, +\PValue{boxed}\IndexFloatstyle{boxed} oder +\PValue{ruled}\IndexFloatstyle{ruled} aktiviert werden. Siehe dazu +\cite{package:float}. Beim Stil \PValue{komaabove} werden \Macro{caption}, +\Macro{captionabove} und \Macro{captionbelow} als Überschrift, beim Stil +\PValue{komabelow} als Unterschrift gesetzt. +% +\EndIndex{Floatstyle}{komaabove}% +\EndIndex{Floatstyle}{komabelow}% +\end{Explain} + + +\begin{Declaration} + \Macro{captionformat} +\end{Declaration}% +\BeginIndex{Cmd}{captionformat}% +Bei {\KOMAScript} gibt es verschiedene Eingriffsmöglichkeiten, um die +Formatierung der Beschreibung zu ändern. Die Änderung der Schriftart +wurde bereits erläutert. Das oder die Trennzeichen zwischen dem Label +und dem eigentlichen Beschreibungstext sind im Makro +\Macro{captionformat} abgelegt. Abweichend von allen anderen +\Macro{\dots}format-Anweisungen ist hier also nicht der Zähler, +sondern nur die auf den Zähler folgenden Angaben enthalten. Die +Originaldefinition lautet: +\begin{verbatim} + \newcommand*{\captionformat}{:\ } +\end{verbatim} +Auch diese kann mit \Macro{renewcommand} geändert werden. +\begin{Example} + Aus mir unerfindlichen Gründen wollen Sie als Trennzeichen + keinen Doppelpunkt gefolgt von einem Leerzeichen, sondern einen + Gedankenstrich einschließlich der notwendigen Leerzeichen. + Daher definieren Sie: + \begin{small} +\begin{verbatim} + \renewcommand*{\captionformat}{~--~} +\end{verbatim} + \end{small} + Diese Definition sollten Sie beispielsweise in die Präambel Ihres + Dokuments stellen. +\end{Example} +% +\EndIndex{Cmd}{captionformat}% + + +\begin{Declaration} + \Macro{figureformat}\\ + \Macro{tableformat} +\end{Declaration}% +\BeginIndex{Cmd}{figureformat}% +\BeginIndex{Cmd}{tableformat}% +Es wurde schon darauf hingewiesen, dass \Macro{captionformat} keine +Formatierung für das Label selbst enthält. Dieses sollte nun +keineswegs über Umdefinierung der Anweisungen für die Zählerausgabe, +\Macro{thefigure} oder \Macro{thetable}, verändert werden. Eine solche +Umdefinierung hätte nämlich auch Auswirkungen auf die Ausgabe von +\Macro{ref} oder der Verzeichnisse. Stattdessen bietet {\KOMAScript} +auch hier zwei \Macro{\dots format}-Anweisungen. Diese sind wie folgt +vordefiniert: +\begin{verbatim} + \newcommand*{\figureformat}{\figurename~\thefigure\autodot} + \newcommand*{\tableformat}{\tablename~\thetable\autodot} +\end{verbatim} +Sie können ebenfalls mit \Macro{renewcommand} eigenen Anforderungen +angepasst werden. +\begin{Example} + Hin und wieder wird gewünscht, dass die Beschreibungstexte ganz ohne + Label und natürlich auch ohne Trennzeichen ausgegeben werden. Bei + {\KOMAScript} genügen folgende Definitionen, um dies zu erreichen: + \begin{small} +\begin{verbatim} + \renewcommand*{\figureformat}{} + \renewcommand*{\tableformat}{} + \renewcommand*{\captionformat}{} +\end{verbatim} + \end{small} +\end{Example} +% +\EndIndex{Cmd}{figureformat}% +\EndIndex{Cmd}{tableformat}% + +\begin{Declaration} + \Macro{setcapindent}\Parameter{Einzug}\\ + \Macro{setcapindent*}\Parameter{XEinzug}\\ + \Macro{setcaphanging} +\end{Declaration}% +\BeginIndex{Cmd}{setcapindent}% +\BeginIndex{Cmd}{setcapindent*}% +\BeginIndex{Cmd}{setcaphanging}% +Wie bereits erwähnt wurde, werden in den Standardklassen die +Beschreibungen nicht hängend gesetzt. Das heißt: In mehrzeiligen +Beschreibungen beginnt die zweite Zeile direkt unter dem Labeltext. +Es gibt bei den Standardklassen auch keinen Mechanismus, dies direkt +zu beeinflussen. Bei {\KOMAScript} werden hingegen alle Zeilen ab der +zweiten so weit eingerückt, dass diese nicht mehr unter dem Label, +"`Abbildung \dots:"' oder "`Tabelle \dots:"', sondern unter dem +eigentlichen Text der ersten Zeile beginnen. + +Dieses Verhalten, das der Verwendung der Anweisung +\Macro{setcaphanging} entspricht, kann bei {\KOMAScript} jederzeit +durch Verwendung der Anweisung \Macro{setcapindent} oder +\Macro{setcapindent*} geändert werden. Dabei gibt der Parameter +\PName{Einzug} an, wie weit ab der zweiten Zeile eingerückt werden +soll. + +Soll nach dem Label und vor dem Beschreibungstext noch ein +Zeilenumbruch erfolgen, so definieren Sie die Einrücktiefe +\PName{XEinzug} der Beschreibung stattdessen mit der Sternvariante der +Anweisung: \Macro{setcapindent*}. + +Mit einem negativen \PName{Einzug} erreicht man hingegen, dass vor der +Beschreibung ebenfalls ein Umbruch erfolgt und nur die erste Zeile der +Beschreibung, nicht jedoch die folgenden, um -\PName{Einzug} +eingerückt werden. + +Ob einzeilige Beschreibungen wie mehrzeilige Beschreibungen gesetzt +werden oder eine Sonderbehandlung erfahren, wird über die +Klassenoptionen \Option{onelinecaption} und \Option{noonelinecaption} +gewählt. Siehe hierzu die Erklärung zu diesen Optionen in +\autoref{sec:maincls.layoutOptions}. + +\begin{Example} + Die Beispiele entnehmen Sie bitte den + Abbildungen~\ref{fig:maincls.caption.first} bis + \ref{fig:maincls.caption.last}. Dabei zeigt sich auch, dass bei geringer + Spaltenbreite der komplett hängende Einzug unvorteilhaft ist. Der + Quelltext der zweiten Abbildung sei hier mit abgewandelter + Unterschrift beispielhaft wiedergegeben: + \begin{small} +\begin{verbatim} + \begin{figure} + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption{Beispiel mit teilweise hängendem Einzug ab der + zweiten Zeile} + \end{figure} +\end{verbatim} + \end{small} + Wie zu sehen ist, kann die Formatierung also auch lokal innerhalb + der \Environment{figure}-Umgebung\IndexEnv{figure} geändert werden. + \begin{figure} + \typeout{^^J--- Ignore underfull and overfull \string\hbox:} + \addtokomafont{caption}{\small} + \addtokomafont{captionlabel}{\bfseries} + \centering% + \begin{minipage}{.9\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel f"ur Bildunterschrift]% + {\sloppy Entspricht der Standardeinstellung, also wie bei + Verwendung von \Macro{setcaphanging}} + \label{fig:maincls.caption.first} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel f"ur Bildunterschrift]% + {Mit teilweise h"ang"-endem Einzug ab der zweiten Zeile durch + Verwendung von \Macro{setcapindent}\PParameter{1em}} + \end{minipage} + \end{minipage} + + \vspace*{2ex}\noindent% + \begin{minipage}{.9\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent*{1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel f"ur Bildunterschrift]% + {Mit h"angendem Einzug ab der zweiten Zeile und Umbruch vor + der Beschreibung durch Verwendung von + \Macro{setcapindent*}\PParameter{1em}} + \end{minipage} + \hspace{.02\linewidth} + \begin{minipage}[t]{.48\linewidth}\sloppy + \setcapindent{-1em} + \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} + \caption[Beispiel f"ur Bildunterschrift]% + {Mit Einzug lediglich in der zweiten Zeile und einem Umbruch + vor der Beschreibung durch Verwendung von + \Macro{setcapindent}\PParameter{-1em}} + \label{fig:maincls.caption.last} + \end{minipage} + \end{minipage} + \typeout{^^J--- Don't ignore underfull and overfull + \string\hbox:^^J} + \end{figure} +\end{Example} +% +\EndIndex{Cmd}{setcapindent}% +\EndIndex{Cmd}{setcapindent*}% +\EndIndex{Cmd}{setcaphanging}% + + +\begin{Declaration} + \Macro{setcapwidth}\OParameter{Ausrichtung}\Parameter{Breite}\\ + \Macro{setcapmargin}\OParameter{Rand links}\Parameter{Rand}\\ + \Macro{setcapmargin*}\OParameter{Rand innen}\Parameter{Rand} +\end{Declaration} +\BeginIndex{Cmd}{setcapwidth}% +\BeginIndex{Cmd}{setcapmargin}% +\BeginIndex{Cmd}{setcapmargin*}% +Mit% +\ChangedAt{v2.8q}{% + \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} Hilfe +dieser drei Befehle kann die Breite und Anordnung der Beschreibung +beeinflusst werden. Normalerweise steht die gesamte Text- oder +Spaltenbreite für den Text der Beschreibung zur Verfügung. + +Mit der Anweisung \Macro{setcapwidth} kann diese \PName{Breite} +reduziert werden. Dabei gibt das obligatorische Argument die maximale +\PName{Breite} der Beschreibung an. Als optionales Argument kann genau +ein Buchstabe übergeben werden, der die horizontale Ausrichtung der +Beschreibung angibt. Die möglichen Ausrichtungen finden Sie in der +folgenden Liste. +\begin{quote} +\begin{labeling}[--~]{\PValue[o]} +\item[\PValue{l}] linksbündig +\item[\PValue{c}] zentriert +\item[\PValue{r}] rechtsbündig +\item[\PValue{i}] innen, also auf rechten Seiten linksbündig und auf + linken Seiten rechtsbündig +\item[\PValue{o}] außen, also auf rechten Seiten rechtsbündig und auf + linken Seiten linksbündig +\end{labeling} +\end{quote} +Die Ausrichtung innen und außen entspricht im einseitigen Satz +linksbündig und rechtsbündig. Innerhalb von +\Package{longtable}\IndexPackage{longtable}-Tabellen funktioniert die +Ausrichtung innen und außen nicht korrekt. Insbesondere werden +Beschreibungen von Folgeseiten bei diesen Tabellen immer nach den +Beschreibungen der ersten Teiltabelle ausgerichtet. Dies ist ein +konzeptionelles Problem des Paketes \Package{longtable}. + +Mit der Anweisung \Macro{setcapmargin} kann statt der Breite der +Beschreibung ein \PName{Rand} angegeben werden, der neben der +Beschreibung zusätzlich zum normalen Textrand eingehalten werden soll. +Sollen der Rand rechts und links nicht identisch gewählt werden, kann +mit dem optionalen Argument ein von \PName{Rand} abweichender +\PName{Rand links} von der Beschreibung eingestellt werden. Bei der +Sternvariante \Macro{setcapmargin*} wird statt dem \PName{Rand links} +im doppelseitigen Satz der \PName{Rand innen} abweichend definiert. +Hier ergibt sich bei +\Package{longtable}\IndexPackage{longtable}-Tabellen das gleiche +Problem wie bei der Ausrichtung außen oder innen bei der Anweisung +\Macro{setcapwidth}. Die Verwendung von \Macro{setcapmargin} oder +\Macro{setcapmargin*} schaltet außerdem die Option +\Option{noonelinecaption} (siehe +\autoref{sec:maincls.layoutOptions}) für die Beschreibungen ein, +die mit dieser Randeinstellung gesetzt werden. + +\begin{Explain} + \Package{longtable} packt die Beschreibung in eine Box, die auf + Folgeseiten nach Bedarf erneut ausgegeben wird. Bei der Ausgabe + einer Box werden die Makros, die bei der Erzeugung der Box + durchlaufen wurden, nicht erneut ausgewertet. Damit ist es + \KOMAScript{} unmöglich, die Randeinstellung im doppelseitigen Satz + auf geraden Seiten zu vertauschen. Dies wäre aber notwendig, um eine + Ausrichtung, die nach außen oder innen verschoben ist, zu + ermöglichen. + + Man kann übrigens auch negative Werte für \PName{Rand} und + \PName{Rand rechts} oder \PName{Rand außen} angeben. Dadurch + erreicht man, dass die Beschreibung in den entsprechenden Rand + hineinragt. +\end{Explain} + +\begin{Example} + Ein etwas ausgefallenes Problem ist, wenn die Bildunterschrift + zentriert unter einer Abbildung stehen und dabei genauso breit wie + die Abbildung selbst sein soll. Ist die Breite der Abbildung + bekannt, ist die Lösung mit \KOMAScript{} sehr einfach. Angenommen, + die Abbildung ist 8\Unit{cm} breit, so genügt: + \begin{small} +\begin{verbatim} + \setcapwidth[c]{8cm} +\end{verbatim} + \end{small} + unmittelbar vor \Macro{caption} oder \Macro{captionbelow}. Ist die + Breite nicht bekannt, so muss zunächst in der Präambel des Dokuments + eine Länge definiert werden: + \begin{small} +\begin{verbatim} + \newlength{\Abbildungsbreite} +\end{verbatim} + \end{small} + Nun kann in vielen Fällen die Breite direkt mit Hilfe der + \LaTeX-Anweisung \Macro{settowidth} (siehe \cite{latex:usrguide}) + ermittelt werden. Eine Lösung kann dann wie folgt aussehen: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \settowidth{\Abbildungsbreite}{% + \fbox{\hspace{1em}\KOMAScript\hspace{1em}}% + }% + \fbox{\hspace{1em}\KOMAScript\hspace{1em}}% + \setcapwidth[c]{\Abbildungsbreite} + \caption{Beispiel einer unter der Abbildung zentrierten + Bildunterschrift} + \end{figure} +\end{verbatim} + \end{small} + Allerdings ist es unpraktisch den Inhalt zweimal zu schreiben. Ebenso + ist es unpraktisch, \Macro{setcapwidth} jedesmal neu aufzurufen. Aber + nichts ist einfacher, als in der Präambel einen Befehl zu + definieren, der die drei Schritte: + \begin{enumerate} + \item Bestimmung der Breite des Arguments + \item Festlegung der Breite der Bildunterschrift + \item Ausgabe des Arguments + \end{enumerate} + verbirgt: + \begin{small} +\begin{verbatim} + \newcommand{\Abbildung}[1]{% + \settowidth{\Abbildungsbreite}{#1}% + \setcapwidth[c]{\Abbildungsbreite}% + #1} +\end{verbatim} + \end{small} + Mit diesem Befehl verkürzt sich das Beispiel zu: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \Abbildung{\fbox{\hspace{1em}\KOMAScript\hspace{1em}}}% + \caption{Beispiel einer unter der Abbildung zentrierten + Bildunterschrift} + \end{figure} +\end{verbatim} + \end{small} + + Nun hat ein Befehl jedoch den Nachteil, dass Fehler in den Makros + des Arguments bei mehrzeiligen Argumenten von \LaTeX{} nicht mit + einer sehr genauen Zeilenzahl gemeldet werden. Deshalb ist in + manchen Fällen eine Umgebung praktischer. Es stellt sich dann aber + die Frage, wie die Breite des Inhalts der Umgebung bestimmt werden + kann. Die Lösung besteht in der \Environment{lrbox}-Umgebung, die in + \cite{latex:usrguide} beschrieben ist: + \begin{small} +\begin{verbatim} + \newsavebox{\Abbildungsbox} + \newenvironment{AbbildungSetztCaptionBreite}{% + \begin{lrbox}{\Abbildungsbox}% + }{% + \end{lrbox}% + \global\setbox\Abbildungsbox=\box\Abbildungsbox% + \aftergroup\SetzeAbbildungsbox% + } + \newcommand{\SetzeAbbildungsbox}{% + \Abbildung{\usebox{\Abbildungsbox}}} +\end{verbatim} + \end{small} + Dabei wird der oben definierte Befehl \Macro{Abbildung} eingesetzt. + In der Anwendung ergibt sich dann: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \begin{AbbildungSetztCaptionBreite} + \fbox{\hspace{1em}\KOMAScript\hspace{1em}} + \end{AbbildungSetztCaptionBreite} + \caption{Beispiel einer unter der Abbildung zentrierten + Bildunterschrift} + \end{figure} +\end{verbatim} + \end{small} + Zugegeben, in diesem Beispiel ist die Umgebung überflüssig. Aber + ihre Definition mit Verwendung von \Macro{global} ist gleichzeitig + recht trickreich. Es ist deshalb davon auszugehen, dass viele + Anwender mit der Forderung, die Umgebung selbst zu erstellen, + überfordert wären. Da sie aber sehr nützlich sein kann, wurde sie + hier als Beispiel vorgestellt. + + Gäbe es die \Environment{captionbeside}-Umgebung nicht, so könnte + man die Bildunterschrift trotzdem recht einfach rechts neben der + Abbildung setzen. Dazu müsste \Macro{SetzeAbbildungsbox} aus obigem + Beispiel zunächst umdefiniert werden: + \begin{small} +\begin{verbatim} + \renewcommand{\SetzeAbbildungsbox}{% + \settowidth{\Abbildungsbreite}{\usebox{\Abbildungsbox}}% + \parbox[b]{\Abbildungsbreite}{\usebox{\Abbildungsbox}}% + \hfill% + \addtolength{\Abbildungsbreite}{1em}% + \addtolength{\Abbildungsbreite}{-\hsize}% + \setlength{\Abbildungsbreite}{-\Abbildungsbreite}% + \setcapwidth[c]{\Abbildungsbreite}% + } +\end{verbatim} + \end{small} + Anschließend müsste lediglich noch die \Macro{caption}-Anweisung + ebenfalls in eine \Macro{parbox} gepackt werden: + \begin{small} +\begin{verbatim} + \begin{figure} + \centering% + \begin{AbbildungSetztCaptionBreite} + \fbox{\rule{0pt}{5\baselineskip}% + \hspace{1em}\KOMAScript\hspace{1em}} + \end{AbbildungSetztCaptionBreite} + \parbox[b]{\Abbildungsbreite}{% + \caption{Beispiel einer neben die Abbildung gesetzten + mehrzeiligen Bildinformation} + } + \end{figure} +\end{verbatim} + \end{small} + Die \Macro{rule}-Anweisung in diesem Beispiel dient lediglich als + unsichtbare Stütze, um eine Beispielabbildung mit größerer + vertikaler Ausdehnung zu erreichen. +\end{Example} +% +\EndIndex{Cmd}{setcapwidth}% +\EndIndex{Cmd}{setcapmargin}% +\EndIndex{Cmd}{setcapmargin*}% + + +\subsection{Textauszeichnung} +\label{sec:maincls.emphasis} + +\begin{Explain} + \LaTeX{} bietet verschiedene Möglichkeiten der + Textauszeichnung\Index{Textauszeichnung}. Streng genommen stellt + eine Überschrift ebenfalls eine Auszeichnung dar. In diesem + Abschnitt beschäftigen wir uns aber ausschließlich mit unmittelbaren + Auszeichnungen, also solchen, die keine zusätzliche Bedeutungen in + sich besitzen, sondern die für verschiedene Zwecke verwendet werden + können. Näheres zu den normalerweise definierten Möglichkeiten sind + \cite{l2kurz}, \cite{latex:usrguide} und \cite{latex:fntguide} zu + entnehmen. +\end{Explain} + +\begin{Declaration} + \Macro{textsubscript}\Parameter{Text} +\end{Declaration} +\BeginIndex{Cmd}{textsubscript}% +In \autoref{sec:maincls.footnotes} wurde bereits die Anweisung +\Macro{textsuperscript}\IndexCmd{textsuperscript} vorgestellt, die +Bestandteil des \LaTeX-Kerns ist. Leider bietet \LaTeX{} selbst +keine entsprechende Anweisung, um Text tief\Index{Tiefstellung} +statt hoch\Index{Hochstellung} zu stellen. \KOMAScript{} +definiert dafür \Macro{textsubscript}. +% +\begin{Example} + Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin + kommen hin und wieder einfache chemische Summenformeln vor. Dabei + sind einzelne Ziffern tief zu stellen. Im Sinne des logischen Markup + definieren Sie zunächst in der Dokumentpräambel oder einem eigenen + Paket: + \begin{small} +\begin{verbatim} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} +\end{verbatim} + \end{small} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} + Damit schreiben Sie dann: + \begin{small} +\begin{verbatim} + Die Zelle bezieht ihr Energie unter anderem aus der + Reaktion von \Molek C6\Molek H{12}\Molek O6 und \Molek O2 + zu \Molek H2\Molek O{} und \Molek C{}\Molek O2. + Arsen (\Molek{As}{}) wirkt sich allerdings auf den + Stoffwechsel sehr nachteilig aus. +\end{verbatim} + \end{small} + Das Ergebnis sieht daraufhin so aus: + \begin{ShowOutput} + Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von + \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek + O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{ShowOutput} + Etwas später entscheiden Sie, dass Summenformeln grundsätzlich + serifenlos geschrieben werden sollen. Nun zeigt sich, wie gut die + Entscheidung für konsequentes logisches Markup war. Sie müssen nur + die \Macro{Molek}-Anweisung umdefinieren: + \begin{small} +\begin{verbatim} + \newcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} +\end{verbatim} + \end{small} + \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} + Schon ändert sich die Ausgabe im gesamten Dokument: + \begin{ShowOutput} + Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von + \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek + O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{ShowOutput} +\end{Example} +\begin{Explain} + Im Beispiel wird die Schreibweise "`\verb|\Molek C6|"' + verwendet. Dabei wird Nutzen aus der Tatsache gezogen, + dass Argumente, die nur aus einem Zeichen bestehen, nicht geklammert + werden müssen. Damit ist "`\verb|\Molek C6|"' gleichbedeutend mit + "`\verb|\Molek{C}{6}|"'. Bekannt ist dieser Umstand hauptsächlich + von Indizes und Potenzen in mathematischen Umgebungen, etwa + "`\verb|$x^2$|"' statt "`\verb|$x^{2}$|"' für "`$x^2$"'. +\end{Explain} +% +\EndIndex{Cmd}{textsubscript}% + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Der Schlussteil} +\label{sec:maincls.appendix} + +Im Schlussteil eines Dokuments finden sich üblicherweise die +Anhänge\Index{Anhang}, das +Literaturverzeichnis\Index{Literaturverzeichnis} und gegebenenfalls +ein Stichwortverzeichnis\Index{Stichwortverzeichnis}. + +\begin{Declaration} + \Macro{appendix} +\end{Declaration}% +\BeginIndex{Cmd}{appendix}% +Der Anhang wird in den Standardklassen und den {\KOMAScript}-Klassen +mit der Anweisung \Macro{appendix} eingeleitet. Diese Anweisung +schaltet unter anderem die Kapitelnummerierung auf Großbuchstaben um +und sorgt gleichzeitig dafür, dass die Regeln für die Nummerierung der +Gliederungsebenen nach \cite{DUDEN} eingehalten werden. Diese Regeln +sind in der Beschreibung der Klassenoptionen \Option{pointednumbers} +und \Option{pointlessnumbers} in +\autoref{sec:maincls.formattingOptions} näher erläutert. + +Bitte beachten Sie, dass es sich bei \Macro{appendix} um eine +Anweisung und \emph{nicht} um eine Umgebung handelt! Die Anweisung +erwartet auch nicht etwa ein Argument. Die Kapitel beziehungsweise +Abschnitte des Anhangs werden ganz normal mit \Macro{chapter} und +\Macro{section} gesetzt. +% +\EndIndex{Cmd}{appendix} + + +\begin{Declaration} + \Macro{appendixmore} +\end{Declaration}% +\BeginIndex{Cmd}{appendixmore}% +Bei den {\KOMAScript}-Klassen gibt es innerhalb der Anweisung +\Macro{appendix} eine Besonderheit. Ist nämlich die Anweisung +\Macro{appendixmore} definiert, so wird sie von der +\Macro{appendix}-Anweisung ebenfalls ausgeführt. Intern wird dies +von den {\KOMAScript}-Klassen \Class{scrbook} und +\Class{scrreprt} für die Realisierung der Layoutoptionen +\Option{appendixprefix} und \Option{noappendixprefix} genutzt +(siehe \autoref{sec:maincls.layoutOptions}). Dies sollten Sie +unbedingt beachten, falls Sie selbst das Makro +\Macro{appendixmore} definieren oder umdefinieren wollen. Ist +eine dieser beiden Optionen gesetzt, so erhalten Sie bei +\verb|\newcommand{\appendixmore}{|\dots\verb|}| eine +Fehlermeldung. Dadurch soll verhindert werden, dass Sie die +Optionen außer Kraft setzen, ohne es zu merken. + +\begin{Example} + Sie wollen nicht, dass bei Verwendung der Klasse \Class{scrbook} + oder \Class{scrreprt} im Hauptteil die Kapitel mit einer Präfixzeile + versehen werden (siehe Layoutoptionen \Option{chapterprefix} und + \Option{nochapterprefix} in \autoref{sec:maincls.layoutOptions}). + Damit die Konsistenz gewahrt bleibt, wollen Sie auch nicht, dass eine + solche Zeile im Anhang verwendet wird. Stattdessen sollen in den + Anhängen direkt vor dem Kapitelbuchstaben das Wort "`Anhang"' in der + jeweiligen Sprache stehen. Dies soll auch für die Kolumnentitel + gelten. Also verwenden Sie weder die Layoutoption + \Option{appendixprefix} noch \Option{noappendixprefix}, sondern + definieren in der Dokumentpräambel: + \begin{small} +\begin{verbatim} + \newcommand*{\appendixmore}{% + \renewcommand*{\chapterformat}{% + \appendixname~\thechapter\autodot\enskip} + \renewcommand*{\chaptermarkformat}{% + \appendixname~\thechapter\autodot\enskip} + } +\end{verbatim} + \end{small} + Sollten Sie später dann doch noch entscheiden, dass Sie die Option + \Option{appendixprefix} verwenden wollen, so erhalten Sie aufgrund + der dann bereits definierten Anweisung \Macro{appendixmore} eine + Fehlermeldung. Damit wird verhindert, dass obige Definition + unbemerkt die Einstellungen überschreibt, die Sie per Option + getroffen haben. + + Wenn Sie ein vergleichbares Verhalten des Anhangs für die Klasse + \Class{scrartcl} erreichen wollen, so ist dies ebenfalls + möglich. Dazu schreiben Sie in die Präambel Ihres Dokuments: + \begin{small} +\begin{verbatim} + \newcommand*{\appendixmore}{% + \renewcommand*{\othersectionlevelsformat}[1]{% + \ifthenelse{\equal{##1}{section}}{\appendixname~}{}% + \csname the##1\endcsname\autodot\enskip} + \renewcommand*{\sectionmarkformat}{% + \appendixname~\thesection\autodot\enskip} + } +\end{verbatim} + \end{small} + Sie benötigen dafür außerdem das + \Package{ifthen}-Paket\IndexPackage{ifthen} (siehe + \cite{package:ifthen}). + + Die Erklärung zu den umdefinierten Anweisungen finden Sie in + \autoref{sec:maincls.structure}. +\end{Example} +% +\EndIndex{Cmd}{appendixmore}% + + +\begin{Declaration} + \Macro{setbibpreamble}\Parameter{Präambel} +\end{Declaration}% +\BeginIndex{Cmd}{setbibpreamble}% +Mit der Anweisung \Macro{setbibpreamble} kann eine Präambel für +das Literaturverzeichnis\Index{Literaturverzeichnis} gesetzt +werden. Bedingung dafür ist, dass die Präambel vor der Anweisung +zum Setzen des Literaturverzeichnisses gesetzt wird. Dies muss +nicht unmittelbar davor sein. Es kann also beispielsweise am +Anfang des Dokuments erfolgen. Ebenso wie die Klassenoptionen +\Option{bibtotoc} und \Option{bibtotocnumbered} kann die +Anweisung aber nur erfolgreich sein, wenn nicht ein Paket geladen +wird, das dies durch Umdefinierung der +\Environment{thebibliography}-Umgebung verhindert. Obwohl das +\Package{natbib}-Paket\IndexPackage{natbib} unautorisiert interne +Makros von {\KOMAScript} verwendet, konnte erreicht werden, dass +\Macro{setbibpreamble} auch mit der aktuellen Version von +\Package{natbib} funktioniert (siehe \cite{package:natbib}). +\begin{Example} + Sie wollen darauf hinweisen, dass das Literaturverzeichnis nicht in + der Reihenfolge der Zitierung im Dokument, sondern alphabetisch + sortiert ist. Daher setzen Sie folgende Anweisung: + \begin{small} +\begin{verbatim} + \setbibpreamble{Die Literaturangaben sind alphabetisch nach + den Namen der Autoren sortiert. Bei mehreren Autoren wird + nach dem ersten Autor sortiert.\par\bigskip} +\end{verbatim} + \end{small} + Die Anweisung \Macro{bigskip}\IndexCmd{bigskip} sorgt dafür, dass + zwischen der Präambel und der ersten Literaturangabe ein großer + Zwischenraum gesetzt wird. + + Eine andere Möglichkeit, die Präambel des Literaturverzeichnisses + nutzbringend einzusetzen, ergäbe sich, wenn Sie beispielsweise die + Literaturangaben mit linksbündigem Flattersatz setzen wollten. + Dann setzen Sie als Präambel einfach: + \begin{small} +\begin{verbatim} + \setbibpreamble{\raggedright} +\end{verbatim} + \end{small} + Das Ergebnis sehen Sie im Literaturverzeichnis dieser Anleitung. +\end{Example} +% +\EndIndex{Cmd}{setbibpreamble} + + +\begin{Declaration} + \Macro{setindexpreamble} +\end{Declaration}% +\BeginIndex{Cmd}{setindexpreamble}% +Analog zur Präambel des Literaturverzeichnisses können Sie auch das +Stichwortverzeichnis mit einer Präambel versehen. Dies findet häufig +dann Anwendung, wenn es mehr als einen Index gibt oder im Index +unterschiedliche Arten der Referenzierung durch unterschiedliche +Hervorhebung der Seitenzahlen markiert werden. +\begin{Example} + Sie haben ein Dokument, in dem Begriffe sowohl definiert als auch + verwendet werden. Die Seitenzahlen der Begriffsdefinitionen sind + fett dargestellt. Natürlich möchten Sie gerne auf diesen Umstand + hinweisen. Also setzen Sie eine entsprechende Präambel für den + Index: + \begin{small} +\begin{verbatim} + \setindexpreamble{Alle \textbf{fett} gedruckten + Seitenzahlen sind Referenzen auf die Definition des + jeweiligen Begriffs. Demgegenüber geben normal gedruckte + Seitenzahlen die Seiten der Verwendung des jeweiligen + Begriffs wieder.\par\bigskip} +\end{verbatim} + \end{small} +\end{Example} + +Bitte beachten Sie, dass für die erste Seite des Index der Seitenstil +umgeschaltet wird. Welcher Seitenstil hierbei Verwendung findet, ist +im Makro \Macro{indexpagestyle} abgelegt (siehe +\autoref{sec:maincls.pageStyle}). + +Für die Erstellung, Sortierung und Ausgabe des Stichwortverzeichnisses +sind die üblichen Standard-\LaTeX-Pakete und Zusatzprogramme +zuständig. Von {\KOMAScript} werden genau wie von den Standardklassen +lediglich die grundlegenden Makros und Umgebungen dafür zur Verfügung +gestellt. +% +\EndIndex{Cmd}{setindexpreamble}% + + +\section{Obsoletes} +\label{sec:maincls.obsolete} + +\begin{Explain} + In diesem Abschnitt finden Sie Anweisungen, die der Anwender nicht + mehr verwenden sollte. Diese Anweisungen waren in früheren Versionen + von \KOMAScript{} zu finden und ihre Verwendung war dokumentiert. In + der aktuellen Version von \KOMAScript{} können sie aus Gründen der + Kompatibilität noch immer in gleicher Weise verwendet werden. Es + existieren jedoch neue Mechanismen oder Benutzerschnittstellen, die + stattdessen verwendet werden sollten. Dokumentiert sind die + veralteten Anweisungen hier nur, damit es dem Anwender leichter + fällt, alte Dokumente zu verstehen. Darüber hinaus steht es + Paketautoren frei, weiterhin diese Makros zu verwenden. + + \begin{Declaration} + \Macro{capfont} \\ + \Macro{caplabelfont} + \end{Declaration} + \BeginIndex{Cmd}{capfont}% + \BeginIndex{Cmd}{caplabelfont}% + Das Makro \Macro{capfont} beinhaltet die Schriftart, die für + Tabellen- bzw. Abbildungunterschriften bzw. -überschriften verwendet + wird. Das Makro \Macro{caplabelfont} beinhaltet die Schriftart, die + davon abweichend für die Bezeichnung und Nummer verwendet wird. + Verwenden Sie stattdessen die in \autoref{sec:maincls.font} + vorgestellten Anweisungen für die Elemente \FontElement{caption} und + \FontElement{captionlabel}. +% + \EndIndex{Cmd}{capfont}% + \EndIndex{Cmd}{caplabelfont}% + + \begin{Declaration} + \Macro{descfont} + \end{Declaration} + \BeginIndex{Cmd}{descfont}% + Dieses Makro beinhaltet die Schriftart, die für die Stichworte, also + die optionalen \Macro{item}-Argumente, einer + \Environment{description}-Umgebung verwendet wird. Verwenden Sie + stattdessen die in \autoref{sec:maincls.font} vorgestellten + Anweisungen für das Element \FontElement{descriptionlabel}. +% + \EndIndex{Cmd}{descfont}% + + \begin{Declaration} + \Macro{sectfont} + \end{Declaration} + \BeginIndex{Cmd}{sectfont}% + Dieses Makro beinhaltet die Schriftart, die für alle Überschriften + der Gliederung und der Zusammenfassung, den Haupttitel und die + oberste Ebene unter \Macro{part} im Inhaltsverzeichnis verwendet + wird. Verwenden Sie stattdessen die in + \autoref{sec:maincls.font} vorgestellten Anweisungen für das + Element \FontElement{sectioning}. +% + \EndIndex{Cmd}{sectfont}% + +\end{Explain} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Autoren} +\label{sec:maincls.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die +Vorlage dafür geliefert. +% In folgender Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item Frank Neukam +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\item Axel Sommerfeldt +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% mode: font-lock +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/layout.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/layout.tex new file mode 100644 index 00000000000..13072c2cc6b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/layout.tex @@ -0,0 +1,1477 @@ +\ProvidesFile{layout.tex}[2004/07/06 KOMA-Script Anleitung] +% ============================================================================ +% layout.tex +% Copyright (c) 2001 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% layout.tex +% Copyright (c) 2001 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Paketes. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Kopf- und Fusszeilen +% Autoren: Markus Kohm (MJK) +% Inhalt: Kopf- und Fusszeilen mit scrpage +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% +% +\chapter{Kopf- und Fußzeilen mit \Package{scrpage2}}\label{cha:scrpage} +% +\BeginIndex{Package}{scrpage2}% +Wie bereits in \autoref{cha:typearea} zur Bestimmung des +Satzspiegels hingewiesen wurde, stellt \KOMAScript{} ein Werkzeug +zur Verfügung, um die im Layout definierten Freiräume für +Kopf- und Fußzeilen auch mit Inhalt zu füllen. + +\BeginIndex{Package}{scrpage}% +Dazu dient in \KOMAScript{} das Paket \Package{scrpage2}, das eine +stark erweiterte Variante des originalen \Package{scrpage} darstellt. +Verglichen mit dem häufig anzutreffenden Paket +\Package{fancyhdr} \cite{package:fancyhdr} ist \Package{scrpage2} +extrem flexibel in seiner Benutzung. Weiterhin +ist es durch seine Nähe zu den \KOMAScript{}-Klassen dort gut +integriert und somit eine perfekte Ergänzung der +Standardfunktionalität. + +Für \Package{scrpage2} und \Package{scrpage} gilt, dass sie nicht an +die \KOMAScript{}-Klassen gebunden sind. Sie können mit jeder anderen +Dokumentenklasse, zum Beispiel den Standardklassen eingesetzt werden. +Für neue Dokumente sollte unbedingt das neue Paket \Package{scrpage2} +benutzt werden -- die alte Version steht aus Gründen der +Kompatibilität jedoch weiterhin zur Verfügung. Dieses Kapitel +fokussiert auf \Package{scrpage2}. +Befehle, die in gleicher Form bei +\Package{scrpage} vorkommen, +werden als solche markiert \ScrpageMark{}(siehe Rand). Treten in der +neuen Variante Abweichungen auf, wird im Text an +markierten\ScrpageNote{} Stellen darauf hingewiesen. +% +\EndIndex{Package}{scrpage} + +\begin{Explain}% Einführung zu Kopfzeilen + Um die nachfolgende Beschreibung zu verstehen, muss noch einiges zu + \LaTeX{} gesagt werden. Grundlegend definiert der \LaTeX-Kern die + Standardseitenstile \PValue{empty}, welcher eine völlig undekorierte + Seite erzeugt, und \PValue{plain}, welcher meist nur die Seitenzahl + enthält. Weiterhin ist in vielen Klassen der Stil \PValue{headings} + zu finden, welcher eine komplexe Seitendekoration erzeugt, wobei es + hier noch die Untervariante \PValue{myheadings} gibt. Dieser + Seitenstil \PValue{myheadings} ist wie \PValue{headings} gestaltet, + jedoch müssen die sonst automatisch aktualisierten Kolumnentitel + manuell gesetzt werden. Ausführlicher wird das im Abschnitt + \ref{sec:maincls.pageStyle} beschrieben. Weiterhin ist zu beachten, + dass einige \LaTeX{}-Befehle für die aktuelle + Seite auf den Seitenstil \PValue{plain} wechseln, auch wenn der + Autor einen anderen Stil, zum Beispiel \PValue{headings}, eingestellt + hat. Das bedeutet, dass zu einem \PValue{headings}-Stil auch ein + passender \PValue{plain}-Stil vorhanden sein sollte. + + Das Paket \Package{scrpage2} definiert dazu einen + \PValue{headings}-Stil namens \PValue{scrheadings} und einen + korrespondieren \PValue{plain}-Seitenstil, der einfach + \PValue{scrplain} heißt. Letzteren direkt zu aktivieren ist + eigentlich nicht notwendig, da dies automatisch durch + \PValue{scrheadings} geschieht. Eine Ausnahme gibt es nur, wenn + \PValue{scrheadings} nicht genutzt wird, man aber eigene Stile mit + \PValue{scrplain} kombinieren will. Dazu muss vor dem eigenen Stil + \PValue{scrplain} mindestens einmal, beispielsweise mit + \Macro{pagestyle}\Parameter{scrplain}% + \Macro{pagestyle}\Parameter{eigenerStil}, aktiviert werden. + % next sentence is not not important; shall only reduce + % stretching of paragraphs + Dadurch wird der originale \PValue{plain}-Seitenstil mit + \Package{scrpage2}-Stil \PValue{scrplain} ersetzt und + ist somit im Folgenden aktiv. +\end{Explain} + +\section{Grundlegende Funktionen}\label{sec:scrpage.basics} +\subsection{Vordefinierte Seitenstile}\label{sec:scrpage.basics.buildIn} +% \lehead ... +% scrheadings +% \headmark \pagemark + +\begin{Declaration} + \PValue{scrheadings}\\ + \PValue{scrplain} +\end{Declaration}% +\BeginIndex{Pagestyle}{scrheadings}\BeginIndex{Pagestyle}{scrplain}% +\Index{Seitenstil}% +Das Paket \Package{scrpage2} liefert einen eigenen Seitenstil namens +\PValue{scrheadings}. Dieser Seitenstil kann mittels +\Macro{pagestyle}\PParameter{scrheadings} aktiviert werden. Wird +dieser Seitenstil benutzt, dann ist gleichzeitig ein dazu passender +\PValue{plain}-Stil verfügbar. Passend bedeutet, dass auch der +\PValue{plain}-Stil auf in \autoref{sec:scrpage.basics.format} +vorgestellten Befehle, die beispielsweise die Kopfbreite ändern, +reagiert. Die Aktivierung des Seitenstils \PValue{scrheadings} oder +des zugehörigen \PValue{plain}-Stils hat keine Auswirkung darauf, ob +mit manuellen oder automatischen Kolumnentiteln gearbeitet wird (siehe +\autoref{sec:scrpage.basics.mark}). + +\begin{Declaration} + \Macro{lehead}% + \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}\\ + \Macro{cehead}% + \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}\\ + \Macro{rehead}% + \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}\\ + \Macro{lefoot}% + \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}\\ + \Macro{cefoot}% + \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}\\ + \Macro{refoot}% + \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}\\ + \Macro{lohead}% + \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}\\ + \Macro{cohead}% + \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}\\ + \Macro{rohead}% + \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}\\ + \Macro{lofoot}% + \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}\\ + \Macro{cofoot}% + \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}\\ + \Macro{rofoot}% + \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}\\ + \Macro{ihead}% + \OParameter{scrplain-innen}\Parameter{scrheadings-innen}\\ + \Macro{chead}% + \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}\\ + \Macro{ohead}% + \OParameter{scrplain-außen}\Parameter{scrheadings-außen}\\ + \Macro{ifoot}% + \OParameter{scrplain-innen}\Parameter{scrheadings-innen}\\ + \Macro{cfoot}% + \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}\\ + \Macro{ofoot}% + \OParameter{scrplain-außen}\Parameter{scrheadings-außen} +\end{Declaration}% +\BeginIndex{Cmd}{lehead}\BeginIndex{Cmd}{cehead}\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{ihead}\BeginIndex{Cmd}{chead}\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{lohead}\BeginIndex{Cmd}{cohead}\BeginIndex{Cmd}{rohead}% +\BeginIndex{Cmd}{lefoot}\BeginIndex{Cmd}{cefoot}\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{ifoot}\BeginIndex{Cmd}{cfoot}\BeginIndex{Cmd}{rfoot}% +\BeginIndex{Cmd}{lofoot}\BeginIndex{Cmd}{cofoot}\BeginIndex{Cmd}{rofoot}% +Diese Seitenstile sind so definiert, dass sowohl im Kopf als auch im +Fuß drei Felder vorhanden sind, deren Inhalt modifiziert werden kann. +Die Befehle zur Modifikation sind in \autoref{fig:scrpage.leheadetall} +verdeutlicht. Die in der Mitte dargestellten Befehle modifizieren sowohl +die Felder der linken als auch der rechten Seite. + +\begin{figure} + \centering + \setlength{\unitlength}{1mm}\begin{picture}(100,65)(0,10)\small + \put(0,12){\dashbox{2}(40,56){linke Seite}} + \put(60,12){\dashbox{2}(40,56){rechte Seite}} + % Felder: oben links + \put(1,63){\framebox(8,4){~}} + \put(16,63){\framebox(8,4){~}} + \put(31,63){\framebox(8,4){~}} + % Felder: oben rechts + \put(61,63){\framebox(8,4){~}} + \put(76,63){\framebox(8,4){~}} + \put(91,63){\framebox(8,4){~}} + % Felder: unten links + \put(1,13){\framebox(8,4){~}} + \put(16,13){\framebox(8,4){~}} + \put(31,13){\framebox(8,4){~}} + % Felder: unten rechts + \put(61,13){\framebox(8,4){~}} + \put(76,13){\framebox(8,4){~}} + \put(91,13){\framebox(8,4){~}} + % die Befehle und Pfeile + % für beidseitig + % + \put(50,65){\makebox(0,0){\Macro{ihead}}} + \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}} + \put(50,58){\makebox(0,0){\Macro{chead}}} + \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}} + \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}} + \put(50,51){\makebox(0,0){\Macro{ohead}}} + \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}} + \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}} + % + \put(50,15){\makebox(0,0){\Macro{ifoot}}} + \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}} + \put(50,22){\makebox(0,0){\Macro{cfoot}}} + \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}} + \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}} + \put(50,29){\makebox(0,0){\Macro{ofoot}}} + \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}} + \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}} + % Befehle für einseitig + \put(5,69){\makebox(0,0)[b]{\Macro{lehead}}} + \put(20,69){\makebox(0,0)[b]{\Macro{cehead}}} + \put(35,69){\makebox(0,0)[b]{\Macro{rehead}}} + % + \put(65,69){\makebox(0,0)[b]{\Macro{lohead}}} + \put(80,69){\makebox(0,0)[b]{\Macro{cohead}}} + \put(95,69){\makebox(0,0)[b]{\Macro{rohead}}} + % + \put(5,11){\makebox(0,0)[t]{\Macro{lefoot}}} + \put(20,11){\makebox(0,0)[t]{\Macro{cefoot}}} + \put(35,11){\makebox(0,0)[t]{\Macro{refoot}}} + % + \put(65,11){\makebox(0,0)[t]{\Macro{lofoot}}} + \put(80,11){\makebox(0,0)[t]{\Macro{cofoot}}} + \put(95,11){\makebox(0,0)[t]{\Macro{rofoot}}} + \end{picture} + \caption[Befehle zur Manipulation der + \Package{scrpage2}-Seitenstile]% + {Befehle zur Manipulation der Seitenstile \PValue{scrheadings} und + \PValue{scrplain} in ihrer Zuordnung zu den manipulierten + Seitenelementen} + \label{fig:scrpage.leheadetall} +\end{figure} + +\begin{Example} +Angenommen man möchte zentriert im Seitenfuß die Seitenzahl +dargestellt haben, dann benutzt man einfach: +\begin{small} +\begin{verbatim} + \cfoot{\pagemark} +\end{verbatim} +\end{small} +Sollen die Seitenzahlen im Kopf außen und die +Kolumnentitel\Index{Kolumnentitel} innen stehen, dann erfolgt dies mit: +\begin{small} +\begin{verbatim} + \ohead{\pagemark} + \ihead{\headmark} + \cfoot{} +\end{verbatim} +\end{small} +Das \Macro{cfoot}\PParameter{} ist nur dann notwendig, wenn eine +möglicherweise im Fuß vorhandene Seitenzahl entfernt werden muss. +\end{Example} + +Die anderen Befehle, die direkt nur einem Feld zugeordnet sind, +können für anspruchsvollere Vorhaben genutzt werden. + +\begin{Example} +Angenommen, man hat den Auf"|trag, einen Jahresbericht einer Firma +zu erstellen, dann könnte das so angegangen werden: +\begin{small} +\begin{verbatim} + \ohead{\pagemark} + \rehead{Jahresbericht 2001} + \lohead{\headmark} + \cefoot{Firma WasWeißIch} + \cofoot{Abteilung Entwicklung} +\end{verbatim} +\end{small} +Natürlich muss man hier dafür sorgen, dass mittels \Macro{cofoot} +der Fuß der rechten Seite aktualisiert wird, wenn eine neue + Abteilung im Bericht besprochen wird. +\end{Example} + +Wie oben dargestellt, gibt es einen zu \PValue{scrheadings} +korrespondierenden \PValue{plain}-Seitenstil. +Da es auch möglich sein soll, diesen Stil anzupassen, +unterstüt"-zen die Befehle ein optionales Argument. +Damit kann der Inhalt des entsprechenden Feldes +im \PValue{plain}-Seitenstil modifiziert werden. + +\begin{Example} +Um für die Nutzung von \PValue{scrheadings} die Position der +Seitenzahlen festzulegen, kann man folgendes benutzen: +\begin{small} +\begin{verbatim} + \cfoot[\pagemark]{} + \ohead[]{\pagemark} +\end{verbatim} +\end{small} +Wird nun der Stil \PValue{plain} genutzt, beispielsweise weil +\Macro{chapter} eine neue Seite beginnt und darauf umschaltet, +dann steht die Seitenzahl zentriert im Seitenfuß. +\end{Example} +% +\EndIndex{Pagestyle}{scrheadings}\EndIndex{Pagestyle}{scrplain}% + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-18 +\begin{Declaration} + \Macro{clearscrheadings}\\ + \Macro{clearscrplain}\\ + \Macro{clearscrheadfoot} +\end{Declaration}% +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% +Will man sowohl den Seitenstil \PValue{scrheadings} als auch den dazu +gehörenden \PValue{plain}-Seitenstil von Grund auf neu definieren, +muss man häufig zusätzlich einige der bereits belegten Seitenelemente +löschen. Da man selten alle Elemente mit neuem Inhalt füllt, sind +dazu in den meisten Fällen mehrere Befehle mit leeren Parametern +notwendig. +Mit Hilfe dieser drei Befehle ist das Löschen schnell und +gründlich möglich. Während \Macro{clearscrheadings} lediglich alle +Felder des Seitenstils \PValue{scrheadings} und \Macro{clearscrplain} +alle Felder des zugehörigen \PValue{plain}-Seitenstils löscht, werden +von \Macro{clearscrheadfoot} alle Felder beider Seitenstile auf leere +Inhalte gesetzt. +\begin{Example} + Sie wollen unabhängig davon, wie die Seitenstile derzeit aussehen, + die Standardform der \KOMAScript-Klassen bei zweiseitigem Satz + erreichen. Dies ist mit nur drei Befehlen möglich: + \begin{small} +\begin{verbatim} + \clearscrheadfoot + \ohead{\headmark} + \ofoot[\pagemark]{\pagemark} +\end{verbatim} + \end{small} + Ohne die Befehle \Macro{clearscrheadfoot}, \Macro{clearscrheadings} + und \Macro{clearscrplain} wären doppelt so viele Anweisungen und + neun weitere leere Argumente notwendig: + \begin{small} +\begin{verbatim} + \ihead[]{} + \chead[]{} + \ohead[]{\headmark} + \ifoot[]{} + \cfoot[]{} + \ofoot[\pagemark]{\pagemark} +\end{verbatim} + \end{small} + Einige davon könnten natürlich entfallen, wenn man von einer + konkreten Vorbelegung ausginge. +\end{Example} +% +\EndIndex{Cmd}{clearscrheadings}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadfoot}% +% +\EndIndex{Cmd}{lehead}\EndIndex{Cmd}{cehead}\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{ihead}\EndIndex{Cmd}{chead}\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{lohead}\EndIndex{Cmd}{cohead}\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{lefoot}\EndIndex{Cmd}{cefoot}\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{ifoot}\EndIndex{Cmd}{cfoot}\EndIndex{Cmd}{rfoot}% +\EndIndex{Cmd}{lofoot}\EndIndex{Cmd}{cofoot}\EndIndex{Cmd}{rofoot}% + +% Satz leicht geaendert: mjk 2001-08-18 +In den vorausgehenden Beispielen wurden schon zwei +Befehle benutzt, die noch gar nicht besprochen wurden. +Das soll jetzt nachgeholt werden. + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-17 +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark} +\end{Declaration}% +\BeginIndex{Cmd}{leftmark}\BeginIndex{Cmd}{rightmark}% +Diese beiden Befehle erlauben es auf die Kolumnentitel zuzugreifen, +die normalerweise für die linke bzw. die rechte Seite gedacht +sind. Diese beiden Befehle werden nicht von \Package{scrpage} +bzw. \Package{scrpage2}, sondern direkt vom \LaTeX-Kern zur +Verfügung gestellt. Wenn in diesem Kapitel vom Kolumnentitel der +linken Seite oder vom Kolumnentitel der rechten Seite die Rede ist, +dann ist damit eigentlich der Inhalt von \Macro{leftmark} +bzw. \Macro{rightmark} gemeint. +% +\EndIndex{Cmd}{leftmark}\EndIndex{Cmd}{rightmark}% + + +\BeginIndex{Cmd}{headmark} +\begin{Declaration} +\Macro{headmark} +\end{Declaration}% +\ScrpageMark{}% +Dieser Befehl ermöglicht es, auf die Inhalte der Kolumnentitel +zuzugreifen. +Im Gegensatz zu den originalen \LaTeX{}-Befehlen +\Macro{leftmark} und \Macro{rightmark} braucht man +nicht auf die richtige Zuordnung zur linken oder rechten +Seite zu achten. +\EndIndex{Cmd}{headmark} + +\BeginIndex{Cmd}{pagemark} +\begin{Declaration} +\Macro{pagemark} +\end{Declaration}% +\ScrpageMark{}% +Dieser Befehl ermöglicht den Zugriff auf die Seitenzahl. Im +\autoref{sec:scrpage.basics.format} wird der Befehl +\Macro{pnumfont} zur Formatierung der Seitenzahl vorgestellt, +den \Macro{pagemark} automatisch berücksichtigt. +\EndIndex{Cmd}{pagemark} + +\BeginIndex{Cmd}{pagestyle}\BeginIndex{Pagestyle}{useheadings} +\begin{Declaration} +\Option{useheadings} +\end{Declaration}% +Das Paket \Package{scrpage2} ist in erster Linie dafür gedacht, dass +die bereitgestellten Stile benutzt oder eigene Stile definiert +werden. Jedoch kann es notwendig sein, auch auf einen von der +Dokumentenklasse zur Verfügung gestellten Stil zurückzuschalten. +Dieses mit \Macro{pagestyle}\PParameter{headings} vorzunehmen wäre +naheliegend, hat aber den Nachteil, dass die nachfolgend besprochenen +Befehle \Macro{automark} und \Macro{manualmark} nicht wie erwartet +funktionieren. Aus diesem Grund sollte auf die originalen Stile mit +\Macro{pagestyle}\PParameter{useheadings} umgeschalten werden. Eine +solche Umschaltung hat dann keine Auswirkung darauf, ob mit manuellen +oder automatischen Kolumnentiteln gearbeitet wird. +\EndIndex{Cmd}{pagestyle}\EndIndex{Pagestyle}{useheadings} + +\subsection{Manuelle und automatische Kolumnentitel} +\label{sec:scrpage.basics.mark} +% \automark \manualmark +% +Gewöhnlich gibt es zu einem \PValue{headings}-Stil eine +\emph{my}-Variante. Ist ein solcher Stil aktiv, dann werden die +Kolumnentitel nicht mehr automatisch aktualisiert. Bei +\Package{scrpage2} wird ein anderer Weg beschritten. Ob die +Kolumnentitel lebend sind oder nicht, bestimmen die Befehle +\Macro{automark} und \Macro{manualmark}. Die Voreinstellung kann auch +bereits beim Laden des Paketes über die Optionen \Option{automark} und +\Option{manualmark} beeinflusst werden (siehe +\autoref{sec:scrpage.basics.options}, +\autopageref{page:scrpage.automark}). + +\BeginIndex{Cmd}{manualmark} +\begin{Declaration} +\Macro{manualmark} +\end{Declaration}% +Wie der Name bereits verdeutlicht, schaltet \Macro{manualmark} die +Aktualisierung der Kolumnentitel aus. Es bleibt somit dem Nutzer +überlassen, für eine Aktualisierung bzw. für den Inhalt der +Kolumnentitel zu sorgen. Dazu stehen die Befehle +\Macro{markboth}\IndexCmd{markboth} und +\Macro{markright}\IndexCmd{markright} bereit. +\EndIndex{Cmd}{manualmark} + +% Ergaenzt mjk 2001-07-17 +\BeginIndex{Cmd}{automark} +\begin{Declaration} + \Macro{automark}\OParameter{rechte Seite}\Parameter{linke Seite} +\end{Declaration}% +Das Makro \Macro{automark} hingegen aktiviert die automatische +Aktualisierung. Für die beiden Parameter sind die Bezeichnungen der +Gliederungsebenen\Index{Gliederungsebenen} einzusetzen, deren Titel an +entsprechender Stelle erscheinen soll. Gültige Werte für die Parameter +sind: \PValue{part}\ChangedAt{2.2}{\Package{scrpage2}}, \PValue{chapter}, \PValue{section}, \PValue{subsection}, +\PValue{subsubsection}, \PValue{paragraph} und \PValue{subparagraph}. Der Wert +\PValue{part} führt bei Verwendung der meisten Klassen nicht zu dem +gewünschten Ergebnis. Bisher ist nur von den \KOMAScript-Klassen ab +Version~2.9s bekannt, dass dieser Wert unterstützt wird. +Das optionale Argument \PName{rechte Seite} ist ver\-ständlicherweise +nur für zweiseitigen Satz gedacht. Im einseitigen Satz sollten Sie +normalerweise darauf verzichten. Mit Hilfe der Option +\Option{autooneside}\IndexOption{autooneside} können Sie auch +einstellen, dass das optionale Argument im +einseitigen\Index{einseitig} Satz automatisch ignoriert wird (siehe +\autoref{sec:scrpage.basics.options}). +\begin{Example} +Wird beispielsweise mit einer \emph{book}-Klasse gearbeitet, +dessen höch\-ste Gliederungsebene \emph{chapter} ist, dann +stellt nach einem vorhergehenden \Macro{manualmark} der Befehl +\begin{small} +\begin{verbatim} + \automark[section]{chapter} +\end{verbatim} +\end{small} +den Originalzustand wieder her. Bevorzugt man stattdessen, +die tieferen Gliederungsebenen angezeigt zu bekommen, dann +erfolgt dies mit: +\begin{small} +\begin{verbatim} + \automark[subsection]{section} +\end{verbatim} +\end{small} +\end{Example} + +\begin{Explain} + Die Markierung der höheren Gliederungsebene wird mit + Hilfe von \Macro{markboth}\IndexCmd{markboth} gesetzt. Die + Markierung der tieferen Gliederungsebene wird mit + \Macro{markright}\IndexCmd{markright} + bzw. \Macro{markleft}\IndexCmd{markleft} gesetzt. + Der entsprechende Aufruf erfolgt indirekt über die jeweiligen + Gliederungsbefehle. Die Anweisung \Macro{markleft} wird von + \Package{scrpage2} bereitgestellt und ist vergleichbar zu + \Macro{markright} aus dem \LaTeX-Kern definiert. Obwohl sie nicht + als internes Makro definiert ist, wird von einem direkten Gebrauch + abgeraten. +\end{Explain} +\EndIndex{Cmd}{automark} + + +\subsection{Formatierung der Kopf- und Fußzeilen} +\label{sec:scrpage.basics.format} +% \headfont \pnumfont +% \setheadwidth \setfootwidth +% \set(head|foot)(top|sep|bot)line +Im vorherigen Abschnitt ging es hauptsächlich um inhaltliche +Dinge. +Das genügt natürlich nicht, um die gestalterischen Ambitionen +zu befriedigen. Deshalb soll es sich in diesem Abschnitt +ausschließlich darum drehen. +\BeginIndex{Cmd}{headfont}\BeginIndex{Cmd}{pnumfont} +\begin{Declaration} +\Macro{headfont}\\ +\Macro{pnumfont} +\end{Declaration}% +\ScrpageMark{}% +Die Schriftformatierung übernimmt +der Befehl \Macro{headfont} für den Seitenkopf und -fuß +und \Macro{pnumfont} für die Seitenzahl. +\begin{Example} +Um beispielsweise den Kopf und Fuß in fetter serifenloser Schrift zu setzen, +und die Seitenzahl geneigt serif erscheinen zu lassen, +nutzt man folgende Definitionen. +\begin{small} +\begin{verbatim} + \renewcommand{\headfont}{\normalfont\sffamily\bfseries} + \renewcommand{\pnumfont}{\normalfont\rmfamily\slshape} +\end{verbatim} +\end{small} +\end{Example} +\EndIndex{Cmd}{headfont}\EndIndex{Cmd}{pnumfont} +% +Ab Version 2.8p der \KOMAScript{}-Klassen wurde die Schnittstelle +für Schriftattribute vereinheitlicht. +Wird \Package{srcpage2} in Verbindung mit einer dieser Klassen +verwendet, dann sollte die Zuweisung in der Art erfolgen, wie +sie im \autoref{sec:maincls.font} beschrieben wird. +\begin{Example} +Statt dem \Macro{renewcommand} wird dann der Befehl +\Macro{setkomafont} verwendet. +Die vorhergehenden Definitionen lauten dann: +\begin{small} +\begin{verbatim} + \setkomafont{pagehead}{\normalfont\sffamily\bfseries} + \setkomafont{pagenumber}{\normalfont\rmfamily\slshape} +\end{verbatim} +\end{small} +\end{Example} + +\BeginIndex{Cmd}{setheadwidth}\BeginIndex{Cmd}{setfootwidth} +\begin{Declaration} +\Macro{setheadwidth}\OParameter{Verschiebung}\Parameter{Breite}\\ +\Macro{setfootwidth}\OParameter{Verschiebung}\Parameter{Breite} +\end{Declaration}% +Normalerweise entsprechen die Breiten von Kopf- und Fußzeile der Breite +des Textbereichs.\Index{Kopf>Breite}\Index{Fuß>Breite} +Die Befehle \Macro{setheadwidth} und \Macro{setfootwidth} +ermöglichen dem Anwender, auf einfache Weise die Breiten seinen +Bedürfnissen anzupassen. +Das obligatorische Argument \PName{Breite} nimmt den Wert der Breite +des Kopfes bzw. des Fußes auf, \PName{Verschiebung} ist ein +Längenmaß für die Verschiebung des entsprechenden Elements in Richtung +des äußeren Seitenrandes. + +Für die möglichen Standardfälle akzeptiert das obligatorische Argument +\PName{Breite} auch folgende symbolische Werte: +\begin{labeling}[\ --]{\PValue{textwithmarginpar}} +\item[\PValue{paper}] die Breite des Papiers +\item[\PValue{page}] die Breite der Seite +\item[\PValue{text}] die Breite des Textbereichs +\item[\PValue{textwithmarginpar}] die Breite des Textbereichss inklusive dem +Seitenrand +\item[\PValue{head}] die aktuelle Breite des Seitenkopfes +\item[\PValue{foot}] die aktuelle Breite des Seitenfußes +\end{labeling} +Der Unterschied zwischen \PValue{paper} und \PValue{page} besteht +darin, dass \PValue{page} die Breite des Papiers abzüglich der +Bindekorrektur ist, falls das +\Package{typearea}-Paket\IndexPackage{typearea} verwendet wird (siehe +\autoref{cha:typearea}). Ohne Verwendung von \Package{typearea} +sind \PValue{paper} und \PValue{page} +identisch.%mjk-2001-08-17 + +\begin{Example} + Angenommen man möchte ein Seitenlayout wie im + \emph{\LaTeX-Begleiter}, bei dem die Kopfzeile in den Rand ragt, + dann geschieht das ganz einfach mit: +\begin{small} +\begin{verbatim} + \setheadwidth[0pt]{textwithmarginpar} +\end{verbatim} +\end{small} +% +und sieht dann auf einer rechten Seite folgendermaßen aus: +% +\begin{XmpTopPage} + \XmpHeading{10,25}{85} + \thinlines\XmpRule{10,23}{85} + \XmpSetText[\XmpTopText]{10,20} + \XmpMarginNote{83,10.8} +\end{XmpTopPage} +% +Soll der Seitenfuß die gleiche Breite und Ausrichtung haben, dann hat +man jetzt zwei Wege. +Der erste ist, man wiederholt das Gleiche für den Seitenfuß mit: +\begin{small} +\begin{verbatim} + \setfootwidth[0pt]{textwithmarginpar} +\end{verbatim} +\end{small} +% +oder man greift auf den anderen symbolischen Wert \PValue{head} zurück, +da der Kopf bereits die gewünschte Breite hat. +\begin{small} +\begin{verbatim} + \setfootwidth[0pt]{head} +\end{verbatim} +\end{small} +\end{Example} + +Wird keine Verschiebung angegeben, das heißt auf das optionale Argument +verzichtet, dann erscheint der Kopf bzw. der Fuß symmetrisch auf +der Seite angeordnet. Es wird somit ein Wert für die Verschiebung +automatisch ermittelt, der der aktuellen Seitengestalt entspricht. + +\begin{Example} +Entsprechend dem vorherigen Beispiel wird hier auf das optionale +Argument verzichtet: +\begin{small} +\begin{verbatim} + \setheadwidth{textwithmarginpar} +\end{verbatim} +\end{small} +% +und sieht dann auf einer rechten Seite folgendermaßen aus: +% +\begin{XmpTopPage} + \XmpHeading{5,25}{85} + \thinlines\XmpRule{5,23}{85} + \XmpSetText[\XmpTopText]{10,20} + \XmpMarginNote{83,10.8} +\end{XmpTopPage} +\end{Example} + +Wie zu sehen, ist der Kopf jetzt nach innen verschoben, wobei +die Kopfbreite sich nicht geändert hat. Die Verschiebung ist +so berechnet, dass die Seitenproportionen auch hier sichtbar werden. +\EndIndex{Cmd}{setheadwidth}\EndIndex{Cmd}{setfootwidth} + +\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline} +\BeginIndex{Cmd}{setfootseptline}\BeginIndex{Cmd}{setfootbotline} +\begin{Declaration} +\Macro{setheadtopline}\OParameter{Länge}\Parameter{Dicke}\OParameter{Anweisungen}\\ +\Macro{setheadsepline}\OParameter{Länge}\Parameter{Dicke}\OParameter{Anweisungen}\\ +\Macro{setfootsepline}\OParameter{Länge}\Parameter{Dicke}\OParameter{Anweisungen}\\ +\Macro{setfootbotline}\OParameter{Länge}\Parameter{Dicke}\OParameter{Anweisungen} +\end{Declaration}% +Entsprechend den Größenparametern für die Kopf- und Fußzeile +gibt es auch Befehle, die die Dimensionen der Linien im Kopf und +Fuß modifizieren können. + +\begin{labeling}[\ --]{\Macro{setfootsepline}} +\item[\Macro{setheadtopline}] modifiziert die Parameter für die Linie +über dem Seitenkopf +\item[\Macro{setheadsepline}] modifiziert die Parameter für die Linie +zwischen Kopf und Textkörper +\item[\Macro{setfootsepline}] modifiziert die Parameter für die Linie +zwischen Text und Fuß +\item[\Macro{setfootbotline}] modifiziert die Parameter für die Linie +unter dem Seitenfuß +\end{labeling} + +Das obligatorische Argument \PName{Dicke} bestimmt, wie stark +die Linie gezeichnet wird. +Das optionale Argument \PName{Länge} akzeptiert die +gleichen symbolischen Werte wie \PName{Breite} bei +\Macro{setheadwidth}, als auch einen normalen Längenausdruck. +Solange im Dokument dem optionalen Argument \PName{Länge} kein Wert +zugewiesen wurde, passt sich die entsprechende Linienlänge automatisch der +Breite des Kopfes bzw. des Fußes an. + +Möchte man diesen Automatismus für die Länge einer Linie wieder restaurieren, +dann nutzt man im Längenargument den Wert \PValue{auto}. + +Mit\ChangedAt{2.2}{\Package{scrpage2}} +dem optionalen Argument \PName{Anweisungen} können zusätzliche Anweisungen +definiert werden, die vor dem Zeichnen der jeweiligen Linie auszuführen sind. +Das können beispielsweise Anweisungen sein, um die +Farbe\Index{Kopf>Farbe}\Index{Fuss=Fuß>Farbe}\Index{Farbe>im + Kopf}\Index{Farbe>im Fuss=im Fuß} der Linie zu ändern. +Bei Verwendung einer \KOMAScript-Klasse können diese Anweisungen auch über +\Macro{setkomafont}\IndexCmd{setkomafont} für eines der Elemente +\FontElement{headtopline}\IndexFontElement{headtopline}, +\FontElement{headsepline}\IndexFontElement{headsepline}, +\FontElement{footsepline}\IndexFontElement{footsepline}, +\FontElement{footbottomline}\IndexFontElement{footbottomline} oder auch +\FontElement{footbotline}\IndexFontElement{footbotline} gesetzt und mit +\Macro{addtokomafont}\IndexCmd{addtokomafont} erweitert werden. Die +Anweisungen \Macro{setkomafont} und \Macro{addkomafont} sind in +\autoref{sec:maincls.font} näher beschrieben. + +\begin{Declaration} +\Macro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{\upshape\PValue{current}}\\ +\Macro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\\ +\Macro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\OParameter{} +\end{Declaration}% +Die hier am Befehl \Macro{setheadtopline} illustrierten Argumente +sind natürlich auch für die anderen drei Längenbefehle gültig. + +Enthält das obligatorische Argument den Wert \PValue{current} oder wird +leer gelassen, dann wird die Dicke der Linie nicht verändert. Das kann +genutzt werden, wenn die Länge der Linie aber nicht die Dicke modifiziert +werden soll. + +Wird das das optionale Argument \PName{Anweisungen} weggelassen, so bleiben +eventuell zuvor gesetzte Anweisungen erhalten. Wird hingegen ein leeres +Argumen \PName{Anweisungen} gesetzt, so werden eventuell zuvor gesetzte +Anweisungen wieder gelöscht. + +\begin{Example} +Soll beispielsweise der Kopf mit einer kräftigen Linie von 2\,pt +darüber und einer normalen von 0,4\,pt zwischen Kopf und Text +abgesetzt werden, dann erfolgt das mit: +\begin{small} +\begin{verbatim} + \setheadtopline{2pt} + \setheadsepline{.4pt} +\end{verbatim} +\end{small} +% +\begin{XmpTopPage} + \XmpHeading{10,25}{70} + \thinlines\XmpRule{10,23}{70} + \thicklines\XmpRule{10,28}{70} + \XmpSetText[\XmpTopText]{10,20} + \XmpMarginNote{83,10.8} +\end{XmpTopPage} + +Soll diese Linie zusätzlich in roter Farbe gesetzt werden, dann sind die +Anweisungen beispielsweise wie folgt zu ändern: +\begin{small} +\begin{verbatim} + \setheadtopline{2pt}[\color{red}] + \setheadsepline{.4pt}[\color{red}] +\end{verbatim} +\end{small} +In diesem und auch dem folgenden Beispiel wurde für die Aktivierung der Farbe +die Syntax des \Package{color}\IndexPackage{color}-Pakets verwendet, das dann +natürlich auch geladen werden muss. \Package{scrpage2} selbst bietet keine +direkte Farbunterstützung. Damit ist jedes beliebige Farbunterstützungspaket +verwendbar. + +Mit einer \KOMAScript-Klasse kann alternativ +\begin{small} +\begin{verbatim} + \setheadtopline{2pt} + \setheadsepline{.4pt} + \setkomafont{headtopline}[\color{red}] + \setkomafont{headsepline}[\color{red}] +\end{verbatim} +\end{small} +verwendet werden. + +Die automatische Anpassung an die Kopf- und Fußbreiten illustriert +folgendes Beispiel: +\begin{small} +\begin{verbatim} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{verbatim} +\end{small} + +%\phantomsection für hyperref-\pageref-Link jum-2001/11/24 +\phantomsection\label{page:scrpage.autoLineLength}% +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{17,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24.5} +\end{XmpBotPage} +\end{Example} +% +Nun mag nicht jedem die Ausrichtung der Linie über der Fußzeile +gefallen, sondern es wird erwartet, dass sie linksbündig zum +Text ist. +Diese Einstellung kann nur global in Form einer Paketoption erfolgen +und wird im folgenden Abschnitt +\ref{sec:scrpage.basics.options} mit anderen Optionen beschrieben. +\EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline} +\EndIndex{Cmd}{setfootseptline}\EndIndex{Cmd}{setfootbotline} + +\subsection{Optionen beim Laden des Paketes}\label{sec:scrpage.basics.options} +% head(in|ex)clude foot(in|ex)clude --> typearea +% headtopline headsepline footbotline footsepline (plain...) +% komastyle standardstyle +% markuppercase markusecase +% automark manualmark +\vspace{-1ex} +\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude} +\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude} +\begin{Declaration} +\Option{headinclude}\\ +\Option{headexclude}\\ +\Option{footinclude}\\ +\Option{footexclude} +\end{Declaration}% +Diese Optionen bestimmen, ob der Seitenkopf bzw.\,der Seitenfuß +für die Satzspiegel zum Text\-kör\-per gezählt werden. +Die durch die Verwendung der Parameter notwendigen Einstellungen +werden vom Paket \Package{typearea} +(siehe \autoref{sec:typearea.options}) +vorgenommen, wenn dieses Paket nach \Package{scrpage2} geladen wird. +Wichtig ist hier, dass bei Verwendung einer \KOMAScript{}-Klasse +diese Optionen bei der Dokumentenklasse und nicht bei \Package{scrpage2} +angegeben werden müssen, um eine Wirkung zu erzielen. +\EndIndex{Option}{headinclude}\EndIndex{Option}{footinclude} +\EndIndex{Option}{headexclude}\EndIndex{Option}{footexclude} + +\BeginIndex{Option}{headtopline}\BeginIndex{Option}{plainheadtopline} +\BeginIndex{Option}{headsepline}\BeginIndex{Option}{plainheadsepline} +\BeginIndex{Option}{footsepline}\BeginIndex{Option}{plainfootsepline} +\BeginIndex{Option}{footbotline}\BeginIndex{Option}{plainfootbotline} +\begin{Declaration} +\Option{headtopline} und \Option{plainheadtopline}\\ +\Option{headsepline} und \Option{plainheadsepline}\\ +\Option{footsepline} und \Option{plainfootsepline}\\ +\Option{footbotline} und \Option{plainfootbotline} +\end{Declaration}% +Eine Grundeinstellung für die Linien unter und über den Kopf- und +Fußzeilen kann mit diesen Optionen vorgenommen werden. +Diese Einstellungen gelten dann als Standard für alle mit \Package{scrpage2} +definierten Seitenstile. +Wird eine von diesen Optionen verwendet, dann wird eine Linienstärke +von 0,4\,pt eingesetzt. +Da es zum Seitenstil \PValue{scrheadings} einen entsprechenden +\PValue{plain}-Stil gibt, kann mit den \Option{plain\dots}-Optionen +auch die entsprechende Linie des \PValue{plain}-Stils konfiguriert +werden. Diese \Option{plain}-Optionen wirken aber nur, wenn auch +die korrespondierende Option ohne \Option{plain} aktiviert wurde. +Somit zeigt die Option \Option{plainheadtopline} +ohne \Option{headtopline} keine Wirkung. + +Bei diesen Optionen ist zu beachten, dass der entsprechende +Seitenteil in den Textbereich des Satzspiegels mit übernommen wird, +wenn eine Linie aktiviert wurde. +Wird also mittels \Option{headsepline} die Trennlinie zwischen +Kopf und Text aktiviert, dann wird automatisch mittels +\Package{typearea} der Satzspiegel so berechnet, dass der Seitenkopf +Teil des Textblocks ist. + +Die Bedingungen für die Optionen des vorhergehenden Abschnitts +gelten auch für diesen Automatismus. +Das bedeutet, dass das Paket \Package{typearea} nach \Package{scrpage2} +geladen werden muss, beziehungsweise, dass bei Verwendung einer +\KOMAScript{}-Klasse, die Optionen +\Option{headinclude} und \Option{footinclude} explizit bei +\Macro{documentclass} gesetzt werden müssen, um Kopf- bzw. Fußzeile +in den Texblock zu übernehmen. + +\EndIndex{Option}{headtopline}\EndIndex{Option}{plainheadtopline} +\EndIndex{Option}{headsepline}\EndIndex{Option}{plainheadsepline} +\EndIndex{Option}{footsepline}\EndIndex{Option}{plainfootsepline} +\EndIndex{Option}{footbotline}\EndIndex{Option}{plainfootbotline} + +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +\Index{Linienausrichtung}% +\begin{Declaration} +\Option{ilines}\\ +\Option{clines}\\ +\Option{olines} +\end{Declaration}% +Bei der Festlegung der Linienlängen +kann es vorkommen, dass die Linie zwar die gewünschte Länge aber nicht +die erwünschte Ausrichtung hat, da sie im Kopf- bzw. Fußbereich +zentriert wird. Mit den hier vorgestellten Paketoptionen kann +global für alle mit \Package{scrpage2} definierten Seitenstile diese +Vorgabe modifiziert werden. +Dabei setzt \Option{ilines} die Ausrichtung so, dass die Linien an +den inneren Rand verschoben werden. Die Option \Option{clines} +verhält sich wie die Standardeinstellung und \Option{olines} +richtet am äußeren Rand aus. + +\begin{Example} + Hier gilt es, das Beispiel zu \Macro{setfootsepline} auf Seite + \pageref{page:scrpage.autoLineLength} mit dem folgenden zu + vergleichen, um die Wirkung der Option \Option{ilines} zu sehen. + \begin{small} +\begin{verbatim} + \usepackage[ilines]{scrpage2} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{verbatim} + \end{small} +% Der folgende Text wurde erg"anzt um den Seitenumbruch zu verbessern, +% mjk-2001-10-05: + \enlargethispage*{2\baselineskip} + Allein die Verwendung der Option \Option{ilines} führt dabei zu der + geänderten Ausgabe, die nachfolgend veranschaulicht wird: +% +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{10,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24.5} +\end{XmpBotPage} + Die Trennlinie zwischen Text und Fuß wird bündig innen im Fußteil + gesetzt und nicht wie bei der Standardeinstellung zentriert. +\end{Example} +\EndIndex{Option}{ilines}\EndIndex{Option}{clines}\EndIndex{Option}{olines} + +% \phantomsection für hyperref-\pageref-Link jum-2001/11/24 +\phantomsection% +\BeginIndex{Option}{automark}\BeginIndex{Option}{manualmark} +\begin{Declaration} +\Option{automark}\label{page:scrpage.automark}\\ +\Option{manualmark} +\end{Declaration}% +Diese Optionen setzen gleich zu Beginn des Dokuments die Einstellung, +ob eine automatische Aktualisierung der Kolumnentitel erfolgt. +Die Option \Option{automark} schaltet die automatische +Aktualisierung ein, \Option{manualmark} deaktiviert sie. +% Das Folgende wurde ergaenzt, weil dazu die haeufigsten Fragen +% bzw. falschen Bug-Reports im Support kamen. +% mjk-2001-09-21: +Ohne Verwendung einer der beiden Optionen bleibt die Einstellung +erhalten, die beim Laden des Paketes gültig war. +\begin{Example} + Sie laden das Paket \Package{scrpage2} unmittelbar nach der Klasse + \Class{scrreprt} und ohne weitere Optionen. Dazu schreiben Sie: + \begin{small} +\begin{verbatim} + \documentclass{scrreprt} + \usepackage{scrpage2} +\end{verbatim} + \end{small} + Da bei \Class{scrreprt} der Seitenstil \PValue{plain} voreingestellt + ist, ist dies auch jetzt noch der Fall. Außerdem entspricht die + Voreinstellung \PValue{plain} manuellen Kolumnentiteln. Wenn Sie + also anschließend mit + \begin{small} +\begin{verbatim} + \pagestyle{scrheadings} +\end{verbatim} + \end{small} + auf den Seitenstil \PValue{scrheadings} umschalten, sind noch immer + manuelle Kolumnentitel eingestellt. + + Verwenden Sie stattdessen die Dokumentklasse \Class{scrbook}, so + ist nach + \begin{small} +\begin{verbatim} + \documentclass{scrbook} + \usepackage{scrpage2} +\end{verbatim} + \end{small} + der Seitenstil \PValue{headings} mit automatischen Kolumnentiteln + aktiviert. Bei Umschaltung auf den Seitenstil \PValue{scrheadings} + bleiben automatische Kolumnentitel eingeschaltet. Dabei werden dann + weiterhin die Markierungsmakros von \Class{scrbook} verwendet. + + Verwenden Sie hingegen + \begin{small} +\begin{verbatim} + \usepackage[automark]{scrpage2} +\end{verbatim} + \end{small} + so wird unabhängig von der verwendeten Klasse auf automatische + Kolumnentitel umgeschaltet, wobei die Markierungsmakros von + \Package{scrpage2} genutzt werden. + Natürlich wirkt sich dies auf den Seitenstil + \PValue{plain} von \Class{scrreprt} nicht aus. Die Kolumnentitel + werden erst sichtbar, wenn auf den Seitenstil + \PValue{scrheadings}\IndexPagestyle{scrheadings} oder + \PValue{useheadings} oder einen selbstdefinierten Seitenstil mit + Kolumnentiteln umgeschaltet wird. +\end{Example} +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark} + + +% Folgende Deklaration und Erklaerung wurde eingefügt von +% mjk 2001-08-17: +\BeginIndex{Option}{autooneside} +\begin{Declaration} + \Option{autooneside} +\end{Declaration}% +Diese Option sorgt dafür, dass das optionale Argument von +\Macro{automark}\IndexCmd{automark} im einseitigen Satz automatisch +ignoriert wird. Siehe hierzu auch die Erläuterung zum Befehl +\Macro{automark} in \autoref{sec:scrpage.basics.mark}. +\EndIndex{Option}{autooneside} + + +\BeginIndex{Option}{komastyle}\BeginIndex{Option}{standardstyle} +\begin{Declaration} +\Option{komastyle}\\ +\Option{standardstyle} +\end{Declaration}% +Diese Optionen bestimmen, wie der vordefinierte Seitenstil +\PValue{scrheadings} gestaltet ist. +Bei \Option{komastyle} wird eine Definition vorgenommen, wie +sie den \KOMAScript{}-Klassen entspricht. +Bei den \KOMAScript{}-Klas\-sen ist dies die Voreinstellung und +kann somit auch für andere Klassen gesetzt werden. + +Die Option \Option{standardstyle} definiert \PValue{scrheadings} +wie es von den Standardklassen erwartet wird. +Außerdem wird hier automatisch \Option{markuppercase} aktiviert, +es sei denn, \Option{markusedcase} wird ebenfalls als Option übergeben. +\EndIndex{Option}{komastyle}\EndIndex{Option}{standardstyle} + +\BeginIndex{Option}{markuppercase}\BeginIndex{Option}{markusedcase} +\begin{Declaration} +\Option{markuppercase}\\ +\Option{markusedcase} +\end{Declaration}% +Für die Funktionalität von \Macro{automark} modifiziert +\Package{scrpage2} interne Befehle, die die Gliederungsbefehle +benutzen, um die lebenden Kolumnentitel zu setzen. +Da einige Klassen, im Gegensatz +zu den \KOMAScript{}-Klassen, die Kolumnentitel in Großbuchstaben +schreiben, muss \Package{scrpage2} wissen, wie die genutzte +Dokumentenklasse die lebenden Kolumnentitel darstellt. + +Die Option \Option{markuppercase} zeigt \Package{scrpage2}, +dass die benutzte Klasse die Großschreibweise benutzt. +Die Option \Option{markusedcase} sollte angegeben werden, +wenn die benutzte Dokumentenklasse keine Großschreibweise +verwendet. +Die Optionen sind nicht geeignet, eine entsprechende +Darstellung zu erzwingen. Es kann somit zu unerwünschten +Effekten kommen, wenn die Angabe nicht dem Verhalten +der Dokumentenklasse entspricht. +\EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-18 +\begin{Declaration} + \Option{nouppercase} +\end{Declaration}% +\BeginIndex{Option}{nouppercase}% +Wie in der Erklärung zu den Optionen \Option{markuppercase} und +\Option{markusedcase} bereits ausgeführt wurde, gibt es Klassen und +auch Pakete, die beim Setzen der lebenden +Kolumnentitel\Index{Kolumnentitel} mit Hilfe einer der Anweisungen +\Macro{MakeUppercase} oder \Macro{uppercase} den gesamten Eintrag in +Großbuchstaben wandeln. Mit der Option \Option{nouppercase} können +diese beiden Anweisungen im Kopf und im Fuß außer Kraft gesetzt +werden. Das gilt aber nur für Seitenstile, die mit Hilfe von +\Package{scrpage2} definiert werden. Dazu zählen auch +\PValue{scrheadings} und der zugehörige \PValue{plain}-Seitenstil. + +Die verwendete Methode ist äußerst brutal und kann dazu führen, dass +auch erwünschte Änderungen von Klein- in +Großbuchstaben\Index{Grossbuchstaben=Großbuchstaben} unterbleiben. Da +diese Fälle nicht sehr häufig sind, stellt \Option{nouppercase} aber +meist eine brauchbare Lösung dar. +\begin{Example} + Sie verwenden die Standardklasse \Class{book}\IndexClass{book}, + wollen aber, dass die lebenden Kolumnentitel nicht in + Großbuchstaben, sondern in normaler gemischter Schreibweise gesetzt + werden. Die Präambel Ihres Dokuments könnte dann wie folgt beginnen: + \begin{small} +\begin{verbatim} + \documentclass{book} + \usepackage[nouppercase]{scrpage2} + \pagestyle{scrheadings} +\end{verbatim} + \end{small} + Die Umschaltung auf den Seitenstil \PValue{scrheadings} ist + notwendig, weil sonst der Seitenstil \PValue{headings} verwendet + wird, der von der Option \Option{nouppercase} nicht behandelt wird. +\end{Example} + +In einigen Fällen setzen nicht nur Klassen, sondern auch Pakete +lebende Kolumnentitel in Großbuchstaben. Auch in diesen Fällen hilft +\Option{nouppercase} meist, um zu gemischter Schreibweise +zurückzuschalten. +% +\EndIndex{Option}{nouppercase} + + +\section{Seitenstile selbst gestalten}\label{sec:scrpage.UI} +% +% +\subsection{Die Anwenderschnittstelle}\label{sec:scrpage.UI.user} +% \deftripstyle +\BeginIndex{Cmd}{deftripstyle}\Index{Seitenstil} +Nun möchte man ja nicht immer an die vorgegebenen Seitenstile gebunden sein, +sondern auch seiner Kreativität freien Lauf lassen. +Manchmal ist man auch dazu gezwungen, weil ein bestimmtes +\emph{Corporate Identity} einer Firma es verlangt. +Der einfachste Weg damit umzugehen ist +\begin{Declaration} +\Macro{deftripstyle}\Parameter{Name}% +\OParameter{LA}\OParameter{LI}% +\Parameter{KI}\Parameter{KM}\Parameter{KA}% +\Parameter{FI}\Parameter{FM}\Parameter{FA} +\end{Declaration}% +\ScrpageMark{}% +Die einzelnen Felder haben folgende Bedeutung: +\begin{labeling}[\,--]{\PName{Name}} +\item[\PName{Name}] die Bezeichnung des Seitenstils, um ihn mit + \Macro{pagestyle}\Parameter{Name} zu aktivieren +\item[\PName{LA}] die Dicke der äußeren Linien, d.\,h. der Linien über +der Kopfzeile und unter der Fußzeile (optional) +\item[\PName{LI}] die Dicke der inneren Linie, d.\,h. der Linien die Kopf und +Fuß vom Textkörper trennen (optional) +\item[\PName{KI}] Inhalt des Feldes im Kopf innenseitig oder bei einseitigem +Layout links +\item[\PName{KM}] Inhalt des Feldes im Kopf zentriert +\item[\PName{KA}] Inhalt des Feldes im Kopf außenseitig oder bei einseitigem +Layout rechts +\item[\PName{FI}] Inhalt des Feldes im Fuß innenseitig oder bei einseitigem +Layout links +\item[\PName{FM}] Inhalt des Feldes im Fuß zentriert +\item[\PName{FA}] Inhalt des Feldes im Fuß außenseitig oder bei einseitigem +Layout rechts +\end{labeling} + +Der Befehl \Macro{deftripstyle} stellt sicherlich die einfachste +Möglichkeit dar, Seitenstile zu definieren. +Leider sind damit auch Einschränkungen verbunden, +da in einem Seitenbereich mit einem durch \Macro{deftripstyle} deklarierten +Seitenstil keine Änderung der Kopf- und Fußlinien erfolgen kann. + +\begin{Example} +Vorgegeben sei ein doppelseitiges Layout, bei dem die Kolumnentitel +innen erscheinen sollen. +Weiterhin soll der Dokumententitel, in diesem Fall kurz \glqq Bericht\grqq, +an den Außenrand in den Kopf, die Seitenzahl soll zentriert in den Fuß. +\begin{small} +\begin{verbatim} + \deftripstyle{DerBericht}% + {\headmark}{}{Bericht}% + {}{\pagemark}{} +\end{verbatim} +\end{small} + +Sollen weiterhin die Linien über dem Kopf und unter dem Fuß +mit 2\,pt erscheinen und der ganze Textkörper mit dünnen Linien +von 0,4\,pt von Kopf und Fuß abgesetzt werden, dann erweitert +man vorherige Definition. +\begin{small} +\begin{verbatim} + \deftripstyle{DerBericht}[2pt][.4pt]% + {\headmark}{}{Bericht}% + {}{\pagemark}{} +\end{verbatim} +\end{small} +% +\typeout{^^J--- Ignore underfull and overfull \string\hbox:} +\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,50)\scriptsize +\thinlines +\put(5,0){\line(0,1){50}} +\put(55,0){\line(0,1){50}} +\put(5,50){\line(1,0){40}} +\put(55,50){\line(1,0){40}} +% +\thicklines +\put(45,0){\line(0,1){50}} +\put(95,0){\line(0,1){50}} +\put(5,0,){\line(1,0){40}} +\put(55,0){\line(1,0){40}} +% +\XmpHeading[Bericht\hfill 2. Das Auge]{11,46}{30} +\XmpHeading[2.1 Netzhaut\hfill Bericht]{59,46}{30} +\XmpHeading[\hfill 14\hfill]{11,6.5}{30} +\XmpHeading[\hfill 15\hfill]{59,6.5}{30} +\put(11,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% + \textbf{2.1 Netzhaut}\\ + \XmpText[49]}}} +\put(59,43){\makebox(0,0)[tl]{\parbox{30mm}{\tiny% + \XmpText[51]}}} +% +\thinlines +\XmpRule{11,44.5}{30}\XmpRule{59,44.5}{30} +\XmpRule{11,8}{30}\XmpRule{59,8}{30} +\linethickness{1pt} +\XmpRule{11,48}{30}\XmpRule{59,48}{30} +\XmpRule{11,5}{30}\XmpRule{59,5}{30} +\end{picture}\end{center} +\typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J} +\end{Example} +\EndIndex{Cmd}{deftripstyle} + +\subsection{Die Expertenschnittstelle}\label{sec:scrpage.UI.expert} +% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle +\BeginIndex{Cmd}{defpagestyle}\BeginIndex{Cmd}{newpagestyle} +\BeginIndex{Cmd}{renewpagestyle}\BeginIndex{Cmd}{providepagestyle} +\Index{Seitenstil} +Einfache Seitenstile, wie sie mit \Macro{deftripstyle} deklariert +werden können, sind erfahrungsgemäß selten. +Entweder verlangt ein Professor, dass die Diplomarbeit so aussieht +wie seine eigene -- und wer will ihm da \emph{ernsthaft} widersprechen -- +oder eine Firma möchte, dass die halbe Finanzbuchhaltung im +Seitenfuß auf"|taucht. Alles kein Problem, denn es gibt noch: +\begin{Declaration} +\Macro{defpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{newpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{renewpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{providepagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition} +\end{Declaration}% +\ScrpageMark{}% +Dies sind die Befehle, die die volle Kontrolle über die Gestaltung +eines Seitenstils ermöglichen. Der Aufbau ist bei allen vier +Definitionen gleich, sie unterscheiden sich nur in Hinsicht +der Wirkungsweise. +\begin{labeling}[\ --]{\Macro{providepagestyle}} +\item[\Macro{defpagestyle}] definiert immer einen neuen Seitenstil. +Existiert bereits einer mit diesem Namen, wird dieser +überschrieben. +\item[\Macro{newpagestyle}] definiert einen neuen Seitenstil. Wenn schon +einer mit diesem Namen existiert, wird ein Fehler ausgegeben. +\item[\Macro{renewpagestyle}] definiert einen bestehenden Seitenstil um. Wenn noch +keiner mit diesem Namen existiert, wird ein Fehler ausgegeben. +\item[\Macro{providepagestyle}] definiert einen neuen Seitenstil nur dann, +wenn dieser vorher noch nicht existiert. +\end{labeling} + +Am Beispiel von \Macro{defpagestyle} soll die Syntax der Definitionen +im Folgenden erläutert werden. +\begin{labeling}[\,--]{\PName{Kopfdefinition}} +\item[\PName{Name}] die Bezeichnung des Seitenstils für \Macro{pagestyle}\Parameter{Name} +\item[\PName{Kopfdefinition}] die Deklaration des Seitenkopfes bestehend aus +fünf Teilen, wobei die in runden Klammern stehenden Angaben optional sind: +\AParameter{OLL,OLD}\Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD} +\item[\PName{Fußdefinition}] die Deklaration des Seitenfußes bestehend aus +fünf Teilen, wobei die in runden Klammern stehenden Angaben optional sind: +\AParameter{OLL,OLD}\Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD} +\end{labeling} + +Wie zu sehen ist, haben Kopf- und Fußdefinition identischen Aufbau. Die einzelnen +Parameter haben folgende Bedeutung: +\begin{labeling}[\ --]{\PName{OLD}} +\item[\PName{OLL}] obere Linienlänge: Kopf = außen, Fuß = Trennlinie +\item[\PName{OLD}] obere Liniendicke +\item[\PName{GS}] Definition für die \emph{gerade} Seite +\item[\PName{US}] Definition für die \emph{ungerade} Seite +\item[\PName{ES}] Definition für \emph{einseitiges} Layout +\item[\PName{ULL}] untere Linienlänge Kopf = Trennlinie, Fuß = außen +\item[\PName{ULD}] untere Liniendicke +\end{labeling} + +Werden die optionalen Linienargumente nicht gesetzt, dann +bleibt das Verhalten weiterhin durch die im \autoref{sec:scrpage.basics.format} +vorgestellten Linienbefehle konfigurierbar. +In der alten Version \Package{scrpage}\ScrpageNote{} sind die Linienargumente +obligatorisch. + +Die drei Felder \PName{GS}, \PName{US} und \PName{ES} entsprechen Boxen, die +die Breite des Kopf- bzw. Fußteils haben. +Die entsprechenden Definitionen erscheinen in diesen Boxen linksbündig. +Um somit etwas links- \emph{und} rechtsseitig in den Boxen zu platzieren, +kann der Zwischenraum mit \Macro{hfill} gestreckt werden: +% +\begin{verbatim} + {\headmark\hfill\pagemark} +\end{verbatim} + +Um zusätzlich etwas zentriert erscheinen zu lassen, ist eine erweiterte +Definition notwendig. +Die Befehle \Macro{rlap} und \Macro{llap} setzen die übergebenen Argumente. +Für \LaTeX{} erscheint es aber so, dass diese Texte eine Breite von Null +haben. Nur so erscheint der mittlere Text auch wirklich zentriert. +% +\begin{verbatim} + {\rlap{\headmark}\hfill Text zentriert\hfill\llap{\pagemark}} +\end{verbatim} + +Dies und die Verwendung der Expertenschnittstelle in Zusammenhang mit +anderen Befehlen von \Package{scrpage2} nun als abschließendes Beispiel. + +\begin{Example} +Im Beispiel wird die Dokumentenklasse \Class{scrbook} genutzt. +Das bedeutet, es liegt im Dokument standardmäßig zweiseitiges +Layout vor. +Für das Paket \Package{scrpage2} wird festgelegt, dass mit +automatisch aktualisierten Kolumnentiteln gearbeitet wird und +dass im Seitenstil \PValue{scrheadings} eine Trennlinie zwischen +Kopf und Text gezogen wird. + +\begin{small}\begin{verbatim} + \documentclass{scrbook} + \usepackage[automark,headsepline]{scrpage2} +\end{verbatim}\end{small} + +Mit Hilfe der Expertenschnittstelle werden zwei Seitenstile +definiert. Der erste legt keine Linienargumente fest, im +zweiten wird die Linie über dem Kopf mit einer Dicke +von 1\,pt und die Linie unter dem Kopf mit 0\,pt festgelegt. + +\begin{small}\begin{verbatim} + \defpagestyle{ohneLinien}{% + {Beispiel\hfill\headmark} + {\headmark\hfill ohne Linien} + {\rlap{Beispiel}\hfill\headmark\hfill% + \llap{ohne Linien}} + }{% + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + } +\end{verbatim}\end{small} + +\begin{small}\begin{verbatim} + \defpagestyle{mitLinien}{% + (\textwidth,1pt) + {mit Linien\hfill\headmark} + {\headmark\hfill mit Linien} + {\rlap{\KOMAScript}\hfill \headmark\hfill% + \llap{mit Linien}} + (0pt,0pt) + }{% + (\textwidth,.4pt) + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + (\textwidth,1pt) + } +\end{verbatim}\end{small} + +Gleich zu Beginn wird der Seitenstil \PValue{scrheadings} +aktiviert. +Mit \Macro{chapter} wird ein neues Kapitel begonnen. +Weiterhin wird automatisch durch \Macro{chapter} +der Seitenstil für diese Seite auf \PValue{plain} gesetzt. +Auch wenn das folgende \Macro{chead} recht unüblich ist, und +auch nicht besonders gelungen ist, zeigt es doch, dass durch +Modifikation das \PValue{plain}-Stils ein Kolumnentitel +erzeugt werden kann. +Grundsätzlich sollte jedoch davon Abstand genommen werden, +da sonst der Markierungscharakter der \PValue{plain}-Seite +verloren geht. Es ist wichtiger anzuzeigen, dass hier ein +neues Kapitel beginnt, als dass ein Abschnitt dieser +Seite einen bestimmten Titel trägt. + +\begin{small}\begin{verbatim} + \begin{document} + \pagestyle{scrheadings} + + \chapter{Thermodynamik} + \chead[\leftmark]{} + \section{Hauptsätze} + Jedes System besitzt eine extensive Zustandsgröße + Energie. Sie ist in einem abgeschlossenen System konstant. +\end{verbatim}\end{small} + +\begin{XmpTopPage} + \XmpHeading[\hfill\textsl{1. Thermodynamik}\hfill]{10,27}{70} + \put(10,17){\normalsize\textbf{\sffamily 1.Thermodynamik}} + \put(10,12){\textbf{\sffamily 1.1 Hauptsätze}} + \XmpSetText[% + Jedes System besitzt eine extensive Zustandsgröße]{10,9} +\end{XmpTopPage} + +Nach dem Seitenwechsel ist dann der Seitenstil \PValue{scrheadings} +aktiv, und somit auch die Trennlinie aus den Paketoptionen +sichtbar. +\begin{small}\begin{verbatim} + Es existiert eine Zustandsgröße, genannt die Entropie, + eines Systems, deren zeitliche Änderung sich aus + Entropieströmung und Entropieerzeugung zusammensetzt. +\end{verbatim}\end{small} +\begin{XmpTopPage} + \XmpHeading[\textsl{1. Thermodynamik}\hfill]{20,27}{70} + \thinlines\XmpRule{20,25}{70} + \XmpSetText[% + Es existiert eine Zustandsgröße, genannt die En"-tropie, + eines Systems, deren zeitliche Änderung sich aus + Entropieströmung und Entropieerzeugung zusammensetzt.]{20,21} +\end{XmpTopPage} + +Wiederum nach einem Seitenwechsel wird auf manuelle Kolumnentitel +gewechselt und der Seitenstil \PValue{ohneLinien} aktiviert. +Da keine Linienargumente bei der Definition dieses Stils +genutzt wurden, wird die Standard-Linienkonfiguration +verwendet, die hier eine Linie zwischen Kopf und Text zeichnet, +da \Option{headsepline} als Argument für \Package{scrpage2} +angegeben wurde. +\begin{small}\begin{verbatim} + \manualmark + \pagestyle{ohneLinien} + \section{Exergie und Anergie} + \markright{Energieumwandlung} + Man bezeichnet die bei der Einstellung des + Gleichgewichts mit der Umgebung maximal + gewinnbare Arbeit als Exergie. +\end{verbatim}\end{small} +\begin{XmpTopPage} + \XmpHeading[\slshape Energieumwandlung\hfill ohne Linien]{10,27}{70} + \thinlines\XmpRule{10,25}{70} + \XmpSetText[% + \textbf{\sffamily 1.2 Exergie und Anergie}\\ + Man bezeichnet die bei der Einstellung des + Gleichgewichts mit der Umgebung maximal + gewinnbare Arbeit als Exergie.]{10,21} +\end{XmpTopPage} + +Nach dem Wechsel auf die folgende linke Seite wird der +Seitenstil \PValue{mitLinien} aktiviert. +Die Linieneinstellungen werden hier nun angewendet und entsprechend +der Definition dargestellt. +\begin{small}\begin{verbatim} + \pagestyle{mitLinien} + \renewcommand{\headfont}{\itshape\bfseries} + Den nicht in Exergie umwandelbaren Anteil einer + Energie nennt man Anergie \Var{B}. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] + \end{document} +\end{verbatim}\end{small} +\begin{XmpTopPage} + \XmpHeading[\itshape\bfseries mit Linien\hfill 1. Thermodynamik]{20,27}{70} + \thicklines\XmpRule{20,29}{70} + \XmpSetText[% + Den nicht in Exergie umwandelbaren Anteil einer + Energie nennt man Anergie $B$. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,20} +\end{XmpTopPage} +\end{Example} +\EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} +\EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} + +\subsection{Seitenstile verwalten}\label{sec:scrpage.UI.cfgFile} +% scrpage.cfg +\BeginIndex{File}{scrpage.cfg} +Bei längerer Arbeit mit verschiedenen Seitenstilen wird sich, je nach +Geschmack und Aufgabenstellung, ein fester Satz an benutzten Stilen +etablieren. +Um nicht bei jedem neuen Projekt eine große Kopieraktion von den Daten +eines Projekts zum neuen Projekt starten zu müssen, liest \Package{scrpage2} +am Ende seiner Initialisierungsphase die Datei \File{scrpage.cfg} ein. +In dieser Datei können dann Seitenstile definiert sein, die viele +Projekte gemeinsam nutzen können. +\EndIndex{File}{scrpage.cfg} +\EndIndex{Package}{scrpage2} + +\section{Autoren} +\label{sec:scrpage.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die Vorlage +dafür geliefert. +% In folgener Aufzaehlung den Namen des Autors, der fuer das Kapitel +% verantwortlich ist bitte mit \textbf{} hervorheben. +\begin{itemize} +\item Markus Kohm \TextEMail{Markus.Kohm@gmx.de} +\item \textbf{Jens-Uwe Morawski} +\end{itemize} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/satzspgl.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/satzspgl.tex new file mode 100644 index 00000000000..b8810407868 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/satzspgl.tex @@ -0,0 +1,1353 @@ +\ProvidesFile{satzspgl.tex}[2003/05/13 KOMA-Script Anleitung] +% ============================================================================ +% Copyright (c) 2001-2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% satzspgl.tex +% Copyright (c) 2001-2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Modul: Hauptdokument +% Autoren: Markus Kohm (MJK) +% Inhalt: Alles über die Satzspiegelkonstruktion und typearea. +% Sprache: Deutsch +% Zeichensatz der Kommentare: +% US-ASCII +% Korrektur: Enrico Kunz +% Index: Enrico Kunz +% + +\chapter{Satzspiegelberechnung mit \Package{typearea.sty}} +\label{cha:typearea} + +\section{Grundlagen der Satzspiegelkonstruktion} + +\begin{Explain} + Betrachtet man eine einzelne Seite eines Buches oder eines anderen + Druckwerkes, so besteht diese auf den ersten Blick aus den + Rändern\footnote{Der Autor und der Lektor haben an dieser Stelle + überlegt, ob eine Seite nicht nur einen umlaufenden Rand hat und + daher von "`dem Rand"' die Rede sein müsste. Da jedoch \LaTeX{} + diesen einen Rand logisch in mehrere Ränder unterteilt, die + getrennt bestimmt werden, ist hier auch von "`den Rändern"' die + Rede.}, einem Kopfbereich, einem Textkörper und einem Fußbereich. + Genauer betrachtet kommt noch ein Abstand zwischen Kopfbereich und + Textkörper sowie zwischen Textkörper und Fußbereich hinzu. Die + Auf"|teilung dieser Bereiche, sowie ihre Anordnung zueinander und + auf dem Papier nennt man + \emph{Satzspiegel}.\Index[indexmain]{Satzspiegel} + + In der Literatur werden verschiedene Algorithmen und heuristische + Verfahren zur Konstruktion eines guten Satzspiegels vorgeschlagen + und diskutiert \cite{DANTE:TK0402:MJK}. Häufig findet man dabei ein + Verfahren, das mit verschiedenen Diagonalen und Schnittpunkten + arbeitet. Das gewünschte Ergebnis dabei ist, dass das + Seitenverhältnis des Textbereichs dem Seitenverhältnis \emph{der + Seite} entspricht. Bei einem einseitigen\Index{einseitig} Dokument + sollen außerdem der linke und rechte Rand gleich breit sein, während + der obere zum unteren Rand im Verhältnis 1:2 stehen sollte. Bei + einem doppelseitigen\Index{doppelseitig} Dokument, beispielsweise + einem Buch, ist hingegen zu beachten, dass der innere Rand genauso + groß sein sollte wie jeder der beiden äußeren Ränder. + + Im vorherigen Abschnitt wurde \emph{die Seite} erwähnt und + hervorgehoben. Irrtümlich wird oftmals angenommen, das Format der + Seite wäre mit dem Format des Papiers + gleichzusetzen.\Index[indexmain]{Seitenformat} + \Index[indexmain]{Papierformat} Betrachtet man jedoch ein gebundenes + Druckerzeugnis, so ist zu erkennen, dass ein Teil des Papiers in der + Bindung\Index[indexmain]{Bindung} verschwindet und nicht mehr als + Seite zu sehen ist. Für den Satzspiegel ist jedoch nicht + entscheidend, welches Format das Papier hat, sondern, was der Leser + für einen Eindruck vom Format der Seite bekommt. Damit ist klar, + dass bei der Berechnung des Satzspiegels der Teil, der durch die + Bindung versteckt wird, aus dem Papierformat herausgerechnet und + dann zum inneren Rand hinzugefügt werden muss. Wir nennen diesen + Teil \emph{Bindekorrektur}.\Index[indexmain]{Bindekorrektur} + + Die Bindekorrektur ist vom jeweiligen Produktionsvorgang abhängig + und kann nicht allgemein festgelegt werden. Es handelt sich dabei + also um einen Parameter, der für jeden Produktionsvorgang neu + festzulegen ist. Im professionellen Bereich spielt dieser Wert nur + eine geringe Rolle, da ohnehin auf größere Papierbögen gedruckt und + entsprechend geschnitten wird. Beim Schneiden wird dann wiederum + sichergestellt, dass obige Verhältnisse für die sichtbare + Doppelseite eingehalten sind. + + Wir wissen nun also, wie die einzelnen Teile zueinander stehen. Was + wir noch nicht wissen ist, wie breit und hoch der Textbereich ist. + Kennen wir eines dieser beiden Maße, so ergeben sich zusammen mit + dem Papierformat und dem Seitenformat oder der Bindekorrektur alle + anderen Maße durch Lösung mehrerer mathematischer Gleichungen. + \begin{eqnarray*} + \Var{Textbereichshöhe} : \Var{Textbereichsbreite} &=& + \Var{Seitenhöhe} : \Var{Seitenbreite}\\ +% + \Var{Seitenbreite} &=& \Var{Papierbreite} - \Var{Bindekorrektur}\\ +% + \Var{oberer~Rand} + \Var{unterer~Rand} &=& + \Var{Seitenhöhe} - \Var{Textbereichshöhe} \\ +% + \Var{oberer~Rand} : \Var{unterer~Rand} &=& 1 : 2 \\ +% + \Var{linker~Rand} : \Var{rechter~Rand} &=& 1 : 1 \\ +% + \Var{halber~innerer~Rand} &=& + \frac{1}{2}\Var{äußerer~Rand} + \Var{Bindekorrektur} \\ + \end{eqnarray*} + \Index[indexmain]{Rand}% + Dabei gibt es \Var{linker~Rand} und \Var{rechter~Rand} nur im + einseitigen Druck. Dementsprechend gibt es \Var{innerer~Rand} und + \Var{äußerer~Rand} nur im doppelseitigen Druck. In den + Gleichungen wird mit \Var{halber~innerer~Rand} gearbeitet, weil der + ganze innere Rand zur Doppelseite gehört. Zu einer Seite gehört also + nur die Hälfte des inneren Randes. + + Die Frage nach der Breite des Textbereichs wird in der Literatur + ebenfalls diskutiert. Die optimale Textbereichsbreite ist von + verschiedenen Faktoren abhängig: + \begin{itemize} + \item Größe, Laufweite und Art der verwendeten Schrift + \item Verwendeter Durchschuss + \item Länge der Worte + \item Verfügbarer Platz + \end{itemize} + Der Einfluss der Schrift wird deutlich, wenn man sich bewusst macht, + wozu Serifen dienen. Serifen\Index[indexmain]{Serifen} sind kleine + Striche an den Linienenden der Buchstaben. Buchstaben, die mit + vertikalen Linien auf die Grundlinie der Textzeile treffen, + lösen diese eher auf, als dass sie das Auge auf der Linie halten. + Genau bei diesen Buchstaben liegen die Serifen horizontal auf + der Grundlinie und verstärken damit die Zeilenwirkung der Schrift. + Das Auge kann der Textzeile nicht nur beim Lesen der Worte, sondern + insbesondere auch beim schnellen Zurückspringen an den Anfang der + nächsten Zeile besser folgen. Damit darf die Zeile bei einer Schrift + mit Serifen genaugenommen länger sein als bei einer Schrift ohne Serifen. + + Unter dem Durchschuss\Index[indexmain]{Durchschuss} versteht man den + Abstand zwischen Textzeilen. Bei \LaTeX{} ist ein Durchschuss von + etwa 20\% der Schriftgröße voreingestellt. Mit Befehlen wie + \Macro{linespread}\IndexCmd{linespread} oder besser mit Hilfe von + Paketen wie \Package{setspace}\IndexPackage{setspace} (siehe + \cite{package:setspace}) kann der Durchschuss verändert werden. Ein + großer Durchschuss erleichtert dem Auge die Verfolgung einer Zeile. + Bei sehr großem Durchschuss wird das Lesen aber dadurch gestört, + dass das Auge zwischen den Zeilen weite Wege zurücklegen muss. + Daneben wird sich der Leser des entstehenden Streifeneffekts sehr + deutlich und unangenehm bewusst. Der Graueindruck der Seite ist in + diesem Fall gestört. Dennoch können bei großem Durchschuss die + Zeilen länger sein. + + Auf der Suche nach konkreten Werten für gute + Zeilenlängen\Index[indexmain]{Zeilenlaenge=Zeilenlänge} findet man in + der Literatur je nach Autor unterschiedliche Angaben. Teilweise ist + dies auch in der Muttersprache des Autors begründet. Das Auge + springt nämlich üblicherweise von Wort zu Wort, wobei kurze Worte + diese Aufgabe erleichtern. Über alle Sprachen und Schriftarten + hinweg kann man sagen, dass eine Zeilenlänge von 60 bis 70 Zeichen, + einschließlich Leer- und Satzzeichen, einen brauchbaren Kompromiss + darstellen. Ein gut gewählter Durchschuss\Index{Durchschuss} wird + dabei vorausgesetzt. Bei den Voreinstellungen von \LaTeX{} braucht + man sich über letzteres normalerweise keine Sorgen zu machen. + + Bevor wir uns an die konkrete Konstruktion machen, fehlen jetzt nur + noch Kleinigkeiten, die man wissen sollte. \LaTeX{} beginnt die + erste Zeile des Textbereichs einer Seite nicht am oberen Rand des + Textbereichs, sondern setzt die Zeile mit einem definierten Abstand + zum oberen Rand des Textbereichs. Desweiteren verfügt \LaTeX{} über + die beiden Befehle \Macro{raggedbottom}\IndexCmd{raggedbottom} und + \Macro{flushbottom}\IndexCmd{flushbottom}. Der erste dieser Befehle + legt fest, dass die letzte Zeile einer jeden Seite dort liegen soll, + wo sie eben zu liegen kommt. Das kann dazu führen, dass sich die + Position der letzten Zeile von Seite zu Seite vertikal um nahezu + eine Zeile verändern kann. Im doppelseitigen Druck ist das in der + Regel unerwünscht. Mit dem zweiten Befehl, \Macro{flushbottom}, wird + hingegen festgelegt, dass die letzte Zeile immer am unteren Rand des + Textbereichs zu liegen kommt. Um dies zu erreichen, muss \LaTeX{} + gegebenenfalls dehnbare vertikale Abstände über das erlaubte Maß + hinaus strecken. Ein solcher Abstand ist beispielsweise der + Absatzabstand. Dies gilt auch, wenn man diesen auf Null gesetzt hat. + Um nicht bereits auf normalen Seiten, auf denen der Absatzabstand + das einzige dehnbare vertikale Maß darstellt, eine Dehnung zu + erzwingen, sollte die Höhe des Textbereichs ein Vielfaches der + Textzeilenhöhe zuzüglich des Abstands der ersten Zeile vom oberen + Rand des Textbereichs sein. + + Damit sind nun alle Grundlagen der Satzspiegelberechnung, die bei + {\KOMAScript} eine Rolle spielen, zusammengetragen. Wir können also + mit der konkreten Konstruktion beginnen.\par +\end{Explain} + + +\section{Satzspiegelkonstruktion durch Teilung} +\label{sec:typearea.divConstruction} + +\begin{Explain} + Der einfachste Weg, um zu erreichen, dass der Textbereich dasselbe + Verhältnis aufweist wie die Seite, ist folgender. Zunächst zieht man + an der Innenseite des Papiers den Teil \Var{BCOR}, der für die + Bindekorrektur\Index{Bindekorrektur} benötigt wird, ab und teilt die + restliche Seite vertikal in eine Anzahl \Var{DIV} gleich hoher + Streifen. Dann teilt man die Seite horizontal in die gleiche Anzahl + \Var{DIV} gleich breiter Streifen. Nun verwendet man den obersten + horizontalen Streifen als oberen und die beiden untersten + horizontalen Streifen als unteren Rand. Im doppelseitigen Druck + verwendet man außerdem den innersten vertikalen Streifen als inneren + und die beiden äußersten vertikalen Streifen als äußeren Rand. Zum + inneren Rand gibt man dann noch \Var{BCOR} hinzu. Was nun innerhalb + der Seite noch übrig bleibt, ist der Textbereich.\Index{Textbereich} + Die Breite bzw. Höhe der Ränder und des Textbereichs resultiert + damit automatisch aus der Anzahl \Var{DIV} der Streifen. Da für die + Ränder insgesamt jeweils drei Streifen benötigt werden, muss + \Var{DIV} zwingend größer als drei sein. + + Bei {\KOMAScript} ist diese Art der Konstruktion im Paket + \Package{typearea} realisiert. Dabei sind für A4-Papier je nach + Schriftgröße unterschiedliche Werte voreingestellt, die + \autoref{tab:typearea.div} zu entnehmen sind. Bei Verzicht auf + Bindekorrektur, wenn also \Var{BCOR} = 0\Unit{pt} gilt, ergeben + sich in etwa die Satzspiegelmaße aus \autoref{tab:typearea.typearea}. + + Neben den voreingestellten Werten kann man \Var{BCOR} und \Var{DIV} + direkt beim Laden des Pakets als Option angeben (siehe + \autoref{sec:typearea.options}). Zusätzlich existiert ein + Befehl, mit dem man einen Satzspiegel explizit berechnen kann und + dem man die beiden Werte als Parameter übergibt (siehe ebenfalls + \autoref{sec:typearea.options}). + + Das \Package{typearea}-Paket bietet außerdem die Möglichkeit, den + optimalen \Var{DIV}-Wert automatisch zu bestimmen. Dieser ist von + der Schriftart abhängig, die zum Zeitpunkt der Satzspiegelberechnung + eingestellt ist. Siehe hierzu ebenfalls + \autoref{sec:typearea.options}. +\end{Explain} + + +\section{Satzspiegelkonstruktion durch Kreisschlagen} +\label{sec:typearea.circleConstruction} + +\begin{Explain} + Neben der zuvor beschriebenen + Satzspiegelkonstruktion\Index{Satzspiegel} gibt es in der Literatur + noch eine eher klassische Methode. Bei diesem Verfahren will man die + gleichen Werte nicht nur in Form des Seitenverhältnisses + wiederfinden; man geht außerdem davon aus, dass das Optimum dann + erreicht wird, wenn die Höhe des Textbereichs der Breite der Seite + entspricht. Das genaue Verfahren ist beispielsweise in + \cite{JTsch87} nachzulesen. + + Als Nachteil dieses spätmittelalterlichen Buchseitenkanons ergibt + sich, dass die Breite des Textbereichs nicht mehr von der Schriftart + abhängt. Es wird also nicht mehr der zur Schrift passende + Textbereich gewählt, stattdessen muss der Autor oder Setzer die zum + Textbereich passende Schrift wählen. Dies ist als zwingend zu + betrachten. + + Im \Package{typearea}-Paket wird diese Konstruktion dahingehend + abgewandelt, dass durch Auswahl eines ausgezeichneten -- normalweise + unsinnigen -- \Var{DIV}-Wertes oder eine spezielle Paket-Option + derjenige \Var{DIV}-Wert ermittelt wird, bei dem der resultierende + Satzspiegel dem spätmittelalterlichen Buchseitenkanon am nächsten + kommt. Siehe hierzu ebenfalls + \autoref{sec:typearea.options}.\par +\end{Explain} + + +\section{Optionen und Makros zur Beeinflussung des Satzspiegels} +\label{sec:typearea.options} +% DIV, DIVcalc, DIVclassic, BCOR +% headinclude, headexclude, footinclude, footexclude, mpinclude, mpexclude +% \typearea, \areaset + +Das Paket \Package{typearea} bietet zwei unterschiedliche +Benutzerschnittstellen, um auf die Satzspiegelkonstruktion Einfluss zu +nehmen. Die erste Möglichkeit ist, beim Laden des Pakets entsprechende +Optionen anzugeben. Wie man Pakete lädt und Paketoptionen übergibt, +entnehmen Sie bitte der Literatur zu \LaTeX{}, beispielsweise +\cite{l2kurz} und \cite{latex:usrguide}, oder den auf den folgenden +Seiten aufgeführten +Beispielen. Da bei der Verwendung der \KOMAScript-Hauptklassen das +Paket \Package{typearea} automatisch geladen wird, müssen die +entsprechenden Paket-Optionen bei diesen Klassen auch direkt als +Klassen-Optionen übergeben werden (siehe +\autoref{sec:maincls.options}). + +\begin{Declaration} + \Option{BCOR}\PName{Korrektur} +\end{Declaration}% +\BeginIndex{Option}{BCOR}% +Mit Hilfe der Option \Option{BCOR}\PName{Korrektur} geben Sie den +absoluten Wert der Bindekorrektur\Index{Bindekorrektur} an, also +die Breite des Bereichs der durch die Bindung von der Papierbreite +verloren geht. Dieser Wert wird in der Satzspiegelkonstruktion +automatisch berücksichtigt und bei der Ausgabe wieder dem inneren +beziehungsweise linken Rand zugeschlagen. Als \PName{Korrektur} +können Sie jede von \TeX verstandene Maßeinheit angeben. + +\begin{Example} + Angenommen Sie erstellen einen Finanzbericht. Das Ganze soll + einseitig in A4 gedruckt und anschließend in eine Klemmmappe + geheftet werden. Die Klemme der Mappe verdeckt 7,5\Unit{mm}. + Der Papierstapel ist sehr dünn, deshalb gehen beim Knicken und + Blättern durchschnittlich höchstens weitere 0,75\Unit{mm} + verloren. Sie schreiben dann also: +\begin{verbatim} + \documentclass[a4paper]{report} + \usepackage[BCOR8.25mm]{typearea} +\end{verbatim} + oder bei Verwendung einer \KOMAScript-Klasse: +\begin{verbatim} + \documentclass[a4paper,BCOR8.25mm]{scrreprt} +\end{verbatim} +\end{Example} + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer +der \KOMAScript-Klassen als Klassenoption übergeben werden muss. +Demgegenüber funktioniert dies bei Verwendung einer anderen Klasse +nur, wenn diese Klasse \Package{typearea} explizit unterstützt. Bei +den Standardklassen ist die Option also direkt beim Laden von +\Package{typearea} zu übergeben. Die Verwendung von +\Macro{PassOptionsToPackage} (siehe \cite{latex:clsguide}) vor dem +Laden von \Package{typearea} funktioniert hingegen immer. +% +\EndIndex{Option}{BCOR} + +\begin{Declaration} + \Option{DIV}\PName{Faktor} +\end{Declaration}% +\BeginIndex{Option}{DIV}% +Mit Hilfe der Option \Option{DIV}\PName{Faktor} wird festgelegt, in +wieviele Streifen die Seite horizontal und vertikal bei der +Satzspiegelkonstruktion eingeteilt wird. Die genaue Konstruktion ist +\autoref{sec:typearea.divConstruction} zu entnehmen. Wichtig zu +wissen ist, dass gilt: Je größer der \PName{Faktor} desto größer wird +der Textbereich und desto kleiner die Ränder. Als \PName{Faktor} kann +jeder ganzzahlige Wert ab 4 verwendet werden. Bitte beachten Sie +jedoch, dass sehr große Werte dazu führen können, dass Randbedingungen +der Satzspiegelkonstruktion, je nach Wahl der weiteren Optionen, +verletzt werden. So kann die Kopfzeile im Extremfall auch außerhalb +der Seite liegen. Bei Verwendung der Option \Option{DIV}\PName{Faktor} +sind Sie für die Einhaltung der Randbedingungen sowie eine nach +typografischen Gesichtspunkten günstige Zeilenlänge selbst +verantwortlich. + +In \autoref{tab:typearea.typearea} finden Sie für das Seitenformat A4 +ohne Bindekorrektur die aus einigen DIV-Faktoren +resultierenden Satzspiegelgrößen. Dabei werden die weiteren von der +Schriftgröße abhängigen Nebenbedingungen nicht berücksichtigt. + +\begin{table} + \centering + \begin{tabular}{c|cc|cc} + & \multicolumn{2}{c|}{Textbereich} & \multicolumn{2}{c}{R"ander}\\ + \emph{DIV}& Breite [mm] & H"ohe [mm] & oben [mm] & innen [mm] \\ + \hline\rule{0pt}{2.7ex}% + 6 & 105,00 & 148,50 & 49,50 & 35,00 \\ + 7 & 120,00 & 169,71 & 42,43 & 30,00 \\ + 8 & 131,25 & 185,63 & 37,13 & 26,25 \\ + 9 & 140,00 & 198,00 & 33,00 & 23,33 \\ + 10 & 147,00 & 207,90 & 29,70 & 21,00 \\ + 11 & 152,73 & 216,00 & 27,00 & 19,09 \\ + 12 & 157,50 & 222,75 & 24,75 & 17,50 \\ + 13 & 161,54 & 228,46 & 22,85 & 16,15 \\ + 14 & 165,00 & 233,36 & 21,21 & 15,00 \\ + 15 & 168,00 & 237,60 & 19,80 & 14,00 \\ + \end{tabular} + \caption{Satzspiegelma"se in Abh"angigkeit von \Var{DIV} bei A4} + \label{tab:typearea.typearea} +\end{table} + +\begin{Example} + Angenommen Sie schreiben ein Sitzungsprotokoll. Sie verwenden dafür + die Klasse \Class{protokol}\footnote{Die Klasse \Class{protokol} ist + eine hypothetische Klasse. Diese Anleitung geht von dem Idealfall + aus, dass für jede Aufgabe eine dafür passende Klasse vorhanden + ist.}. Das Ganze soll doppelseitig werden. In Ihrer Firma wird die + Schriftart Bookman in 12\Unit{pt} verwendet. Diese Schriftart, die + zu den Standard-PostScript-Schriften gehört, wird in {\LaTeX} mit + der Anweisung \verb|\usepackage{bookman}| aktiviert. Die Schriftart + Bookman läuft sehr weit, das heißt, die einzelnen Zeichen sind im + Verhältnis zur Höhe relativ breit. Deshalb ist Ihnen die + Voreinstellung für den \Var{DIV}-Wert in \Package{typearea} zu + gering. Statt einem Wert von 12 sind Sie nach gründlichem Studium + dieses Kapitels einschließlich der weiterführenden Abschnitte + überzeugt, dass ein Wert 15 angebracht ist. Das Protokoll wird nicht + gebunden, sondern gelocht und in einen Ordner abgeheftet. Eine + Bindekorrektur ist deshalb nicht notwendig. Sie schreiben also: + \begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{protokol} + \usepackage{bookman} + \usepackage[DIV15]{typearea} +\end{verbatim} + \end{small} + Als Sie fertig sind, macht man Sie darauf aufmerksam, dass die + Protokolle neuerdings gesammelt und am Quartalsende alle zusammen + als Buch gebunden werden. Die Bindung erfolgt als + einfache Leimbindung, weil den Band ohnehin nie wieder jemand + anschaut und nur wegen ISO\,9000 angefertigt wird. Für die Bindung + einschließlich Biegefalz werden durchschnittlich 12\Unit{mm} + benötigt. Sie ändern die Optionen von \Package{typearea} also + entsprechend ab und verwenden die Klasse für Protokolle nach + ISO\,9000: + \begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{iso9000p} + \usepackage{bookman} + \usepackage[DIV15,BCOR12mm]{typearea} +\end{verbatim} + \end{small} + Natürlich können Sie auch hier wieder eine \KOMAScript-Klasse + verwenden: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside,DIV15,BCOR12mm]{scrartcl} + \usepackage{bookman} +\end{verbatim} +\end{small} +\end{Example} + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer +der \KOMAScript-Klassen als Klassenoption übergeben werden muss. +Demgegenüber funktioniert dies bei Verwendung einer anderen Klasse +nur, wenn diese Klasse \Package{typearea} explizit unterstützt. Bei +den Standardklassen ist die Option also direkt beim Laden von +\Package{typearea} zu übergeben. Die Verwendung von +\Macro{PassOptionsToPackage} (siehe \cite{latex:clsguide}) vor dem +Laden von \Package{typearea} funktioniert hingegen immer. +% +\EndIndex{Option}{DIV} + +\begin{Declaration} + \Option{DIVcalc}\\ + \Option{DIVclassic} +\end{Declaration}% +\BeginIndex{Option}{DIVcalc}% +\BeginIndex{Option}{DIVclassic}% +Wie bereits in \autoref{sec:typearea.divConstruction} erwähnt, gibt +es nur für das Papierformat A4 feste Voreinstellungen für den +\Var{DIV}-Wert. Diese sind \autoref{tab:typearea.div} zu entnehmen. Wird +ein anderes Papierformat gewählt, so berechnet \Package{typearea} +selbst einen guten \Var{DIV}-Wert. Natürlich können Sie diese +Berechnung auch für A4 wählen. Hierzu verwenden Sie einfach die Option +\Option{DIVcalc} an Stelle von \Option{DIV}\PName{Faktor}. +Selbstverständlich können Sie diese Option auch explizit bei allen +anderen Papierformaten angeben. Wenn Sie die automatische Berechnung +wünschen, ist diese Angabe sogar sinnvoll, da die Möglichkeit besteht, +in einer Konfigurationsdatei andere Voreinstellungen zu setzen (siehe +\autoref{sec:typearea.cfg}), die dann mit dieser Option außer +Kraft gesetzt werden können. + +\begin{table} + \centering + \begin{tabular}{lccc} + Grundschriftgr"o"se: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ + \Var{DIV}: & 8 & 10 & 12 \\ + \end{tabular} + \caption{\label{tab:typearea.div}\PName{DIV}-Voreinstellungen f"ur A4} +\end{table} + +Die in \autoref{sec:typearea.circleConstruction} erwähnte klassische +Konstruktion, der mittelalterliche Buchseitenkanon, mit der +Abweichung, dass ein dazu möglichst gut passender \Var{DIV}-Wert +ermittelt wird, ist ebenfalls auswählbar. Verwenden Sie in +diesem Fall an Stelle von \Option{DIV}\PName{Faktor} oder +\Option{DIVcalc} einfach die Option \Option{DIVclassic}. + +\begin{Example} + In dem bei der Option \Option{DIV}\PName{Faktor} aufgeführten + Beispiel mit der Schriftart Bookman gab es ja genau das Problem, + dass man einen zur Schriftart besser passenden \Var{DIV}-Wert haben + wollte. Man könnte also in Abwandlung des ersten Beispiels auch + einfach die Ermittlung dieses Wertes \Package{typearea} überlassen: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{protokol} + \usepackage{bookman} + \usepackage[DIVcalc]{typearea} +\end{verbatim} +\end{small} +\end{Example} + +\begin{Declaration} + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV} +\end{Declaration}% +\BeginIndex{Cmd}{typearea}% +Wenn Sie bis hier die Beispiele aufmerksam verfolgt haben, werden Sie +sich fragen, wie man die Berechnung eines \Var{DIV}-Wertes in +Abhängigkeit von der gewählten Schrift erreicht, wenn eine +\KOMAScript-Klasse verwendet wird, also die Optionen für +\Package{typearea} vor dem Laden beispielsweise des +\Package{bookman}-Pakets erfolgen müsste. In diesem Fall könnte +\Package{typearea} nur einen Satzspiegel für die Standardschrift, nicht +jedoch für die dann tatsächlich verwendete Schrift Bookman berechnen. +Nach der Auswertung der Optionen berechnet das +\Package{typearea}-Paket den Satzspiegel mit Hilfe des Befehls +\Macro{typearea}\OParameter{BCOR}\Parameter{DIV}. Dabei werden der +gewählte \Var{BCOR}-Wert als optionaler Parameter und der +\Var{DIV}-Wert als Parameter übergeben. Bei der Option +\Option{DIVcalc} werden +dabei als \PName{DIV} der eigentlich ungültige Wert~1 und bei der +Option \Option{DIVclassic} der eigentlich ungültige +Wert~3 übergeben. Den Befehl \Macro{typearea} kann man auch +explizit in der Präambel aufrufen. + +\begin{Example} + Gehen wir wieder davon aus, dass für die Schriftart Bookman ein + Satzspiegel mit guter Zeilenlänge berechnet werden soll. + Gleichzeitig wird eine \KOMAScript-Klasse verwendet. Dies ist unter + Verwendung des \Macro{typearea}-Befehls mit dem + \Option{DIVcalc}-Wert 1 als \PName{DIV}-Parameter möglich: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,BCOR12mm,DIVcalc,twoside]{scrartcl} + \usepackage{bookman} + \typearea[12mm]{1}% entspricht obigen Optionen +\end{verbatim} +\end{small} +\end{Example} + +Nun ist es möglicherweise etwas unpraktisch, wenn man bei der +\Option{DIV}-Option die Möglichkeit hat, \Option{DIVcalc} und +\Option{DIVclassic} anzuwenden, beim \Macro{typearea}-Befehl aber mit +irgendwelchen Pseudowerten jonglieren soll. Deshalb versteht +\Macro{typearea} auch folgende symbolische Angaben für den Parameter +\PName{DIV}: +\begin{labeling}[\ --]{\PValue{classic}} + \item [\PValue{calc}] Satzspiegelberechnung einschließlich + Ermittlung eines guten \Var{DIV}-Wertes erneut durchführen. + \item [\PValue{classic}] Satzspiegelberechnung nach dem + mittelalterlichen Buchseitenkanon (Kreisberechnung) erneut + durchführen. + \item [\PValue{current}] Satzspiegelberechnung mit dem aktuell + gültigen \Var{DIV}-Wert erneut durchführen. + \item [\PValue{default}] Satzspiegelberechnung mit dem Standardwert + für das aktuelle Seitenformat und die aktuelle Schriftgröße erneut + durchführen. Falls kein Standardwert existiert \PValue{calc} + anwenden. + \item [\PValue{last}] Satzspiegelberechnung mit demselben + \PName{DIV}-Argument, das beim letzten Aufruf angegeben wurde, + erneut durchführen. +\end{labeling} +Jetzt wäre es natürlich äußerst unpraktisch, wenn man zwar eine +Satzspiegelberechnung mit dem aktuellen \Var{DIV}-Wert erneut +durchführen könnte, jedoch dabei den \Var{BCOR}-Wert neu angeben +müsste. Deshalb versteht \Macro{typearea} auch die folgende +symbolische Angabe für den Parameter \PName{BCOR}: +\begin{labeling}[\ --]{\PValue{classic}} + \item [\PValue{current}] Satzspiegelberechnung mit dem aktuell + gültigen \Var{BCOR}-Wert erneut durchführen. +\end{labeling} + +\begin{Example} + Gehen wir wieder davon aus, dass für die Schriftart Bookman + ein Satzspiegel mit guter Zeilenlänge berechnet werden + soll. Gleichzeitig wird eine \KOMAScript-Klasse verwendet. Unter + Verwendung der symbolischen Parameterwerte für \PName{BCOR} und + \PName{DIV} ist dies mit dem \Macro{typearea}-Befehl einfach + möglich: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,BCOR12mm,DIVcalc,twoside]{scrartcl} + \usepackage{bookman} + \typearea[current]{calc} +\end{verbatim} +\end{small} + Soll hingegen die neuerliche Berechnung mit einem festen + \Var{DIV}-Wert durchgeführt werden, so gibt es neben der + Möglichkeit: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,BCOR12mm,DIV11,twoside]{scrartcl} + \usepackage{bookman} + \typearea[current]{current} +\end{verbatim} +\end{small} + natürlich auch noch die alte Methode: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,twoside]{scrartcl} + \usepackage{bookman} + \typearea[12mm]{11} +\end{verbatim} +\end{small} + Letztlich ist es eine Frage des Geschmacks, welche Lösung man lieber + verwendet. +\end{Example} + +Häufig wird die Satzspiegelneuberechnung im Zusammenhang mit der +Ver"-änderung des Zeilenabstandes +(\emph{Durchschuss})\Index{Durchschuss} benötigt. Da der +Satzspiegel unbedingt so berechnet werden sollte, dass eine ganze +Anzahl an Zeilen in den Textbereich passt, muss bei Verwendung +eines anderen Durchschusses als dem normalen der Satzspiegel für +diesen Zeilenabstand neu berechnet werden. + +\begin{Example} + Angenommen für eine Diplomarbeit wird die Schriftgröße + 10\Unit{pt} bei eineinhalbzeiligem Satz zwingend gefordert. {\LaTeX} + setzt normalwerweise bei 10\Unit{pt} mit 2\Unit{pt} Durchschuss, + also 1,2-zeilig. Deshalb muss als zusätzlicher Dehnfaktor der Wert + 1,25 verwendet werden. Gehen wir außerdem davon aus, dass eine + Bindekorrektur von 12\Unit{mm} benötigt wird. Dann könnte die Lösung + dies Problems wie folgt aussehen: +\begin{small} +\begin{verbatim} + \documentclass[10pt,BCOR12mm,DIVcalc,twoside]{scrreprt} + \linespread{1.25}\selectfont + \typearea[current]{calc} +\end{verbatim} +\end{small}\IndexCmd{linespread} + Der Befehl \Macro{selectfont} wird benötigt, damit der geänderte + Durchschuss auch tatsächlich vor der Neuberechnung aktiviert wird. + + Das gleiche Beispiel sähe unter Verwendung des + \Package{setspace}-Pakets (siehe \cite{package:setspace}) wie folgt + aus: +\begin{small} +\begin{verbatim} + \documentclass[10pt,BCOR12mm,DIVcalc,twoside]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \typearea[current]{calc} +\end{verbatim} +\end{small} + Wie man sieht, spart man sich mit dem \Package{setspace}-Paket nicht + nur das Wissen um den korrekten Dehnungswert, sondern auch das + Wissen, dass \Macro{selectfont} benötigt wird. + + An dieser Stelle erscheint es mir angebracht, darauf hinzuweisen, + dass der Zeilenabstand für die Titelseite wieder auf den normalen + Wert zurückgesetzt werden sollte. Ein vollständiges Beispiel wäre + also: +\begin{small} +\begin{verbatim} + \documentclass[10pt,BCOR12mm,DIVcalc,twoside]{scrreprt} + \usepackage{setspace} + \onehalfspacing + \typearea[current]{calc} + \begin{document} + \title{Title} + \author{Markus Kohm} + \begin{spacing}{1} + \maketitle + \tableofcontents + \end{spacing} + \chapter{Ok} + \end{document} +\end{verbatim} +\end{small} + Siehe hierzu auch die Anmerkungen in + \autoref{sec:typearea.tips}. +\end{Example} + +\begin{Explain} + Der Befehl \Macro{typearea} ist derzeit so definiert, dass es + theoretisch auch möglich wäre, mitten in einem Dokument den + Satzspiegel zu wechseln. Dabei werden allerdings Annahmen über den + Aufbau des \LaTeX-Kerns gemacht und interne Definitionen und Größen + des \LaTeX-Kerns verändert. Es gibt zwar eine gewisse + Wahrscheinlichkeit, aber keine Garantie, dass dies in zukünftigen + Versionen von \LaTeXe{} noch funktionieren wird. Es ist anzunehmen, + dass es bei \LaTeX3 nicht mehr zu einem korrekten Ergebnis führt. + Aber als Autor von {\KOMAScript} gehe ich derzeit davon aus, dass + der Umstieg zu \LaTeX3 mit sehr viel mehr Inkompatiblilitäten + einhergehen wird.\par +\end{Explain} +% +\EndIndex{Cmd}{typearea} +\EndIndex{Option}{DIVclassic}% +\EndIndex{Option}{DIVcalc} + +\begin{Declaration} + \Option{headinclude}\\ + \Option{headexclude}\\ + \Option{footinclude}\\ + \Option{footexclude} +\end{Declaration}% +\BeginIndex{Option}{headinclude}% +\BeginIndex{Option}{headexclude}% +\BeginIndex{Option}{footinclude}% +\BeginIndex{Option}{footexclude}% +\begin{Explain}% + Bisher wurde zwar erklärt, wie die + Satzspiegelkonstruktion\Index{Satzspiegel} + funktioniert und in welchem Verhältnis die Ränder\Index{Rand} zueinander und der + Textkörper zur Seite steht, aber eine entscheidene Frage blieb + ausgeklammert. Es handelt sich dabei um die Frage, was denn + eigentlich unter dem Rand zu verstehen ist. Auf den ersten Blick + wirkt diese Frage trivial: Der Rand ist der Teil der Seite, der + oben, unten, links und rechts frei bleibt. Doch das ist nur die + halbe Wahrheit. Der äußere Rand ist keineswegs immer leer. Teilweise + findet man darin noch gesetzte Randnotizen (siehe den Befehl + \Macro{marginpar} beispielsweise in \cite{l2kurz} bzw. + \autoref{sec:maincls.marginNotes}). + + Beim oberen und unteren Rand stellt sich die Frage, wie Kopf- und + Fußzeile\Index{Seitenkopf} \Index{Seitenfuß} zu behandeln sind. + Gehören diese beiden zum Textkörper oder + zum jeweiligen Rand? Die Frage ist nicht einfach zu beantworten. + Eindeutig ist, dass ein leerer Fuß und ein leerer Kopf zum Rand zu + rechnen sind. Schließlich können sie nicht vom restlichen Rand + unterschieden werden. Ein Fuß, der nur die + Paginierung\Index[indexmain]{Paginierung}\footnote{Unter der + Paginierung versteht man die Angabe + der Seitenzahl.} enthält, wirkt optisch ebenfalls eher wie Rand und + sollte deshalb zu diesem gerechnet werden. Für die optische Wirkung + ist dabei unwesentlich, ob der Fuß beim Lesen oder Überfliegen + leicht als Fuß erkannt werden kann oder nicht. Entscheidend ist, wie + eine wohlgefüllte Seite bei \emph{unscharfer Betrachtung} + wirkt. Dazu bedient man sich beispielsweise seiner + altersweitsichtigen Großeltern, denen man die Brille stibitzt und + dann die Seite etwa einen halben Meter von der Nasenspitze entfernt + hält. In Ermangelung erreichbarer Großeltern kann man sich auch + damit behelfen, dass man die eigenen Augen auf Fernsicht stellt die + Seite aber nur mit ausgestreckten Armen hält. Brillenträger sind + hier deutlich im Vorteil. Hat man eine Fußzeile, die neben der + Paginierung weitere, weitschweifige Angaben enthält, beispielsweise + einen Copyrighthinweis, so wirkt die Fußzeile eher wie ein etwas + abgesetzter Teil des Textkörpers. Bei der Berechnung des + Satzspiegels sollte das berücksichtigt werden. + + Bei der Kopfzeile sieht es noch schwieriger aus. In der Kopfzeile + wird häufig der + Kolumnentitel\Index[indexmain]{Kolumnentitel}\footnote{Unter dem + Kolumnentitel versteht man in der Regel die Wiederholung einer + Überschrift mit Titelcharakter.} gesetzt. Arbeitet man mit einem + lebenden Kolumnentitel, also der Wiederholung der ersten bzw. + zweiten Gliederungsebene in der Kopfzeile, und hat gleichzeitig sehr + lange Überschriften, so erhält man automatisch sehr lange + Kopfzeilen. In diesem Fall wirkt der Kopf wiederum wie ein + abgesetzter Teil des Textkörpers und weniger wie leerer Rand. + Verstärkt wird dieser Effekt noch, wenn neben dem Kolumnentitel auch + die Paginierung im Kopf erfolgt. Dadurch erhält man einen links und + rechts abgeschlossenen Bereich, der kaum noch als leerer Rand wirkt. + Schwieriger ist es bei Paginierung im Fuß und Überschriften, deren + Länge sehr stark schwankt. Hier kann der Kopf der einen Seite wie + Textkörper wirken, der Kopf der anderen Seite jedoch eher wie Rand. + Keinesfalls sollte man die Seiten jedoch unterschiedlich behandeln. + Das würde zu vertikal springenden Köpfen führen und ist nicht einmal + für ein Daumenkino geeignet. Ich rate in diesem Fall dazu, den Kopf + zum Textkörper zu rechnen. + + Ganz einfach fällt die Entscheidung, wenn der Kopf oder Fuß durch + eine Linie vom eigentlichen Textkörper abgetrennt ist. Dadurch + erhält man eine geschlossene Wirkung und der Kopf bzw. Fuß sollte + unbedingt zum Textkörper gerechnet werden. Wie gesagt, die durch die + Trennlinie verbesserte Erkennung des Kopfes oder Fußes ist hier + unerheblich. Entscheidend ist die unscharfe Betrachtung.\par +\end{Explain} + +Das \Package{typearea}-Paket trifft die Entscheidung, ob ein Kopf oder +Fuß zum Textkörper gehört oder davon getrennt zum Rand gerechnet +werden muss, nicht selbst. Stattdessen kann mit den Optionen +\Option{headinclude} und \Option{footinclude} der Kopf bzw. Fuß +explizit zum Textkörper gezählt werden, während mit den Optionen +\Option{headexclude} und \Option{footexclude} der Kopf bzw. Fuß zum +Rand gerechnet wird. Wenn Sie unsicher sind, was die richtige +Einstellung ist, lesen Sie bitte obige Erläuterungen. Voreingestellt +sind normalerweise \Option{headexclude} und \Option{footexclude}. Dies +kann sich jedoch bei den \KOMAScript-Klassen je nach Klassenoption +oder bei Verwendung anderer \KOMAScript-Pakete generell ändern (siehe +Abschnitte~\ref{sec:maincls.options} und \ref{cha:scrpage}). +% +\EndIndex{Option}{headinclude}% +\EndIndex{Option}{headexclude}% +\EndIndex{Option}{footinclude}% +\EndIndex{Option}{footexclude}% + + +\begin{Declaration} + \Option{mpinclude}\\ + \Option{mpexclude} +\end{Declaration} +\BeginIndex{Option}{mpinclude}% +\BeginIndex{Option}{mpexclude}% +Neben\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} Dokumenten, bei denen der Kopf und der Fuß der +Seite eher zum Textbereich als zum Rand gehört, gibt es auch +Dokumente, bei denen dies für Randnotizen zutrifft. Mit der Option +\Option{mpinclude} kann genau dies erreicht werden. Der Effekt dabei +ist, dass eine Breiteneinheit vom Textbereich weggenommen und als +Bereich für die Randnotizen verwendet wird. Mit der Option +\Option{mpexclude}, die der Voreinstellung entspricht, wird +hingegen ein Teil des Randes für Randnotizen verwendet. Dies ist, je +nachdem, ob einseitig oder doppelseitig gearbeitet wird, ebenfalls +eine Breiteneinheit oder auch eineinhalb Breiteneinheiten. In der +Regel ist die Verwendung von \Option{mpinclude} nicht anzuraten +beziehungsweise sollte Experten vorbehalten bleiben. + +\begin{Explain} +In den meisten Fällen, in denen die Option \Option{mpinclude} sinnvoll +ist, werden außerdem breitere Randnotizen benötigt. In sehr vielen +Fällen sollte dabei aber nicht die gesamte Breite, sondern nur ein +Teil davon, dem Textbereich zugeordnet werden. Dies ist beispielsweise +der Fall, wenn der Rand für Zitate verwendet wird. Solche Zitate +werden üblicherweise im Flattersatz gesetzt, wobei die bündige Kante +an den Textbereich anschließt. Da sich kein geschlossener optischer +Eindruck ergibt, dürfen die flatternden Enden also durchaus teilweise +in den Rand ragen. Man kann das einfach erreichen, indem man zum einen +die Option \Option{mpinclude} verwendet. Zum anderen vergrößert man +die Länge \Length{marginparwidth} nach der Berechnung des Satzspiegels +noch mit Hilfe der \Macro{addtolength}-Anweisung. Um welchen Wert man +vergrößern sollte, hängt vom Einzelfall ab und erfordert einiges +Fingerspitzengefühl. Auch deshalb ist die Option \Option{mpinclude} +eher etwas für Experten. Natürlich kann man auch festlegen, dass die +Randnotizen beispielsweise zu einem Drittel in den Rand hineinragen +sollen. Im Beispiel würde man das mit +\Macro{setlength}\PParameter{\Length{marginparwidth}}% +\PParameter{1.5\Length{marginparwidth}} erreichen. + +Da es derzeit keine Option gibt, um mehr Platz für die Randnotizen +innerhalb des Textbereichs vorzusehen, gibt es nur eine +Möglichkeit dies zu erreichen. Man verzichtet auf die Option +\Option{mpinclude}, verringert nach der Satzspiegelberechnung die +Breite des Textbereichs \Macro{textwidth} und setzt die Breite des +Bereichs der Randnotizen auf den Wert, um den man die Breite des +Textbereichs verringert hat. Leider lässt sich dieses Vorgehen nicht +mit der automatischen Berechnung des \PName{DIV}-Wertes verbinden. +Demgegenüber wird \Option{mpinclude} bei +\Option{DIVcalc}\IndexOption{DIVcalc} berücksichtigt. +\end{Explain} +% +\EndIndex{Option}{mpinclude}% +\EndIndex{Option}{mpexclude}% + + +\begin{Declaration} + \PName{Wert}\Option{headlines} +\end{Declaration}% +\BeginIndex{Option}{headlines}% +Es ist nun also bekannt, wie man Satzspiegel mit dem +\Package{typearea}-Paket berechnet und wie man dabei angibt, ob der +Kopf oder Fuß zum Textkörper oder zum Rand gehört. Insbesondere für +den Kopf fehlt aber noch die Angabe, wie hoch er denn eigentlich sein +soll. Hierzu dient die Option \Option{headlines}, der man die Anzahl +der Kopfzeilen voranstellt. Normalerweise arbeitet das +\Package{typearea}-Paket mit 1,25 Kopfzeilen. Dieser Wert stellt einen +Kompromiss dar. Zum einen ist er groß genug, um auch für eine +unterstrichene Kopfzeile (siehe \autoref{sec:maincls.options}) +Platz zu bieten, zum anderen ist er klein genug, um das Randgewicht +nicht zu stark zu verändern, wenn mit einer einfachen, nicht +unterstrichenen Kopfzeile gearbeitet wird. Damit ist der +voreingestellte Wert in den meisten Standardfällen ein guter Wert. +In einigen Fällen will oder muss man aber die Kopfhöhe genauer den +tatsächlichen Erfordernissen anpassen. + +\begin{Example} + Angenommen es soll ein Text mit einem zweizeiligen Kopf erstellt + werden. Normalerweise würde dies dazu führen, dass auf jeder Seite + eine Warnung "`\texttt{overfull} \Macro{vbox}"' von {\LaTeX} + ausgegeben würde. Um dies zu verhindern, wird das + \Package{typearea}-Paket angewiesen, einen entsprechenden Satzspiegel + zu berechnen: +\begin{small} +\begin{verbatim} + \documentclass[a4paper]{article} + \usepackage[2.1headlines]{typearea} +\end{verbatim} +\end{small} + Bei Verwendung einer \KOMAScript-Klasse muss die Option auch wieder + direkt an die Klasse übergeben werden: +\begin{small} +\begin{verbatim} + \documentclass[a4paper,2.1headlines]{scrartcl} +\end{verbatim} +\end{small} + Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile + definiert werden kann, sind in \autoref{cha:scrpage} zu finden. +\end{Example} + +Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer +der \KOMAScript-Klassen als Klassenoption übergeben werden muss. +Demgegenüber funktioniert dies bei Verwendung einer anderen Klasse +nur, wenn diese Klasse \Package{typearea} explizit unterstützt. Bei +den Standardklassen ist die Option also direkt beim Laden von +\Package{typearea} zu übergeben. Die Verwendung von +\Macro{PassOptionsToPackage} (siehe \cite{latex:clsguide}) vor dem +Laden von \Package{typearea} funktioniert hingegen immer. +% +\EndIndex{Option}{headlines} + + +\begin{Declaration} + \Macro{areaset}\OParameter{BCOR}\Parameter{Breite}\Parameter{Höhe} +\end{Declaration}% +\BeginIndex{Cmd}{areaset}% +Bis hier wurde nun eine Menge darüber erzählt, wie man einen guten +oder sogar sehr guten Satzspiegel\Index{Satzspiegel} für +Standardanwendungen erstellt bzw. wie das +\Package{typearea}-Paket dem Anwender diese Arbeit weitgehend +abnimmt, ihm aber gleichzeitig Möglichkeiten der Einflussnahme +bietet. Es gibt jedoch auch Fälle, in denen der Textkörper eine +bestimmte Größe exakt einhalten soll, ohne dass dabei auf gute +Satzspiegelkonstruktion oder auf weitere Nebenbedingungen zu +achten ist. Trotzdem sollen die Ränder so gut wie möglich +verteilt und dabei gegebenenfalls auch eine Bindekorrektur +berücksichtigt werden. Das \Package{typearea}-Paket bietet +hierfür den Befehl \Macro{areaset}, dem man neben der optionalen +Bindekorrektur als Parameter die Breite und Höhe des Textbereichs +übergibt. Die Ränder und deren Verteilung werden dann automatisch +berechnet, wobei gegebenenfalls auch die Paketoptionen +\Option{headinclude}, \Option{headexclude}, sowie +\Option{footinclude} und \Option{footexclude} berücksichtigt +werden. + +\begin{Example} + Angenommen ein Text auf A4-Papier soll genau die Breite von 60 + Zeichen in der Typewriter-Schrift haben und exakt 30 Zeilen je Seite + besitzen. Dann könnte mit folgender Präambel gearbeitet werden: +\begin{verbatim} + \documentclass[a4paper,11pt]{article} + \usepackage{typearea} + \newlength{\CharsLX}% Breite von 60 Zeichen + \newlength{\LinesXXX}% Höhe von 30 Zeilen + \settowidth{\CharsLX}{\texttt{1234567890}} + \setlength{\CharsLX}{6\CharsLX} + \setlength{\LinesXXX}{\topskip} + \addtolength{\LinesXXX}{30\baselineskip} + \areaset{\CharsLX}{\LinesXXX} +\end{verbatim} + +\item Soll stattdessen ein Gedichtband gesetzt werden, bei dem es nur + darauf ankommt, dass der Textbereich genau quadratisch mit einer + Seitenlänge von 15\Unit{cm} ist, wobei ein Binderand von + 1\Unit{cm} zu berücksichtigen ist, so kann dies wie folgt + erreicht werden: +\begin{verbatim} + \documentclass{gedichte} + \usepackage{typearea} + \areaset[1cm]{15cm}{15cm} +\end{verbatim} +\end{Example} +\EndIndex{Cmd}{areaset} + + +\section{Optionen und Makros zur Auswahl des Papierformats} +\label{sec:typearea.paperTypes} + +\Index{Papierformat}% +Die \LaTeX-Standardklassen unterstützen mit +den Optionen \Option{a4paper}, \Option{a5paper}, \Option{b5paper}, +\Option{letterpaper}, \Option{legalpaper} und +\Option{executivepaper} die Papierformate A4 und A5 aus der +ISO-A-Reihe, B5 aus der ISO-B-Reihe, sowie die englischen Formate +letter, legal und executive. +\begin{Declaration} + \Option{letterpaper} \\ + \Option{legalpaper} \\ + \Option{executivepaper} \\ + \Option{a\Var{X}paper} \\ + \Option{b\Var{X}paper} \\ + \Option{c\Var{X}paper} \\ + \Option{d\Var{X}paper} \\ + \Option{landscape} \\ + \Macro{isopaper}\OParameter{Reihe}\Parameter{Formatnummer} +\end{Declaration}% +\BeginIndex{Option}{letterpaper} +\BeginIndex{Option}{legalpaper} +\BeginIndex{Option}{executivepaper} +\BeginIndex{Option}{a0paper} +\BeginIndex{Option}{b0paper} +\BeginIndex{Option}{c0paper} +\BeginIndex{Option}{d0paper} +\BeginIndex{Option}{landscape} +\BeginIndex{Cmd}{isopaper}% +Die drei englischen Formate werden vom \Package{typearea}-Paket in +gleicher Weise unterstützt. Darüber hinaus werden jedoch alle Formate +der ISO-A-, ISO-B-, ISO-C- und ISO-D-Reihe durch Ableitung aus den +jeweiligen Grundgrößen A0, B0, C0 und D0 unterstützt. Diese können +ebenfalls direkt durch entsprechende Optionen \Option{a0paper}, +\Option{a1paper} usw. ausgewählt werden. Genau wie bei den +Standardklassen ist es mit dem \Package{typearea}-Paket möglich, durch +zusätzliche Verwendung der Paketoption \Option{landscape} das +jeweilige Querformat zu wählen. + +Alternativ kann beim \Package{typearea}-Paket die Papiergröße mit +Hilfe des Befehls \Macro{isopaper} eingestellt werden. Danach muss +allerdings der Satzspiegel mit Hilfe des Befehls \Macro{typearea} oder +\Macro{areaset} neu berechnet werden. Ich rate deshalb von der +Verwendung des Befehls \Macro{isopaper} ab. + +\begin{Example} + Angenommen, es soll eine Karteikarte im Format ISO-A8 quer bedruckt + werden. Dabei sollen die Ränder sehr klein gewählt werden. Außerdem + wird auf eine Kopf- und eine Fußzeile verzichtet. +\begin{verbatim} + \documentclass{article} + \usepackage[headexclude,footexclude, + a8paper,landscape]{typearea} + \areaset{7cm}{5cm} + \pagestyle{empty} + \begin{document} + \section*{Papieroptionen} + letterpaper, legalpaper, executivepaper, a0paper, + a1paper \dots\ b0paper, b1paper \dots\ c0paper, + c1paper \dots\ d0paper, d1paper \dots + \end{document} +\end{verbatim} +\end{Example} + +Bitte beachten Sie unbedingt, dass alle \Option{a\Var{X}paper}-, +\Option{b\Var{X}paper}-, \Option{c\Var{X}paper}- und +\Option{d\Var{X}paper}-Optionen mit Ausnahme von \Option{a4paper} und +\Option{a5paper} bei Verwendung einer der \KOMAScript-Klassen als +Klassenoption übergeben werden müssen. Demgegenüber funktioniert dies +bei Verwendung einer anderen Klasse nur, wenn diese Klasse +\Package{typearea} explizit unterstützt. Bei den Standardklassen sind +die Optionen also direkt beim Laden von \Package{typearea} zu +übergeben. Die Verwendung von \Macro{PassOptionsToPackage} (siehe +\cite{latex:clsguide}) vor dem Laden von \Package{typearea} +funktioniert hingegen immer. +% +\EndIndex{Option}{letterpaper} +\EndIndex{Option}{legalpaper} +\EndIndex{Option}{executivepaper} +\EndIndex{Option}{a0paper} +\EndIndex{Option}{b0paper} +\EndIndex{Option}{c0paper} +\EndIndex{Option}{d0paper} +\EndIndex{Option}{landscape} +\EndIndex{Cmd}{isopaper} + +\begin{Declaration} + \Macro{paperwidth}\\ + \Macro{paperheight} +\end{Declaration}% +\BeginIndex{Cmd}{paperwidth}% +\BeginIndex{Cmd}{paperheight}% +Für besonders exotische Papierformate, die weder durch die oben +angegebenen englischen Formate noch durch eines der Formate der vier +ISO-Reihen abgedeckt sind, können direkt die Längen \Macro{paperwidth} +und \Macro{paperheight} gesetzt werden. Danach muss allerdings der +Satzspiegel für dieses Format mit einem der Befehle \Macro{typearea} +oder \Macro{areaset} neu berechnet werden. +\begin{Example} + Angenommen, es soll auf Endlospapier mit den Maßen + \(8\frac{1}{4}\Unit{inch} \times 12\Unit{inch}\) gedruckt werden. + Dieses Papierformat wird von \Package{typearea} nicht direkt + unterstützt. Das Papierformat muss daher vor der Berechnung des + Satzspiegels definiert werden: +\begin{verbatim} + \documentclass{article} + \usepackage{typearea} + \setlength{\paperwidth}{8.25in} + \setlength{\paperheight}{12in} + \typearea{1} +\end{verbatim} +\end{Example} +\EndIndex{Cmd}{paperheight} +\EndIndex{Cmd}{paperwidth} + +\begin{Declaration} + \Option{dvips}\\ + \Option{pdftex}\\ + \Option{pagesize} +\end{Declaration}% +\BeginIndex{Option}{dvips}% +\BeginIndex{Option}{pdftex}% +\BeginIndex{Option}{pagesize}% +\begin{Explain}% + Die oben genannten Mechanismen zur Auswahl des Papierformats haben + genaugenommen nur insofern einen Einfluss auf die Ausgabe, dass + gewisse interne {\LaTeX}-Maße so gesetzt werden, dass bestimmte + Bereiche der Seite, wie Kopf, Textkörper und Fuß so angeordnet und + von \Package{typearea} so berechnet werden, dass sie auf + entsprechendes Papier ausgedruckt werden können. Die Spezifikation + des DVI-Formats\Index{DVI} sieht aber an keiner Stelle + Angaben zum Papierformat + vor. Wird direkt aus dem DVI-Format in eine Low-Level-Druckersprache + wie PCL\footnote{PCL ist die Druckersprache, die HP für seine + Tinten- und Laserdrucker verwendet.} oder ESC/P2\footnote{ESC/P2 + ist die Druckersprache, die EPSON für seine Nadel-, Tinten- und + Laserdrucker benutzt.} ausgegeben, spielt dies + normalerweiser keine Rolle, da auch bei diesen Ausgaben der + 0-Bezugspunkt wie bei DVI links oben liegt. Wird aber in Sprachen + wie PostScript\Index{PostScript} oder PDF\Index{PDF} übersetzt, + bei denen der 0-Bezugspunkt an + anderer Stelle liegt und außerdem das Papierformat in der + Ausgabedatei angegeben werden kann, so fehlt diese Information in + der DVI-Datei. Als Lösung des Problems verwendet der entsprechende + Treiber eine voreingestellte Papiergröße, die der Anwender entweder + per Option oder durch entsprechende Angabe in der {\TeX}-Quelldatei + verändern kann. Bei Verwendung des DVI-Treibers \File{dvips} kann + diese Angabe in Form einer \Macro{special}-Anweisung erfolgen. Bei + {pdf\TeX} werden stattdessen zwei Längen entsprechend gesetzt.\par +\end{Explain} +Mit der Option \Option{dvips} wird erreicht, dass die Papiergröße als +\Macro{special} in die DVI-Datei geschrieben wird. Dieses +\Macro{special} wird beispielsweise von \File{dvips} +ausgewertet. Demgegenüber schreibt die Option \Option{pdftex} die +Papiergröße am Anfang des Dokuments in die {pdf\TeX}-Seitenregister, +so dass später beim Betrachten der erzeugten PDF-Datei das korrekte +Format angegeben wird. Die Option \Option{pagesize} verhält sich +flexibler und verwendet je nachdem, ob eine PDF- oder eine DVI-Datei +ausgegeben wird, den Mechanismus der Option \Option{dvips} oder der +Option \Option{pdftex}. +\begin{Example} + Angenommen es soll ein Dokument sowohl als DVI-Datei verwendet + werden, als auch eine Online-Version im PDF-Format erstellt + werden. Dann könnte die Präambel beispielsweise so beginnen: + \begin{small} +\begin{verbatim} + \documentclass{article} + \usepackage[a4paper,pagesize]{typearea} +\end{verbatim} + \end{small} + Wird nun für die Bearbeitung {pdf\TeX} verwendet \emph{und} die + PDF-Ausgabe aktiviert, so werden die beiden Größen + \Macro{pdfpagewidth} und \Macro{pdfpageheight} entsprechend gesetzt. + Wird jedoch eine DVI-Datei erzeugt -- egal ob mit {\LaTeX} oder + {pdf\LaTeX} --, so wird ein \Macro{special} an den Anfang dieser + Datei geschrieben. +\end{Example}\IndexCmd{pdfpagewidth}\IndexCmd{pdfpagehight} +\EndIndex{Option}{dvips}% +\EndIndex{Option}{pdftex}% +\EndIndex{Option}{pagesize}% + + +\section{Kleinigkeiten ohne direkten Bezug zum Satzspiegel} +\label{sec:typearea.else} + +\begin{Declaration} + \Macro{ifpdfoutput}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration}% +\BeginIndex{Cmd}{ifpdfoutput}% +Manchmal ist es wünschenswert, in einem Dokument abhängig vom +Ausgabeformat bestimmte Dinge anders zu machen. Normalerweise +verwendet {\TeX} das Ausgabeformat DVI. Mit {pdf\TeX} ist aber die +Wahlmöglichkeit hinzugekommen, statt einer DVI-Datei eine PDF-Datei +direkt zu erzeugen. Der Befehl \Macro{ifpdfoutput} stellt eine +Verzweigung dar. Wurde die PDF-Ausgabe aktiviert, so wird der +\PName{Dann-Teil} ausgeführt. Wurde die PDF-Ausgabe nicht aktiviert +oder wird überhaupt kein {pdf\TeX} verwendet, so wird der +\PName{Sonst-Teil} ausgeführt. +\begin{Example} + Bekanntlich gibt {pdf\LaTeX} in ebenfalls eine DVI-Datei an Stelle + einer PDF-Datei aus, wenn der Zähler \Macro{pdfoutput} auf 0 gesetzt + ist. Nur bei einem von 0 verschiedenen Wert wird eine PDF-Datei + ausgegeben. Da andererseits \Macro{pdfoutput} unbekannt ist, wenn + {\LaTeX} statt {pdf\LaTeX} verwendet wird, kann man + \Macro{pdfoutput} auch nicht einfach generell auf 0 setzen, um + DVI-Ausgabe zu erhalten. Eine einfache Lösung ist folgende Zeile: + \begin{small} +\begin{verbatim} + \ifpdfoutput{\pdfoutput=0}{} +\end{verbatim} + \end{small} + Übrigens setzten manche Pakete \Macro{pdfoutput} einfach auf 1, + sobald der Zähler existiert. In einigen Fällen ist das aber gar + nicht erwünscht. Auch dann kann obige Zeile nach dem Laden des + entsprechenden Pakets hilfreich sein. Selbstverständlich muss dafür + das \Package{typearea}-Paket geladen sein. Eine Kombination mit der + Anweisung \Macro{AfterPackage}\IndexCmd{AfterPackage} des + \Package{scrlfile}-Paketes ist ebenfalls möglich (siehe dazu + \autoref{cha:scrlfile}). +\end{Example}\IndexCmd{pdfoutput} +\EndIndex{Cmd}{ifpdfoutput} + +\section{Lokale Einstellungen durch die Datei \File{typearea.cfg}} +\label{sec:typearea.cfg} +\BeginIndex{File}{typearea.cfg}% +Noch vor der Abarbeitung der Paketoptionen prüft \Package{typearea}, +ob eine Datei \File{typearea.cfg} existiert und lädt diese +gegebenenfalls. Es ist daher möglich, in dieser Konfigurationsdatei +beispielsweise zusätzliche Optionen für weitere Papierformate zu +definieren. + +\begin{Declaration} + \Macro{SetDIVList}\Parameter{Liste} +\end{Declaration}% +\BeginIndex{Cmd}{SetDIVList}% +\begin{Explain}% +Ebenfalls zur Verwendung in dieser Konfigurationsdatei war +ursprünglich der Befehl \Macro{SetDIVList} vorgesehen. Bevor die +Option \Option{DIVcalc} existierte, war dies die einzige Möglichkeit, +für unterschiedliche Schriftgrößen und Papierformate unterschiedliche +Voreinstellungen für den \Var{DIV}-Wert zu definieren. Die Liste +besteht dabei aus einer Reihe von Werten in geschweiften Klammern. Der +Wert ganz links ist für die Schriftgröße 10\Unit{pt}, der nächste +für 11\Unit{pt}, der dritte für 12\Unit{pt} usw. vorgesehen. +Wird keine Liste mit \Macro{SetDIVList} gesetzt, so entspricht dies +\Macro{SetDIVList}% +\PParameter{\PParameter{8}\PParameter{10}\PParameter{12}}. +Ist für eine Schriftgröße kein Standardwert gesetzt, so wird +stattdessen 10 verwendet.\par +\end{Explain} + +Dieser Befehl sollte nicht mehr verwendet werden. Stattdessen wird +empfohlen, einen günstigen Satzspiegel automatisch berechnen zu lassen +(siehe \autoref{sec:typearea.options}). +% +\EndIndex{Cmd}{SetDIVList} + +% +\EndIndex{File}{typearea.cfg} + + +\section{Tipps} +\label{sec:typearea.tips} +\begin{Explain} + Insbesondere für die Erstellung von schriftlichen Arbeiten während + des Studiums findet man häufig Vorschriften, die einer + typografischen Begutachtung nicht nur in keinster Weise standhalten, + sondern massiv gegen alle Regeln der Typografie verstoßen. Ursache + für solche Regeln ist oft typografische Inkompetenz + derjenigen, die sie herausgeben. Manchmal ist die Ursache auch im + Ausgangspunkt begründet, nämlich der Schreibmaschine. Mit einer + Schreibmaschine oder einer Textverarbeitung von 1980 ist es ohne + erheblichen Aufwand kaum möglich, typografisch perfekte Ergebnisse + zu erzielen. Also wurden einst Vorschriften erlassen, die leicht + erfüllbar schienen und dem Korrektor trotzdem entgegen kommen. Dazu + zählen dann Randeinstellungen, die für einseitigen Druck mit einer + Schreibmaschine zu brauchbaren Zeilenlängen führen. Um nicht extrem + kurze Zeilen zu erhalten, die durch Flattersatz zudem verschlimmert + werden, werden die Ränder schmal gehalten und für Korrekturen + stattdessen ein großer Durchschuss in Form von eineinhalbzeiligem + Satz vorgeschrieben. Bevor moderne Textverarbeitungssysteme + verfügbar wurden, wäre -- außer mit {\TeX} -- einzeiliger Satz die + einzige Alternative gewesen. Dabei wäre dann selbst das Anbringen + von Korrekturzeichen schwierig geworden. Als die Verwendung von + Computern für die Erstellung schriftlicher Arbeiten üblicher wurde, + hat sich manches Mal auch der Spieltrieb des einen oder anderen + Studenten gezeigt, der durch Verwendung einer Schmuckschrift seine + Arbeit aufpeppen und so eine bessere Note mit weniger Einsatz + herausschinden wollte. Nicht bedacht hat er dabei, dass solche + Schriften schlechter zu lesen und deshalb für den Zweck ungeeignet + sind. Damit hielten zwei Brotschriften Einzug in die Vorschriften, + die weder zusammenpassen noch im Falle von Times wirklich gut + geeignet sind. Times ist eine relativ enge Schrift, die Anfang des + 20.~Jahrhunderts speziell für schmale Spalten im englischen + Zeitungssatz entworfen wurde. In modernen Schnitten ist dies etwas + entschärft. Dennoch passt die häufig vorgeschriebene Times meist + nicht zu den gleichzeitig gegebenen Randvorgaben. + + {\LaTeX} setzt bereits von sich aus mit ausreichendem Durchschuss. + Gleichzeitig sind die Ränder bei sinnvollen Zeilenlängen groß + genug, um Platz für Korrekturen zu bieten. Dabei wirkt die Seite + trotz einer Fülle von Text großzügig angelegt. +% Bedarfsteil um den Seitenumbruch zu verbessern: +% Bei Verwendung von +% \Package{typearea} wird dies eher noch verstärkt. Dies gilt +% insbesondere dann, wenn die Berechnung der Zeilenlänge ebenfalls +% \Package{typearea} überlassen oder nur geringfügig davon abgewichen +% wird. Für Schriftarten, die empfindlich auf lange Zeilen reagieren, +% kann der Textkörper außerdem sehr leicht schmaler gewählt werden. + + Oft sind die typografisch mehr als fragwürdigen + Satzvorschriften mit {\LaTeX} auch außerodentlich schwierig + umzusetzen. So kann eine feste Anzahl von "`Anschlägen"' nur dann + eingehalten werden, wenn keine proportionale Schrift verwendet wird. + Es gibt nur wenig gute nichtproportionale Schriften. Kaum ein Text, + der mit einer derartigen Schrift gesetzt ist, wirkt wirklich gut. So + wird häufig versucht, durch ausladende Serifen beispielsweise beim + kleinen "`i"' oder "`l"' die unterschiedliche Breite der Zeichen + auszugleichen. Dies kann nicht funktionieren. Im Ergebnis wirkt der + Text unruhig und zerrissen. Außerdem verträgt sich eine solche + Schrift kaum mit dem im deutschen Sprachraum üblichen und allgemein + vorzuziehenden Blocksatz. Gewisse Vorgaben können daher bei + Verwendung von {\LaTeX} nur ignoriert oder großzügig ausgelegt + werden, etwa indem man "`60~Anschläge pro Zeile"' nicht als feste, + sondern als durchschnittliche oder maximale Angabe interpretiert. + \par +\end{Explain} + +Wie ausgeführt, sind Satzvorschriften meist dazu gedacht, ein +brauchbares Ergebnis zu erhalten, auch wenn der Ausführende selbst +nicht weiß, was dabei zu beachten ist. Brauchbar bedeutet häufig: +lesbar und korrigierbar. Nach meiner Auf"|fassung wird ein mit +{\LaTeX} und dem \Package{typearea}-Paket gesetzter Text bezüglich +des Satzspiegels diesen Anforderungen von vornherein gerecht. Wenn Sie +also mit Vorschriften konfrontiert sind, die offensichtlich erheblich +davon abweichen, so empfehle ich, dem Betreuer einen Textauszug +vorzulegen und nachzufragen, ob es gestattet ist, die Arbeit trotz der +Abweichungen in dieser Form zu liefern. Gegebenenfalls kann durch +Veränderung der Option \Option{DIV} der Satzspiegel moderat angepasst +werden. Von der Verwendung von \Macro{areaset} zu diesem Zweck rate +ich jedoch ab. Schlimmstenfalls verwenden Sie das nicht zu +{\KOMAScript} gehörende \Package{geometry}-Paket (siehe +\cite{package:geometry}) oder verändern Sie die Satzspiegelparameter +von {\LaTeX} selbst. Die von \Package{typearea} ermittelten Werte +finden Sie in der \File{log}-Datei Ihres Dokuments. Damit sollten +moderate Anpassungen möglich sein. Achten Sie jedoch unbedingt darauf, +dass die Proportionen des Textbereichs mit denen der Seite unter +Berücksichtigung der Bindekorrektur annähernd übereinstimmen. + +Sollte es unbedingt erforderlich sein, den Text eineinhalbzeilig +zu setzen, so definieren Sie keinesfalls \Macro{baselinestretch} +um. Dieses Vorgehen wird zwar allzu häufig empfohlen, ist aber +seit der Einführung von {\LaTeXe} im Jahre 1994 obsolet. +Verwenden Sie schlimmstenfalls den Befehl \Macro{linespread}. Ich +empfehle das Paket \Package{setspace},\IndexPackage{setspace} das +nicht zu {\KOMAScript} gehört (siehe \cite{package:setspace}). +Auch sollten Sie \Package{typearea} nach der Umstellung des +Zeilenabstandes den Satzspiegel für diesen Abstand berechnen +lassen jedoch für den Titel, besser auch für die Verzeichnisse -- +sowie das Literaturverzeichnis und den Index -- wieder auf +normalen Satz umschalten. Das \Package{setspace}-Paket bietet +dafür eine spezielle Umgebung und eigene Befehle. + +Das \Package{typearea}-Paket berechnet auch bei der Option +\Option{DIVcalc} einen sehr großzügigen Textbereich. Viele +konservative Typografen werden feststellen, dass die resultierende +Zeilenlänge noch zu groß ist. Der berechnete \Var{DIV}-Wert ist +ebenfalls in der \File{log}-Datei zum jeweiligen Dokument zu +finden. Sie können also leicht nach dem ersten \LaTeX-Lauf einen +kleineren Wert wählen. + +Nicht selten wird mir die Frage gestellt, warum ich eigentlich +kapitelweise auf einer Satzspiegelberechnung herumreite, während es +sehr viel einfacher wäre, nur ein Paket zur Verfügung zu stellen, mit +dem man die Ränder wie bei einer Textverarbeitung einstellen kann. +Oft wird auch behauptet, ein solches Paket wäre ohnehin die bessere +Lösung, da jeder selbst wisse, wie gute Ränder zu wählen seien, und +die Ränder von {\KOMAScript} wären ohnehin nicht gut. Ich erlaube mir +zum Abschluss dieses Kapitels ein passendes Zitat aus +\cite{TYPO:ErsteHilfe}: +\begin{quote} + \textsl{Das Selbermachen ist längst üblich, die Ergebnisse oft + fragwürdig, weil Laien-Typografen nicht sehen, was nicht stimmt + und nicht wissen können, worauf es ankommt. So gewöhnt man sich an + falsche und schlechte Typografie.} [\dots] \textsl{Jetzt könnte der + Einwand kommen, Typografie sei doch Geschmacksache. Wenn es um + Dekoration ginge, könnte man das Argument vielleicht gelten + lassen, da es aber bei Typografie in erster Linie um Information + geht, können Fehler nicht nur stören, sondern sogar Schaden + anrichten.} +\end{quote} + +\section{Autoren} +\label{sec:typearea.authors} +Die folgenden Autoren waren an diesem Kapitel beteiligt oder haben die +Vorlage dafür geliefert. +\begin{itemize} +\item Frank Neukam +\item \textbf{Markus Kohm} \TextEMail{Markus.Kohm@gmx.de} +\item Axel Sommerfeldt +\end{itemize} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "scrguide2" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bib b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bib new file mode 100644 index 00000000000..9a022fb01de --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bib @@ -0,0 +1,362 @@ +% +% Bibliographie fuer den scrguide +% + +@Article{ DANTE:TK0297:MJK1, + author = {Markus Kohm}, + title = {{\KOMAScript} -- Eine Alternative zu den + Standardklassen?}, + journal = {Die \TeX nische Kom\"odie}, + year = 1996, + volume = {2}, + pages = {14--33}, + note = {{DANTE} e.\,V.} +} + +@Article{ DANTE:TK0402:MJK, + author = {Markus Kohm}, + title = {Satzspiegelkonstruktionen im Vergleich}, + journal = {Die \TeX nische Kom\"odie}, + volume = {4}, + year = 2002, + pages = {28--48}, + note = {{DANTE} e.\,V.} +} + +@Article{ DANTE:TK0203:MJK, + author = {Markus Kohm}, + title = {Moderne Briefe mit {\KOMAScript}}, + journal = {Die \TeX nische Kom\"odie}, + volume = {2}, + year = 2003, + pages = {32--51}, + note = {{DANTE} e.\,V.} +} + +@Book{ DUDEN, + author = {DUDEN}, + title = {Die deutsche Rechtschreibung}, + publisher = {DUDENVERLAG}, + year = 1996, + address = {Mannheim}, + edition = 21 +} + +@Book{ knuth:mfbook, + author = {Donald E. Knuth}, + title = {The {\MF book}}, + publisher = {Addison-Wesley Publishing Company}, + year = 1991, + address = {Reading, Mass.}, + edition = 6, + volume = {C}, + series = {Computers and Typesetting} +} + +@Book{ knuth:texbook, + author = {Donald E. Knuth}, + title = {The {\TeX book}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Reading, Mass.}, + year = 1990, + edition = {19}, + volume = {A}, + series = {Computers and Typesetting} +} + +@Book{ JTsch87, + author = {Jan Tschichold}, + title = {Ausgew{\"a}hlte Aufs{\"a}tze {\"u}ber Fragen der Gestalt des Buches und der Typographie}, + publisher = {Birkh{\"a}user Verlag}, + year = 1987, + address = {Basel}, + edition = 2 +} + +@Book{ TYPO:ErsteHilfe, + author = {Hans Peter Willberg and Friedrich Forssman}, + title = {Erste Hilfe in Typografie}, + subtitle = {Ratgeber f{\"u}r Gestaltung mit Schrift}, + publisher = {Verlag Hermann Schmidt}, + year = 2000, + address = {Mainz} +} + +@Manual{ l2kurz, + author = {Walter Schmidt and J{\"o}rg Knappen and Hubert Partl and Irene +Hyna}, + title = {{\LaTeXe}-Kurzbeschreibung}, + year = 1999, + month = apr, + url = {CTAN://info/lshort/german/} +} + +@Manual{ lshort, + author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth +Schlegl}, + title = {The Not So Short Introduction to {\LaTeXe}}, + year = 1999, + month = apr, + version = {3.7}, + url = {CTAN://info/lshort/} +} + +@Book{ latexbook, + author = {Leslie Lamport}, + title = {Das {\LaTeX -Handbuch}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Bonn, Paris {u.\,a.}}, + year = 1995 +} + +@Manual{ btxdoc, + author = {Oren Patashnik}, + title = {{Bib\TeX ing}}, + year = 1988, + month = feb, + url = {CTAN://biblio/bibtex/distribs/doc/btxdoc.tex} +} + +@Manual{ btxhak, + author = {Oren Patashnik}, + title = {Designing {Bib\TeX} Styles}, + year = 1988, + month = feb, + url = {CTAN://biblio/bibtex/distribs/doc/btxhak.tex} +} + +@Misc{ DANTE:FAQ, + author = {Bernd Raichle and Rolf Niepraschk and Thomas Hafner}, + title = {DE-{\TeX}-/DANTE-FAQ}, + year = 2002, + month = may, + edition = {71}, + url = {http://www.dante.de/faq/de-tex-faq/} +} + +@Misc{ UK:FAQ, + editor = {Robin Fairbairns}, + title = {TeX Frequently Asked Questions on the Web}, + year = 2002, + month = may, + edition = {3.0b}, + url = {http://www.tex.ac.uk/faq/} +} + +@Misc{ latex:classes, + author = {Leslie Lamport and Frank Mittelbach and Johannes Braams}, + title = {Standard Document Classes for {\LaTeX} version 2e}, + year = 2000, + month = may, + edition = {1.4b}, + url = {CTAN://macros/latex/base/classes.dtx} +} + +@Misc{ package:adrconv, + author = {Axel Kielhorn}, + title = {adrconv}, + year = 1999, + month = nov, + edition = {1.2}, + url = {CTAN://macros/latex/contrib/adrconv/} +} + +@Misc{ url:aka, + author = {Axel Kielhorn}, + title = {{\LaTeX} page}, + url = {http://www-public.tu-bs.de:8080/~i0080108/latex.html} +} + +@Misc{ latex:clsguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} for class and package writers}, + year = 1999, + month = sep, + url = {CTAN://macros/latex/doc/clsguide.pdf} +} + +@Misc{ latex:usrguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} for authors}, + year = 1999, + month = sep, + url = {CTAN://macros/latex/doc/usrguide.pdf} +} + +@Misc{ latex:fntguide, + author = {{\LaTeX3} Project Team}, + title = {{\LaTeXe} font selection}, + year = 2000, + month = jan, + url = {CTAN://macros/latex/doc/fntguide.pdf} +} + +@Misc{ package:setspace, + author = {Geoffrey Tobin}, + title = {{\Package{setspace}} {\LaTeX} package}, + year = 2000, + month = dec, + edition = {6.7}, + url = {CTAN://macros/latex/contrib/setspace/} +} + +@Misc{ package:geometry, + author = {Hideo Umeki}, + title = {The {\Package{geometry}} package}, + year = 2000, + month = jun, + edition = {2.3}, + url = {CTAN://macros/latex/contrib/geometry/} +} + +@Misc{ package:german, + author = {Bernd Raichle}, + title = {{\Package{german}} package}, + year = 1998, + month = jul, + edition = {2.5e}, + url = {CTAN://language/german/} +} + +@Misc{ package:ngerman, + author = {Bernd Raichle}, + title = {{\Package{ngerman}} package}, + year = 1998, + month = jul, + edition = {2.5e}, + url = {CTAN://language/german/} +} + +@Misc{ package:graphics, + author = {David P. Carlisle}, + title = {Packages in the `graphics' bundle}, + year = 1999, + month = feb, + url = {CTAN://macros/latex/required/graphics/} +} + +@Misc{ package:multicol, + author = {Frank Mittelbach}, + title = {An environment for multicolumn output}, + year = 2000, + month = jul, + edition = {1.5z}, + url = {CTAN://macros/latex/required/tools/} +} + +@Misc{ package:ifthen, + author = {David Carlisle}, + title = {The \textsf{ifthen} package}, + year = 1999, + month = sep, + edition = {1.1b}, + url = {CTAN://macros/latex/base/} +} + +@Misc{ package:french, + author = {Bernard Gaulle}, + title = {Les distributions de fichiers de francisation pour LaTeX}, + year = 2003, + month = dec, + edition = {5,80}, + url = {CTAN://language/french/} +} + +@Misc{ package:babel, + author = {Johannes Braams}, + title = {Babel, a multilangual package for use with \LaTeX's standard +document classes}, + year = 2001, + month = feb, + edition = {3.7}, + url = {CTAN://macros/latex/required/babel/} +} + +@Misc{ package:extsizes, + author = {James Kilfiger}, + title = {{\Package{extsizes}}, a non standard \LaTeX-package}, + year = 1999, + month = nov, + edition = {1.4a}, + url = {CTAN://macros/latex/contrib/extsizes/} +} + +@Misc{ package:natbib, + author = {Patrick W. Daly}, + title = {Natural Sciences Citations an References}, + year = 1999, + month = may, + edition = {7.0}, + url = {CTAN://macros/latex/contrib/natbib/} +} + +@Misc{ package:fancyhdr, + author = {Piet van Oostrum}, + title = {Page layout in \LaTeX}, + year = 2000, + month = oct, + edition = {2.0}, + url = {CTAN://macros/latex/contrib/fancyhdr/} +} + +@Misc{ package:topcapt, + author = {Robin Fairbairns}, + title = {topcapt.sty}, + year = 1999, + month = mar, + edition = {1.1a}, + url = {CTAN://macros/latex/contrib/misc/topcapt.sty} +} + +@Misc{ package:caption2, + author = {Harald Axel Sommerfeldt}, + title = {caption package}, + year = 1995, + month = oct, + edition = {2.0(BETA)}, + url = {CTAN://macros/latex/contrib/caption/} +} + +@Misc{ package:hyperref, + author = {Sebastian Rahtz}, + title = {Hypertext marks in {\LaTeX}: the \textsf{hyperref} package}, + year = 2001, + month = feb, + edition = {6.71c}, + url = {CTAN://macros/latex/contrib/hyperref/} +} + +@Misc{ package:float, + author = {Anselm Lingnau}, + title = {An Improved Environment for Floats}, + year = 2001, + month = jul, + edition = {1.2e}, + url = {CTAN://macros/latex/contrib/float/} +} + +@Misc{ package:longtable, + author = {David Carlise}, + title = {The \textsf{longtable} package}, + year = 1998, + month = may, + edition = {4.09}, + url = {CTAN://macros/latex/required/tools/} +} + +@Misc{ package:ragged2e, + author = {Martin Schr{\"o}der}, + title = {The \textsf{Ragged2e}-package}, + year = 2003, + month = jan, + edition = {2.00}, + url = {CTAN://macros/latex/contrib/ms/} +} + +@Misc{ homepage, + key = {KDP}, + title = {The \KOMAScript{} Documentation Project}, + url = {http://koma-script.net.tf} +} + +% end of file `scrguide.bib' diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bst b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bst new file mode 100644 index 00000000000..044442683b0 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.bst @@ -0,0 +1,1676 @@ +%% +%% This is file `scrguide.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% german.mbs (with options: `exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% scrguide.mbs (with options: `exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% merlin.mbs (with options: `tail,exlang,alph,vonx,ed-au,nmlm,x2,m2,nmft,nmft-sc,nmfted,nmand-rm,dt-jnl,tit-it,atit-u,trtit-b,volp-sp,jdt-vs,pgsep-s,jwdpg,jwdvol,isbn,issn,url,url-nl,edpar,bkedcap,blk-com,au-col,german,ord,and-xcom,etal-rm,nfss,{}') +%% ---------------------------------------- +%% *** This file was made for creating KOMA-Script scrguide bibliography *** +%% +%% Copyright 1994-1999 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[1999/05/28 3.89 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in + % GERMAN + % This is a labelled citation style similar to the standard alpha.bst, + % where labels are of the form Dal90 or DBK89. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem[label]{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [label] + % \cite[chap. 2]{key} ==>> [label, chap. 2] + % The order in the reference list is by label. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} + +FUNCTION {bib.name.font} +{ scaps } + +FUNCTION {bib.fname.font} +{ bib.name.font } + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{german.mbs}[1999/02/24 1.7 (PWD)] + + % The language selected here is GERMAN +FUNCTION {bbl.and} +{ "und"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Herausgeber" } + +FUNCTION {bbl.editor} +{ "Herausgeber" } + +FUNCTION {bbl.edby} +{ "herausgegeben von" } + +FUNCTION {bbl.edition} +{ "Auf\/lage" } + +FUNCTION {bbl.volume} +{ "Band" } + +FUNCTION {bbl.of} +{ "von" } + +FUNCTION {bbl.number} +{ "Nummer" } + +FUNCTION {bbl.nr} +{ "Nr." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "Seiten" } + +FUNCTION {bbl.page} +{ "Seite" } + +FUNCTION {bbl.chapter} +{ "Kapitel" } + +FUNCTION {bbl.techrep} +{ "{Technischer Bericht}" } + +FUNCTION {bbl.mthesis} +{ "Diplomarbeit" } + +FUNCTION {bbl.phdthesis} +{ "Dissertation" } + +FUNCTION {bbl.first} +{ "1." } + +FUNCTION {bbl.second} +{ "2." } + +FUNCTION {bbl.third} +{ "3." } + +FUNCTION {bbl.fourth} +{ "4." } + +FUNCTION {bbl.fifth} +{ "5." } + +FUNCTION {bbl.th} +{ "." } + +MACRO {jan} {"Januar"} + +MACRO {feb} {"Februar"} + +MACRO {mar} {"M\^^b{a}rz"} + +MACRO {apr} {"April"} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"Oktober"} + +MACRO {nov} {"November"} + +MACRO {dec} {"Dezember"} + + % End module: german.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{scrguide.mbs}[2001/03/22 0.1] + % End module: scrguide.mbs +%% Copyright 1994-1999 Patrick W Daly +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" format.name$ + bib.name.font + 't := + nameptr #1 > + { + nameptr #2 + #1 + = + numnames #2 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + " (" * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + capitalize + * ")" * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { + "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { + "ISSN " issn * } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + emphasize + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" label * "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {if.digit} +{ duplicate$ "0" = + swap$ duplicate$ "1" = + swap$ duplicate$ "2" = + swap$ duplicate$ "3" = + swap$ duplicate$ "4" = + swap$ duplicate$ "5" = + swap$ duplicate$ "6" = + swap$ duplicate$ "7" = + swap$ duplicate$ "8" = + swap$ "9" = or or or or or or or or or +} +FUNCTION {n.separate} +{ 't := + "" + #0 'numnames := + { t empty$ not } + { t #-1 #1 substring$ if.digit + { numnames #1 + 'numnames := } + { #0 'numnames := } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames #5 = + { duplicate$ #1 #2 substring$ swap$ + #3 global.max$ substring$ + "\," swap$ * * + } + 'skip$ + if$ + } + while$ +} +FUNCTION {n.dashify} +{ + n.separate + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "~" * year * } + if$ + } + if$ +} + +FUNCTION{format.year} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ pop$ "" } + { " (" swap$ * ")" * } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ": " * + pages multi.page.check + { bbl.pages } + { bbl.page } + if$ + "~" * * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + format.year * + number empty$ + 'skip$ + { + "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + bib.name.font + editor num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ + bib.name.font + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle emphasize * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + add.colon + format.title "title" output.check + howpublished output + address output + format.date output + format.isbn output + format.note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + add.colon + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.date output + format.note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + add.colon + format.title output + howpublished output + format.date output + format.note output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + add.colon + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + format.publisher.address output + } + if$ + } + { publisher empty$ + { + format.organization.address output } + { + organization output + format.publisher.address output + } + if$ + } + if$ + format.date "year" output.check + format.isbn output + format.issn output + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + add.colon + format.btitle "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + add.colon + format.title "title" output.check + format.date output + format.note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{l{}}" format.name$ * } + if$ + } + { s nameptr "{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + nameptr #2 + #1 + = + numnames #2 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `scrguide.bst'. diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.dbj b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.dbj new file mode 100644 index 00000000000..3bda1489d11 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.dbj @@ -0,0 +1,319 @@ +%% Driver file to produce scrguide.bst from merlin.mbs +%% Generated with makebst, version 3.2 (1999/02/24) +%% Produced on 2001/03/22 at 14:46 +%% +\input docstrip + +\preamble +---------------------------------------- +*** This file was made for creating KOMA-Script scrguide bibliography *** + +\endpreamble + +\postamble +End of customized bst file +\endpostamble + +\keepsilent + +\askforoverwritefalse +\def\MBopts{\from{merlin.mbs}{% + head,\MBopta} +\from{german.mbs}{\MBopta} +\from{scrguide.mbs}{\MBopta} +\from{merlin.mbs}{tail,\MBopta}} +\def\MBopta{% + exlang%: External language file +% ,cite%: Cite key +% ,alfph,alf-f%: Alpha style, Jones90 +% ,alph,alf-1%: Alpha style, Jon90 + ,alph%: Alpha style, Jon90 or JWB90 +% ,ay%: Author-year +% %(def) Numerical +%-------------------- +% ,html,htdes%: Hypertext with keys +% ,html,htlist%: Hypertext list +% ,html%: Hypertext + %: (def) Normal LaTeX +%-------------------- +% ,lang%: Add language field + %: (def) No language field +%-------------------- +% ,annote%: Annotations + %: (def) No annotations +%-------------------- + ,vonx%: Sort without von part +% %(def) Sort on von part +%-------------------- +% ,nm-revv1%: First name reversed, with full names +% ,nm-rev1%: Only first name reversed, initials +% ,nm-rvv%: Surname + spaceless initials +% ,nm-rvx%: Surname + pure initials +% ,nm-rv%: Surname + dotless initials +% ,nm-rev%: Surname + initials +% ,nm-init,ed-au%: Initials + surname +% ,nm-revf%: Full, surname first + ,ed-au%: Full, surname last +%-------------------- +% ,aunm-sl%: Names separated by slash +% ,aunm-semi%: Names separated by semi-colon + %: (def) Author names separated by commas +%-------------------- +% ,nmdash%: Repeated author/editor names replaced by dash + %: (def) Author/editor names always present +%-------------------- + ,nmlm%: Limited authors +% %(def) All authors +%-------------------- + ,x2%: Maximum of 2 authors + ,m2%: Minimum of 2 authors +% ,nmft,nmft-def%: User defined author font +% ,nmft,nmft-bf%: Bold authors +% ,nmft,nmft-it%: Italic authors + ,nmft,nmft-sc%: Small caps authors +% %(def) Normal font for author names +%-------------------- +% ,fnm-def%: First names in user defined font +% ,fnm-rm%: First names in normal font + %: (def) First names same font as surnames +%-------------------- + ,nmfted%: Editors incollection like authors +% %(def) Editors incollection normal font +%-------------------- + ,nmand-rm%: `And' in normal font +% %(def) `And' in author font +%-------------------- +% ,dt-end%: Date at very end + ,dt-jnl%: Date part of journal spec. +% ,dt-beg%: Date after authors +% %(def) Date at end +%-------------------- +% ,yr-blk%: Date preceded by space +% ,yr-com%: Date preceded by comma +% ,yr-per%: Date preceded by period +% ,yr-col%: Date preceded by colon +% ,yr-brk%: Date in brackets +% ,yr-par%: Date in parentheses + %: (def) Plain month and year +%-------------------- +% ,xmth%: Date is year only + %: (def) Date is month and year +%-------------------- +% ,dtrev%: Date as year month + %: (def) Date as month year +%-------------------- +% ,yrp-x%: No punct. after date +% ,yrp-per%: Period after date +% ,yrp-semi%: Semi-colon after date +% ,yrp-col%: Colon after date + %: (def) Date with standard block punctuation +%-------------------- +% ,yrpp-xsp%: No space after date + %: (def) Space after date +%-------------------- +% ,dtbf%: Date in bold face + %: (def) Date in normal font +%-------------------- +% ,tit-qq,qt-g,qx%: Title in guillemets +% ,tit-qq,qx%: Title in double quotes +% ,tit-qq,qt-s,qx%: Title in single quotes +% ,tit-qq,qt-g%: Title and punctuation in guillemets +% ,tit-qq%: Title and punctuation in double quotes +% ,tit-qq,qt-s%: Title and punctuation in single quotes + ,tit-it%: Title italic +% %(def) Title plain +%-------------------- + ,atit-u%: Title style +% %(def) Sentence style +%-------------------- +% ,jtit-x%: No article title + %: (def) Article title present +%-------------------- +% ,jxper%: Dotless journal names + %: (def) Periods in journal names +%-------------------- +% ,jttl-rm%: Journal title normal + %: (def) Journal title italics +%-------------------- +% ,thtit-a%: Thesis title like article + %: (def) Thesis titles like books +%-------------------- + ,trtit-b%: Tech. report title like books +% %(def) Tech. report title like articles +%-------------------- +% ,trnum-it%: Tech. report and number italic + %: (def) Tech. report and number plain +%-------------------- +% ,vol-2bf%: Volume and number bold +% ,vol-bf%: Volume bold +% ,vol-it%: Volume italic + %: (def) Volume plain +%-------------------- +% ,vnum-x%: Journal vol, without number +% ,vnum-b%: Journal vol number +% ,vnum-h%: Journal vol, \# number +% ,vnum-nr%: Journal vol, no. num +% ,vnum-cm%: Journal vol, num +% ,vnum-sp%: Journal vol (num) + %: (def) Journal vol(num) +%-------------------- +% ,volp-blk%: Volume with blank +% ,volp-com%: Volume with comma +% ,volp-semi%: Volume with semi-colon + ,volp-sp%: Volume with colon and space +% %(def) Volume with colon +%-------------------- +% ,jdt-pc%: Year, comma, pages +% ,jdt-p%: Year with pages + ,jdt-vs%: Journal vol (year) +% ,jdt-v%: Journal vol(year) +% %(def) Journal year like others +%-------------------- +% ,jpg-1%: Only start page number + %: (def) Start and stop page numbers +%-------------------- +% ,pgsep-p%: Period inserted over 9999 + ,pgsep-s%: Thin space inserted over 9999 +% ,pgsep-c%: Comma inserted over 9999 +% %(def) No separators for large page numbers +%-------------------- + ,jwdpg%: Include `page' in articles +% %(def) Article pages numbers only +%-------------------- +% ,pp-last%: Pages at end + %: (def) Pages given mid text +%-------------------- + ,jwdvol%: Include `volume' in articles +% %(def) Article volume as number only +%-------------------- +% ,num-xser%: Allows number without series + %: (def) Standard BibTeX +%-------------------- +% ,numser%: Just before publisher + %: (def) After chapter and pages +%-------------------- +% ,jnm-x%: Space after journal + %: (def) Comma after journal +%-------------------- +% ,btit-rm,bt-rm%: Book title plain + %: (def) Book title italic +%-------------------- +% ,bkpg-x%: Pages in book bare +% ,bkpg-par%: Pages in book in parentheses + %: (def) Pages in book plain +%-------------------- +% ,pg-bk%: For book: 345 pages + %: (def) Total book pages not printed +%-------------------- +% ,add-pub%: Address: Publisher + %: (def) Publisher, address +%-------------------- +% ,pub-date,pub-xpar,pub-xc%: Publisher and date, no parentheses, no comma +% ,pub-date,pub-xpar%: Publisher and date without parentheses +% ,pub-date,pub-xc%: Publisher and date in parentheses, no comma +% ,pub-date%: Publisher and date in parentheses +% ,pub-par%: Publisher in parentheses + %: (def) Publisher as normal block +%-------------------- +% ,pre-edn%: Publisher after edition +% ,pre-pub%: Publisher before chapter, pages + %: (def) Publisher after chapter, pages +%-------------------- +% %(def) No ISBN + ,isbn%: Include ISBN +%-------------------- +% %(def) No ISSN + ,issn%: Include ISSN +%-------------------- +% ,url,url-nl%: URL on new line +% ,url,url-nt%: URL as note +% ,url,url-blk%: Include URL + ,url,url-nl%: (def) URL on new line +%-------------------- +% ,edparc,bkedcap%: `Name, (Editor)' +% ,edparc%: `Name, (editor)' + ,edpar,bkedcap%: `Name (Editor),' +% ,edpar%: `Name (editor),' +% %(def) Word `editor' after name +%-------------------- +% ,edby-par,edbyy%: Booktitle (.., editor) +% ,edby,edbyy%: Booktitle, .., editor +% ,edby-parc,edbyx%: Booktitle, (editor..) +% ,edby-par,edbyx%: Booktitle (editor..) +% ,edby,edbyw%: Booktitle, (editor) .. +% ,edby,edbyx%: Booktitle, editor .. +% ,edby-parc%: Booktitle, (edited by ..) +% ,edby-par%: Booktitle (edited by ..) +% ,edby%: Booktitle, edited by .. + %: (def) .., editor, booktitle +%-------------------- +% ,blk-tita%: Period after titles of articles +% ,blk-tit%: Period after titles of articles, books, etc +% ,blk-com,com-blank%: Blanks between blocks +% ,blk-com,com-semi%: Semi-colon between blocks + ,blk-com%: Comma between blocks +% %(def) \newblock after blocks +%-------------------- +% ,blknt%: Notes preceded by period + %: (def) Notes have regular punctuation +%-------------------- + ,au-col%: Author block with colon +% %: (def) Author block normal +%-------------------- +% ,in-x%: No word `in' +% ,in-col%: Colon after `in' + %: (def) Space after `in' +%-------------------- +% ,injnl%: Add `in' before journal name + %: (def) No `in' before journal name +%-------------------- +% ,fin-bare%: No period at end + %: (def) Period at very end +%-------------------- + ,german%: German language +% ,pp%: `Seite' abbreviated + %: (def) `Seite(n)' +%-------------------- +% ,ed%: `Herausgeber' abbreviated + %: (def) `Herausgeber' +%-------------------- +% ,abr%: Abbreviations + %: (def) No abbreviations +%-------------------- + ,ord%: Numerical editions +% %(def) Write out editions +% ,xedn%: Editions as in database +%-------------------- + %: (def) PhD as `Dissertation' +% ,ger-phd%: PhD as `Doktorarbeit +%-------------------- +% ,jabr%: Abbreviated journal names + %: (def) Full journal names +%-------------------- +% ,varand%: Use \BIBand +% ,amper%: Use ampersand + %: (def) Use word `and' +%-------------------- +% ,and-com%: Comma even with 2 authors + ,and-xcom%: No comma before `and' +% %(def) Comma before `and' +%-------------------- +% ,xand%: No `and' + %: (def) With `and' +%-------------------- + ,etal-rm%: Roman et al +% ,etal-it%: Italic et al +% %(def) Plain et al +%-------------------- +% ,em-ul%: Underlining +% ,em-x%: No italics +% ,em-it%: Use true italics + %: (def) Use emphasis +%-------------------- + ,nfss%: NFSS +% %(def) No NFSS +%-------------------- +,{% + }} +\generate{\file{scrguide.bst}{\MBopts}} +\endbatchfile diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.gst b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.gst new file mode 100644 index 00000000000..d00586a733c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.gst @@ -0,0 +1,33 @@ +% MakeIndex-Style fuer die Aenderungsliste der KOMA-Script-Anleitung +% Dies basiert auf "scrguide.ist" +% Aenderungen: +% 2000-06-10 MK: encap wieder auf '|' geaendert, damit hyperref +% problemlos funktioniert. +% 2001-08-11 MK: die Ueberschrift "Symbols" wird unterdrueckt. +% +% Aufruf: +% makeind(e)x -g -r -s scrguide.gst scrguide.glo -oscrguide.chn +% + +level '>' +actual '=' +encap '|' +quote '~' +% +% ein 'small'er Index macht sich irgendwie besser und spart Papier +preamble "\\begin{thechangelist}\n" +postamble "\n\\end{thechangelist}\n" +% +% und Punkte sind sowieso immer gut (es sei denn, sie liegen in Flensburg) +delim_0 "~\\dotfill~" +delim_1 "~\\dotfill~" +delim_2 "~\\dotfill~" +% +% Bitte keine Indexbuchstaben +headings_flag 0 +% +% Wir verwenden ein anderes Schluesselwort +keyword "\\glossaryentry" +% +% Ende der Datei `scrguide.gst' + diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.ist b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.ist new file mode 100644 index 00000000000..2a415626b24 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.ist @@ -0,0 +1,32 @@ +% MakeIndex-Style fuer die KOMA-Script-Anleitung +% Dies ist auf meinen Mist gewachsen (Harald Sommerfeldt) +% Aenderungen: +% 2000-06-10 MK: encap wieder auf '|' geaendert, damit hyperref +% problemlos funktioniert. +% 2001-08-11 MK: die Ueberschrift "Symbols" wird unterdrueckt. +% +% Aufruf: +% makeind(e)x -g -r -s scrguide.ist scrguide.idx +% + +level '>' +actual '=' +encap '|' +quote '~' +% +% ein 'small'er Index macht sich irgendwie besser und spart Papier +preamble "\\begin{theindex}\\small\n" +postamble "\n\\end{theindex}\n" +% +% und Punkte sind sowieso immer gut (es sei denn, sie liegen in Flensburg) +delim_0 "\\ \\hspace{0pt plus 1fil}\\penalty0\\null\\nobreak\\dotfill~" +delim_1 "~\\dotfill\\penalty0\\ " +delim_2 "~\\dotfill\\penalty0\\ " +% +% fehlen nur noch die Indexbuchstaben zu unserem Gl"uck +heading_prefix "\\indexsection{" +heading_suffix "}\n" +headings_flag 1 +symhead_positive "" +% +% Ende der Datei `scrguide.ist' diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.mbs b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.mbs new file mode 100644 index 00000000000..a9041ed07c0 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide.mbs @@ -0,0 +1,145 @@ +%\iffalse THIS IS A META COMMENT +% File: scrguide.mbs +% Copyright 2001 Markus Kohm +% E-mail: markus.kohm@gmx.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is part of the KOMA-Script bundle, +%==================================================================== +% A Journal Definition File for extra journals +% to be included with other master bibliography style files +%-------------------------------------------------------------------- +% (See version and date in the \ProvidesFile command below) +%-------------------------------------------------------------------- +% This file is self-documenting: simply LaTeX it! +%==================================================================== +% + %------------------------------------------------------------------- + % Begin module: +%\fi + % \ProvidesFile{scrguide.mbs}[2001/03/22 0.1] +%\iffalse +%<*a&!a> +% The following ensures that the driver part is not seen by makebst +% The driver part must not contain any \end other than \end{document} ! +\ifx\endoptions\undefined\let\tempx=\relax\else + \long\def\tempx#1\end#2{}\fi\tempx +% +%<*driver> + \NeedsTeXFormat{LaTeX2e}% + \documentclass[a4paper,10pt,twoside]{article}% + \usepackage{doc}% + \raggedbottom + \CodelineNumbered + \RecordChanges + % Comment out next line to print coding + \OnlyDescription + \setlength{\oddsidemargin}{0.5\paperwidth} + \addtolength{\oddsidemargin}{-0.5\textwidth} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\oddsidemargin} + +\begin{document} + \DocInput{scrguide.mbs} +\end{document} +% +% END OF META COMMENT \fi +% \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} +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% +% \changes{0.1}{2001/03/22}{Initial contributed version} +% +% \pagestyle{myheadings} +% \markboth{Markus Kohm}{Extra Journal Names} +% +% \title{{\bfseries Extra Journal Definition File}\\ +% for master bibliographic style files} +% +% \author{Markus Kohm} +% +% \GetFileInfo{scrguide.mbs} +% \date{This paper describes file \texttt{\filename},\\ +% version \fileversion{} from \filedate} +% +% \maketitle +% +% \MakeShortVerb{\|} +% +% \parskip=1ex \parindent=0pt +% +% \newcommand{\btx}{{\sc Bib}\TeX} +% \newcommand{\dtx}{\textsf{docstrip}} +% +% \section{Introduction} +% +% This file adds a list of preprogrammed extra journal names to +% bibliographic style files, in both full and abbreviated versions. +% These defined journal names will be added to those in the main master +% bibliography style file. +% +% This is not a self-sufficient \texttt{.mbs} file, but rather may +% be used together with one that contains support for +% external definition files. +% % +% See the documentation for \texttt{makebst} for formatting details. +% +% \section{The Menu Information} +% +% All the menu information is nested between \dtx{} guard options +% |%<*options>| \dots\ |%|, and the last command is +% |\endoptions|. The rest of the file is nested between |%<*!options>| +% \dots\ |%| in order to exclude it if \dtx{} is used to +% extract only the menu information. +% +% A journal-names files should contain at most only one option, \texttt{jabr}. +% This is because \texttt{merlin} version~3.5 can now handle several +% journal-name files, but does not look into them for the options, but +% rather asks for \texttt{jabr} from the main file. For compatibility with +% older versions, the option menu must be kept here. +% +% \begin{macrocode} +%<*options> +\mes{^^JEXTRA JOURNAL NAMES:} +\optdef{*}{}{Full extra journal names}{} +\optdef{a}{jabr}{Abbreviate extra names}{for journals} +\getans +\endoptions +% +% \end{macrocode} +% +% \StopEventually{\PrintChanges} +% +% \section{The Coding} +% \begin{macrocode} +%<*!options> +%<*jabr> +MACRO{DTK}{"Die \TeX\-nische Ko\-m\^^b{o}\-die"} +MACRO{TUGboat}{"TUGboat"} +MACRO{TTN}{"\TeX{} and TUG News"} +MACRO{KOMAScript}{\KOMAScript} +% +% + % End module: scrguide.mbs +% \end{macrocode} +% \Finale diff --git a/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide2.tex b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide2.tex new file mode 100644 index 00000000000..3c65a16c78c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrguide/scrguide2.tex @@ -0,0 +1,1081 @@ +\ProvidesFile{scrguide2.tex}[2004/09/22 KOMA-Script Anleitung/Manual] +\newcommand*{\mainfilename}{scrguide2.tex} +% ============================================================================ +% scrguide2.tex +% Copyright (c) 2001-2002 Markus Kohm and the authors. +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms of the LaTeX +% Project Public License Version 1.0 distributed together with this file. See +% LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the main +% documentation is german. There may also be an english documentation. See +% readme.txt, if you search for it. +% ---------------------------------------------------------------------------- +% scrclass2.tex +% Copyright (c) 2001-2002 Markus Kohm und bei den weiteren Autoren. +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public Licence +% Version 1.0, wie sie zusammen mit dieser Datei verteilt wird, +% weiterverbreitet und/oder modifiziert werden. Siehe dazu auch LEGAL.TXT oder +% LEGALDE.TXT. +% +% Dieses Paket ist fuer den deutschen Sprachraum konzipiert. Daher ist auch +% diese Anleitung komplett in Deutsch. Moeglicherweise existiert auch eine +% englische Version der Anleitung. Falls Sie eine solche benoetigen, schauen +% Sie bitte in liesmich.txt nach, ob eine solche vorhanden ist. +% ============================================================================ +% +% Module: Hauptdokument +% Authors: Markus Kohm (MJK) +% Contents: Alle Definitionen sowie das Grundgeruest des Dokuments. +% Languages: English, Deutsch +% Characterset of comments: +% US-ASCII +% + +% ---------------------------------------------------------------------------- +% Predefinition +% Vorabdefinition +% ---------------------------------------------------------------------------- +\newcommand*{\thisfilename}{\mainfilename} + +% Date of the newest file will become docdate. +\newcommand{\OrigProvidesFile}{} +\let\OrigProvidesFile\ProvidesFile +\makeatletter +\newcommand*{\@SplitDate}{} +\def\@SplitDate#1/#2/#3 #4\eol{% + \def\thisisodate{#1-#2-#3}% + \count0=#1#2#3\relax + \ifnum \count0>\maxdate\relax + \xdef\maxdate{\the\count0}% + \xdef\docdate{\thisisodate} + \fi + \immediate\write\@auxout{% + \string\gdef\string\maxdate{\maxdate}% + \string\gdef\string\docdate{\docdate} + }% +} +\renewcommand*{\ProvidesFile}[1]{% + \renewcommand*{\thisfilename}{#1}% + \OrigProvidesFile{#1}% +} +\newcommand*{\SplitFileName}{} +\def\SplitFileName#1.#2\eol{\def\@tempa{#1}\def\@tempb{#2}}% +\def\@providesfile#1[#2]{% + \wlog{File: #1 #2}% + \edef\@tempa{#1}% + \expandafter\xdef\csname ver@\@tempa\endcsname{#2}% + \expandafter\SplitFileName\@tempa\eol + \def\@tempa{tex}\ifx\@tempa\@tempb + \edef\@tempa{\csname ver@\thisfilename\endcsname}% + \expandafter\@SplitDate\@tempa\eol + \fi + \endgroup +} +\AtBeginDocument{% + \renewcommand*{\thisfilename}{\mainfilename}% + {% + \edef\@tempa{\csname ver@\thisfilename\endcsname}% + \expandafter\@SplitDate\@tempa\eol + }% +} +\makeatother +\newcommand*{\docdate}{\AtEndDocument{% + \typeout{Document Warning: Rerun to get \string\docdate\space right!}}} +\newcommand*{\maxdate}{0} + +% ---------------------------------------------------------------------------- +% Language dependencies +% Sprachabhaengigkeiten + +% The LaTeX names of the supported languages +% Die LaTeX namen der unterstuetzen Sprachen +\providecommand{\NameGerman}{ngerman}% Neue Deutsche Rechtschreibung +\providecommand{\NameEnglish}{english} + +% Primary language is german +% Die Primaere Dokumentation wird auf deutsch erstellt +\ifx\UseLanguage\undefined\let\UseLanguage\NameGerman\fi + +% Some names, if not already defined +\providecommand*{\LanguageShortcut}{} +\providecommand{\AutoRefTextFarAway}{auf } +\providecommand{\MyPrelimText}{% + Diese Dokumentation ist im Entwurfsstadium (\thisfilename: + \docdate).} +\providecommand{\SubTitleName}{ein wandelbares \LaTeXe{}-Paket} +\providecommand{\ExampleName}{Beispiel} +\providecommand{\ClassName}{Klasse} +\providecommand{\PackageName}{Paket} +\providecommand{\EnvironmentName}{Umgebung} +\providecommand{\OptionName}{Option} +\providecommand{\MacroName}{Befehl} +\providecommand{\CounterName}{Z\"ahler} +\providecommand{\LengthName}{L\"ange} +\providecommand{\PseudoPrefix}{Pseudo-} +\providecommand{\PLengthName}{\PseudoPrefix\LengthName} +\providecommand{\VariableName}{Variable} +\providecommand{\PagestyleName}{Seitenstil} +\providecommand{\StyleName}{Stil} +\providecommand{\FloatstyleName}{float-\StyleName} +\providecommand{\FileName}{Datei} +\providecommand{\TitleText}{Das\ \KOMAScript-Paket} +\providecommand{\ManualName}{Anleitung} +\providecommand{\ManualFromText}{Autoren der Anleitung:} +\providecommand{\NoteName}{Notizen} +\providecommand{\FontElementName}{Element} +\providecommand{\genIndexName}{Allgemeiner Index} +\providecommand{\cmdIndexName}{Index der Befehle, Umgebungen und + Variablen} +\providecommand{\cmdIndexShortName}{Index der Befehle etc.} +\providecommand{\lenIndexName}{Index der L\"angen und Z\"ahler} +\providecommand{\lenIndexShortName}{Index der L\"angen etc.} +\providecommand{\elmIndexName}{Index der Elemente mit + M\"oglichkeit zur Schriftumschaltung} +\providecommand{\elmIndexShortName}{Index der Elemente} +\providecommand{\filIndexName}{Index der Dateien, Klassen und Pakete} +\providecommand{\filIndexShortName}{Index der Dateien etc.} +\providecommand{\optIndexName}{Index der Klassen- und + Paketoptionen} +\providecommand{\optIndexShortName}{Index der Optionen} +\providecommand{\ChangeListName}{\"Anderungsliste} +\providecommand{\LegalText}{% + Haftungsauschluss:\\ + Es wird keinerlei Haftung \"ubernommen f\"ur irgendwelche Sch\"aden, + die aus der Benutzung der Bestandteile des hier beschriebenen + Paketes resultieren. Siehe hierzu auch den Text der Datei + \File{LEGALDE.TXT}, die zwingender Bestandteil des Paketes ist.} +\providecommand{\LegalTextB}{% + Vorabversion ohne Optimierung des Seitenumbruchs\par + \vspace{\baselineskip} + Diese Anleitung ist als Bestandteil von \KOMAScript{} frei + im Sinne der \LaTeX{} Project Public License Version 1.0. Eine f\"ur + \KOMAScript{} g\"ultige deutsche \"Ubersetzung liegt \KOMAScript{} in + der Datei \File{LEGALDE.TXT} bei. Diese Anleitung -- auch in + gedruckter Form -- darf nur zusammen mit den \"ubrigen Bestandteilen + von \KOMAScript{} weitergegeben und verteilt werden. Eine Verteilung + der Anleitung unabh\"angig von den \"ubrigen Bestandteilen von + \KOMAScript{} bedarf der ausdr\"ucklichen Genehmigung der Autoren.} +\providecommand{\WhoIsWho}{% + Die folgenden Personen waren an \KOMAScript{} auf die eine oder + andere Art beteiligt: \textbf{Stefan Brill} (Korrektur), + \textbf{Christian Buss} (Korrektur), \textbf{Dr.~Engelbert Buxbaum} + (\"Ubersetzung), \textbf{Jo\~ao Canas Ferreira} (\"Ubersetzung), + \textbf{Michael Dewey} (Sprachanpassung), \textbf{Luzia Dietsche} + (Beta-Test), \textbf{Georg Grandke} (\"Ubersetzung, Korrektur), + \textbf{Ralph J. Hangleiter} (Sprachanpassung), \textbf{Henk + Jongbloets} (Sprachanpassung), \textbf{Axel Kielhorn} + (\Class{scrlettr}, \Package{addrconv}, Ideen), \textbf{Markus Kohm} + (Entwicklung, Dokumentation, Übersetzung, Support, Release), + \textbf{Torsten Kr\"uger} (Beta-Test, Korrektur, kritische Fragen, + Ideen, Motor), \textbf{Enrico Kunz} (Dokumentation, Korrektur), + \textbf{Werner Lemberg} (\"Ubersetzung), \textbf{Branka + Lon\v{c}arevi\'c} (Sprachanpassung), \textbf{Alejandro + L\'opez-Valencia} (Sprachanpassung), \textbf{Colin Marquardt} + (\"Ubersetzung), \textbf{Peter Marx} (Release), \textbf{Jens-Uwe + Morawski} (Dokumentation, \"Ubersetzung, Koordination, Korrektur, + Ideen, Motor), \textbf{Simone Naldi} (Sprachanpassung), + \textbf{Frank Neukam} (\textsc{Script} und \textsc{Script2.0}), + \textbf{Thomas Neumann} (Dokumentation, Korrektur), \textbf{Rolf + Niepraschk} (Korrektur), \textbf{Carsten Schurig} (Beta-Test), + \textbf{Axel Sommerfeldt} (Dokumentation) sowie diverse nette + Menschen, die Bugreports oder aufmunternde Mails geschrieben, + Verbesserungen und Erweiterungen gew\"unscht, beschrieben und + teilweise auch angeboten haben. Wer auch immer meint, ich habe ihn + oder sie vergessen, m\"oge sich auf der Stelle bei mir melden.} +\providecommand{\IndexPreambleText}{% + Fett hervorgehobene Zahlen geben die Seiten der Erkl\"arung zu einem + Stichwort wieder. Normal gedruckte Zahlen verweisen hingegen auf + Seiten mit zus\"atzlichen Informationen zum jeweiligen Stichwort.} +\providecommand{\ChangeListPreambleText}{% + Sie finden im Folgenden eine Auf\/listung aller wesentlichen + \"Anderungen der Benutzerschnittstelle im \KOMAScript-Paket der + neueren Zeit. Die Liste ist sortiert nach Klassen beziehungsweise + Paketen und Versionen. Zu jeder Version ist dann jeweils angegeben, + auf welchen Seiten dieser Dokumentation die \"Anderungen zu finden + sind. Auf den entsprechenden Seiten finden Sie dazu passende + Randmarkierungen.} +\providecommand{\CTANserver}{ftp.dante.de} +\providecommand{\BibPreambleText}{% + Sie finden im Folgenden eine ganze Reihe von Literaturangaben. Auf + all diese wird im Text verwiesen. In vielen F\"allen handelt es sich + um Dokumente oder ganze Verzeichnisse, die im Internet verf\"ugbar + sind. In diesen F\"allen ist statt eines Verlages eine URL angegeben. + Wird auf ein \LaTeX-Paket verwiesen, so findet der Verweis in der + Regel in der Form \glqq \url{CTAN://}\emph{Verweis}\grqq{} statt. + Der Pr\"afix \glqq \url{CTAN://}\grqq{} steht dabei f\"ur das + \TeX-Archiv eines jeden CTAN-Servers oder -Spiegels. Sie k\"onnen + den Pr\"afix beispielsweise durch + \url{ftp://\CTANserver/tex-archive/} ersetzen. Bei + \LaTeX-Paketen ist au\ss erdem zu beachten, dass versucht wurde, + die Version anzugeben, auf die im Text Bezug genommen wurde. Bei + einigen Paketen war es mehr ein Ratespiel, eine einheitliche + Versionsnummer und ein Erscheinungsdatum zu finden. Auch muss die + angegebene Version nicht immer die neueste verf\"ugbare Version sein. + Wenn Sie sich ein Paket neu besorgen und installieren, sollten Sie + jedoch zun\"achst immer die aktuelle Version ausprobieren. Bevor Sie + ein Dokument oder Paket von einem Server herunterladen, sollten Sie + au\ss erdem \"uberpr\"ufen, ob es sich nicht bereits auf Ihrem + Rechner befindet.} +% >>> BEGIN layout.tex TEXT-SAMPLES, german +% CHANGES ONLY BY THE AUTHOR OF layout.tex +% (1) example text command; the default definition (50) returns +% the whole text. +\providecommand{\XmpText}[1][50]{% + \ifnum #1<51 + Dieser Blindtext wird gerade von 130 Millionen Rezeptoren + Ihrer Netzhaut erfasst. + \ifnum #1>1 + Die Zellen werden dadurch in einen Erregungszustand versetzt, + \ifnum #1>2 + der sich vom Sehnerv in den hinteren Teil Ihres + \ifnum #1>3 + Gehirns ausbreitet. + Von dort aus \"ubertr\"agt sich die Erregung in + Sekundenbruchteilen auch in andere Bereiche Ihres + Gro\ss hirns. + Ihr Stirnlappen wird stimuliert. + Von dort aus gehen jetzt Willensimpulse aus, die + \fi\fi\fi + \fi + \ifnum #1>49 + Ihr zentrales Nervensystem in konkrete Handlungen umsetzt. + Kopf und Augen reagieren bereits. + Sie folgen dem Text, nehmen die darin enthaltenen Informationen + auf und leiten diese \"uber den Sehnerv weiter. + \fi} +% +% (2) the next two commands are language-dependent, since +% in some languages additional commands may required +\providecommand{\XmpTopText}{\XmpText[3]} +\providecommand{\XmpBotText}{\XmpText[2]} +% (3) Randnotizen/margin notes +\providecommand{\XmpMarginTextA}{Netzhaut} +\providecommand{\XmpMarginTextB}{(\textit{Retina})} +% (4) scrpage Markierungen/marks +\providecommand{\ScrpageMark}{\marginline{\small\sffamily\slshape scrpage}} +\providecommand{\ScrpageNote}{\marginline{\small\sffamily\slshape scrpage!}} +% +% <<< END layout.tex TEXT-SAMPLES + +% Laden der Kapitel +% Load chapters +\providecommand*{\LoadChapters}{% + \include{einleit} % Einleitung + \include{satzspgl} % Der Satzspiegel mit typearea + \include{hauptcls} % Die Hauptklassen scrbook, scrreprt, scrartcl + \include{layout} % Kopf- und Fusszeilen mit scrpage(2) + \include{datmzeit} % scrdate und scrtime + \include{brief} % Die scrlettr Klasse + \include{adressen} % scraddr + \include{adrkonv} % Adresskonvertierung mit addrconv + \include{datladen} % Paketabh"angigkeiten mit scrlfile beherrschen +} + +% End of language dependencies +% Ende der Sprachabhaengigkeiten +% ---------------------------------------------------------------------------- + +% ---------------------------------------------------------------------------- +% Class and packages / Klasse und Pakete +% You should only use classes and packages from KOMA-Script or base or tools. +% Everything else should be done writing your own macros (see below). +% Nach Moeglichkeit sollten nur solche Klassen und Pakete verwendet werden, +% die entweder zu KOMA-Script oder zu base oder tools gehoeren. Alles andere +% sollte notfalls durch eigene Makrodefinitionen (s. u.) abgedeckt werden. + +\documentclass[% + \UseLanguage,% language setting, used by many packages + pagesize,% write pagesize to DVI or PDF + 10pt,% use this font size + a5paper,% use ISO A5 + headinclude,% head is par of type area + 1headlines,% need only one line for the head + DIV15,% same value as with headexclude +% DIVcalc,% typearea has to calculate DIV for good linewidth + bibtotoc,% write bibliography-chapter to table of contents + idxtotoc,% write index-chapter to table of contents + cleardoubleplain,% \cleardoublepage generates pages with pagestyle plain + smallheadings,% use small version of headings (better at A5) + listsleft,% improved list of tables + final% final version +% draft% draft version +]{scrbook} + +\usepackage[latin1]{inputenc} +\usepackage{% + scrdate,scrtime,% need by the chapter about them + varioref,% posibility of better references + ae,% hope we can change this soon + babel,% we use different languages + graphicx,% +% array,% +% longtable,% + makeidx% must be to create the index +} + +\begingroup + \def\KOMAScript{KOMA-Script} + \xdef\PDFTitleText{\TitleText} +\endgroup +\ifx\BUCH\undefined\else\InputIfFileExists{scrbook}{}{}\fi +\ifpdfoutput{% + \usepackage[pdftex,bookmarks,% + pdfcreator={LaTeX2e, KOMA-Script (scrbook), hyperref},% + pdfkeywords={TeX LaTeX KOMA-Script scrbook scrreprt + scrartcl scrlttr2 typearea scrtime scrdate + scraddr scrpage scrpage2 scrlfile},% + pdftitle=\PDFTitleText]{hyperref} +}{% Make shure, we're using hypertex not dvips + \usepackage[hypertex,bookmarks]{hyperref} +} + +\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} + +% Add \autopageref to hyperref: +\makeatletter +\DeclareRobustCommand{\autopageref}[1]{% + \expandafter\auto@setpageref\csname r@#1\endcsname + \@secondoffive + {#1}% +} + +\newcommand*{\auto@setpageref}[3]{% + \@safe@activestrue + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \def\@currentHtag{\pageautorefname~}% + \hyper@@link + {\expandafter\@fifthoffive#1}% + {\expandafter\@fourthoffive#1\@empty\@empty}% +% {\@currentHtag\expandafter#2#1\@empty\@empty\null}% +% {\expandafter\@fifthoffive#1}% +% {page.\expandafter\@secondoffive#1\@empty\@empty}% + {\@currentHtag\expandafter#2#1\@empty\@empty\null}% + \fi + \@safe@activesfalse +} + +\AtBeginDocument{\providecommand*{\pageautorefname}{\pagename}} + +\def\test@reftype#1.#2\\{% + \test@@reftype#1*\\% +} +\def\test@@reftype#1*#2\\{% + \@ifundefined{#1autorefname}{% + \@ifundefined{#1name}{% + \def\@currentHtag{}% + \@latex@warning{no tag name for #1 at \the\inputlineno}% + }{% + \def\@currentHtag{\csname#1name\endcsname~}% + }% + }{% + \def\@currentHtag{\csname#1autorefname\endcsname~}% + }% +} +\makeatother + +% autoname \subsection, \subsubsection ... same like \section +\providecommand*{\autorefnametillsection}{% + \let\subsectionautorefname=\sectionautorefname + \let\subsubsectionautorefname=\sectionautorefname + \let\paragraphautorefname=\sectionrefname + \let\subparagraphautorefname=\sectionrefname + % shouldn't be here, but it is easy this way: + \def\autoreftextfaraway##1{\AutoRefTextFarAway~\autopageref{##1}}% +} +\makeatletter +\addto\captionsenglish{\autorefnametillsection} +\addto\captionsngerman{\autorefnametillsection} +\AtBeginDocument{\autorefnametillsection} +\makeatother + +% Add \autovref to varioref: +\makeatletter +\DeclareRobustCommand\autovref{\@ifstar + {\let\vref@space\relax\autovr@f}% + {\let\vref@space\nobreakspace\autovr@f}} +\def\autovr@f#1{{% + \let\reftextfaraway\autoreftextfaraway + \leavevmode\unskip\vref@space + \autoref{#1}% + \@vpageref[\unskip]{#1}% +}} +\makeatother + +% Make CTAN:// be an alias of ftp://\CTANserver/tex-archive/ +\makeatletter +\def\url@#1{\expandafter\url@@#1\@nil} +\def\url@@#1://#2\@nil{% + \def\@tempa{#1}\def\@tempb{CTAN}\ifx\@tempa\@tempb + \hyper@linkurl{\Hurl{#1://#2}}{ftp://\CTANserver/tex-archive/#2}% + \else + \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}% + \fi +} +\makeatother + +\ifx\UseLanguage\NameGerman +% hyphenation +% Trennung + \hyphenation{% + Stan-dard-an-wei-sung Stan-dard-an-wei-sung-en + Da-tei-na-me Da-tei-na-men Da-tei-na-mens + Pa-pier-rand Pa-pier-ran-des + } +\fi + +\ifdim\overfullrule>0pt + \usepackage{showkeys,prelim2e}% Draft only / nur im Entwurfsstadium + % Hinweis: Mit showkeys funktioniert + % der haengende Einzug (z. B. + % in Bildunterschriften) nicht! + + \renewcommand{\PrelimText}{% + \textnormal{% + \footnotesize% + \PrelimTextStyle% + \PrelimWords{}}% + } + \renewcommand{\PrelimTextStyle}{\sffamily\itshape} + \renewcommand{\PrelimWords}{\MyPrelimText} +% +\fi + +\usepackage{mparhack} +% End of class and packages. +% Ende der Klasse und Pakete. +% ---------------------------------------------------------------------------- + +% ---------------------------------------------------------------------------- +% The markup commands of the hole document. +% Die im Gesamtdokument verwendeten Markup-Anweisungen. +% +% REMARK: Normaly you should not pack as much markup commands and +% definitions into the preamble. And you never should +% redefine or use internal macros of LaTeX kernel, classes or +% packages. It would be better to write your own package or +% class instead of. +% There is only one reason not to do so at this manual: We +% wanted to avoid disappointment of the usual user, having +% one more class or package at the bundle only used by this +% manual. +% Many of the following macros are stolen from other +% packages or classes, which where made to document packages +% and classes +% +% HINWEIS: Normalerweise sollte man die Preambel eines Dokuments nicht derart +% Markup-Anweisungen und Definitionen vollstopfen. Schon gar nicht +% sollte man interne Makros definieren oder verwenden. Stattdessen +% ist es sinnvoller, ein eigenes Paket (engl. package) oder eine +% eigene Klasse (engl. class) hierfuer zu erstellen. +% Im Falle dieser Anleitung wurde dies nur aus einem einzigen Grund +% nicht getan: Der reine Anwender sollte nicht dadurch verwirrt +% werden, dass eine weitere Klasse oder ein weiteres Paket existiert, +% das jedoch nicht dokumentiert ist. +% Diverse Makros, die im folgenden definiert sind, entstammen anderen +% Paketen und Klassen, die speziell fuer die Dokumentation von +% Paketen und Klassen erstellt wurden. + +% New, only defined for scrguide: +% Neu, fuer den scrguide: + +\newcommand*{\textsfrm}[1]{% + \begingroup + \edef\@tempa{\sfdefault}% + \ifx\@tempa\f@family\textrm{#1}\else\textsf{#1}\fi + \endgroup +} + +\DeclareRobustCommand*{\Class}[1]{\textsfrm{#1}} +\DeclareRobustCommand*{\Package}[1]{\textsfrm{#1}} +\DeclareRobustCommand*{\File}[1]{\texttt{#1}} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptII}{\textsc{Script-2}} +\ifx\KOMAScript\undefined% + \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +\fi + +\makeatletter +\DeclareRobustCommand{\BibTeX}{B\kern-.05em% + % Der folgende Hack stammt aus der Definition des + % Makros \LaTeX, siehe Datei `ltlogos.dtx' der + % LaTeX2e-Verteilung. + \hbox{$\m@th$% %% force math size calculations + \csname S@\f@size\endcsname \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + I\kern-.025emB}% + \kern-.08em% + \-\TeX% +} +\makeatother + +\newcommand*{\Var}[1]{\ensuremath{\textit{#1}}} +\newcommand*{\Const}[1]{\ensuremath{\textrm{#1}}} +\newcommand*{\Unit}[1]{\ensuremath{\,\textrm{#1}}} + +\DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\Option}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Environment}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Counter}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Length}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\PLength}[1]{\mbox{\PValue{#1}}} +\DeclareRobustCommand*{\Variable}[1]{\mbox{\PValue{#1}}} +\DeclareRobustCommand*{\FontElement}[1]{\PValue{#1}}% use \mbox? + +\DeclareRobustCommand*{\EMail}[1]{\textless #1\textgreater} +\DeclareRobustCommand*{\TextEMail}[1]{{\small\EMail{#1}}} + +% - parameter and argument in different cases: +% - Verschiedene Auftreten von Parametern/Argumenten: +\DeclareRobustCommand*{\PName}[1]{\mbox{\textit{#1}}}% Parametername +\DeclareRobustCommand*{\PValue}[1]{\texttt{#1}}% Parameterwert + +\DeclareRobustCommand*{\Parameter}[1]{% Parameter/Argument + \texttt{\{}\PName{#1}\texttt{\}}} +\DeclareRobustCommand*{\OParameter}[1]{% Parameter/Argument optional + \texttt{[%] + }\PName{#1}\texttt{%[ + ]}} +\DeclareRobustCommand*{\AParameter}[1]{% Parameter/Argument alternative + \texttt{(%) + }\PName{#1}\texttt{%( + )}} +\DeclareRobustCommand*{\PParameter}[1]{% Parameter/Argument as/als + % part of commands / Befehlsbestandteil + \texttt{\{#1\}}} + +\newenvironment{Example}{% + \begin{labeling}{{\sectfont\ExampleName:\ }} + \item[{\sectfont\ExampleName:\ }]} + {\end{labeling}} + +\makeatletter +\newsavebox\ShowOutputBox +\newenvironment{ShowOutput}[1][0pt]{\par + \begin{lrbox}{\ShowOutputBox}% + \begin{minipage}{.9\linewidth}% + \vspace*{\baselineskip}\vspace{-#1}% +}{% + \end{minipage} + \end{lrbox}% + \setlength{\unitlength}{1pt}% + \setlength{\@tempdima}{\ht\ShowOutputBox}% + \addtolength{\@tempdima}{\dp\ShowOutputBox}% + \setlength{\@tempdima}{.75\@tempdima}% + \edef\MidY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{5pt}% + \edef\HighY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{-10pt}% + \edef\LowY{\strip@pt\@tempdima}% + \addtolength{\@tempdima}{5pt}% + \setlength{\@tempdima}{.9\linewidth}\edef\QuadIV{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.675\linewidth}\edef\QuadIII{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.45\linewidth}\edef\QuadII{\strip@pt\@tempdima}% + \setlength{\@tempdima}{.225\linewidth}\edef\QuadI{\strip@pt\@tempdima}% + \centering + \begin{picture}(\QuadIV,\MidY) + \qbezier(0,\MidY)(\QuadI,\HighY)(\QuadII,\MidY)% + \qbezier(\QuadII,\MidY)(\QuadIII,\LowY)(\QuadIV,\MidY) + \put(0,0){\makebox(\QuadIV,\MidY)[c]{% + \scalebox{.75}{\usebox{\ShowOutputBox}}% + }% + }% + \put(0,-5){\line(0,1){\HighY}}% + \put(\QuadIV,-5){\line(0,1){\HighY}}% + \qbezier(0,-5)(\QuadI,0)(\QuadII,-5)% + \qbezier(\QuadII,-5)(\QuadIII,-10)(\QuadIV,-5) + \end{picture}\par + \vspace{1ex plus 1ex minus .5ex}% +} +\makeatother + +\newenvironment{Explain}{% + \small\sffamily +}{\normalcolor\par} + + +% Aenderungsmarkierungen f"ur Dinge, die ab einer bestimmten Version +% neu sind oder geaendert wurden. Rein textuelle "Anderungen werden +% hier nicht erfasst. +\providecommand*{\ChangedAt}[2]{% + \marginline{\footnotesize\fbox{\strut#1}}% + \glossary{#2>#1|indexrm}% +} +\newcommand*{\OnlyAt}[1]{% + \marginline{\def\and{,\\}\footnotesize #1}% +} +\makeglossary +\makeatletter +\newcommand\printchangelist{\@input@{\jobname.chn}} +\newenvironment{thechangelist} + {\setchapterpreamble{\ChangeListPreambleText\par\bigskip} + \addchap{\ChangeListName} + \markboth{\ChangeListName}{\ChangeListName} + \setlength{\parindent}{0pt} + \setlength{\parskip}{0pt plus .3pt} + \def\and{,\ } + \let\item\@idxitem} + {\clearpage} +\makeatother + +% >>> BEGIN layout.tex EXAMPLE-COMMANDS +% The commands can also be used in other parts of the guide, +% in order make some examples better readable. +% CHANGES ONLY BY THE AUTHOR OF layout.tex +% +\newenvironment{XmpTopPage} + {\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,35)% + \thinlines + \qbezier(0,5)(25,7)(50,5)\qbezier(50,5)(75,3)(100,5) + \put(0,5){\line(0,1){30}} + \thicklines + \put(100,5){\line(0,1){30}}\put(0,35){\line(1,0){100}} + \small}{\end{picture}\end{center}\vspace{-1.5\baselineskip}} +% +\newenvironment{XmpBotPage} + {\begin{center}\setlength{\unitlength}{1mm}\begin{picture}(100,37)% + \thinlines + \qbezier(0,35)(25,37)(50,35)\qbezier(50,35)(75,33)(100,35) + \put(0,5){\line(0,1){30}} + \thicklines + \put(100,5){\line(0,1){30}}\put(0,5){\line(1,0){100}} + \small}{\end{picture}\end{center}\vspace{-1.5\baselineskip}} +% +\newcommand{\XmpSetText}[2][\XmpText]{% + \put(#2){\makebox(0,0)[tl]{\parbox{70mm}{#1}}}} +% +\newcommand{\XmpMarginNote}[1]{% + \put(#1){\makebox(0,5)[tl]{\scriptsize\XmpMarginTextA}} + \put(#1){\makebox(0,5)[bl]{\scriptsize\XmpMarginTextB}}} +% +\newcommand{\XmpRule}[2]{\put(#1){\line(1,0){#2}}} +% +\newcommand{\XmpHeading}[3][\KOMAScript\hfill 3]{% + \put(#2){\makebox(#3,0)[l]{#1}}} +% +% <<< END layout.tex EXAMPLE-COMMANDS + + +% Change defaults of KOMA-Script +% Voreinstellungen von KOMA-Script aendern: +\renewcommand*{\sectfont}{\normalfont\normalcolor\sffamily\bfseries} +\renewcommand*{\capfont}{\normalfont\normalcolor\small} +\renewcommand*{\caplabelfont}{\normalfont\normalcolor\sffamily\bfseries} + +% Bibliography +\newcommand*{\urlprefix}{} + +% From ltxguide.cls with some modifications: +% - Load config file, if found. This is some early, but must be to +% avoid problems with redefinitions at ltxguide.cfg. +% Aus ltxguide.cls uebernommen und teilweise modifiziert: +% - Konfigurationsdatei laden, falls vorhanden. Dies geschieht genaugenommen +% wesentlich zu frueh. Allerdings koennte es sonst zu erheblichen Problemen +% kommen, falls in ltxguide.cfg kritische Redefinitionen vorgenommen werden. +\InputIfFileExists{ltxguide.cfg}{\typeout{``ltxguide.cfg'' loaded.}}{} + +% - macros to declare macros, environments and options. +% - Makros zur Deklaration von Makros, Umgebungen, Optionen. +\newenvironment{Declaration}% + {\par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \vspace{-\baselineskip}% + \noindent\hspace{-1em}% + \begin{tabular}{|l|}\hline\ignorespaces}% + {\\\hline\end{tabular}\nobreak\par\nobreak + \vspace{1.5\baselineskip}\vspace{-\baselineskip}% + \noindent\ignorespacesafterend} + +\iffalse% experimental (needs array-package) +\renewenvironment{Declaration}% + {\par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \vspace{-\baselineskip}% + \noindent +% \ifthispageodd{% +% \hspace*{\fill}% +% \begin{tabular}{@{}r!{\vrule width 1.2pt}} +% \multicolumn{1}{@{}r@{\vrule width 1.2pt}} +% {\rule[2ex]{1em}{1.2pt}}\\[-2ex]\ignorespaces% +% }{% + \hspace{-1em}% + \begin{tabular}{!{\vrule width 1.2pt}l@{}} + \multicolumn{1}{@{\vrule width 1.2pt}l@{}} + {\rule[2ex]{1em}{1.2pt}}\\[-2ex]\ignorespaces% +% }% + } + {\\\end{tabular}% +% \ifthispageodd{\hspace{-1em}}{}% + \nobreak\par\nobreak + \vspace{1.5\baselineskip}\vspace{-\baselineskip}% + \noindent\ignorespacesafterend} +\fi + +% - Index: +\makeindex % Oh, yes, we want one ... +% ... or maybe more +\newif\ifusemultiindex +\IfFileExists{\jobname-gen.ind}{\usemultiindextrue}{\usemultiindexfalse} +\ifusemultiindex +\makeatletter +\usepackage{multicol} + +\newcommand*{\printmultiindex}[3][]{% + \def\indexname{#2}% + \ifx\relax#1\relax\let\index@preamble=\relax + \else\def\index@preamble{#1}% + \fi + \label{idx:#3}% + \@input@{\jobname-#3.ind}% +} +\renewenvironment{theindex}{% + \setchapterpreamble{\index@preamble} + \begin{multicols}{2}[\idx@heading\vspace{-1\baselineskip}]% + \parindent\z@ + \setlength{\parskip}{\z@ \@plus .3\p@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + \let\item\@idxitem +}{% + \end{multicols}% +} + +\newcommand*{\CrossIndex}[3]{% + \Index{#1=\UseIndex{#2}\protect#1>#3=\UseIndex{#2}\SeeSign\protect#3}% +} + +\renewcommand*{\printindex}{% + \setchapterpreamble{\index@preamble}% + \addchap{\indexname}% + \let\index@preamble=\relax + \renewcommand*\idx@heading{% + \addsec{\indexname}% + \markright{\indexname}% + \ifx\index@preamble\relax + \else\index@preamble\let\index@preamble=\relax\fi + }% + \printmultiindex{\genIndexName}{gen}% + \printmultiindex[% + \CrossIndex{\MacroName}{gen}{\cmdIndexShortName}% + \CrossIndex{\EnvironmentName}{gen}{\cmdIndexShortName}% + \CrossIndex{\CounterName}{gen}{\cmdIndexShortName}% + \CrossIndex{\LengthName}{gen}{\cmdIndexShortName}% + ]{\cmdIndexName}{cmd}% + \printmultiindex[% + \CrossIndex{\LengthName}{gen}{\lenIndexShortName}% + \CrossIndex{\PLengthName}{gen}{\lenIndexShortName}% + \CrossIndex{\CounterName}{gen}{\lenIndexShortName}% + ]{\lenIndexName}{len}% + \printmultiindex[% + \CrossIndex{\FontElementName}{gen}{\elmIndexShortName}% + ]{\elmIndexName}{elm}% + \printmultiindex[% + \CrossIndex{\FileName}{gen}{\filIndexShortName}% + \CrossIndex{\PackageName}{gen}{\filIndexShortName}% + \CrossIndex{\ClassName}{gen}{\filIndexShortName}% + ]{\filIndexName}{fil}% + \printmultiindex[% + \CrossIndex{\OptionName}{gen}{\optIndexShortName}% + ]{\optIndexName}{opt}% +} +\makeatother +\fi + +\DeclareRobustCommand*{\SeeSign}{\ensuremath{\protect\rightarrow}~} +\newcommand*{\seeindex}[2]{\pageref{idx:#1}} + +\newcommand*{\AddSeeIndex}[4]{% +\ifusemultiindex + \Index[seeindex{#4}]{#1=\UseIndex{#2}#1>#3=\UseIndex{#2}\SeeSign#3}% +\fi +} + +\newcommand*{\indexsection}[1]{% + \ifx\empty#1\empty\else + \hspace{0pt plus 2fil}{{\sectfont #1}}\hspace{0pt plus + 1fil}\nopagebreak + \fi +} + +\makeatletter +\newcommand*{\IndexSeeAt}[6][\relax]{% + % #1 = optional entry note (\PagestyleName) + % #2 = Entry + % #3 = see-from-index to be used (cmd) + % #4 = see-to-index (gen) + % #5 = see-to-index name (\genIndexShortName) + % #6 = output command (\Macro) + \ifusemultiindex +% \edef\@tempa{idx@f@\string#1.\string#2.#3.#4}% + \edef\@tempa{idx@f@\string#2.#3.#4}% + \expandafter\ifx\csname \@tempa\endcsname\relax + \expandafter\gdef\csname \@tempa\endcsname{}% +% \ifx\relax#1\relax + \Index[seeindex{#4}]{% + #2=\UseIndex{#3}#6{#2}>#5=\UseIndex{#3}\SeeSign\protect#5}% +% \else +% \Index[seeindex{#4}]{% +% #2 (#1)=\UseIndex{#3}#6{#2} (\protect#1)>% +% #5=\UseIndex{#3}\SeeSign\protect#5}% +% \fi + \fi + \fi +} +\makeatother + +\newcommand*{\Index}[2][indexother]{\index{#2|#1}} +\newcommand*{\BeginIndex}[3][indexmain]{% + \expandafter\ifx\csname Index#2\endcsname\relax + \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% + Document scrguide Error: \string\BeginIndex\space with unknown + index% + }{Check the \string\BeginIndex-command or add a new index type + ``#2''.}{% + See scrguide2.tex for more information.}% + \else + \csname Index#2\endcsname[(%) + #1]{#3}% + \fi + \ignorespaces} +\newcommand*{\EndIndex}[3][indexmain]{% + \expandafter\ifx\csname Index#2\endcsname\relax + \GenericError{(scrguide)\@spaces\@spaces\@spaces\@spaces}{% + Document scrguide Error: \string\EndIndex\space with unknown + index% + }{Check the \string\BeginIndex-command or add a new index type + ``#2''.}{% + See scrguide2.tex for more information.}% + \else + \csname Index#2\endcsname[%( + )#1]{#3}% + \fi} + +\DeclareRobustCommand*{\UseIndex}[1]{\ignorespaces} + +\newcommand*{\DefineSingleIndex}[4][\relax]{% + % #1 = optional entry note (\MacroName) + % #2 = index macro postfix (Cmd) + % #3 = index to be used (cmd) + % #4 = output command (\Macro) + \ifx\relax#1\relax + % n + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2=\UseIndex{#3}#4{##2}}% + }% + \else + % ne + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2 (#1)=\UseIndex{#3}#4{##2} (\protect #1)}% + }% + \fi +} + +\newcommand*{\DefineDoubleIndex}[4][\relax]{% + % #1 = optional entry note (\PagestyleName) + % #2 = index macro postfix (Pagestyle) + % #3 = see-from-index to be used (cmd) + % #4 = output command (\Macro) + \ifx\relax#1\relax + % n,v + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2=\UseIndex{gen}#4{##2}}% + \IndexSeeAt{##2}{#3}{gen}{\genIndexName}{#4}% + }% + \else + % ne+nu,v + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \Index[##1]{##2 (#1)=\UseIndex{gen}#4{##2} (\protect #1)}% + \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#4{##2}}% + \IndexSeeAt[#1]{##2}{#3}{gen}{\genIndexName}{#4}% + }% + \fi +} + +\newcommand*{\DefineTripleIndex}[6][\relax]{% + % #1 = optional entry note (\LengthName) + % #2 = index macro postfix (Length) + % #3 = index to be used (len) + % #4 = index name (\lenIndexShortName) + % #5 = also-from-index to be used (cmd) + % #6 = output command (\Macro) + \ifx\relax#1\relax + % v,v,n + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \IndexSeeAt{##2}{gen}{#3}{#4}{#6}% + \IndexSeeAt{##2}{#5}{#3}{#4}{#6}% + \Index[##1]{##2=\UseIndex{len}#6{##2}}% + \IndexSeeAt{##2}{#3}{gen}{\genIndexName}{#4}% + }% + \else + % v+nu,v,ne + \expandafter\newcommand\expandafter*% + \csname Index#2\endcsname[2][indexother]{% + \IndexSeeAt[#1]{##2}{gen}{#3}{#4}{#6}% + \Index[##1]{#1=\UseIndex{gen}\protect#1>##2=\UseIndex{gen}#6{##2}}% + \IndexSeeAt[#1]{##2}{#5}{#3}{#4}{#6}% + \Index[##1]{##2 (#1)=\UseIndex{len}#6{##2} (\protect #1)}% + }% + \fi +} + +\DefineSingleIndex{Cmd}{cmd}{\Macro} +\DefineDoubleIndex[\PagestyleName]{Pagestyle}{cmd}{\PValue} +\DefineDoubleIndex[\FloatstyleName]{Floatstyle}{cmd}{\PValue} +\DefineTripleIndex[\CounterName]{Counter} + {len}{\lenIndexShortName}{cmd}{\Counter} +\DefineTripleIndex[\LengthName]{Length} + {len}{\lenIndexShortName}{cmd}{\Length} +\ifusemultiindex + \DefineSingleIndex[\EnvironmentName]{Env}{cmd}{\Environment} + \DefineSingleIndex{Option}{opt}{\Option} + \DefineSingleIndex[\PackageName]{Package}{fil}{\Package} + \DefineSingleIndex[\ClassName]{Class}{fil}{\Class} + \DefineSingleIndex{File}{fil}{\File} + \DefineSingleIndex[\VariableName]{Variable}{cmd}{\Variable} + \DefineSingleIndex{FontElement}{elm}{\FontElement} + \DefineSingleIndex{PLength}{len}{\PLength} +\else + \DefineDoubleIndex[\EnvironmentName]{Env}{cmd}{\Environment} + \DefineDoubleIndex{Option}{opt}{\Option} + \DefineDoubleIndex[\PackageName]{Package}{fil}{\Package} + \DefineDoubleIndex[\ClassName]{Class}{fil}{\Class} + \DefineDoubleIndex{File}{fil}{\File} + \DefineDoubleIndex[\VariableName]{Variable}{cmd}{\Variable} + \DefineDoubleIndex{FontElement}{elm}{\FontElement} + \DefineDoubleIndex{PLength}{len}{\PLength} + \iffalse + \newcommand*{\IndexPLength}[2][indexother]{% + \Index[#1]{% + \PLengthName=\protect\PLengthName>% + #2=\PLength{#2}}% + \Index[#1]{% + #2 (\PLengthName)=% + \PLength{#2}\hspace{0pt plus .1fil} \penalty100 + \protect\mbox{(\protect\PLengthName)}}} + \fi +\fi + +\newcommand*{\indexrm}[1]{\textrm{\hyperpage{#1}}} +\newcommand*{\indexother}{}\let\indexother\indexrm +\newcommand*{\indexit}[1]{\textit{\hyperpage{#1}}} +\newcommand*{\indexbf}[1]{\textbf{\hyperpage{#1}}} +\newcommand*{\indexmain}{}\let\indexmain\indexbf +\newcommand*{\indexsl}[1]{\textsl{\hyperpage{#1}}} +\newcommand*{\indexsf}[1]{\textsf{\hyperpage{#1}}} +\newcommand*{\indexsc}[1]{\textsc{\hyperpage{#1}}} +\providecommand*{\hyperpage}[1]{#1} + +% End of markup commands +% Ende der Markup Anweisungen. +% ---------------------------------------------------------------------------- + +% ---------------------------------------------------------------------------- +% We want a flushleft bibliography +% Das Literaturverzeichnis soll linksbuendig werden +% ---------------------------------------------------------------------------- +\makeatletter +\g@addto@macro\@openbib@code\raggedright +\makeatother +\setbibpreamble{\BibPreambleText\bigskip} + +\setindexpreamble{\IndexPreambleText\bigskip} + +\InputIfFileExists{koma.scrguide.overload}{}{} + +% ---------------------------------------------------------------------------- +% ??? +% Das Rahmendokument: +\begin{document} + +% - The title +% - Der Titel +\ifpdfoutput{% + \hypersetup{pdfauthor={Markus Kohm, Jens-Uwe Morawski},% + pdfsubject=\ManualName}}{} +\ifx\booktitle\undefined +\title{\TitleText} +\uppertitleback{\LegalText} +\lowertitleback{\LegalTextB} +\dedication{\sffamily\raggedright{\huge\KOMAScript\\} + \SubTitleName\\ + \vspace{5\baselineskip plus 1filll}% + \parbox{\textwidth}{\normalsize\WhoIsWho}} +\author{Frank Neukam\and Markus Kohm\and Axel Kielhorn} +\subject{\ManualName} +\publishers{\textbf{\ManualFromText}\\[1ex] + Markus Kohm\hfil% + \hfil Jens-Uwe Morawski} +\date{\docdate} +\maketitle +\else +\booktitle +\fi + +% - The lists +% - Die Verzeichnisse +\tableofcontents +%\listoffigures +\listoftables + +% - die Kapitel +% - chapters +\LoadChapters + +% - Correction after include +% - Korrektur nach include +\renewcommand*{\thisfilename}{\mainfilename} + +% - bibliography +% - Literaturverzeichnis +\bibliographystyle{scrguide% + \ifx\LanguageShortcut\empty\else-\LanguageShortcut\fi} +\bibliography{scrguide} + +% - index +% - Index +\makeatletter +\ifx\nochangelist\undefined\printchangelist\fi +\printindex +\makeatother + +% This has to be the last thing, so wie do it at \end{document} and +% set this just before \end{document}. The use of the subparagraph +% counter is just a hack. +\AtEndDocument{% + \newcommand\QuadPages{% + \setcounter{subparagraph}{\value{page}}% + \divide\value{subparagraph} by 2\relax% + \multiply\value{subparagraph} by 2\relax% + \ifnum\value{subparagraph}=\value{page}\let\QuadPages=\relax + \null\thispagestyle{empty}\clearpage + \else\null\newpage\fi + \QuadPages} + \clearpage + \markboth{\NoteName}{\NoteName}\QuadPages +} + +\end{document} +% End of ??? +% Ende des Rahmendokuments. +% ---------------------------------------------------------------------------- + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx b/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx new file mode 100644 index 00000000000..b03cb83c17c --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrlettr.dtx @@ -0,0 +1,2836 @@ +% \CheckSum{1888} +% \iffalse +% ====================================================================== +% scrlettr.dtx +% Copyright (C) 1995-2004 Axel Kielhorn and Markus Kohm +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the +% main documentation is german. There is also a english documentation, +% but this is NOT up-to-date. +% ---------------------------------------------------------------------- +% scrlettr.dtx +% Copyright (C) 1995-2004 Axel Kielhorn und Markus Kohm +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +% englische Version der Anleitung, diese hinkt der deutschen Anleitung +% jedoch fast immer hinterher. +% ====================================================================== +% +% \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 \~} +% +%<*dtx> + \ProvidesFile{scrlettr.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesFile{scrlettr.drv} +%\ProvidesClass{scrlettr} +%<*scrlettr|dtx|driver> + [2002/05/24 v2.6e +% OBSOLETE + LaTeX2e KOMA +% +% BETA-VERSION +% document class] +% +%<*driver|dtx> + Script bundle] +% +%<*driver> +\documentclass{ltxdoc} +\usepackage[a4paper,BCOR15mm,DIV12]{typearea} +\usepackage{german} +\DoNotIndex{\.,\@@par,\@M,\@abstrtfalse,\@abstrttrue,\@addtoreset} +\DoNotIndex{\@afieldfalse,\@afieldtrue,\@afterheading} +\DoNotIndex{\@afterindentfalse,\@arabic,\@badmath,\@beginparpenalty} +\DoNotIndex{\@biglocfalse,\@bigloctrue,\@bsphack} +\DoNotIndex{\@car,\@cdr,\@centercr,\@cite,\@dblfloat,\@dotsep} +\DoNotIndex{\@dottedtocline,\@empty,\@endparpenalty,\@endpart,\@esphack} +\DoNotIndex{\@finclfalse,\@fincltrue,\@float,\@fontswitch,\@foldfalse} +\DoNotIndex{\@foldtrue,\@fslfalse,\@fsltrue,\@gobbletwo} +\DoNotIndex{\@hangfrom,\@highpenalty,\@hinclfalse,\@hincltrue,\@hslfalse} +\DoNotIndex{\@hsltrue,\@idxitem,\@ifnextchar,\@ifundefined,\@ifstar} +\DoNotIndex{\@itempenalty} +\DoNotIndex{\@latex@warning,\@m,\@mainmatterfalse,\@mainmattertrue} +\DoNotIndex{\@medpenalty,\@minus,\@mkboth,\@mparswitchfalse,\@mparswitchtrue} +\DoNotIndex{\@ne,\@nil,\@nobreakcr,\@nobreakfalse,\@nobreaktrue} +\DoNotIndex{\@nobreakvspace,\@nobreakvspacex,\@noitemerr,\@nomath,\@normalcr} +\DoNotIndex{\@openbibfalse,\@openbibtrue,\@openrightfalse,\@openrighttrue} +\DoNotIndex{\@plus,\@processto,\@reffalse,\@reftrue,\@restonecolfalse} +\DoNotIndex{\@restonecoltrue} +\DoNotIndex{\@subjfalse,\@subjtrue} +\DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempswafalse,\@tempswatrue} +\DoNotIndex{\@titlepagefalse,\@titlepagetrue,\@tocrmarg,\@topnewpage} +\DoNotIndex{\@topnum,\@twocolumnfalse,\@twocolumntrue,\@twosidefalse} +\DoNotIndex{\@twosidetrue} +\DoNotIndex{\@whiledim,\@whilenum,\@xnewline,\@xproc,\\,\ } +\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents,\addtolength} +\DoNotIndex{\addvspace,\advance,\Alph,\alph,\arabic,\Ask,\AtBeginDocument} +\DoNotIndex{\begin,\begingroup,\bfseries,\bgroup,\box,\bullet} +\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth} +\DoNotIndex{\cal,\cdot,\centering,\changes,\ClassWarningNoLine} +\DoNotIndex{\cleardoublepage,\clearpage} +\DoNotIndex{\cmd,\col@number,\CurrentOption,\CodelineIndex,\csname} +\DoNotIndex{\day,\dblfloatpagefraction,\dbltopfraction,\Decisionfalse} +\DoNotIndex{\Decisiontrue,\DeclareOldFontCommand} +\DoNotIndex{\DeclareOption,\def,\defpar,\DisableCrossrefs} +\DoNotIndex{\divide,\documentclass,\DoNotIndex,\dotfill} +\DoNotIndex{\iden,\ifdim,\else,\fi,\egroup,\empty,\em,\EnableCrossrefs,\end} +\DoNotIndex{\end@dblfloat,\endcsname,\endletter} +\DoNotIndex{\end@float,\endgroup,\endlist,\endquotation,\endtitlepage} +\DoNotIndex{\everypar,\ExecuteOptions,\expandafter} +\DoNotIndex{\fboxrule,\fboxsep,\fontsize,\frenchspacing} +\DoNotIndex{\gdef,\global} +\DoNotIndex{\hangindent,\hbox,\hfil,\hfill,\hrule,\hsize,\hskip,\hspace,\hss} +\DoNotIndex{\if@tempswa,\ifcase,\or,\fi,\fi} +\DoNotIndex{\ifnum,\ifodd,\ifvmode,\ifx,\fi,\fi,\fi,\fi} +\DoNotIndex{\ignorespaces,\input,\InputIfFileExists,\item,\itshape,\j,\ja} +\DoNotIndex{\kern,\LARGE,\Large,\leavevmode,\leftmark,\leftskip,\let} +\DoNotIndex{\lineskip,\list,\long} +\DoNotIndex{\m@ne,\m@th,\marginpar,\marginparpush,\markboth,\markright} +\DoNotIndex{\mathbf,\mathcal} +\DoNotIndex{\mathit,\mathnormal,\mathrm,\mathsf,\mathtt,\MessageBreak,\month} +\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen} +\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent} +\DoNotIndex{\normalfont,\normallineskip,\normalsize,\null,\number} +\DoNotIndex{\numberline} +\DoNotIndex{\OldMakeindex,\OnlyDescription,\overfullrule} +\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine} +\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox} +\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\pmit,\PrintChanges} +\DoNotIndex{\PrintIndex,\ProcessOptions,\protect,\providecommand} +\DoNotIndex{\ProvidesClass} +\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax} +\DoNotIndex{\renewcommand,\RequirePackage,\reset@font,\reversemarginpar} +\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rmfamily,\Roman,\roman,\rule} +\DoNotIndex{\sc@septext,\sc@temp,\sc@@temp,\scshape,\secdef,\setbox} +\DoNotIndex{\setcounter,\setlength} +\DoNotIndex{\settowidth,\sfcode,\sffamily,\skip,\sloppy,\slshape,\space} +\DoNotIndex{\string,\strip,\strut,\subjectoff,\subjecton} +\DoNotIndex{\ta@temp,\the,\thispagestyle,\triangleright,\ttfamily,\twocolumn} +\DoNotIndex{\typein,\typeout} +\DoNotIndex{\undefined,\underline,\unhbox,\usecounter,\usepackage} +\DoNotIndex{\vadjust,\vfil,\vfill,\vspace} +\DoNotIndex{\wd,\xdef,\y,\year,\yes,\z@} +\CodelineIndex +% Kopiert aus scrguide2.tex +\newcommand{\ExampleName}{Beispiel} +\newcommand{\ClassName}{Klasse} +\newcommand{\PackageName}{Paket} +\newcommand{\EnvironmentName}{Umgebung} +\newcommand{\OptionName}{Option} +\newcommand{\MacroName}{Befehl} +\newcommand{\CounterName}{Z\"ahler} +\newcommand{\CounterSortName}{Zaehler} +\newcommand{\LengthName}{L\"ange} +\newcommand{\LengthSortName}{Laenge} +\newcommand{\PagestyleName}{Seitenstil} +\newcommand{\StyleName}{Stil} +\newcommand{\FileName}{Datei} +\newcommand{\TitleText}{Das\ \KOMAScript\ Paket} +\newcommand{\ManualName}{Anleitung} +\newcommand{\ManualFromText}{Autoren der Anleitung:} +\newcommand{\NoteName}{Notizen} +\DeclareRobustCommand*{\Class}[1]{\textsf{#1}} +\DeclareRobustCommand*{\Package}[1]{\textsf{#1}} +\DeclareRobustCommand*{\File}[1]{\texttt{#1}} +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptII}{\textsc{Script-2}} +\ifx\KOMAScript\undefined% + \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +\fi +\makeatletter +\DeclareRobustCommand{\BibTeX}{B\kern-.05em% + \hbox{$\m@th$% + \csname S@\f@size\endcsname \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + I\kern-.025emB}% + \kern-.08em% + \-\TeX% +} +\makeatother +\newcommand*{\Var}[1]{\ensuremath{\mathit{#1}}} +\newcommand*{\Const}[1]{\ensuremath{\mathrm{#1}}} +\newcommand*{\Unit}[1]{\ensuremath{\,\mathrm{#1}}} +\DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\Option}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Environment}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Counter}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\Length}[1]{\mbox{\texttt{\char`\\#1}}} +\DeclareRobustCommand*{\EMail}[1]{\textless #1\textgreater} +\DeclareRobustCommand*{\TextEMail}[1]{{\small\EMail{#1}}} +\newenvironment{Example}{% + \begin{labeling}{{\sectfont\ExampleName:\ }} + \item[{\sectfont\ExampleName:\ }]} + {\end{labeling}} +\newenvironment{Explain}{% + \small\sffamily +}{\normalcolor\par} +\newcommand*{\sectfont}{\normalfont\normalcolor\bfseries} +\newenvironment{labeling}[2][] + {\def\sc@septext{#1} + \list{}{\settowidth{\labelwidth}{#2#1} + \leftmargin\labelwidth \advance\leftmargin by \labelsep + \let\makelabel\labelinglabel}} + {\endlist} +\newcommand\labelinglabel[1]{#1\hfil\sc@septext} +\newenvironment{Declaration}% + {\par\small\addvspace{2\baselineskip plus .5\baselineskip}% + \vspace{-\baselineskip}% + \noindent\hspace{-1em}% + \begin{tabular}{|l|}\hline\ignorespaces}% + {\\\hline\end{tabular}\nobreak\par\nobreak + \vspace{1.5\baselineskip}\vspace{-\baselineskip}% + \noindent\ignorespacesafterend} +\newcommand{\PName}[1]{\mbox{\textit{#1}}}% Parametername +\newcommand{\PValue}[1]{\texttt{#1}}% Parametername +\newcommand{\Parameter}[1]{% Parameter/Argument + \texttt{\{}\PName{#1}\texttt{\}}} +\newcommand{\OParameter}[1]{\texttt{[%] Parameter/Argument optional + }\PName{#1}\texttt{%[ + ]}} +\newcommand{\AParameter}[1]{\texttt{(%) Parameter/Argument alternative + }\PName{#1}\texttt{%( + )}} +\newcommand{\PParameter}[1]{\texttt{\{% Parameter/Argument as/als + #1% part of commands / Befehlsbestandteil + \}}} +\newcommand*{\Index}[2][indexrm]{\index{#2|#1}} +\newcommand*{\BeginIndex}[3][indexit]{\csname Index#2\endcsname[(%) + #1]{#3}% + \ignorespaces} +\newcommand*{\EndIndex}[3][indexit]{\csname Index#2\endcsname[%( + )#1]{#3}} +\newcommand*{\IndexCmd}[2][indexrm]{% + \Index[#1]{#2=\Macro{#2}}} +\newcommand*{\IndexEnv}[2][indexrm]{% + \Index[#1]{\EnvironmentName>#2=\Environment{#2}}% + \Index[#1]{#2=\Environment{#2} (\EnvironmentName)}} +\newcommand*{\IndexOption}[2][indexrm]{% + \Index[#1]{\OptionName>#2=\Option{#2}}% + \Index[#1]{#2=\Option{#2} (\OptionName)}} +\newcommand*{\IndexPackage}[2][indexrm]{% + \Index[#1]{\PackageName>#2=\Package{#2}}% + \Index[#1]{#2=\Package{#2} (\PackageName)}} +\newcommand*{\IndexClass}[2][indexrm]{% + \Index[#1]{\ClassName>#2=\Class{#2}}% + \Index[#1]{#2=\Class{#2} (\ClassName)}} +\newcommand*{\IndexFile}[2][indexrm]{% + \Index[#1]{\FileName>#2=\File{#2}}% + \Index[#1]{#2=\File{#2} (\FileName)}} +\newcommand*{\IndexCounter}[2][indexrm]{% + \Index[#1]{\CounterSortName=\CounterName>#2=\Counter{#2}}% + \Index[#1]{#2=\Counter{#2} (\CounterName)}} +\newcommand*{\IndexLength}[2][indexrm]{% + \Index[#1]{\LengthSortName=\LengthName>#2=\Length{#2}}% + \Index[#1]{#2=\Length{#2} (\LengthName)}} +\newcommand*{\IndexPagestyle}[2][indexrm]{% + \Index[#1]{\PagestyleName>#2=\PValue{#2}}% + \Index[#1]{#2=\PValue{#2} (\PagestyleName)}} +\newcommand*{\IndexFloatstyle}[2][indexrm]{% + \Index[#1]{float-\StyleName=\emph{float}-\StyleName>#2=\PValue{#2}}% + \Index[#1]{#2=\PValue{#2} (\emph{float}-\StyleName)}} +\newcommand*{\indexrm}[1]{\textrm{\hyperpage{#1}}} +\newcommand*{\indexit}[1]{\textit{\hyperpage{#1}}} +\newcommand*{\indexbf}[1]{\textbf{\hyperpage{#1}}} +\newcommand*{\indexsl}[1]{\textsl{\hyperpage{#1}}} +\newcommand*{\indexsf}[1]{\textsf{\hyperpage{#1}}} +\newcommand*{\indexsc}[1]{\textsc{\hyperpage{#1}}} +\providecommand*{\hyperpage}[1]{#1} +% +\begin{document} + \DocInput{scrlettr.dtx} +\end{document} +% +% \fi +% +% \GetFileInfo{scrlettr.dtx} +% \RecordChanges +% +% \makeatletter +% \def\macro{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 0} +% \def\environment{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 1} +% \def\option{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 2} +% \long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist +% \edef\saved@macroname{\string#2}% +% \ifcase #1% +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \or +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \else +% \let\saved@@macroname\saved@macroname +% \fi +% \def\makelabel##1{\llap{##1}}% +% \if@inlabel +% \let\@tempa\@empty \count@\macro@cnt +% \loop \ifnum\count@>\z@ +% \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat +% \edef\makelabel##1{\llap{\vtop to\baselineskip +% {\@tempa\hbox{##1}\vss}}}% +% \advance \macro@cnt \@ne +% \else \macro@cnt\@ne \fi +% \edef\@tempa{\noexpand\item[% +% \ifcase #1% +% \noexpand\PrintMacroName +% \or +% \noexpand\PrintEnvName +% \else +% \noexpand\PrintOptionName +% \fi +% {\string#2}]}% +% \@tempa +% {\advance\c@CodelineNo\@ne +% \ifcase #1% +% \SpecialMainIndex{#2}\nobreak +% \DoNotIndex{#2}% +% \or +% \SpecialMainEnvIndex{#2}\nobreak +% \else +% \SpecialMainOptionIndex{#2}\nobreak +% \fi +% }% +% \ignorespaces} +% \let\endoption\endtrivlist +% \@ifundefined{PrintOptionName} +% {\def\PrintOptionName#1{\strut \MacroFont #1\ }}{} +% \def\SpecialMainOptionIndex#1{\@bsphack +% \special@index{#1\actualchar{\string\ttfamily\space#1} +% (option)\encapchar main}% +% \special@index{options:\levelchar{\string\ttfamily\space#1}\encapchar +% main}\@esphack} +% \def\changes@#1#2#3{% +% \protected@edef\@tempa{\noexpand\glossary{#1\levelchar +% \ifx\saved@macroname\@empty +% \space +% \actualchar +% \generalname +% \else +% \saved@@macroname +% \actualchar +% \string\verb\quotechar*\verbatimchar% +% \saved@macroname +% \verbatimchar +% \fi +% :\levelchar #3}}% +% \@tempa\endgroup\@esphack} +% \makeatother +% +% \title{Die Brief-class im \textsf{KOMA-Script} Paket\thanks{Diese Datei +% hat die Versionsnummer \fileversion, letzte "Anderung vom +% \filedate.}} +% \author{Frank Neukam\and Markus Kohm} +% \date{\filedate} +% \maketitle +% +% \tableofcontents +% +% \changes{v2.0e}{1994/10/28}{Erste Version, die \texttt{docstrip} verwendet.} +% \changes{v2.3b}{1996/01/14}{Diverse \cs{newcommand} mit und ohne +% Parameter durch \cs{newcommand*} ersetzt.} +% \changes{v2.3b}{1996/01/14}{Diverse \cs{renewcommand} mit und ohne +% Parameter durch \cs{renewcommand*} +% ersetzt.} +% \changes{v2.6e}{2002/05/24}{\texttt{scraddr} ist in einer eigenen +% \texttt{dtx}-Datei zu finden.} +% \changes{v2.6e}{2002/05/24}{\texttt{dir.tex}, \texttt{phone.tex}, +% \texttt{addrconv.bst}, \texttt{birthday.bst}, \texttt{email.bst}, +% \texttt{addrconv.tex}, \texttt{birthday.tex}, \texttt{email.tex} +% sind obsolet und gel\"oscht, stattdessen sollte das +% \texttt{adrconv}-Paket von Axel Kielhorn verwendet werden.} +% +% \part{Anleitung} +% +% \section{Generelles} +% +% \subsection{Rechtliches} +% Es wird keinerlei Haftung "ubernommen f"ur irgendwelche Sch"aden, +% die aus der Benutzung der Programme und Dateien des hier +% beschriebenen Paketes folgen. +% +% \subsection{Das \textsf{KOMA-Script} Paket} +% +% Das gesamte \textsf{KOMA-Script} Paket besteht aus mehreren Teilen. +% Der Teil |scrclass.dtx| beinhaltet die Haupt-classes |scrartcl.cls|, +% |scrreprt.cls| und |scrbook.cls| und |scrlttr2.cls| sowie das von +% diesen ben"otigte package |typearea.sty|. +% +% Die urspr"unglich in |komascr.dtx| enthaltene Brief-Klasse +% |scrlettr.cls| liegt nun hier als |scrlettr.dtx| separat vor. Eine +% Anleitung zu dieser Klasse existiert jedoch nur noch +% eingeschr"ankt. Da die Klasse nicht mehr unterst"utzt wird. Sie ist +% nun also \emph{unsupported}. +% +% Die alte Anleitung wurde jedoch in diese Datei integriert. +% \changes{v2.6c}{2001/10/09}{Die Klasse ist obsolet} +% \changes{v2.6c}{2001/10/09}{Die Anleitung ist integriert} +% +% \DeleteShortVerb{\|} +% +% \section{"Uberblick} +% +% Die Dokumentenklasse \Class{scrlettr} ist eine erweiterte und an +% europ"aische Verh"altnisse angepasste Version der originalen +% \LaTeX{}-Briefklasse \Class{letter}. Urspr"unglich wurde sie von +% Axel Kielhorn entwickelt, erfuhr aber durch Markus Kohm einige +% Ver"anderungen. +% +% Hervorzuhebende Eigenschaften von \Class{scrlettr} gegen"uber +% \Class{letter} sind die Anpassung an das A4 Papierformat, die +% erweiterte Sprachunterst"utzung und ein umfangreicherer +% Befehlssatz, mit dem auch komplexere W"unsche umsetzbar sind. +% +% Bevor alle Befehle der Klasse \Class{scrlettr} vorgestellt werden, +% soll mit Hilfe eines Minimalbeispiels ein erster "Uberblick "uber +% Aufbau und Funktion eines Briefes gegeben werden. +% +% \begin{Example} +% Ein mit nur den n"otigsten Befehlen erstellter +% \Class{scrlettr}-Brief sieht beispielsweise so aus. +% \begin{small}\begin{verbatim} +% \documentclass[10pt]{scrlettr} +% \usepackage{ngerman} +% \name{\KOMAScript{}-Gruppe} +% \address{Klassengasse 1\\12345 \LaTeX{}hausen} +% \signature{Euer \KOMAScript{}-Team} +% \begin{document} +% \begin{letter}{Die \KOMAScript{}-Nutzer\\ +% Irgendwo\\weltweit} +% +% \opening{Liebe \KOMAScript{}-Nutzer,} +% das \KOMAScript{}-Team m"ochte Euch mit ein paar +% Informationen ... +% +% \closing{Viel Spa"s} +% \end{letter} +% \end{document} +% \end{verbatim}\end{small} +% Wie zu sehen ist, werden Informationen, die unabh"angig vom +% einzelnen Brief sind, getrennt definiert, wie beispielsweise der +% Absender mittels \Macro{name}. Die einzelnen briefspezifische +% Daten werden innerhalb der \Environment{letter}-Umgebung +% angegeben. Nat"urlich k"onnen durch mehrmaliges Nutzen der +% \Environment{letter}-Umgebung mehrere Briefe in einem Dokument +% erzeugt werden. +% +% \begin{Explain} +% Hierbei ist jedoch zu beachten, dass \TeX\ Z"ahler grunds"atzlich +% \emph{global} verwaltet. Es ist also notwendig, alle Z"ahler vor +% einer neuen \Environment{letter}-Umgebung zur"uckzusetzen. Einzige +% Ausnahme ist der Seitenz"ahler. Dieser wird bei jedem Aufruf von +% \Macro{begin}\PParameter{letter} wieder auf 1 zur"uckgesetzt. +% \end{Explain} +% \end{Example} +% +% \section{Brief"ubergreifende Befehle} +% \begin{Declaration} +% \Macro{name}\Parameter{Absendername}\\ +% \Macro{address}\Parameter{Adresse des Absenders}\\ +% \Macro{signature}\Parameter{Unterschrift} +% \end{Declaration}\ignorespaces +% \BeginIndex{Cmd}{name}\BeginIndex{Cmd}{address}\ignorespaces +% \BeginIndex{Cmd}{signature}\ignorespaces +% Der Befehl \Macro{name} nimmt den Namen des +% Absenders\Index[indexit]{Absender} auf und gibt diesen im +% voreingestellten Seitenstil f"ur die erste und die folgenden Seiten +% aus. Weiterhin wird dieser Text als +% Unterschrift\Index[indexit]{Unterschrift} gesetzt, wenn +% \Macro{signature} nicht angegeben wurde, da dieser Befehl optional +% ist, und somit nicht immer angegeben werden muss. Die +% Absenderadresse wird mit dem \Macro{address}-Befehl gesetzt. +% \EndIndex{Cmd}{name}\EndIndex{Cmd}{address}\EndIndex{Cmd}{signature} +% +% \begin{Declaration} +% \Macro{backaddress}\Parameter{Absender}\\ +% \Macro{specialmail}\Parameter{Versandart}\\ +% \Macro{addrfieldon}\\ +% \Macro{addrfieldoff} +% \end{Declaration}\ignorespaces +% \BeginIndex{Cmd}{backaddress}\BeginIndex{Cmd}{specialmail}\ignorespaces +% \BeginIndex{Cmd}{addrfieldon}\BeginIndex{Cmd}{addrfieldoff}\ignorespaces +% Der Befehl \Macro{backaddress} erzeugt "uber dem +% Adressfeld\Index{Adressfeld} des Empf"angers einen einzeiligen +% Eintrag, der auch in Briefumschl"agen mit Sichtfenster zu sehen +% ist. Es bietet sich somit als Angabe des Absenders an. +% Versandhinweise\Index[indexit]{Versandart}, wie beispielsweise +% \emph{Einschreiben} k"onnen mit \Macro{specialmail} gesetzt werden. +% +% Mit dem Befehl \Macro{addrfieldoff} werden weder das Adressfeld +% noch das \Option{locfield} gesetzt. Alle Angaben "uber Empf"anger- +% und R"uckadresse, die Versandart und die Erg"anzungen aus +% \Macro{location} werden ignoriert und \emph{nicht} gesetzt. Da +% \Macro{addrfieldon} und \Macro{addrfieldoff} als Befehle +% implementiert sind, ist es m"oglich, sie f"ur verschiedene Briefe +% eines Dokuments je nach Bedarf anzuwenden. Voreingestellt ist +% \Macro{addrfieldon}. +% \EndIndex{Cmd}{backaddress}\EndIndex{Cmd}{specialmail} +% \EndIndex{Cmd}{addrfieldon}\EndIndex{Cmd}{addrfieldoff} +% +% \begin{Declaration} +% \Macro{location}\Parameter{zus"atzliche Adresstext}\\ +% \Macro{place}\Parameter{Ort}\\ +% \Macro{date}\Parameter{Datum} +% \end{Declaration}\ignorespaces +% \BeginIndex{Cmd}{location}\BeginIndex{Cmd}{place}\ignorespaces +% \BeginIndex{Cmd}{date}\ignorespaces +% Der Befehl \Macro{location} schreibt sein Argument in ein Textfeld +% rechts neben dem Adressfeld. Es kann beispielsweise Daten einer +% Abteilung oder die Zweigstelle eine Firma aufnehmen. Mit dem +% Befehl \Macro{place} wird der Ort des Absenders eingestellt. Der +% Befehl \Macro{date} ist nur wichtig, wenn der Brief l"anger in +% Quellform gespeichert werden soll und man nicht m"ochte, dass die +% Datumsinformation\Index[indexit]{Datum} des Originalbriefes +% verloren geht. In normalen Anwendungsf"allen wird das Datum aus dem +% Systemdatum beim LaTeX{}-Lauf ermittelt. +% +% \begin{Example} +% Sie m"ochten einen monatlichen Rundbrief an die Mitglieder eines +% Vereins versenden. Hierbei spielt das genaue Datum keine gro"se +% Rolle. Ein Vermerk in der Form \glqq Vereinssitz im M"arz +% 2001\grqq\ erreichen Sie durch folgende Definitionen. +% \begin{small}\begin{verbatim} +% \place{Vereinssitz} +% \date{im M"arz 2001} +% \end{verbatim}\end{small} +% \end{Example} +% \EndIndex{Cmd}{location}\EndIndex{Cmd}{place}\EndIndex{Cmd}{date} +% +% \begin{Declaration} +% \Option{wlocfield}\\ +% \Option{slocfield} +% \end{Declaration} +% \BeginIndex{Option}{wlocfield}\BeginIndex{Option}{slocfield} +% Die Breite des Textfeldes mit dem \Macro{location}-Eintrag ist +% standardm"a"sig die H"alfte des freien Raums neben dem Adressfeld. +% Dies entspricht der Einstellung der Option \Option{slocfield}. Mit +% der Klassenoptionen \Option{wlocfield} stehen dem Textfeld zwei +% Drittel der freien Textbreite neben dem Adressfeld zur Verf"ugung. +% \EndIndex{Option}{wlocfield}\EndIndex{Option}{slocfield} +% +% \section{Briefspezifische Befehle} +% +% \begin{Declaration} +% \Environment{letter}\\ +% \Macro{title}\Parameter{"Uberschrift}\\ +% \Macro{subject}\Parameter{Kurzinhalt oder Betreff}\\ +% \Macro{subjecton}\\ +% \Macro{subjectoff}\\ +% \Macro{opening}\Parameter{Anrede} +% \end{Declaration} +% \BeginIndex{Env}{letter}\BeginIndex{Cmd}{title} +% \BeginIndex{Cmd}{subject}\BeginIndex{Cmd}{subjecton} +% \BeginIndex{Cmd}{subjectoff} +% \BeginIndex{Cmd}{opening} +% Das zentrale Element ist die \Environment{letter}-Umgebung. Ihr +% obligatorisches Argument nimmt die Anschrift des +% Empf"angers\Index[indexit]{Empfaenger=Empf"anger} des Briefes auf. +% Notwendige Zeilenumbr"uche m"ussen selbst"andig eingef"ugt werden. +% Dabei muss beachtet werden, dass das Textfeld nur eine bestimmte +% Breite zul"asst, und dann die Zeile automatische umbrochen wird. +% +% \begin{Example} +% Sie m"ochten einen Brief an die Deutsche Anwendervereinigung \TeX\ +% e.\,V. schreiben. Dieser Brief m"u"ste durch folgende Zeilen +% eingeleitet werden: +% \begin{small}\begin{verbatim} +% \begin{letter}{DANTE, Deutschsprachige +% Anwendervereingung TeX e.\,V.\\ +% Postfach 101840\\ +% 69008 Heidelberg} +% \end{verbatim}\end{small} +% \end{Example} +% +% Gew"ohnlich m"ochte man dem Empf"anger eines Briefes schnell das +% Anliegen des Briefes mitteilen. Dazu gibt es zwei M"oglichkeiten. +% Mit dem \Macro{title} kann einem Brief eine +% "Uberschrift\Index[indexit]{Briefueberschrift=Brief"uberschrift} +% vorangestellt werden. Dies erzeugt eine zentrierte in +% \Macro{LARGE} gesetzte "Uberschrift. F"ur gew"ohnlich soll der +% Hinweis auf den Inhalt des Briefes nicht so gro"sspurig ausfallen. +% Vielmehr wird eine schlichte Betreffzeile\Index[indexit]{Betreff} +% mit einer kurzen Zusammenfassung des Schreibens erwartet. Dies +% geschieht mit dem Makro \Macro{subject}. +% +% \begin{Example} +% Anl"asslich eines Firmenjubil"aums m"ochten Sie ein Preisauschreiben +% f"ur alle Kunden ausrichten. Damit Ihre Kunden sofort sehen, dass +% es sich bei Ihrem Brief nicht um eine Rechnung handelt, m"ochten +% Sie deutlich auf den Inhalt Ihres Briefes aufmerksam machen. +% \begin{small}\begin{verbatim} +% \title{Preisausschreiben} +% \end{verbatim}\end{small} +% Eine schlichte Betreffzeile erzeugen Sie dagegen mit folgender +% Zeile. +% \begin{small}\begin{verbatim} +% \subject{Lagerverkauf} +% \end{verbatim}\end{small} +% \end{Example} +% Dar"uber hinaus kann mit dem Befehl \Macro{subjecton} vor der +% Betreffzeile noch den Eintrag \emph{Betr.:} gesetzt werden. +% Voreingestellt ist \Macro{subjectoff}, so dass nur die blo"se +% Betreffzeile gesetzt wird. +% +% Der Brief beginnt mit dem \Macro{opening}-Befehl. Erst nach diesem +% Befehl werden die Angaben im Referenzfeld\Index{Referenzfeld}, Betreff +% und Empf"anger\Index{Empfaenger=Empf"anger} gesetzt. Diesem Befehl wird +% die Anrede des Briefpartners "ubergeben. +% \EndIndex{Env}{letter}\EndIndex{Cmd}{title} +% \EndIndex{Cmd}{subject}\EndIndex{Cmd}{subjecton}\EndIndex{Cmd}{subjectoff} +% \EndIndex{Cmd}{opening} +% +% \begin{Declaration} +% \Macro{closing}\Parameter{Gru"sformel}\\ +% \Macro{ps}\Parameter{Postskriptum}\\ +% \Macro{cc}\Parameter{Verteiler}\\ +% \Macro{ccnameseparator}\\ +% \Macro{ccname}\\ +% \Macro{encl}\Parameter{Anlagen}\\ +% \Macro{enclnameseparator}\\ +% \Macro{enclname} +% \end{Declaration} +% \BeginIndex{Cmd}{closing}\BeginIndex{Cmd}{ps} +% Nachdem der Brief geschrieben wurde, wird mit \Macro{closing} das +% Briefende eingeleitet. Diesem Befehl wird die +% Gru"sformel\Index[indexit]{Grussformel=Gru"sformel} (zum Beispiel +% \glqq Mit freundlichen Gr"u"sen\grqq) "ubergeben. +% +% Manchmal ist es auch erw"unscht, nach dem eigentlichen Brief noch +% Informationen unterzubringen, die nicht dem engsten Briefanliegen +% entsprechen aber dennoch von Interesse f"ur den Empf"anger sein +% k"onnen. Diese Informationen werden dem Befehl \Macro{ps} +% "ubergeben. +% +% \begin{Example} +% Sie m"ochten Ihre Kunden darauf hinweisen, dass Ihr Gesch"aft im +% August Betriebsurlaub macht und deshalb geschlossen bleibt. Da +% diese Information nicht in unmittelbaren Zusammenhang mit einer +% Rechnung steht, m"ochten Sie dies als +% Postscript\Index[indexit]{Postscriptum} schreiben. +% \begin{small}\begin{verbatim} +% \closing{Mit freundlichen Gr"u"sen,} +% \ps{Bitte beachten Sie, dass wir vom 01.08. bis 31.08. +% Betriebsurlaub machen. Unser Gesch"aft bleibt in dieser +% Zeit geschlossen. Wir sind ab dem 01.09. in alter +% Frische wieder f"ur Sie da.} +% \end{verbatim}\end{small} +% \end{Example} +% H"aufig liegen gesch"aftlichen Briefen +% Anlagen\Index[indexit]{Anlagen} bei, beispielsweise +% Vertragsentw"urfe, Rechnungskopien oder "ahnliches. Darauf kann der +% Adressat mit dem Befehl \Macro{encl} aufmerksam gemacht werden. +% Gehen Kopien eines Briefes an die Empf"anger eines +% Verteilers\Index[indexit]{Verteiler}, so kann auch dies im +% Abschluss des Briefes bekannt gegeben werden. Dazu dient der +% Befehl \Macro{cc}. +% \EndIndex{Cmd}{closing}\EndIndex{Cmd}{ps} +% \BeginIndex{Cmd}{cc}\BeginIndex{Cmd}{ccnameseparator} +% \BeginIndex{Cmd}{ccname} +% \BeginIndex{Cmd}{encl}\BeginIndex{Cmd}{enclnameseparator} +% \BeginIndex{Cmd}{enclname} +% \begin{Example} +% Die W"ahrungsumstellung auf den Euro stellt Ihr kleines Unternehmen +% vor gro"se Schwierigkeiten. Um Zahlungsausf"alle zu vermeiden, +% ziehen Sie alle Verbindlichkeiten f"ur den Monat Dezember vor und +% m"ochten diese bereits im November auszahlen. Au"serdem sollen alle +% F"alligkeiten im neuen Jahr erst ab der dritten Januarwoche +% beglichen werden. Diesen Beschluss der Gesch"aftsleitung m"ochten +% Sie als Kopie an die Buchhaltung und den Betriebsrat schicken. +% \begin{small}\begin{verbatim} +% \encl{Beschluss "uber die Zahlungsmodalit"aten beim +% "Ubergang auf den Euro} +% \cc{Buchhaltung\\Betriebsrat} +% \end{verbatim}\end{small} +% \end{Example} +% Der Aufruf \Macro{cc} setzt vor dem "ubergebenen Argument noch den +% \Macro{ccname} \glqq Kopie an\grqq\ und den Trenner +% \Macro{ccnameseparator} \glqq :\ \grqq\ (Doppelpunkt gefolgt von +% einem Leerzeichen). "Ahnlich funktioniert der Befehl \Macro{encl}. +% Der \Macro{enclname} lautet \glqq Anlagen\grqq\ -- der Trenner +% \Macro{enclnameseparator} ist genauso definiert, wie der f"ur +% Verteiler. +% +% \begin{Example} +% Da Sie im obigen Beispiel nur eine Anlage verschicken, ist es +% besser, den Singular zu verwenden. Sie m"ochten, dass der Verteiler +% auch als solcher benannt wird und au"serdem halten Sie den +% Doppelpunkt f"ur "uberfl"ussig. Alle Ihre W"unsche k"onnen erf"ullt +% werden: +% \begin{small}\begin{verbatim} +% \renewcommand*{\ccnameseparator}{\ } +% \renewcommand*{\enclnameseparator}{\ccnameseparator} +% \renewcommand*{\ccname}{Verteiler} +% \renewcommand*{\enclname}{Anlage} +% \end{verbatim}\end{small} +% \end{Example} +% \EndIndex{Cmd}{cc}\EndIndex{Cmd}{ccnameseparator}\EndIndex{Cmd}{ccname} +% \EndIndex{Cmd}{encl}\EndIndex{Cmd}{enclnameseparator}\EndIndex{Cmd}{enclname} +% +% \subsection{Das Referenzfeld}\Index[indexit]{Referenzfeld} +% +% \begin{Declaration} +% \Macro{yourref}\Parameter{Ihr Zeichen}\\ +% \Macro{yourmail}\Parameter{Ihr Schreiben vom}\\ +% \Macro{myref}\Parameter{Unser Zeichen}\\ +% \Macro{customer}\Parameter{Kundennummer}\\ +% \Macro{invoice}\Parameter{Rechnungsnummer} +% \end{Declaration} +% \BeginIndex{Cmd}{yourref}\BeginIndex{Cmd}{yourmail}\BeginIndex{Cmd}{myref} +% \BeginIndex{Cmd}{customer}\BeginIndex{Cmd}{invoice} +% In Gesch"aftsbriefen werden h"aufig Informationen wie +% Aktenzeichen\Index[indexit]{Aktenzeichen}, Rech\-nungs- oder +% Kundennummer\Index[indexit]{Rechnungsnummer}\Index[indexit]{Kundennummer} +% oder ein Hinweis auf das Schreiben, das beantwortet wird, +% ben"otigt. Um diese Anforderungen realisieren zu k"onnen, sind in +% der \Class{scrletter}-Klasse einige Makros implementiert. +% +% \begin{Example} +% Sie m"ochten einen Brief Ihres Gesch"aftspartners Maier beantworten, +% den dieser am 14. August 2000 geschrieben hat. Ihr Zeichen ist +% {\emph{xyz}} Herr Maier hat die Kundennummer {\em{maier007}} und +% beschwerte sich in seinem Brief, dass in der Rechnung mit der +% Nummer {\em{197200/01}} kein Mehrwertsteueranteil angegeben war. +% Das Zeichen von Herrn Maier lautet {\em{maier}}. Sie schreiben +% also folgenden Brief: +% \begin{small}\begin{verbatim} +% \documentclass[10pt,a4paper]{scrlettr} +% \usepackage{ngerman} +% \name{Firma xyz} +% \address{Industriegasse 12\\23987 Stahlhausen} +% \signature{Herr Schmidt\\ Reklamationen} +% \begin{document} +% \begin{letter}{Herr Maier\\Wiesenweg 37\\ Blumental} +% \yourref{maier} +% \yourmail{14.08.2000} +% \myref{xyz} +% \customer{maier007} +% \invoice{197200/01} +% \opening{Sehr geehrter Herr Maier,} +% vielen Dank f"ur Ihr Schreiben vom 14. August. +% Wir bedauern unseren Fehler und senden Ihnen +% anbei eine korrigierte Rechnung. +% \closing{Mit freundlichen Gr"u"sen} +% \end{letter} +% \end{document} +% \end{verbatim}\end{small} +% Sie sehen, dass Ihre Angaben im Referenzfeld\Index{Referenzfeld} +% zwischen der Empf"angeradresse und dem eigentlichen Brieftext +% gesetzt werden. +% \end{Example} +% \EndIndex{Cmd}{yourref}\EndIndex{Cmd}{yourmail}\EndIndex{Cmd}{myref} +% \EndIndex{Cmd}{customer}\EndIndex{Cmd}{invoice} +% +% \begin{Declaration} +% \Macro{refitemi}\Parameter{Eigenes Feld 1}\\ +% \Macro{refitemii}\Parameter{Eigenes Feld 2}\\ +% \Macro{refitemiii}\Parameter{Eigenes Feld 3}\\ +% \Macro{refitemnamei}\Parameter{Bezeichnung des eigenen Feldes 1}\\ +% \Macro{refitemnameii}\Parameter{Bezeichnung des eigenen Feldes 2}\\ +% \Macro{refitemnameiii}\Parameter{Bezeichnung des eigenen Feldes 3} +% \end{Declaration} +% \BeginIndex{Cmd}{refitemi}\BeginIndex{Cmd}{refitemii} +% \BeginIndex{Cmd}{refitemiii} +% \EndIndex{Cmd}{refitemi}\EndIndex{Cmd}{refitemii}\EndIndex{Cmd}{refitemiii} +% \BeginIndex{Cmd}{refitemnamei}\BeginIndex{Cmd}{refitemnameii} +% \BeginIndex{Cmd}{refitemnameiii} +% Neben den bereits vordefinierten Makros stehen noch bis zu drei +% frei definierbare Makros zur Verf"ugung, um das Referenzfeld +% verschiedenen Anforderungen gem"a"s anpassen zu k"onnen. +% +% \begin{Example} +% Angenommen, Sie stehen mit Herrn Maier in Verhandlungen "uber die +% Abnahme von 10.000 St"uck Ihres schlimmsten Ladenh"uters. Dann +% ben"otigen Sie nat"urlich keine Rechnungsnummer. Statt dessen +% m"ochten Sie im Referenzfeld ein Aktenzeichen\Index{Aktenzeichen} +% vermerken. Dazu definieren zu mit \Macro{refitemnamei} den ersten +% frei w"ahlbaren Referenzeintrag als \emph{Aktenzeichen}. Diesem +% Eintrag k"onnen Sie dann das Aktenzeichen \emph{123/01mai} +% zuweisen. +% \begin{small}\begin{verbatim} +% \refitemnamei{Aktenzeichen} +% \refitemi{123/01mai} +% \end{verbatim}\end{small} +% \end{Example} +% \EndIndex{Cmd}{refitemnamei}\EndIndex{Cmd}{refitemnameii} +% \EndIndex{Cmd}{refitemnameiii} +% +% \section{Seitenstile} +% +% \begin{Declaration} +% \Macro{firsthead}\Parameter{Kopfdefinition}\\ +% \Macro{firstfoot}\Parameter{Fu"sdefinition}\\ +% \Macro{nexthead}\Parameter{Kopfdefinition}\\ +% \Macro{nextfoot}\Parameter{Fu"sdefinition} +% \end{Declaration} +% \BeginIndex{Cmd}{firsthead}\BeginIndex{Cmd}{firstfoot} +% \BeginIndex{Cmd}{nexthead}\BeginIndex{Cmd}{nextfoot} +% Die \Class{scrlettr}-Klasse erm"oglicht es, den +% Seitenstil\Index{Seitenstil} eines Dokuments an die eigenen +% Bed"urfnisse anzupassen. Dazu kann getrennt f"ur die erste und alle +% folgenden Seiten der Fu"s und der Kopf frei definiert werden. Diese +% Definition muss \emph{vor} dem Aufruf von +% \Macro{pagestyle}\Parameter{\dots} erfolgen. +% \begin{Example} +% Sie m"ochten in der Fu"szeile der ersten Seite eines Briefes die +% Bankverbindung notieren. In den Fu"szeilen der folgenden Seiten +% m"ochten Sie auf Ihren verantwortungsbewussten Umgang mit der +% Umwelt hinweisen. +% \begin{small}\begin{verbatim} +% \firstfoot{Bankverbindung:\hfill $\bullet$\hfill Deutsche +% Bank AG\hfill $\bullet$\hfill BLZ: 999\,720\,00\hfill +% $\bullet$\hfill Konto: 123\,456\,890} +% \nextfoot{\centerline{Dieses Schreiben wird +% ausschlie"slich auf chlorfrei gebleichten Papier gedruckt.}} +% \pagestyle{firstpage} +% \end{verbatim}\end{small} +% \end{Example} +% Der Aufruf des Steitenstils +% \Macro{pagestyle}\PParameter{firstpage}\IndexPagestyle[indexit]{firstpage} +% sorgt daf"ur, dass auf allen Seiten Kopf und Fu"s wie auf der ersten +% Seite gestaltet werden. +% +% Voreingestellt ist der Stil \PValue{plain}\IndexPagestyle{plain}. +% Wird der Stil \PValue{headings}\IndexPagestyle{headings} ohne +% eigene Definition der Kopf- und Fu"szeilen verwendet, so sind die +% Fu"szeilen grunds"atzlich leer. Die Kopfzeile der ersten Seite +% enth"alt zentriert den Absendernamen eine +% Trennlinie\Index{Trennlinie} und die Absenderadresse. Der Kopf der +% folgenden Seiten besteht aus den linksb"undig gesetzten +% Absendernamen in der ersten Zeile. In einer zweiten Zeile steht +% der Empf"angername, das Datum und die Seitenzahl. Wird der Stil +% \PValue{empty}\IndexPagestyle{empty} gew"ahlt, so bleiben Kopf- +% und Fu"szeile auf allen Seiten leer. +% +% Auf diese Weise k"onnen sehr individulle Briefb"ogen erstellt +% werden. +% \iffalse +% Der Phantasie sind lediglich durch die zur Verf"ugung +% stehenden Zeichens"atze Grenzen gesetzt. +% \fi +% \EndIndex{Cmd}{firsthead}\EndIndex{Cmd}{firstfoot} +% \EndIndex{Cmd}{nexthead}\EndIndex{Cmd}{nextfoot} +% +% \begin{Declaration} +% \Option{twoside} +% \end{Declaration} +% \BeginIndex{Option}{twoside} +% Zweiseitig gedruckte Briefe werden durch die Angabe der Option +% \Option{twoside} unterst"utzt. Im Gegensatz zu den "ubrigen +% \KOMAScript -Klassen "andert sich hier der Satzspiegel nicht, +% sondern es wird lediglich sichergestellt, dass ein neuer Brief +% immer auf einer ungeraden \emph{Druck}seite beginnt. Dar"uber +% hinaus wird eine Warnung ausgegeben, um darauf hinzuweisen, dass +% es sich nicht wirklich um ein zweiseitiges Layout handelt. +% \EndIndex{Option}{twoside} +% +% \begin{Declaration} +% \Macro{foldmarkson}\\ +% \Macro{foldmarksoff} +% \end{Declaration} +% \BeginIndex{Cmd}{foldmarkson}\BeginIndex{Cmd}{foldmarksoff} +% Die Faltmarken\Index[indexit]{Faltmarken} k"onnen mit dem Befehl +% \Macro{foldmarkson} eingeschaltet und mit dem Befehl +% \Macro{foldmarksoff} ausgestellt werden. Dies ist f"ur jeden Brief +% eines Dokuments getrennt m"oglich. Voreingestellt ist +% \Macro{foldsmarkson}. Diese Faltmarken werden von \Macro{opening} +% gesetzt. Die Schalter und evtl. "Anderungen der Ma"se (vgl. +% Abschnitt~\ref{list:laengen}) m"ussen also vor diesem Makro +% aufgerufen werden. +% \EndIndex{Cmd}{foldmarkson}\EndIndex{Cmd}{foldmarksoff} +% +% +% \section{Unterst"utzung verschiedener Sprachen} +% +% \subsection{Sprachauswahl und -umschaltung} +% \Index[indexit]{Sprachumschaltung}\Index[indexit]{Sprachauswahl} +% +% Die \Class{scrlettr}-Klasse unterst"utz viele Sprachen. Dazu z"ahlen +% neben Deutsch auch "Osterreichisch, Englisch (britisch und +% amerikanisch), Franz"osich, Italienisch und Spanisch. Zwischen den +% Sprachen wird bei Verwendung des \Package{babel}-Pakets mit dem +% Befehl \Macro{selectlanguage}\Parameter{Sprachauswahl} gewechselt. +% +% \begin{Declaration} +% \Macro{captionsenglish}\\ +% \Macro{captionsUSenglish}\\ +% \Macro{captionsamerican}\\ +% \Macro{captionsbritish}\\ +% \Macro{captionsUKenglish}\\ +% \Macro{captionsgerman}\\ +% \Macro{captionsaustrian}\\ +% \Macro{captionsfrench}\\ +% \Macro{captionsitalian}\\ +% \Macro{captionsspanish} +% \end{Declaration} +% \BeginIndex{Cmd}{captionsenglish}\BeginIndex{Cmd}{captionsUSenglish} +% \BeginIndex{Cmd}{captionsamerican}\BeginIndex{Cmd}{captionsbritish} +% \BeginIndex{Cmd}{captionsUKenglish}\BeginIndex{Cmd}{captionsgerman} +% \BeginIndex{Cmd}{captionsaustrian}\BeginIndex{Cmd}{captionsfrench} +% \BeginIndex{Cmd}{captionsitalian}\BeginIndex{Cmd}{captionsspanish} +% Wird die Sprache eines Briefes gewechselt, so "andern sich +% automatisch die Eintragungen der automatisch gesetzten \glqq +% Caption\grqq -Texte wie \emph{Betreff}, \emph{Seite} oder +% \emph{Anlagen}. Sollte das verwendete Sprachumschaltpaket diese +% Texte nicht automatisch verwalten, so k"onnen die entsprechenden +% Befehle notfalls auch dirket verwendet werden. +% \EndIndex{Cmd}{captionsenglish}\EndIndex{Cmd}{captionsUSenglish} +% \EndIndex{Cmd}{captionsamerican}\EndIndex{Cmd}{captionsbritish} +% \EndIndex{Cmd}{captionsUKenglish}\EndIndex{Cmd}{captionsgerman} +% \EndIndex{Cmd}{captionsaustrian}\EndIndex{Cmd}{captionsfrench} +% \EndIndex{Cmd}{captionsitalian}\EndIndex{Cmd}{captionsspanish} +% +% \begin{Declaration} +% \Macro{dateenglish}\\ +% \Macro{dateUSenglish}\\ +% \Macro{dateamerican}\\ +% \Macro{datebritish}\\ +% \Macro{dateUKenglish}\\ +% \Macro{dategerman}\\ +% \Macro{dateaustrian}\\ +% \Macro{datefrench}\\ +% \Macro{dateitalian}\\ +% \Macro{datespanish} +% \end{Declaration} +% \BeginIndex{Cmd}{dateenglish}\BeginIndex{Cmd}{dateUSenglish} +% \BeginIndex{Cmd}{dateamerican}\BeginIndex{Cmd}{datebritish} +% \BeginIndex{Cmd}{dateUKenglish}\BeginIndex{Cmd}{dategerman} +% \BeginIndex{Cmd}{dateaustrian}\BeginIndex{Cmd}{datefrench} +% \BeginIndex{Cmd}{dateitalian}\BeginIndex{Cmd}{datespanish} +% Je nach verwendeter Sprache werden auch die +% Datumsangaben\Index{Datum} in unterschiedlicher Form umgesetzt. +% Die genauen Angaben k"onnen der Tabelle~\ref{TAB:Datum} entnommen +% werden. +% \begin{table} +% \centering +% \begin{tabular}{ll} +% \verb \dateenglish & 1/12/1993\\ +% \verb \dateUSenglish & 12/1/1993\\ +% \verb \dateamerican & 12/1/1993\\ +% \verb \datebritish & 1/12/1993\\ +% \verb \dateUKenglish & 1/12/1993\\ +% \verb \dategerman & 1.\,12.\,1993\\ +% \verb \dateaustrian & 1.\,12.\,1993\\ +% \verb \datefrench & 1.\,12.\,1993\\ +% \verb \dateitalian & 1.\,12.\,1993\\ +% \verb \datespanish & 1.\,12.\,1993\\ +% \end{tabular} +% \caption{Sprachabh"angige Ausgabeformate f"ur Datum} +% \label{TAB:Datum} +% \end{table} +% \EndIndex{Cmd}{dateenglish}\EndIndex{Cmd}{dateUSenglish} +% \EndIndex{Cmd}{dateamerican}\EndIndex{Cmd}{datebritish} +% \EndIndex{Cmd}{dateUKenglish}\EndIndex{Cmd}{dategerman} +% \EndIndex{Cmd}{dateaustrian}\EndIndex{Cmd}{datefrench} +% \EndIndex{Cmd}{dateitalian}\EndIndex{Cmd}{datespanish} +% +% \begin{Declaration} +% \Option{orgdate}\\ +% \Option{scrdate} +% \end{Declaration} +% \BeginIndex{Option}{orgdate} +% Sollen die Datumseinstellungen\Index{Datum} des \Package{babel}- +% oder \Package{ngerman}-Pakets oder eines eigenen +% Sprachumschaltpakets benutzt werden, so kann dies durch die +% Klassenoption \Option{orgdate} erreicht werden. Voreingestellt ist +% die Verwendung der \Class{scrlettr}-eigenen Definition +% (\Option{scrdate}). +% \EndIndex{Option}{orgdate} +% +% \subsection{Sprachabh"angige Variablen} +% \Index[indexit]{sprachabhaengige Variablen=sprachabh"angige +% Variablen} +% \begin{Declaration} +% \Macro{yourrefname}\\ +% \Macro{yourmailname}\\ +% \Macro{myrefname}\\ +% \Macro{customername}\\ +% \Macro{invoicename}\\ +% \Macro{subjectname}\\ +% \Macro{ccname}\\ +% \Macro{enclname}\\ +% \Macro{headtoname}\\ +% \Macro{datename}\\ +% \Macro{pagename} +% \end{Declaration} +% \BeginIndex{Cmd}{yourrefname}\BeginIndex{Cmd}{yourmailname} +% \BeginIndex{Cmd}{myrefname} +% \BeginIndex{Cmd}{customername}\BeginIndex{Cmd}{invoicename} +% \BeginIndex{Cmd}{subjectname} +% \BeginIndex{Cmd}{ccname}\BeginIndex{Cmd}{enclname} +% \BeginIndex{Cmd}{headtoname} +% \BeginIndex{Cmd}{datename}\BeginIndex{Cmd}{pagename} +% Die aufgef"uhrten Befehle enthalten die jeweils sprachtypischen +% \emph{Captiontexte}. Diese k"onnen f"ur die Realisierung einer +% weiteren Sprache oder aber auch zur eigenen freien Gestaltung +% angepasst werden. Dazu benutzt man den Befehl +% \Macro{renewcommand}. +% +% \begin{Example} +% M"ochten Sie statt des Eintrags \glqq Ihr Schreiben vom\grqq\ +% lieber \glqq Ihre Nachricht vom\grqq\ im Referenzfeld stehen +% haben, m"ussen Sie den Befehl \Macro{yourmailname} wie folgt +% umdefinieren. +% \begin{small}\begin{verbatim} +% \renewcommand*{\yourmailname}{Ihre Nachricht vom} +% \end{verbatim}\end{small} +% Auf diese Weise k"onnen Sie nat"urlich auch alle Variablen den +% Vorgaben einer anderen Sprache anpassen. +% \end{Example} +% Es ist darauf zu achten, dass die Variablen erst \emph{nach} +% \Macro{begin}\PParameter{document} definiert werden. Der Aufruf +% \Macro{renewcommand*}\Parameter{\dots} muss daher zwingend nach +% \Macro{begin}\PParameter{document} oder mit Hilfe von +% \Macro{AtBeginDocument} (siehe \cite{latex:clsguide}) erfolgen. +% \EndIndex{Cmd}{yourrefname}\EndIndex{Cmd}{yourmailname} +% \EndIndex{Cmd}{myrefname} +% \EndIndex{Cmd}{customername}\EndIndex{Cmd}{invoicename} +% \EndIndex{Cmd}{subjectname} +% \EndIndex{Cmd}{ccname}\EndIndex{Cmd}{enclname}\EndIndex{Cmd}{headtoname} +% \EndIndex{Cmd}{datename}\EndIndex{Cmd}{pagename} +% +% +% \section{Adressdateien} +% \label{sec:adressdateien} +% \begin{Declaration} +% \Macro{adrentry}\Parameter{Name}\Parameter{Vorname}\Parameter{Adresse} +% \Parameter{Telefon}\Parameter{F1}\Parameter{F2} +% \Parameter{Kommentar}\Parameter{K"urzel} +% \end{Declaration} +% \BeginIndex{Cmd}{adrentry} +% \label{decl:adrentry} +% Mit der \Class{scrlettr}-Klasse k"onnen auch +% Adressdateien\Index[indexit]{Adressdatei} ausgewertet werden. Dies +% ist beispielsweise f"ur Serienbriefe sehr n"utzlich (siehe +% Abschnitt~\ref{subsec:Serienbriefe}). Eine Adressdatei muss die +% Endung \File{.adr} haben und besteht aus einer Reihe von +% \Macro{adrentry}-Eintr"agen. Ein solcher Eintrag besteht aus acht +% Elementen und kann beispielsweise wie folgt aussehen: +% \begin{small}\begin{verbatim} +% \adrentry{Maier} +% {Herbert} +% {\Wiesenweg 37\\ 09091 Blumental} +% {0\,23\,34 / 91\,12\,74} +% {Bauunternehmer} +% {} +% {kauft alles} +% {MAIER} +% \end{verbatim}\end{small} +% Die Elemente f"unf und sechs, \PValue{F1} und \PValue{F2}, k"onnen +% frei bestimmt werden. Denkbar w"aren neben Hinweisen auf das +% Geschlecht oder akademische Grade auch der Geburtstag oder das +% Eintrittsdatum in einen Verein. +% Um das "Uberschreiben von \TeX - oder \LaTeX -Befehlen zu +% vermeiden, ist es empfehlenswert, f"ur \emph{K"urzel} ausschlie"slich +% Gro"sbuchstaben zu verwenden. +% +% \begin{Example} +% Herr Maier geh"ort zu Ihren engeren Gesch"aftspartnern. Da Sie eine +% rege Korrespondenz mit ihm pflegen, ist es Ihnen auf Dauer zu +% m"u"sig, jedesmal alle Empf"angerdaten aufs Neue einzugeben. +% \Class{scrlettr} nimmt Ihnen diese Arbeit ab. Angenommen, Sie +% haben Ihre Kundenkontakte in der Datei \File{partner.adr} +% gespeichert und Sie m"ochten Herrn Maier einen Brief schreiben, +% dann sparen Sie sich viel Tipparbeit, wenn Sie folgendes eingeben: +% \begin{small}\begin{verbatim} +% \input{partner.adr} +% \begin{letter}{\MAIER} +% Der Brief ... +% \end{letter} +% \end{verbatim}\end{small} +% Achten Sie bitte darauf, dass Ihr \TeX -System auch auf die +% \File{.adr}-Dateien zugreifen kann, da sonst eine Fehlermeldung +% von \Macro{input} verursacht wird. Entweder Sie legen die Brief- +% und Adressdateien im selben Verzeichnis an, oder Sie binden ein +% Adressverzeichnis fest in Ihr \TeX -System ein. +% \end{Example} +% \EndIndex{Cmd}{adrentry} +% +% \subsection{Serienbriefe mit der \Class{scrlettr}-Klasse} +% \label{subsec:Serienbriefe} +% +% Neben dem vereinfachten Zugriff auf Kundendaten k"onnen die +% \File{.adr}-Dateien auch f"ur +% Serienbriefe\Index[indexit]{Serienbriefe} genutzt werden. So ist +% es ohne die komplizierte Anbindung an Datenbanksysteme m"oglich, +% solche Massenpostsendungen zu erstellen. +% \begin{Example} +% Sie wollen einen Serienbrief an alle Mitglieder Ihres +% Anglervereins schicken, um zur n"achsten Mitgliederversammlung +% einzuladen. +% \begin{small}\begin{verbatim} +% \documentclass{scrlettr} +% \usepackage{ngerman} +% \begin{document} +% \def\adrentry#1#2#3#4#5#6#7#8{ +% \begin{letter}{#2 #1\\#3} +% \opening{Liebe Vereinsmitglieder,} +% unsere n"achste Mitgliederversammlung +% findet am Montag, +% dem 13.\, August 2001, statt. +% +% Folgende Punkte m"ussen besprochen werden... +% \closing{Petri Heil,} +% \end{letter} +% } +% \input{mitglieder.adr} +% \end{document} +% \end{verbatim}\end{small} +% \end{Example} +% Nat"urlich kann der Briefinhalt auch von den Adressatenmerkmalen +% abh"angig gemacht werden. Als Bedingungsfelder k"onnen die frei +% bestimmbaren Elemente f"unf oder sechs eines +% \Macro{adrentry}-Eintrages genutzt werden. +% \begin{Example} +% Angenommen, Sie verwenden das Element f"unf, um das Geschlecht +% eines Vereinmitgliedes zu hinterlegen (\PValue{m/w}) und das +% sechste Element weist auf eine R"uckstand der Mitgliedsbeitr"age +% hin. Wollen Sie nun alle s"aumigen Mitglieder anschreiben und +% pers"onlich anreden, so hilft Ihnen folgendes Beispiel weiter: +% \begin{small}\begin{verbatim} +% \def\adrentry#1#2#3#4#5#6#7#8{ +% \ifcase #6 +% % #6 > 0 +% % hier werden die s"aumigen Mitglieder herausgefiltert +% \else +% \begin{letter}{#2 #1\\#3} +% \if #5m \opening{Lieber #2,} \fi +% \if #5w \opening{Liebe #2,} \fi +% +% Leider mussten wir feststellen, dass du mit der Zah- +% lung deiner Mitgliedsbeitr"age im R"uckstand bist. +% +% Wir m"ochten Dich bitten, den offenen Betrag von #6 DM +% auf das Vereinskonto einzuzahlen. +% \closing{Petri Heil,} +% \end{letter} +% \fi +% } +% \end{verbatim}\end{small} +% \end{Example} +% Es ist also m"oglich, den Brieftext auf bestimmte Empf"angermerkmale +% gezielt abzustimmen und so den Eindruck eines pers"onlichen +% Schreibens zu erwecken. Die Anwendungsbreite ist lediglich durch +% die maximale Anzahl von zwei freien \Macro{adrentry}-Elementen +% begrenzt. +% +% \subsection{Adressverzeichnisse und Telefonlisten erstellen} +% +% Der Inhalt dieses Abschnitts ist komplett obsolet. Hier sei +% stattdessen auf das \Package{adrconv}-Paket von Axel Kielhorn +% verwiesen. +% +% \section{Befehls- und Variablen"ubersicht} +% \subsection{Briefspezifische Befehle, die strukturbeschreibend sind +% oder eine Ausgabe erzeugen:} +% +% \begin{labeling}[~]{\Macro{begin}\PParameter{letter}\Parameter{Adressat}} +% \item[\Macro{begin}\PParameter{letter}\Parameter{Adressat}] Markiert den +% Beginn eines Briefes an \emph{Adressat} und beginnt eine neue +% Seite\IndexEnv{letter} +% \item[\Macro{end}\PParameter{letter}] Markiert das Ende eines +% Briefes\IndexEnv{letter} +% \item[\Macro{opening}\Parameter{Anrede}] Setzt alle Teile eines +% Briefes oberhalb und einschlie"slich der +% \emph{Anrede}\IndexCmd{opening} +% \item[\Macro{closing}\Parameter{Gru"sformel}] Setzt \emph{Gru"sformel} +% und Unterschrift\IndexCmd{closing}\Index{Grussformel=Gru"sformel} +% \item[\Macro{ps}\Parameter{Postscriptum}] Setzt ein +% \emph{Postscriptum}\IndexCmd{ps}\Index{Postscriptum} +% \item[\Macro{cc}\Parameter{Verteiler}] setzt eine Verteilerliste, +% deren Eintr"age durch \verb \\ \ zu trennen sind +% (vgl.\Macro{ccnameseparator} und +% \Macro{ccname})\IndexCmd{cc}\Index{Verteiler} +% \item[\Macro{encl}\Parameter{Anlagen}] Setzt eine Anlagenliste, deren +% Eintr"age durch \verb \\ \ zu trennen sind (vgl. +% \Macro{enclnameseparator} und +% \Macro{enclname})\IndexCmd{encl}\Index{Anlagen} +% \end{labeling} +% +% \subsection{Befehle der Adressdateien:} +% +% \Macro{adrchar} und \Macro{adrentry} siehe +% Abschnitt~\ref{decl:adrentry} +% +% \subsection{Befehle zur Sprachumschaltung:}\Index{Sprachumschaltung} +% +% \begin{labeling}[~]{\Macro{captionsUSenglish}} +% \item[\Macro{captionsenglish}] Umschaltung auf englische +% Caption-Texte\IndexCmd{captionsenglish} +% \item[\Macro{captionsUSenglish}] Umschaltung auf amerikanische +% Cation-Texte\IndexCmd{captionsUSenglish} +% \item[\Macro{captionsgerman}] Umschaltung auf deutsche +% Caption-Texte\IndexCmd{captionsgerman} +% \item[\Macro{captionsfrench}] Umschaltung auf franz"osische +% Caption-Texte\IndexCmd{captionsfrench} +% \item[\Macro{captionsitalian}] Umschaltung auf italienische +% Caption-Texte\IndexCmd{captionsitalian} +% \item[\Macro{captionsaustrian}] Umschaltung auf "osterreichische +% Caption-Texte\IndexCmd{captionsaustrian} +% \item[\Macro{captionsspanish}] Umschaltung auf spanische +% Caption-Texte\IndexCmd{captionsspanish} +% \index{Datum} +% \item[\Macro{dateenglish}] Englisches Datum +% (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{dateenglish} +% \item[\Macro{dateUSenglish}] Amerikanisches Datum +% (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{dateUSenglish} +% \item[\Macro{dategerman}] Deutsches Datum +% (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{dategerman} +% \item[\Macro{datefrench}] Franz"osisches Datum +% (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{datefrench} +% \item[\Macro{dateitalian}] Italienisches Datum +% (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{dateitalian} +% \item[\Macro{dateaustrian}] "Osterreichisches Datum +% (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{dateaustrian} +% \item[\Macro{datespanish}] Spanisches Datum (vgl. Tabelle~\ref{TAB:Datum})\IndexCmd{datespanish} +% \end{labeling} +% +% \subsection{Sprachabh"angige Variablen}\Index{sprachabhaengige +% Variablen=sprachabh"angige Variablen} +% +% Diese Varialblen d"urfen an jeder Stelle nach dem +% \Macro{begin}\PParameter{document}-Befehl aufgerufen werden. Sie +% k"onnen nur mit \Macro{renewcommand} ge"andert werden. Die +% untenstehende Aufstellung listet die voreingestellten Eintr"age f"ur +% die Sprachen Deutsch, Englisch, Franz"osisch, Italienisch und +% Spanisch auf. Die amerikanischen Caption-Texte entsprechen den +% englischen. Deutsche und "osterreichische Eintragungen sind +% identisch. +% +% \begin{labeling}[~]{\Macro{customername}} +% \item[\Macro{yourrefname}] \small +% Ihr Zeichen / Your ref. / Vos références / Vs./Rif. / Su ref. +% \IndexCmd{yourrefname} +% \item[\Macro{yourmailname}] \small +% Ihr Schreiben vom / Your letter of / Votre lettre du / Vs.~lettera +% del / Su carta de\IndexCmd{yourmailname} +% \item[\Macro{myrefname}] \small +% Unser Zeichen / Our ref. / Nos références / Ns./Rif. / Nuestra +% ref.\IndexCmd{myrefname} +% \item[\Macro{customername}] \small +% Kundennummer / Customer no. / Numéro de client / Nr.~cliente / No. +% de cliente\IndexCmd{customername} +% \item[\Macro{invoicename}] \small +% Rechnungsnummer / Invoice no. / Numéro de facture / Nr.~fattura / +% No. de factura\IndexCmd{invoicename} +% \item[\Macro{subjectname}] \small Betr. / Subject / Concernant / +% Oggetto / Asunto\IndexCmd{subjectname} +% \item[\Macro{ccname}] \small +% Kopie an / cc / Copia á / Per conoscenza / Copias\IndexCmd{ccname} +% \item[\Macro{enclname}] \small +% Anlagen / encl / Annexes / Allegato / Adjunto\IndexCmd{enclname} +% \item[\Macro{headtoname}] \small +% An / To / A / A / A\IndexCmd{headtoname} +% \item[\Macro{datename}] \small +% Datum / Date / Date / Data / Fecha\IndexCmd{datename} +% \item[\Macro{pagename}] \small +% Seite / Page / Page / Pagina / Página\IndexCmd{pagename} +% \end{labeling} +% +% \subsection{Briefspezifische Variablen und deren Befehle zur Neu- und +% Umdefinierung} +% +% Die in Klammern stehenden Variablen werden durch Aufruf folgender +% Makros ge"andert. +% \begin{labeling}[~]{\Macro{refitemnameiii}} +% \index{briefspezifische Variablen} +% \item[\Macro{name}] Name des Absenders +% (\Macro{fromname})\IndexCmd{name} +% \item[\Macro{branch}] Branche des Absenders ( +% \Macro{frombranch})\IndexCmd{branch} +% \item[\Macro{signature}] Unterschrift, voreingestellt ist die +% "Ubernahme des Wertes von \Macro{name} +% (\Macro{fromsig})\IndexCmd{signature} +% \item[\Macro{address}] Absenderadresse +% (\Macro{fromaddress})\IndexCmd{address} +% \item[\Macro{place}] Absenderort (\Macro{fromplace})\IndexCmd{place} +% \item[\Macro{location}] weitere Angabe zur Absenderadresse +% (\Macro{fromlocation})\IndexCmd{location} +% \item[\Macro{backaddress}] Absenderadresse im Adressfeld +% (\Macro{frombackaddress})\IndexCmd{backaddress} +% \item[\Macro{telephone}] Telefonnummer des Absenders +% (\Macro{telephonenum})\IndexCmd{telefone} +% \item[\Macro{yourref}] Referenzfeldeintrag +% (\Macro{varyourref})\IndexCmd{yourref} +% \item[\Macro{yourmail}] Referenzfeldeintrag +% (\Macro{varyourmail}\IndexCmd{yourmail} +% \item[\Macro{myref}] Referenzfeldeintrag +% (\Macro{varmymail})\IndexCmd{yourref} +% \item[\Macro{customer}] Referenzfeldeintrag +% (\Macro{varcustomer})\IndexCmd{customer} +% \item[\Macro{invoice}] Referenzfeldeintrag +% (\Macro{varinvoice})\IndexCmd{invoice} +% \item[\Macro{refitemi}] Referenzfeldeintrag, frei definierbar +% (\Macro{varrefitemi})\IndexCmd{refitemi} +% \item[\Macro{refitemii}] Referenzfeldeintrag, frei definierbar +% (\Macro{varrefitemii})\IndexCmd{refitemii} +% \item[\Macro{refitemiii}] Referenzfeldeintrag, frei definierbar +% (\Macro{varrefitemiii})\IndexCmd{refitemiii} +% \item[\Macro{refitemnamei}] Bezeichnung eines frei definierbaren +% Referenzfeldeintrags +% (\Macro{varrefitemnamei})\IndexCmd{refitemnamei} +% \item[\Macro{refitemnameii}] Bezeichnung eines frei definierbaren +% Referenzfeldeintrags +% (\Macro{varrefitemnameii})\IndexCmd{refitemnameii} +% \item[\Macro{refitemnameiii}] Bezeichnung eines frei definierbaren +% Referenzfeldeintrags +% (\Macro{varrefitemnameiii})\IndexCmd{refitemnameiii} +% \item[\Macro{specialmail}] Versandart +% (\Macro{@specialmail})\IndexCmd{specialmail}\Index{Versandart} +% \item[\Macro{title}] "Uberschrift (\Macro{@title})\IndexCmd{title} +% \item[\Macro{subject}] Betreff, sprachabh"angig +% (\Macro{@subject})\IndexCmd{subject}\Index{Betreff} +% \item[\Macro{firsthead}] Kopfzeilendefinition f"ur erste Seite +% (\Macro{@firsthead})\IndexCmd{firsthead} +% \item[\Macro{firstfoot}] Fu"szeilendefinition f"ur erste Seite +% (\Macro{@firstfoot})\IndexCmd{firstfoot} +% \item[\Macro{nexthead}] Kopfzeile der folgenden Seiten +% (\Macro{@nexthead})\IndexCmd{nexthead} +% \item[\Macro{nextfoot}] Fu"szeile der folgenden Seiten +% (\Macro{@nextfoot})\IndexCmd{nextfoot} +% \end{labeling} +% +% \subsection{Briefspezifische L"angenangaben} \label{list:laengen} +% \Index{Laengenangaben=L"angenangaben} +% +% Voreingestellte L"angen sind in Klammern angegeben. +% \begin{labeling}[~]{\Length{foldvskipiii}} +% \item[\Length{foldhskip}] Abstand der Falzmarke vom linken +% Papierrand (3,5\Unit{mm})\IndexLength{foldhskip} +% \item[\Length{foldvskipi}] Abstand zwischen der ersten Falzmarke +% und dem oberen Seitenrand (62\Unit{mm})\IndexLength{foldvskipi} +% \item[\Length{foldvskipii}] Abstand der zweiten Falzmarke von +% der ersten Falzmarke (45\Unit{mm})\IndexLength{foldvskipii} +% \item[\Length{foldvskipiii}] Abstand der dritten Falzmark von +% der zweiten Falzmarke (54\Unit{mm})\IndexLength{foldvskipiii} +% \item[\Length{addvskip}] Abstand des Adressfensters von der +% Textbereichsoberkante (7,5\Unit{mm})\IndexLength{addvskip} +% \item[\Length{addrindent}] Abstand des Adressfensters vom linken +% Rand des Textbereiches (0\Unit{mm})\IndexLength{addrindent} +% \item[\Length{addrwidth}] Breite des Adressfeldes +% (70\Unit{mm})\IndexLength{addrwidth} +% \item[\Length{locwidth}] Breite des \glqq Location\grqq -Feldes +% [$(\Length{textwidth}-\Length{addrwidth})/2$ bei Option +% \Option{slocfield} oder +% $(\Length{textwidth}-\Length{addrwidth})*2/3$ bei Verwendung der +% Option \Option{wlocfield}]\IndexLength{locwidth} +% \item[\Length{refvskip}] Abstand zwischen dem Referenzfelde und der +% Adressfeldunterkante (5,5\Unit{mm})\IndexLength{refvskip} +% \item[\Length{sigindent}] Abstand der Gru"sformel und der +% Unterschrift vom linken Rand des Textbereiches +% (0\Unit{mm})\IndexLength{sigindent} +% \end{labeling} +% +% +% \subsection{Befehle zum Setzen interner Abst"ande} +% Voreingestellte L"angen sind in Klammern angegeben. +% \begin{labeling}[~]{\Macro{setpresigskip}} +% \item[\Macro{setpresigskip}] Abstand zwischen der Gru"sformel und der +% Unterschrift voreingestellt sind +% (2\Length{baselineskip})\IndexCmd{setpresigskip} +% \Index{Grussformel=Gru"sformel} +% \end{labeling} +% +% \subsection{Schalter} +% +% An den jeweiligen Schalternamen ist noch ein \PValue{on} bzw. +% \PValue{off} anzuh"angen. +% +% \begin{labeling}[~]{\Macro{subjectafter}} +% \item[\Macro{foldmarks}] Faltmarken (Default = on) +% \IndexCmd{foldmarkson}\IndexCmd{foldmarksoff}\Index{Faltmarken} +% \item[\Macro{addrfield}] Adress- und \glqq Location\grqq -Feld +% (Default = on)\Index{Adressfeld} +% \item[\Macro{subject}] \glqq Betreff: \grqq\ vor \Macro{subject} +% (Default = off)\IndexCmd{subjecton}\IndexCmd{subjectoff} +% \item[\Macro{subjectafter}] Betreff nach der Anrede setzen +% (Default = off) +% \IndexCmd{subjectafteron}\Index{Betreff}\IndexCmd{subjectafteroff} +% \end{labeling} +% +% \subsection{Klassenoptionen} +% +% Die Standartoptionen (\Option{12pt}, \Option{oneside}, +% \Option{final}, \Option{slocfield}) k"onnen durch explizite +% Optionsangaben "uberschrieben werden. +% \begin{labeling}[~]{\Option{10pt}, \Option{11pt}, \Option{12pt}} +% \item[\Option{10pt}, \Option{11pt}, \Option{12pt}] Option f"ur die +% Schriftgr"o"se\IndexOption{10pt}\IndexOption{11pt}\IndexOption{12pt} +% \item[\Option{oneside}] einseitiges Layout\IndexOption{oneside} +% \item[\Option{twoside}] pseudo-doppelseitiges +% Layout\IndexOption{twoside}\IndexOption{twoside} +% \item[\Option{draft}] Dokumente im Entwurfsstadium +% setzen\IndexOption{draft} +% \item[\Option{final}] Dokumente in der Endfassung +% setzen\IndexOption{final} +% \item[\Option{a4paper}] Papiergr"o"se\IndexOption{a4paper} +% \item[\Option{wlocfield}] gro"ses \glqq +% Location\grqq-Feld\IndexOption{wlocfield} +% \item[\Option{slocfield}] kleines \glqq +% Location\grqq-Feld\IndexOption{wlocfield} +% \item[\Option{orgdate}] eigene Datumsanpassungen oder die +% eines externen Pakets verwenden\IndexOption{orgdate} +% \item[\Option{scrdate}] Datumsanpassungen des +% \Class{scrlettr}-Pakets verwenden.\IndexOption{scrdate} +% \end{labeling} +% +% \EndIndex{Class}{scrlettr} +% \section{Autoren} +% \label{sec:scrletter.autoren} Die folgenden Autoren waren an +% dieser Anleitung beteiligt oder haben die Vorlage daf"ur geliefert. +% \begin{itemize} +% \item Markus Kohm +% \item \textbf{Enrico Kunz} \TextEMail{enricokunz@web.de} +% \item Jens-Uwe Morawski +% \end{itemize} +% +% \MakeShortVerb{\|} +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \part{"`scrlettr"'-class} +% +% \section{Implementierung} +% +% \begin{macrocode} +%<*scrlettr> +% \end{macrocode} +%\iffalse +% \begin{macrocode} +%<*beta> +\ClassWarningNoLine{scrlettr} + {THIS IS A BETA VERSION!\MessageBreak + YOU SHOULD NOT USE THIS VERSION!\MessageBreak + YOU SHOULD INSTALL THE RELEASE FROM CTAN\MessageBreak + AND USE THAT INSTEAD OF THIS BETA VERSION} +% +\ClassWarningNoLine{scrlettr}{% + THIS CLASS IS OBSOLETE AND NOT LONGER SUPPORTED!\MessageBreak + Since the new KOMA-Script letter class ``scrlttr2'' was\MessageBreak + released, the use of ``scrlettr'' is obsolete.\MessageBreak + You should not use this class for writing new letters.\MessageBreak + You should use ``scrlttr2''.\MessageBreak + All old commands of ``scrlettr'' are supported at\MessageBreak + the new class ``scrlttr2''. But the length are not\MessageBreak + and the typearea was changed - even using the\MessageBreak + compatiblity option ``KOMAold''. So you may have\MessageBreak + to do some changes} +% \end{macrocode} +%\fi +% +% \changes{v2.0}{1993/12/01}{Letzte "`script\_l"'-\LaTeX~2.0-Version +% von Frank Neukam} +% \changes{v2.0-2e}{1994/10/08}{"`script\_l"'-\LaTeXe-Version +% von Axel Kielhorn} +% \changes{v2.0e}{1994/10/12}{Erste "`scrlettr"'-Version im +% \textsf{KOMA-Script} Paket} +% \changes{v2.3e}{1996/05/31}{Faltmarken korrigiert} +% Die Implementierung von |scrlettr| stammt im wesentlichen von Frank Neukam. +% Axel Kielhorn hat sie nach \LaTeXe portiert, wobei die von Roland T. Lichti +% modifizierte Version zugrunde gelegt wurde. Markus Kohm hat nur einige +% wenige, unwesentliche "Anderungen vorgenommen. +% +% \subsection{Optionen} +% +% \changes{v2.4c}{1997/11/25}{Neuer Schalter \cs{if@orgdate} f"ur die neuen +% Optionen \texttt{orgdate}, \texttt{scrdate}} +% \begin{macrocode} +\newcommand*\@ptsize{} +\newif\if@bigloc +\newif\if@orgdate +% \end{macrocode} +% +% \subsubsection{Standardoptionen} +% +% \changes{v2.1a}{1994/10/29}{Meldung bei \texttt{twoside}-Option in +% "`scrlettr"' ge"andert} +% \begin{option}{10pt} +% \begin{option}{11pt} +% \begin{option}{12pt} +% \begin{option}{oneside} +% \begin{option}{twoside} +% \begin{option}{draft} +% \begin{option}{final} +% \begin{option}{a4paper} +% \changes{v2.6a}{2001/05/24}{Neue Standardoption} +% \begin{macrocode} +\DeclareOption{10pt}{\renewcommand*\@ptsize{0}} +\DeclareOption{11pt}{\renewcommand*\@ptsize{1}} +\DeclareOption{12pt}{\renewcommand*\@ptsize{2}} +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue% + \ClassWarningNoLine{scrlettr}{This is no twoside-layout but openright!} +} +\DeclareOption{draft}{\overfullrule 5pt} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\DeclareOption{a4paper}{ + \setlength{\paperwidth}{210mm} + \setlength{\paperheight}{297mm}} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% +% \subsubsection{Optionen f"ur das Adre"sfenster} +% +% \begin{option}{wlocfield} +% \begin{option}{slocfield} +% Mit Hilfe der Optione |wlocfield| kann der Platz neben dem Adre"sfeld +% vergr"o"sert werden. Mit |slocfield| wird der normale, kleine Platz +% verwendet. +% \begin{macrocode} +\DeclareOption{wlocfield}{\@bigloctrue} +\DeclareOption{slocfield}{\@biglocfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \subsubsection{Optionen f"ur das Datum} +% +% \begin{option}{orgdate} +% \changes{v2.4c}{1997/11/25}{Neue Option} +% \begin{option}{scrdate} +% \changes{v2.4c}{1997/11/25}{Neue Option} +% \begin{macrocode} +\DeclareOption{orgdate}{\@orgdatetrue} +\DeclareOption{scrdate}{\@orgdatefalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \subsubsection{Optionenwahl} +% +% Standard sind bei |scrlettr| die Optionen |12pt|, |oneside|, |final| und +% |slocfield|. Diese k"onnen durch explizite Optionsangabe "uberschrieben +% werden. +% \begin{macrocode} +\ExecuteOptions{12pt,oneside,final,slocfield,a4paper} +\ProcessOptions +\input{size1\@ptsize.clo} +% \end{macrocode} +% +% \subsection{"`Alte"' Fontauswahlbefehle} +% +% \begin{macro}{\rm} +% \begin{macro}{\sf} +% \begin{macro}{\tt} +% \begin{macro}{\bf} +% \begin{macro}{\it} +% \begin{macro}{\sl} +% \begin{macro}{\sc} +% \begin{macro}{\sfb} +% \changes{v2.3b}{1996/01/14}{nicht mehr mathematisch.} +% \changes{v2.3b}{1996/01/14}{Keine Unterscheidung mehr f"ur den +% Kompatibilit"atsmodus.} +% Die alten Font-Auswahlbefehle werden zwar noch unterst"utzt, sollten +% aber in der Regel nicht mehr verwendet werden, da sie nach dem alten +% Fontauswahlverfahren arbeiten. Im Kompatibilit"atsmodus wurde dies +% beim nicht standardgem"a"sen Befehl |\sfb| noch verst"arkt. +% \begin{macrocode} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{\@nomath\sfb} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Font-Variablen} +% +% \begin{macro}{\descfont} +% \begin{macro}{\sectfont} +% \changes{v2.3b}{1996/01/14}{\cs{sectfont} wird nun verwendet} +% \begin{macro}{\pnumfont} +% \begin{macro}{\headfont} +% \begin{macro}{\capfont} +% \begin{macro}{\caplabelfont} +% Auch in der |scrlettr|-class werden verschiedene Font-Variablen verwendet. +% \begin{macrocode} +\newcommand*\descfont{\sffamily\bfseries} +\newcommand*\sectfont{\sffamily\bfseries} +\newcommand*\pnumfont{\normalfont} +\newcommand*\headfont{\slshape} +\newcommand*\capfont{\normalfont} +\newcommand*\caplabelfont{\normalfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Standard-Labels} +% +% \changes{v2.2b}{1995/02/16}{Sprachauswahl an german.sty Version 2.5b +% angepa"st} +% \begin{macro}{\captionsenglish} +% \begin{macro}{\captionsUSenglish} +% \begin{macro}{\captionsamerican} +% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert.} +% \begin{macro}{\captionsbritish} +% \changes{v2.4c}{1997/11/25}{british identisch mit english definiert.} +% \begin{macro}{\captionsUKenglish} +% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert.} +% \begin{macro}{\captionsgerman} +% \changes{v2.2a}{1994/01/26}{{\cmd\subjectname} korrigiert} +% \begin{macro}{\captionsaustrian} +% \begin{macro}{\captionsngerman} +% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german.} +% \changes{v2.5b}{2000/01/03}{ngerman korrigiert.} +% \begin{macro}{\captionsfrench} +% \begin{macro}{\captionsitalian} +% \changes{v2.3e}{1996/05/31}{Sprachspende von Simone Naldi} +% \begin{macro}{\captionsspanish} +% \changes{v2.4c}{1997/11/25}{Sprachspende von Ralph J. Hangleiter} +% Bei |scrlettr| gibt es eine gro"se Anzahl von Label-Variablen, die es +% in den Standard-classes nicht gibt, die also auch nicht in +% Sprachanpassungen wie |german.sty| oder |german3.sty| vorhanden sind. +% Deshalb ist es notwendig diese Labels hier neu zu definieren. Weil es +% in fr"uheren Versionen zu Problemen damit gekommen ist, werden diese +% jedoch erst bei |\begin{document}| definiert. Sollen sie nachtr"aglich +% ge"andert werden, mu"s dies \emph{nach} |\begin{document}| geschehen. +% +% \begin{macrocode} +\AtBeginDocument{ + \def\captionsenglish{% + \def\yourrefname{Your ref.} + \def\yourmailname{Your letter of} + \def\myrefname{Our ref.} + \def\customername{Customer no.} + \def\invoicename{Invoice no.} + \def\subjectname{Subject} + \def\ccname{cc} + \def\enclname{encl} + \def\headtoname{To} + \def\datename{Date} + \def\pagename{Page}} + \let\captionsUSenglish=\captionsenglish + \let\captionsamerican=\captionsUSenglish + \let\captionsbritish=\captionsenglish + \let\captionsUKenglish=\captionsenglish + \def\captionsgerman{% + \def\yourrefname{Ihr Zeichen} + \def\yourmailname{Ihr Schreiben vom} + \def\myrefname{Unser Zeichen} + \def\customername{Kundennummer} + \def\invoicename{Rechnungsnummer} + \def\subjectname{Betr.} + \def\ccname{Kopien an} + \def\enclname{Anlagen} + \def\headtoname{An} + \def\datename{Datum} + \def\pagename{Seite}} + \let\captionsaustrian=\captionsgerman + \let\captionsngerman=\captionsgerman + \def\captionsfrench{% + \def\yourrefname{Vos r\'ef\'erences} + \def\yourmailname{Votre lettre du} + \def\myrefname{Nos r\'ef\'erences} + \def\customername{Num\'ero de client} + \def\invoicename{Num\'ero de facture} + \def\subjectname{Concernant} + \def\ccname{Copie \`a} + \def\enclname{Annexes} + \def\headtoname{A} + \def\datename{Date} + \def\pagename{Page}} + \def\captionsitalian{% + \def\yourrefname{Vs./Rif.} + \def\yourmailname{Vs.~lettera del} + \def\myrefname{Ns./Rif.} + \def\customername{Nr.~cliente} + \def\invoicename{Nr.~fattura} + \def\subjectname{Oggetto} + \def\ccname{Per conoscenza} + \def\enclname{Allegato} + \def\headtoname{A} + \def\datename{Data} + \def\pagename{Pagina}} + \def\captionsspanish{% + \def\yourrefname{Su ref.} + \def\yourmailname{Su carta de} + \def\myrefname{Nuestra ref.} + \def\customername{No. de cliente} + \def\invoicename{No. de factura} + \def\subjectname{Asunto} + \def\ccname{Copias} + \def\enclname{Adjunto} + \def\headtoname{A} + \def\datename{Fecha} + \def\pagename{P\'agina}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dateenglish} +% \begin{macro}{\dateUSenglish} +% \begin{macro}{\dateamerican} +% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert.} +% \begin{macro}{\datebritish} +% \changes{v2.4c}{1997/11/25}{british identisch mit english definiert.} +% \begin{macro}{\dateUKenglish} +% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert.} +% \begin{macro}{\dategerman} +% \begin{macro}{\dateaustrian} +% \begin{macro}{\datengerman} +% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german.} +% \begin{macro}{\datefrench} +% \begin{macro}{\dateitalian} +% \changes{v2.3e}{1996/05/31}{Ich hoffe, da"s das stimmt} +% \begin{macro}{\datespanish} +% \changes{v2.4c}{1997/11/25}{Ich hoffe, da"s das stimmt} +% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend.} +% Dar"uber hinaus ist auch das Datumsformat sprachabh"angig. Dies wird +% hier ebenfalls beachtet. +% \begin{macrocode} + \if@orgdate + \ifx\dateenglish\undefined + \def\dateenglish{\def\today{\number\day/\number\month/\number\year}} + \fi + \else + \def\dateenglish{\def\today{\number\day/\number\month/\number\year}} + \def\dateUSenglish{\def\today{\number\month/\number\day/\number\year}} + \let\datebritish=\dateenglish + \let\dateUKenglish=\dateenglish + \let\dateamerican=\dateUSenglish + \def\dategerman{\def\today{\number\day.\,\number\month.\,\number\year}} + \let\dateaustrian=\dategerman + \let\datengerman=\dategerman + \let\datefrench=\dategerman + \let\dateitalian=\dategerman + \let\datespanish=\dategerman + \fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% Zum Schlu"s findet noch die eigentliche Auswahl statt. Diese orientiert +% sich nun an der Auswahl nach german.sty 2.5b und verwendet keine festen +% Sprachzuordnungen mehr. Daf"ur sind nun keine Erweiterungen f"ur andere +% Sprachen mehr m"oglich. +% \changes{v2.2c}{1995/03/20}{Im Sprachenvergleich fehlten die "`="' hinter +% {\cmd\language}} +% \changes{v2.4c}{1997/11/25}{Sprachauswahl um american, british, UKenglish +% und spanish erweitert} +% \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert} +% \changes{v2.5b}{2000/01/20}{Reaktivierung der Sprache geschieht nun +% via \cs{languagename}, soweit dies +% m"oglich ist} +% \changes{v2.5e}{2000/07/14}{Workaround f"ur Sprache nohyphenation durch +% Format mit Babel-Erweiterung aber kein +% Babel package geladen} +% \begin{macrocode} + \captionsenglish + \dateenglish + \ifx\languagename\undefined + \ClassWarningNoLine{scrlettr}{\string\languagename\space not + defined, using \string\language.\MessageBreak + This may result in use of wrong language!\MessageBreak + You should use a compatible language + package\MessageBreak + (e.g. `Babel', `german', `french', ...)} + \ifx\l@american\undefined\else\ifnum\language=\l@american + \captionsamerican + \dateamerican + \fi\fi + \ifx\l@british\undefined\else\ifnum\language=\l@british + \captionsbritish + \datebritish + \fi\fi + \ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish + \captionsUKenglish + \dateUKenglish + \fi\fi + \ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish + \captionsUSenglish + \dateUSenglish + \fi\fi + \ifx\l@austrian\undefined\else\ifnum\language=\l@austrian + \captionsaustrian + \dateaustrian + \fi\fi + \ifx\l@german\undefined\else\ifnum\language=\l@german + \captionsgerman + \dategerman + \fi\fi + \ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman + \captionsngerman + \datengerman + \fi\fi + \ifx\l@french\undefined\else\ifnum\language=\l@french + \captionsfrench + \datefrench + \fi\fi + \ifx\l@italian\undefined\else\ifnum\language=\l@italian + \captionsitalian + \dateitalian + \fi\fi + \ifx\l@spanish\undefined\else\ifnum\language=\l@spanish + \captionsspanish + \datespanish + \fi\fi + \else + \edef\@tempa{nohyphenation} + \ifx\languagename\@tempa + \ClassWarningNoLine{scrlettr} + {You've selected language ``\languagename''.\MessageBreak + Maybe your LaTeX format contains Babel extension\MessageBreak + but you have not selected a language using\MessageBreak + Babel package.\MessageBreak + Please select another language!\MessageBreak + Only as a workaround english captions and date\MessageBreak + will be used} + \else + \expandafter\selectlanguage\expandafter{\languagename} + \ClassInfo{scrlettr}{used language is \languagename} + \fi + \fi +} +% \end{macrocode} +% +% \subsection{Seitenspiegel} +% +% |scrlettr| arbeitet mit einem festen Seitenspiegel, der f"ur Briefe +% im A4-Format ausgelegt ist. +% \changes{v2.2c}{1995/05/25}{{\cmd\headheight} und {\cmd\textheight} +% ge"andert} +% +% \begin{macrocode} +\oddsidemargin 0in +\evensidemargin 0in +\marginparwidth 0.9in +\marginparsep 0.1in +\marginparpush 0.45\baselineskip +\topmargin -19mm % mk 941012, was: -15.5mm +\headheight 23mm % mk 950411, was: 22mm +\headsep 8mm % mk 941012, was: 9mm +\footskip 20mm % mk 941012, was: 30mm +\textheight 226mm % mk 950411, was: 217mm +\textwidth 159.2mm + +\parskip 0.5\baselineskip % mk 941012 +\parindent 0pt +\smallskipamount=0.5\parskip +\medskipamount =\parskip +\bigskipamount =2\parskip +\footnotesep 0.8\baselineskip +\skip\footins 0.75\baselineskip plus 2pt minus 4pt +\skip\@mpfootins =\skip\footins +\columnsep 1cc +\columnseprule 0pt +% \end{macrocode} +% +% \subsection{Flie"sumgebungen} +% +% Es folgen die Einstellungen f"ur Abbildungen +% \begin{macrocode} +\floatsep 1\baselineskip plus 2pt minus 2pt +\textfloatsep 20pt plus 2pt minus 4pt +\intextsep 1\baselineskip plus 2pt minus 2pt +\dblfloatsep 1\baselineskip plus 2pt minus 2pt +\dbltextfloatsep 20pt plus 2pt minus 4pt +\@fptop 0pt plus 1fil +\@fpsep 0.7\baselineskip plus 2fil +\@fpbot 0pt plus 1fil +\@dblfptop 0pt plus 1fil +\@dblfpsep 0.7\baselineskip plus 2fil +\@dblfpbot 0pt plus 1fil +% \end{macrocode} +% und f"ur Flie"stabellen +% \begin{macrocode} +\arraycolsep 5pt +\tabcolsep 6pt +\arrayrulewidth 0.4pt +\doublerulesep 2pt +\fboxsep 3pt +\fboxrule 0.4pt +\tabbingsep \labelsep +% \end{macrocode} +% +% \subsection{Listen-Umgebungen} +% +% Die Einstellungen f"ur Listenumgebungen entsprechen im Wesentlichen +% den gewohnten. +% \begin{macrocode} +\topsep 0.25\baselineskip +\partopsep 0pt +\itemsep 0.25\baselineskip +\parsep 0.25\baselineskip % ak: 1\baselineskip +\labelsep .5em +\leftmargini 2.5em +\leftmarginii 2.2em +\leftmarginiii 1.87em +\leftmarginiv 1.7em +\leftmarginv 1em +\leftmarginvi 1em +\leftmargin\leftmargini +\labelwidth\leftmargini +\advance\labelwidth-\labelsep +\def\@listI{\leftmargin\leftmargini} +\let\@listi\@listI +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep} +\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} +\@listi + +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty + +\def\theenumi{\arabic{enumi}} +\def\theenumii{\alph{enumii}} +\def\theenumiii{\roman{enumiii}} +\def\theenumiv{\Alph{enumiv}} +\def\labelenumi{\theenumi.} +\def\labelenumii{\theenumii)} +\def\labelenumiii{\theenumiii.} +\def\labelenumiv{\theenumiv.} +\def\p@enumii{\theenumi} +\def\p@enumiii{\theenumi\theenumii)} +\def\p@enumiv{\p@enumiii\theenumiii} +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\triangleright$} +\def\labelitemiv{$\cdot$} +% \end{macrocode} +% +% Es sind alle im \textsf{KOMA-Script} Paket "ublichen Listenumgebungen +% vorhanden: +% +% \subsubsection{"`description"'-Umgebung} +% \begin{macrocode} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} +\newcommand\descriptionlabel[1]{\hspace\labelsep + \descfont #1} +% \end{macrocode} +% +% \subsubsection{"`labeling"'-Umgebung} +% \begin{macrocode} +\newenvironment{labeling}[2][] + {\def\sc@septext{#1} + \list{}{\settowidth{\labelwidth}{#2#1} + \leftmargin\labelwidth \advance\leftmargin by \labelsep + \let\makelabel\labelinglabel}} + {\endlist} +\newcommand\labelinglabel[1]{#1\hfil\sc@septext} +% \end{macrocode} +% +% \subsubsection{"`verse"'-Umgebung} +% \begin{macrocode} +\newenvironment{verse} + {\let\\=\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item[]} + {\endlist} +% \end{macrocode} +% +% \subsubsection{"`quotation"'- und "`quote"'-Umgebung} +% \begin{macrocode} +\newenvironment{quotation} + {\list{}{\listparindent 1em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item[]} + {\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item[]} + {\endlist} +% \end{macrocode} +% +% \subsection{Feld-Variablen} +% +% \begin{macro}{\fromname} +% \begin{macro}{\frombranch} +% \begin{macro}{\fromsig} +% \changes{2.2b}{1995/02/16}{Direkte Verwendung von {\cmd\fromname}} +% \begin{macro}{\fromaddress} +% \begin{macro}{\fromplace} +% \begin{macro}{\fromlocation} +% \begin{macro}{\frombackaddress} +% \begin{macro}{\telephonenum} +% \begin{macro}{\varyourref} +% \begin{macro}{\varyourmail} +% \begin{macro}{\varmyref} +% \begin{macro}{\varcustomer} +% \begin{macro}{\varinvoice} +% \begin{macro}{\varrefitemi} +% \begin{macro}{\varrefitemii} +% \begin{macro}{\varrefitemiii} +% \begin{macro}{\varrefitemnamei} +% \begin{macro}{\varrefitemnameii} +% \begin{macro}{\varrefitemnameiii} +% \begin{macro}{\@specialmail} +% \begin{macro}{\@title} +% \begin{macro}{\@subject} +% Es gibt in |scrlettr| verschiedene Feld-Variablen, die alle mit +% einer Zeichenkette belegt werden k"onnen, aber als leer +% initialisiert werden. +% \begin{macrocode} +\def\fromname{} +\def\frombranch{} % RTL 21.04.94 +\def\fromsig{\fromname} +\def\fromaddress{} +\def\fromplace{} +\def\fromlocation{} +\def\frombackaddress{} +\def\telephonenum{} +\def\varyourref{} +\def\varyourmail{} +\def\varmyref{} +\def\varcustomer{} +\def\varinvoice{} +\def\varrefitemi{} +\def\varrefitemii{} +\def\varrefitemiii{} +\def\varrefitemnamei{} +\def\varrefitemnameii{} +\def\varrefitemnameiii{} +\def\@specialmail{} +\def\@title{} +\def\@subject{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\name} +% \begin{macro}{\branch} +% \begin{macro}{\signature} +% \begin{macro}{\adress} +% \begin{macro}{\place} +% \begin{macro}{\location} +% \begin{macro}{\backaddress} +% \begin{macro}{\telephone} +% \begin{macro}{\yourref} +% \begin{macro}{\yourmail} +% \begin{macro}{\myref} +% \begin{macro}{\customer} +% \begin{macro}{\invoice} +% \begin{macro}{\refitemi} +% \begin{macro}{\refitemii} +% \begin{macro}{\refitemiii} +% \begin{macro}{\refitemnamei} +% \begin{macro}{\refitemnameii} +% \begin{macro}{\refitemnameiii} +% \begin{macro}{\specialmail} +% \begin{macro}{\title} +% \begin{macro}{\subject} +% F"ur jedes dieser Felder wird ein Befehl definiert, mit dem der +% Inhalt gesetzt werden kann, ohne da"s zu |\renewcommand| oder +% |\def| gegriffen werden mu"s. F"ur |\fromaddress| und +% |\fromlocation| kann mit |\address| bzw. +% |\location| auch eine komplexe \LaTeX-Definition +% gesetzt werden. F"ur die benutzerspezifischen Felder |\varrefitemi|, +% |\varrefitemii|, |\varrefitemiii| kann au"serdem jeweils ein Titel +% gesetzt werden. +% \begin{macrocode} +\def\name#1 {\def\fromname{#1}} +\def\branch#1 {\def\frombranch{#1}} % RTL 21.04.94 +\def\signature#1{\def\fromsig{#1}} +\long\def\address#1{\def\fromaddress{#1}} +\def\place#1 {\def\fromplace{#1}} +\long\def\location#1{\def\fromlocation{#1}} +\def\backaddress#1{\def\frombackaddress{#1}} +\def\telephone#1{\def\telephonenum{#1}} +\def\yourref#1 {\def\varyourref{#1}} +\def\yourmail#1 {\def\varyourmail{#1}} +\def\myref#1 {\def\varmyref{#1}} +\def\customer#1 {\def\varcustomer{#1}} +\def\invoice#1 {\def\varinvoice{#1}} +\def\refitemi#1 {\def\varrefitemi{#1}} +\def\refitemii#1{\def\varrefitemii{#1}} +\def\refitemiii#1{\def\varrefitemiii{#1}} +\def\refitemnamei#1{\def\varrefitemnamei{#1}} +\def\refitemnameii#1{\def\varrefitemnameii{#1}} +\def\refitemnameiii#1{\def\varrefitemnameiii{#1}} +\def\specialmail#1{\def\@specialmail{#1}} +\def\title#1 {\def\@title{#1}} +\def\subject#1 {\def\@subject{{\bf #1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\firsthead} +% \begin{macro}{\firstfoot} +% \begin{macro}{\nexthead} +% \begin{macro}{\nextfoot} +% Bei der Gelegenheit werden auch gleich die Befehle zum Setzen +% der Felder f"ur die Kopf- und Fu"szeilen der ersten und aller +% weiterer Seiten eines Briefes definiert. +% \begin{macrocode} +\long\def\firsthead#1{\def\@firsthead{#1}} +\long\def\firstfoot#1{\def\@firstfoot{#1}} +\long\def\nexthead#1{\def\@nexthead{#1}} +\long\def\nextfoot#1{\def\@nextfoot{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Faltmarken, Adre"sfeld, Titel} +% +% Es werden Schalter f"ur Faltmarken, Adre"sfeld und Betreff definiert. +% \begin{macrocode} +\newif\if@fold +\newif\if@afield +\newif\if@subj +\newif\if@subjafter +% \end{macrocode} +% +% \begin{macro}{\foldmarkson} +% \begin{macro}{\foldmarksoff} +% Die Faltmarken k"onnen mit |\foldmarkson| ein- und mit |\foldmarksoff| +% abgeschaltet werden. Dies ist f"ur jeden Brief getrennt m"oglich. +% \begin{macrocode} +\def\foldmarkson {\@foldtrue} +\def\foldmarksoff {\@foldfalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addrfieldon} +% \begin{macro}{\addrfieldoff} +% Das Adre"sfeld f"ur Fensterumschl"age kann mit |\addrfieldon| ein- und +% mit |\addrfieldoff| abgeschaltet werden. Dies ist f"ur jeden Brief +% getrennt m"oglich. +% \begin{macrocode} +\def\addrfieldon {\@afieldtrue} +\def\addrfieldoff {\@afieldfalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\subjecton} +% \begin{macro}{\subjectoff} +% Ein Betreff-Titel kann mit |\subjecton| ein- und mit |\subjectoff| +% abgeschaltet werden. Dies ist f"ur jeden Brief getrennt m"oglich. +% \begin{macrocode} +\def\subjecton {\@subjtrue} +\def\subjectoff {\@subjfalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\subjectafteron} +% \begin{macro}{\subjectafteroff} +% \changes{v2.4a}{1997/06/06}{Neue Befehle \cs{subjectafteron} und +% \cs{subjectafteroff}.} +% In England und Frankreich scheint es teilweise "ublich zu sein, den Betreff +% erst nach der Anrede und daf"ur zentriert zu setzen\footnote{Ich kann mir +% nur m"uhsahm eine Bemerkung dazu verkneifen.}. Deshalb gibt es zwei neue +% Befehle mit denen man f"ur jeden Brief getrennt etwas anderes einschalten +% kann. +% \begin{macrocode} +\newcommand*\subjectafteron {\@subjaftertrue} +\newcommand*\subjectafteroff{\@subjafterfalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Zu Berechnung der Feldpositionen werden verschiedene +% Dimensions-Variablen ben"otigt. +% \begin{macrocode} +\newdimen\sc@temp +\newdimen\sc@@temp +\newdimen\foldhskip +\newdimen\foldvskipi +\newdimen\foldvskipii +\newdimen\foldvskipiii +\newdimen\addrvskip +\newdimen\addrindent +\newdimen\addrwidth +\newdimen\addrheight +\newdimen\locwidth +\newdimen\refvskip +\newdimen\sigindent +% \end{macrocode} +% +% F"ur alle Positionen gibt es Standardwerte. Diese Stellen sind leider +% extrem druckerabh"angig. Es ist daher "au"serst wichtig, da"s der +% Druckertreiber richtig eingestellt wird. Dazu kann die Testseite aus +% dem Standardpaket verwendet werden. +% +% Die Breite des "`locfield"'s h"angt von den Optionen |wlocfield| und +% |slocfield| ab und wird entweder zu $2/3$ oder $1/2$ der Restbreite +% neben dem Adre"sfeld berechnet. +% +% \begin{macrocode} +\foldhskip 3.5mm +\foldvskipi 62mm % war: 65mm RTL +\foldvskipii 45mm % mk 960531 (war: 40.5mm) +\foldvskipiii 54mm % mk 960531 (war: 58.5mm) +\addrvskip 7.5mm +\addrindent 0mm +\addrwidth 70mm +\addrheight 35mm +\locwidth\textwidth +\advance\locwidth by -\addrwidth +\if@bigloc % mk 940330 + \advance\locwidth by \locwidth + \divide\locwidth by 3 +\else + \divide\locwidth by 2 +\fi +\refvskip 5.5mm +\sigindent 0mm +% \end{macrocode} +% +% \subsection{Serienbriefe und Adre"sdateien} +% +% \begin{macro}{\adrentry} +% \changes{v2.2b}{1995/05/25}{{\cmd\ifx} sicherer gemacht} +% \begin{macro}{\adrchar} +% Serienbriefe werden mit Hilfe der Funktionen |\adrentry| und +% |\adrchar| und einer Adressdatei realisiert. Dar"uber hinaus +% werden mit diesen Befehlen Abk"urzungen f"ur Adressen definiert. +% \begin{macrocode} +\def\adrentry#1#2#3#4#5#6#7#8{\def\@tempa{#1}\ifx \@tempa\@empty \else + \def\@tempa{#2}\ifx \@tempa\@empty + \expandafter\def\csname #8\endcsname{#1\\#3} + \else + \expandafter\def\csname #8\endcsname{#2 #1\\#3} + \fi \fi} +\def\adrchar#1{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Die Brief-Umgebung} +% +% \begin{environment}{letter} +% \begin{macro}{\stopletter} +% Diese Umgebung ist etwas anders definiert, als normalerweise von +% \LaTeX gewohnt. Mit ihr k"onnen innerhalb eines Dokuments beliebig +% viele Briefe erzeugt werden. +% \begin{macrocode} +\long\def\letter#1{\newpage + \if@twoside\ifodd\c@page\else \thispagestyle{empty}\null\newpage \fi\fi + \c@page\@ne \interlinepenalty=200 \@processto{#1}} +\def\stopletter{} +\def\endletter{\stopletter\@@par\pagebreak\@@par} +\long\def\@processto#1{\expandafter\@xproc #1\\@@@\ifx\toaddress\@empty + \else\expandafter\@yproc #1@@@\fi} +\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}} +\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}} +% \end{macrocode} +% \end{macro} +% \end{environment} +% +% \begin{macro}{\stopbreaks} +% \begin{macro}{\startbreaks} +% Innerhalb von Briefen wird der Umbruch etwas anders gehandhabt. +% Dadurch soll der Brieftext besser positioniert werden. +% \begin{macrocode} +\def\stopbreaks{\interlinepenalty \@M + \def\par{\@@par\nobreak}\let\\=\@nobreakcr + \let\vspace\@nobreakvspace} +\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} +\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else + \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} +\def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} +\def\startbreaks{\let\\=\@normalcr + \interlinepenalty 200\def\par{\@@par\penalty 200}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@foldmarks} +% F"ur die Faltmarken m"ussen nicht nur Abst"ande definiert werden, es +% wird auch ein Befehl ben"otigt, um die Faltmarken zu setzen. +% \begin{macrocode} +\def\@foldmarks{\if@fold \bgroup + \reversemarginpar\vspace{\foldvskipi} + \marginpar{\hspace{\foldhskip}\rule{2mm}{.2pt}} \vspace{\foldvskipii} + \marginpar{\hspace{\foldhskip}\rule{4mm}{.2pt}} \vspace{\foldvskipiii} + \marginpar{\hspace{\foldhskip}\rule{2mm}{.2pt}} + \vspace{-\foldvskipiii}\vspace{-\foldvskipii}\vspace{-\foldvskipi} + \egroup \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@addrfield} +% Dasselbe gilt auch f"ur das Adre"sfeld f"ur Fensterumschl"age. Die +% R"ucksendeadresse und die Briefart wird dabei unterstrichen. +% \begin{macrocode} +\def\@addrfield{\bgroup + \setbox0\vbox{\hsize\addrwidth + \ifx\frombackaddress\@empty \else + \underline{\scriptsize \sf \frombackaddress} \fi} + \setbox1\vbox{\hsize\addrwidth + \ifx\@specialmail\@empty \else + \underline{\@specialmail} \fi} + \setbox2\vbox{\hsize\addrwidth + \toname \\ \toaddress} + \vskip\addrvskip \hskip\addrindent + \vbox to \addrheight{% + \ifx\frombackaddress\@empty \else \box0 \fi + \ifx\@specialmail\@empty \else \vfil\box1 \fi + \vfil\box2\vfil}\egroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@locfield} +% Das "`locfield"' wird mittels einer |minipage| gesetzt. +% \begin{macrocode} +\def\@locfield{\begin{minipage}[b]{\locwidth}\fromlocation\end{minipage}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@datefield} +% Je nachdem, welche Felder definiert sind, mu"s eine gesch"aftsm"a"siger +% Standardbrief oder ein eher pers"onliches Aussehen gew"ahlt werden. +% \changes{v2.3e}{1996/05/31}{Abstand zwischen Ort und Datum eingef"ugt} +% \begin{macrocode} +\newif\if@ref +\def\@datefield{\@reffalse + \ifx\varyourref\@empty \else \@reftrue \fi + \ifx\varyourmail\@empty \else \@reftrue \fi + \ifx\varmyref\@empty \else \@reftrue \fi + \ifx\varcustomer\@empty \else \@reftrue \fi + \ifx\varinvoice\@empty \else \@reftrue \fi + \ifx\varrefitemi\@empty \else \@reftrue \fi + \ifx\varrefitemii\@empty \else \@reftrue \fi + \ifx\varrefitemiii\@empty \else \@reftrue \fi + \vskip -\parskip + \vskip \refvskip + \if@ref + \ifx\varyourref\@empty \else + \settowidth{\sc@temp}{\varyourref} + \setbox0\hbox{\scriptsize \sf \yourrefname} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varyourref}\hfill + \fi + \ifx\varyourmail\@empty \else + \settowidth{\sc@temp}{\varyourmail} + \setbox0\hbox{\scriptsize \sf \yourmailname} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varyourmail}\hfill + \fi + \ifx\varmyref\@empty \else + \settowidth{\sc@temp}{\varmyref} + \setbox0\hbox{\scriptsize \sf \myrefname} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varmyref}\hfill + \fi + \ifx\varcustomer\@empty \else + \settowidth{\sc@temp}{\varcustomer} + \setbox0\hbox{\scriptsize \sf \customername} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varcustomer}\hfill + \fi + \ifx\varinvoice\@empty \else + \settowidth{\sc@temp}{\varinvoice} + \setbox0\hbox{\scriptsize \sf \invoicename} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varinvoice}\hfill + \fi + \ifx\varrefitemi\@empty \else + \settowidth{\sc@temp}{\varrefitemi} + \setbox0\hbox{\scriptsize \sf \varrefitemnamei} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemi}\hfill + \fi + \ifx\varrefitemii\@empty \else + \settowidth{\sc@temp}{\varrefitemii} + \setbox0\hbox{\scriptsize \sf \varrefitemnameii} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemii}\hfill + \fi + \ifx\varrefitemiii\@empty \else + \settowidth{\sc@temp}{\varrefitemiii} + \setbox0\hbox{\scriptsize \sf \varrefitemnameiii} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemiii}\hfill + \fi + \ifx\@date\@empty \else + \settowidth{\sc@temp}{\@date} + \setbox0\hbox{\scriptsize \sf \datename} + \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi + \parbox[t]{\sc@@temp}{\noindent \box0\par \@date} + \fi + \par + \vspace{2.5\baselineskip} + \else + {\ifx\@date\@empty \else \raggedleft\fromplace\ \@date\par \fi} + \vspace{1.5\baselineskip} + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maketitle} +% \changes{v2.3b}{1996/01/14}{Verwendung von \cs{sectfont} f"ur den +% \cs{title}.} +% \begin{macro}{\@subjfield} +% \changes{v2.6d}{2001/10/19}{\cs{centerline} durch \cs{centering} +% ersetzt} +% Der eigentliche Titel wir mit |\maketitle| gesetzt. Dies sollte +% jedoch ebenso wie der Betreff \emph{nicht} manuell geschehen. +% \begin{macrocode} +\def\maketitle{\ifx\@title\@empty \else + {\centering \LARGE \sectfont \@title\par} + \vspace{1\baselineskip} \fi} +\def\@subjfield{{% + \if@subjafter% + \centering% + \else% + \if@subj\ifx\@subject\@empty\else\subjectname:\ \fi\fi + \@subject\par\nobreak\vspace{1\baselineskip}% + \fi}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\opening} +% Denn beim Er"offnungsgru"s mit |\opening| wird neben s"amtlichen +% Feldern auch der Titel und der Betreff gesetzt. +% \begin{macrocode} +\def\opening#1{\thispagestyle{firstpage} \null \@foldmarks + \if@afield \@addrfield \hfill \@locfield \par \fi + \@datefield + \maketitle + \if@subjafter\else\@subjfield\fi + #1\par% + \vspace{0.5\baselineskip}% added by unknown + \nobreak% + \if@subjafter\@subjfield\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\closing} +% \changes{2.2b}{1995/02/16}{{\cmd\fromsig} wird nicht mehr auf {\cmd\empty} +% getestet sondern direkt eingesetzt} +% \changes{2.3b}{1996/01/14}{Abstand zwischen Schlu"sgru"s und Signatur +% erh"oht} +% \changes{2.5d}{2000/06/10}{Abstand zwischen Schlu"sgru"s und +% Signatur variabel} +% Au"ser dem Er"offnungsgru"s mit |\opening| gibt es nat"urlich auch +% einen Schlu"sgru"s mit |\closing|, bei dem au"serdem die +% Unterschrift u."a. gesetzt wird. +% \begin{macro}{\presig@skip} +% \changes{2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% Schlu"sgru"s und Signatur beinhaltet} +% \begin{macro}{\setpresigskip} +% \changes{2.5d}{2000/06/10}{Neues Makro, das den Abstand zwischen +% Schlu"sgru"s und Signatur setzt} +% Das Makro |\presig@skip| beinhaltet dabei den Abstand zwischen Schlu"sgru"s +% und Signatur. Da der Wert "uber ein Benutzerinterface per |\setpresigskip| +% gesetzt wird, mu"s hier kein kostbares L"angenregister (skip oder dim) +% verschwendet werden, sondern ein Makro reicht aus. In |\setpresigskip| wird +% allerdings noch sichergestellt, da"s die Fehlermeldung bei falschem +% Parameter m"oglichst nicht erst bei Verwendung auftritt. +% \begin{macrocode} +\newcommand*\presig@skip{} +\newcommand*{\setpresigskip}[1]{% + \begingroup% + \setlength{\@tempdima}{#1}% + \endgroup% + \edef\presig@skip{#1}} +\setpresigskip{2\baselineskip} +\long\def\closing#1{\par\nobreak\vspace{0.5\baselineskip} + \stopbreaks \noindent \sc@temp\textwidth \advance\sc@temp by + -\sigindent \hspace{\sigindent}% + \parbox{\sc@temp}{\raggedright\ignorespaces #1\mbox{}\\[\presig@skip] + \fromsig\strut}\par + \vspace{1.5\baselineskip}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ps} +% Ebenfalls m"oglich ist ein Postscriptum. Dieser Befehl erwartet +% das Postscriptum nicht als Argument, sondern schaltet zum Nachtext +% um. +% \begin{macrocode} +\def\ps{\par\startbreaks} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cc} +% Dar"uber hinaus gibt es noch einen Verteiler. Dieser wird +% sauber formatiert. +% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt.} +% \begin{macro}{\ccnameseparator} +% \changes{v2.6}{2001/01/03}{Die Zeichen nach \cs{ccname} kann frei gew"ahlt +% werden. Voreinstellung ist wie bisher Doppelpunkt +% gefolgt von einem Leerzeichen.} +% \begin{macrocode} +\newcommand*{\ccnameseparator}{: } +\newcommand*{\cc}[1]{\par\noindent\parbox[t]{\textwidth} + {\@hangfrom{\ccname\ccnameseparator}% + \ignorespaces #1\strut}\par} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\encl} +% Auch Anlagen werden ordentlich gesetzt. +% \changes{v2.4a}{1997/06/06}{Der Doppelpunkt bei den Anlagen wird nur noch +% gesetzt, wenn \cs{enclname} nicht leer ist.} +% \changes{v2.6}{2001/01/03}{\cs{def} durch \cs{newcommand*} ersetzt.} +% \begin{macro}{\enclnameseparator} +% \changes{v2.6}{2001/01/03}{Die Zeichen nach \cs{enclname} kann frei gew"ahlt +% werden. Voreinstellung ist wie bisher Doppelpunkt +% gefolgt von einem Leerzeichen.} +% \begin{macrocode} +\newcommand*{\enclnameseparator}{: } +\newcommand*{\encl}[1]{\par\noindent% + \parbox[t]{\textwidth}{% + \ifx\enclname\@empty\else\@hangfrom{\enclname\enclnameseparator}\fi% + \ignorespaces #1\strut}\par} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footnoterule} +% Fu"snoten werden durch eine Linie abgetrennt. Sie werden wie im gesamten +% \textsf{KOMA-Script} Paket gewohnt formatiert. +% \begin{macrocode} +\def\footnoterule{\kern-1\p@ + \hrule width 0.4\columnwidth + \kern .6\p@} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\deffootnote} +% \changes{v2.4b}{1997/08/15}{Neues Makro zur Definition der Gestalt von +% Fu"snoten.} +% Dieses Makro erlaubt einen optionalen und erwartet drei weitere Parameter. +% Der erste, optionale gibt den Einzug der ersten Zeile des Fu"snotentextes +% vom linken Rand an. Die Fu"snotenmarkierungen werden rechtsb"undig in diesen +% Einzug gesetzt. Der zweite, also erste nicht optionale Parameter gibt den +% Einzug jeder weiteren Zeile des Fu"snotentextes vom linken Rand an. Fehlt +% der optionale Parameter so ist er gleich diesem. Der dritte, also zweite +% nicht optionale Parameter gibt den zus"atzlichen Einzug jedes weiteren +% Absatzes einer Fu"snote an. Der letzte Parameter schlie"slich bestimmt die +% Ausgabe der Fu"snotenmarkierung in der Fu"snote. Diese wird zus"atzlich in +% eine \verb|\hbox| gesetzt. +% \begin{macrocode} +\newcommand\deffootnote[4][]{% + \long\def\@makefntext##1{% + \edef\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#2} + \parshape \@ne #2 \@tempdima}% + \else + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#1} + \@tempdimb = \hsize + \addtolength{\@tempdimb}{-#2} + \parshape \tw@ #1 \@tempdima #2 \@tempdimb}% + \fi + \par + \parindent #3\noindent + \hbox to \z@{\hss\@@makefnmark}##1} +% \end{macrocode} +% \begin{macro}{\@@makefnmark} +% \changes{v2.4b}{1997/08/15}{Neues Makro zum Setzen der Fu"snotenmarkierung +% im Text} +% \begin{macrocode} + \def\@@makefnmark{\hbox{#4}} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\deffootnotemark} +% \changes{v2.4b}{1997/08/15}{Neues Makro zur Definition der +% Fu"snotenmarkierung im Text} +% \begin{macrocode} +\newcommand*\deffootnotemark[1]{\def\@makefnmark{\hbox{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thefootnotemark} +% \changes{v2.4b}{1997/08/15}{Neues Makro, damit \cs{@thefnmark} auf +% Anwenderebene verf"ugbar wird.} +% \begin{macrocode} +\def\thefootnotemark{\@thefnmark} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\textsuperscript} +% \changes{v2.4b}{1997/08/15}{Neues Makro, damit \cs{@textsuperscript} auf +% Anwenderebene verf"ugbar wird.} +% \begin{macrocode} +\let\textsuperscript\@textsuperscript +% \end{macrocode} +% \end{macro} +% \changes{v2.4b}{1997/08/15}{Verwendung der neuen Makros zur +% Fu"snotengestaltgebung.} +% \begin{macro}{\@makefnmark} +% \begin{macrocode} +\deffootnote[1em]{1.5em}{1em} + {\textsuperscript{\thefootnotemark}} +\deffootnotemark{\textsuperscript{\thefootnotemark}} +% \end{macrocode} +% \end{macro} +% +% Aufz"ahlungen werden mit arabischen Zahlen numeriert. +% \begin{macrocode} +\def\theequation{\arabic{equation}} +% \end{macrocode} +% \subsection{Verteilung von Text- und Flie"sumgebungen} +% \begin{macrocode} +\setcounter{topnumber}{2} +\def\topfraction{.7} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.3} +\setcounter{totalnumber}{3} +\def\textfraction{.2} +\def\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.7} +\def\dblfloatpagefraction{.5} +% \end{macrocode} +% +% \subsection{Seitenstil} +% +% \begin{macro}{\pagestyle} +% \changes{v2.4a}{1997/06/06}{\cs{fromname} wird nur noch dann gesetzt, wenn +% es nicht leer ist, wodurch \cs{name} genau wie +% bei der Standard-Letter-Class optional ist.} +% Neben den "ublichen Seitenstilen |plain|, |headings|, |myheadings|, |empty| +% gibt es bei |scrlettr| noch einen Stil f"ur die erste Seite eines Briefs. +% \begin{macrocode} +\def\@firsthead{% + \parbox[b]{\textwidth} + {\begin{center} + \ifx\fromname\@empty\else + \textsc{\ignorespaces\fromname}\\[-8pt] + \rule{\textwidth}{.4pt}\\ + \fi + \ifx\fromaddress\@empty\else + \ignorespaces\fromaddress + \fi + \end{center}}} +\def\@firstfoot{} +\def\@nexthead{% + \parbox[b]{\textwidth} + {\ifx\fromname\@empty\else + \textsc{\ignorespaces\fromname}\\[8pt] + \fi + \headtoname\ \ignorespaces\toname\hfill\datename:\ \@date\hfill + \pagename\ \thepage\\[-8pt] + \rule{\textwidth}{.4pt}}} +\def\@nextfoot{} + +\def\ps@plain{% + \def\@evenhead{\sffamily\bfseries\fontsize{10pt}{12}\selectfont + \hfil-- \thepage\ --\hfil}% + \let\@oddhead\@evenhead% + \def\@evenfoot{}% + \def\@oddfoot{}} +\def\ps@firstpage{% + \def\@evenhead{\@firsthead}% + \let\@oddhead\@evenhead% + \def\@evenfoot{\@firstfoot}% + \let\@oddfoot\@evenfoot} +\def\ps@headings{% + \def\@evenhead{\@nexthead}% + \let\@oddhead\@evenhead% + \def\@evenfoot{\@nextfoot}% + \let\@oddfoot\@evenfoot} +% \end{macrocode} +% \end{macro} +% +% \subsection{Voreinstellungen} +% +% Voreingestellt sind Faltmarken, +% \begin{macrocode} +\@foldtrue +% \end{macrocode} +% Adre"sfeld, +% \begin{macrocode} +\@afieldtrue +% \end{macrocode} +% kein Betrefftitel, +% \begin{macrocode} +\@subjfalse +% \end{macrocode} +% Betreff vor der der Anrede, +% \begin{macrocode} +\@subjafterfalse +% \end{macrocode} +% Einfache Kopfzeilen, +% \begin{macrocode} +\ps@plain +% \end{macrocode} +% Seitennumerierung mit arabischen Zahlen, +% \begin{macrocode} +\pagenumbering{arabic} +% \end{macrocode} +% kein Abgleich des unteren Randes +% \begin{macrocode} +\raggedbottom +% \end{macrocode} +% und europ"aische Handhabung des Leerschritts. Letzteres sollte eigentlich +% von der Sprachanpassung (z.B. |german.sty| oder |german3.sty| erledigt) +% werden und wird in einer der n"achsten Versionen vermutlich entfernt. +% \begin{macrocode} +\frenchspacing +% \end{macrocode} +% +% \subsection{Fast das Ende} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \input{scrlogo.dtx} +% +% \IndexPrologue{\clearpage +% \section*{Index} +% \markboth{Index}{Index} +% Die kursiven Zahlen geben die Seiten an, auf denen +% der entsprechende Eintrag beschrieben ist. +% Die unterstrichenden Zahlen geben die Stelle der +% Definition des Eintrags an. +% Alle anderen Zahlen benennen Stellen, an denen der +% entsprechende Eintrag verwendet ist. +% \vspace{1em}\noindent} +% +% \GlossaryPrologue{\section*{"Anderungsverzeichnis} +% \markboth{"Anderungsverzeichnis}{"Anderungsverzeichnis} +% \addcontentsline{toc}{section}{"Anderungsverzeichnis} +% Die erste Version des \textsf{KOMA-Script} Pakets +% stammt vom 7.\,Juli~1994. Es werden nur die +% "Anderungen ab diesem Zeitpunkt dokumentiert.\par% +% \vspace{1em}\noindent} +% +% \Finale +% +\endinput +% +% Ende der Datei `scrlettr.dtx' + +%%% Local Variables: +%%% mode: latex +%%% Text-master: t +%%% End: \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx b/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx new file mode 100644 index 00000000000..5f8b99ab258 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrlogo.dtx @@ -0,0 +1,57 @@ +%\iffalse +% ====================================================================== +% scrlogo.dtx +% Copyright (C) 2001-2004 Markus Kohm +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the +% main documentation is german. There is also a english documentation, +% but this is NOT up-to-date. +% ---------------------------------------------------------------------- +% scrlogo.dtx +% Copyright (C) 2001-2004 Markus Kohm +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +% englische Version der Anleitung, diese hinkt der deutschen Anleitung +% jedoch fast immer hinterher. +% ====================================================================== +%\fi +% +% \ifx\englishonly\undefined +% \subsection{Das KOMA-Script-Logo f"ur alle} +% \else +% \subsection{The KOMA-Script-Logo} +% \fi +% \begin{macro}{\KOMAScript} +% \ifx\englishonly\undefined +% Das KOMA-Script-Logo wird in allen KOMA-Script-Paketen und -Klassen +% definiert, falls es nicht bereits definiert ist. Dabei werden die +% Versalien moderat gesperrt. Es wird jedoch darauf verzichtet, die +% Versalien etwa einen Punkt kleiner zu setzen, da das Logo aktiv +% ausgezeichnet werden soll. +% \else +% The KOMA-Script logo will be defined at every KOMA-Script class +% and package, if it is not already defined. +% \fi +% \begin{macrocode} +\@ifundefined{KOMAScript}{% + \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}}}{} +% \end{macrocode} +% \end{macro} +% +\endinput +% Ende der Datei ``scrlogo.dtx'' diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew10.tex b/Master/texmf-dist/source/latex/koma-script/scrnew10.tex new file mode 100644 index 00000000000..1978a356eef --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew10.tex @@ -0,0 +1,128 @@ +% Ausgabe 10 der KOMA-Script-News +% Copyright (C) Markus Kohm, Junuar 1996 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Januar} +\publicationyear{1996} +\publicationissue{10} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1996} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Au"ser dem \emph{package} \texttt{typearea}, das von \KomaScript\ zwingend +ben"otigt wird, sind alle anderen \emph{packages} mehr oder weniger n"utzliche +Beigaben. Enstanden sind sie haupts"achlich aufgrund von Nachfragen. Alle +\emph{packages} sollten auch mit den Standard-\emph{classes} verwendet werden +k"onnen. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden (siehe \texttt{scr\_new5.tex}). + +\section{Installation} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind "ahnlich +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. In der Version 2.2 wurde die Installation mit +Hilfe eines zus"atzlichen Installationstreibers noch einmal vereinfacht: + +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{scrguide.tex} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +Das ist bereits alles. Alle anderen \texttt{ins}-Dateien werden automatisch von +\texttt{komascr.ins} aufgerufen. Eine detailiertere Installationsanleitung +finden Sie in \texttt{liesmich.txt} bzw.\ \texttt{readme.txt}. + +Ab Version 2.3g wird \texttt{docstrip} ab Version 2.2 ben"otigt. Grund +daf"ur ist, da"s so besser sichergestellt wird, da"s \KomaScript\ mit +einer neueren \LaTeX-Version verwendet wird. + +\section{Neuerungen der aktuellen Version} + +In den \emph{classes} hatten sich ein paar Fehler eingeschlichen, die +jetzt hoffentlich wieder behoben sind. + +In allen \emph{classes} gab es diverse "Anderungen, die haupts"achlichen +eine Anpassung an \texttt{classes.dtx} Version 1.3p bedeuten. Damit d"urfte +auch wieder volle Kompatibilit"at zur \LaTeX-Release vom 1. Januar 1996 +erreicht sein. + +In \texttt{scrlettr} gab es ein paar kleinere "Anderungen, die notwendige +General"uberholung l"a"st aber noch auf sich warten. + +Das \emph{package} \texttt{scrtime} wurde dank Martin Schroeder +korrigiert und wird nun von ihm in \texttt{Prelim} eingesetzt. + +Denjenigen, die in letzter Zeit Mailkontakt mit mir hatten, sei gesagt, +da"s die geplanten neuen Optionen z.\,B. f"ur die Numerierung noch nicht +implementiert sind. + +Werner Lemberg hat eine englische Anleitung zu \KomaScript\ geschrieben, +die dem Paket neuerdings beigef"ugt ist. + +Auf besonderen Wunsch von Luzia Dietsche gibt es die Anleitung nun fix +und fertig als DVI-Datei. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Dank} + +Besonders bedanke ich mich diesmal bei Werner Lemberg, der die +englischsprachige Anleitung beigesteuert hat, und bei Luzia f"ur die +Anregung bzgl. der Anleitung. + +Dar"uber hinaus bedanke ich mich f"ur das rege Interesse, das sich in vielen +Mitteilungen und zahlreichen Fehlerhinweisen zeigt. + +\end{document} +% +% Ende der Datei `scrnew10.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew11.tex b/Master/texmf-dist/source/latex/koma-script/scrnew11.tex new file mode 100644 index 00000000000..b3ba156c3c8 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew11.tex @@ -0,0 +1,120 @@ +% Ausgabe 11 der KOMA-Script-News +% Copyright (C) Markus Kohm, Februar 1996 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Februar} +\publicationyear{1996} +\publicationissue{11} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1996} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.4. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Au"ser dem \emph{package} \texttt{typearea}, das von \KomaScript\ zwingend +ben"otigt wird, sind alle anderen \emph{packages} mehr oder weniger n"utzliche +Beigaben. Enstanden sind sie haupts"achlich aufgrund von Nachfragen. Alle +\emph{packages} sollten auch mit den Standard-\emph{classes} verwendet werden +k"onnen. + +Dar"uber hinaus sind nun auch drei \emph{styles} f"ur den Kompatibilit"atsmodus +vorhanden (siehe \texttt{scr\_new5.tex}). + +\section{Installation} + +Seit der Version 2.1 werden dtx- und ins-Dateien verwendet. Diese sind "ahnlich +zu behandeln, wie das \LaTeXe-Installationspaket selbst bzw. die meisten +anderern Zusatzpakete zu \LaTeXe. In der Version 2.2 wurde die Installation mit +Hilfe eines zus"atzlichen Installationstreibers noch einmal vereinfacht: + +\begin{enumerate} +\item Alle Teile zusammen in ein Bearbeitungsverzeichnis kopieren. +\item \texttt{komascr.ins} mit \LaTeXe\ bearbeiten. +\item Die erzeugten \texttt{cls}-, \texttt{sty}-, \texttt{cfg}-, + \texttt{def}- u."a. Dateien in ein \TeX-Input-Verzeichnis kopieren. +\item \texttt{scrguide.tex} mit \LaTeXe\ bearbeiten. +\end{enumerate} + +Das ist bereits alles. Alle anderen \texttt{ins}-Dateien werden automatisch von +\texttt{komascr.ins} aufgerufen. Eine detailiertere Installationsanleitung +finden Sie in \texttt{liesmich.txt} bzw.\ \texttt{readme.txt}. + +Ab Version 2.3g wird \texttt{docstrip} ab Version 2.2 ben"otigt. Grund +daf"ur ist, da"s so besser sichergestellt wird, da"s \KomaScript\ mit +einer neueren \LaTeX-Version verwendet wird. + +\section{Neuerungen der aktuellen Version} + +In \texttt{scrclass.dtx} wurde diesmal nur ein Fehler behoben. Kompatibilit"at +zu \texttt{classes.dtx} Version 1.3q bestand bereits, da der einzige von 1.3p +nach 1.3q behobene Fehler in \KomaScript\ l"angst behoben war. + +In allen \emph{classes} gab es diverse "Anderungen, die haupts"achlich +Erweiterungen darstellen. Es lohnt sich also die Anleitung mal wieder +anzuschauen. Implementiert wurde eine Reihe von Optionen, "uber die z.\,B. +eingestellt werden kann, ob Index, Tabellen-, Abbildungs- und +Literaturverzeichnis im Inhaltsverzeichnis erscheinen sollen. Dar"uber hinaus +stehen nun drei verschiedene Abstufungen bei den "Uberschriftgr"o"sen zur +Verf"ugung, die ebenfalls "uber Optionen ausgew"ahlt werden k"onnen. + +Alle "Uberschriften werden nun mit \verb|\raggedright| linksb"undig gesetzt. +Das kann aber einfach ge"andert werden, indem man den Befehl +\verb|\raggedsection| umdefiniert. Damit sind grunds"atzlich auch +rechtsb"undige oder zentrierte "Uberschriften m"oglich. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Dank} + +Ich bedanke mich f"ur die aufmunternden Worte der letzten Tage, die mich +letztlich dazu gebracht haben, die aktuellen Version rasch zu einem neuen +Paket zusammenzupacken. + +\end{document} +% +% Ende der Datei `scrnew11.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew12.tex b/Master/texmf-dist/source/latex/koma-script/scrnew12.tex new file mode 100644 index 00000000000..047f2664a01 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew12.tex @@ -0,0 +1,120 @@ +% Ausgabe 12 der KOMA-Script-News +% Copyright (C) Markus Kohm, Mai 1996 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Mai} +\publicationyear{1996} +\publicationissue{12} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1996} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.4d. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{scrnew11.tex}. + +\section{Neuerungen der aktuellen Version} + +In \texttt{scrclass.dtx} wurden diverse Fehler im Zusammenhang mit den neuen +M"oglichkeiten aus Version 2.4 behoben. + +\texttt{scrlettr} hat eine "Anderung bzgl. der Falzmarken erfahren. Damit +d"urfte die mittlere Marke nun eher in der Mitte sein. + +Roland T. Lichte hat sich zurecht dar"uber beschwert, da"s er bisher nicht +erw"ahnt wurde, obwohl \texttt{scrlettr} auf der von ihm modifizierten Version +von \texttt{script\_l} basiert. Der Verantwortung f"ur diesen Mi"sstand liegt +allerdings nicht bei mir. Ich selbst wu"ste bis zu Rolands Brief nicht, wer +hinter dem K"urzel "`RTL"' steht. An dieser Stelle sei nochmals erw"ahnt, da"s +ich zwar scrlettr weiterentwickle, sofern ich Zeit daf"ur finde, bisher habe +ich damit aber nur sehr wenig zu tun (siehe die Kommentare am Anfang von +\texttt{scrlettr.sty}). + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[InterNet:] unlf@rz.uni-karlsruhe.de +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Schlu"sbemerkung} + +Am schnellsten erreicht man mich derzeit per MausNet. Normalerweise bem"uhe +ich mich auch, Briefpost zu beantworten. Da dies jedoch erheblich aufwendiger +ist, als mal eben eine Mail in den Rechner zu hauen, bitte ich um +Verst"andnis, wenn ich mich z.\,T. auf solche Briefe beschr"anke, die +unbedingt einer Antwort bed"urfen. + +In letzter Zeit habe ich auch vermehrt Briefe mit Disketten mit Beispielen und +der Bitte um Hilfe erhalten. Dazu sind ein paar Hinweise notwendig: +\begin{itemize} +\item Grunds"atzlich kann ich nur 3.5\dq-DD-Disketten im DOS- oder TOS-Format +verarbeiten. Auch wenn man es nicht f"ur m"oglich halten w"urde, so verwende +ich doch noch immer einen fast zehn Jahre alten Atari-Mega-ST. +\item Disketten werden von mir grunds"atzlich nicht zur"uckgeschickt, wenn +kein R"uckporto beiliegt. +\item Auch wenn R"uckporto beiliegt, schicke ich Disketten nur dann zur"uck, +wenn es mir sinnvoll erscheint. Ich sehe keinen Sinn darin eine Diskette im +Wert von weniger als eine Mark zu verschicken, auf der sich nichts ge"andert +hat. +\item Ich bin nicht bereit, \KomaScript\ per Post zu verschicken. Die jeweils +aktuelle Version ist in der Maus KA und i.\,d.\,R. auf CTAN zu finden. +In K"urze und vor"ubergehend auch "uber meine Homepage auf dem WWW-Server des +Rechenzentrums der Universit"at Karlsruhe. Auf einzelnen Verbreitungswegen +sind nat"urlich unterschiedliche Verz"ogerungen m"oglich. +\item Fehlermeldungen und Verbesserungsvorschl"age kann ich nur dann +bearbeiten, wenn ich erkennen kann, worum es "uberhaupt geht. In vielen +F"allen fehlen leider immer wieder Angaben zur Version von \LaTeX\ und +\KomaScript. +\end{itemize} +Bitte beachten Sie auch die Hinweise in \texttt{liesmich.txt} bzw. +\texttt{readme.txt}. + +\end{document} +% +% Ende der Datei `scrnew12.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew13.tex b/Master/texmf-dist/source/latex/koma-script/scrnew13.tex new file mode 100644 index 00000000000..1e64595c363 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew13.tex @@ -0,0 +1,108 @@ +% Ausgabe 13 der KOMA-Script-News +% Copyright (C) Markus Kohm, November 1996 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc,german} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{November} +\publicationyear{1996} +\publicationissue{13} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1996} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.4h. + + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{scrnew11.tex}. + +\section{Neuerungen der aktuellen Version} + +In \texttt{scrclass.dtx} wurden diverse Fehler im Zusammenhang mit den neuen +M"oglichkeiten aus Version 2.4 behoben. So waren in der Dokumentation diverse +Klassenoptionen in der Pluralform angegeben aber in der Singularform +implementiert. In Version 2.4h sind beide Formen implementiert. Jedoch wird +in den Singularformen ein Fehler ausgegeben. Korrekt sind die in der +Dokumentation angegebenen Pluralformen. + +Das Paket \texttt{typearea.sty} wurde um eine interessante M"oglichkeit +erweitert. Ein passender, relativ guter Satzspiegel kann f"ur beliebige +Seitenformate vollst"andig automatisch berechnet werden. N"aheres dazu finden +Sie unter dem Stichwort \texttt{DIVcalc} in der Anleitung. Die Kompatibilit"at +zu bisherigen Versionen bleibt erhalten. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Zur Erstellung eines Fehlerreports verwenden Sie bitte das interaktive +\TeX-Dokument \texttt{komabug.tex}. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ KA2} +\item[InterNet:] unlf@rz.uni-karlsruhe.de +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Augartenstra"se 29\\ + 76137 Karlsruhe\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Schlu"sbemerkung} + +Ich erhalte immer wieder Fehlermitteilungen und Anfragen, bei denen mir die +notwendigsten Informationen vorenthalten werden. Zwar bin ich, soweit es mir +m"oglich ist, immer bem"uht, Hilfe zu leisten, aber ich bitte um Verst"andnis, +da"s meine hellseherischen F"ahigkeiten extrem beschr"ankt sind. Verwenden Sie +daher unbedingt \texttt{komabug.tex} zur Erstellung Ihrer Fehlermeldungen. + +Ich wei"s, da"s es aufwendiger ist, den Anweisungen in \texttt{komabug.tex} +Folge zu leisten, als mal rasch eine Mail zu verschicken. Auf der anderen +Seite verhindern Ungenauigkeiten und lange R"uckfragen eine schnelle Antwort. +Bedenken Sie dar"uberhinaus, da"s mich viele Meldungen und Fragen erreichen, +w"ahrend Sie i.\,d.\,R. nur wenige davon an mich schicken. Viele +un"uberlegte Meldungen und Fragen machen mir also viel Arbeit, einige +wenige, wohldurchdachte Meldungen und Fragen machen Ihnen vergleichsweise +wenig Arbeit. + +Bevor Sie eine Frage stellen, sollten Sie auch unbedingt im \texttt{scrguide} +nachschauen, ob Sie zu dem Thema Erl"auterungen finden. Zu diesem Zweck +verf"ugt \texttt{scrguide} u.\,a. "uber einen Index. + +\end{document} +% +% Ende der Datei `scrnew13.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew14.tex b/Master/texmf-dist/source/latex/koma-script/scrnew14.tex new file mode 100644 index 00000000000..8e2712059d6 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew14.tex @@ -0,0 +1,116 @@ +% Ausgabe 14 der KOMA-Script-News +% Copyright (C) Markus Kohm, Mai 1997 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Mai} +\publicationyear{1997} +\publicationissue{14} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1997} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.4n (\texttt{scrartcl}, \texttt{scrreprt}, +\texttt{scrbook}) bzw. 2.4a (\texttt{scrlettr}). + +Eigentlich wollte ich ja schon lange zuk"unftig auf die News verzichten, aber +eine dementsprechende "Au"serung brachte einen derart lauten Protestschrei, +da"s ich mich dazu aufraffte, wieder ein paar Worte zu verlieren. + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{scrnew11.tex}. + +\section{Neuerungen der aktuellen Version} + +Wie immer wurden einige Fehler in den Hauptklassen gefunden und behoben. Der +gr"o"ste Bug dabei war die Fu"snotenausgabe. Wie ich feststellen durfte +klaffte dabei von Anfang an eine L"ucke zwischen Dokumentation und +Wirklichkeit. Wirklich auff"allig wurde dieser Mangel aber erst, nachdem in +einer der letzten Versionen ein weiterer Fehler hinzugekommen war, der +Fu"snoten im Titel von \texttt{scrartcl.cls} ohne die Option +\texttt{titlepage} deutlich falsch formatierte. + +Da"s die Sternversion von \verb|\part| den Kolumnentitel nicht l"oschte, wurde +sozusagen in letzter Sekunde entdeckt. + +Die neue Option \texttt{DIVcalc} des Pakets \texttt{typearea.sty} wurde +erheblich verbessert. So erfolgt nun keine langsame Iteration mehr, sondern +der Wert wird direkt berechnet. Bei der "Uberpr"ufung der Tauglichkeit des +Ergebnisses wird dann tats"achlich ein Satzspiegel ermittelt. Au"serdem ist +mit der Option \texttt{DIVclassic} eine weitere Berechnungsm"oglichkeit f"ur +klassische Papierformate hinzugekommen. Als Nebenprodukt bewertet das Paket +sowohl ermittelte als auch vorgegebene \emph{DIV}-Werte und vermerkt das +Ergebnis der Bewertung in der \texttt{log}-Datei. Bei erheblichen Abweichungen +vom Idealwert wird au"serdem eine Warnung mit einem Hinweis zu +Verbesserungsm"oglichkeiten ausgegeben. + +Die Datenbankkonverter haben ebenfalls geringf"ugige Verbesserungen erfahren. + +Die Brief-Klasse, \texttt{scrlettr}, wurde an mehreren Stellen korrigiert. Die +generelle "Uberarbeitung l"a"st aber noch auf sich warten. Leider finde ich +momentan keine Zeit f"ur den Test der vorgenommenen "Anderungen, so da"s ich +nur hoffen kann, da"s diese nicht zu neuen Fehlern f"uhren. + +Neu ist die Datei \texttt{knownbug.txt}, in der alle gemeldeten Fehler (seit +dem 25.11.1996) und die gegen diese durchgef"uhrten Ma"snahmen aufgef"uhrt sind. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Zur Erstellung eines Fehlerreports verwenden Sie bitte das interaktive +\TeX-Dokument \texttt{komabug.tex}. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ HD} +\item[InterNet:] unlf@rz.uni-karlsruhe.de +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Fichtenstra"se 63\\ + 68535 Edingen-Neckarhausen\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Schlu"sbemerkung} + +Ich mache hiermit nocheinmal ausdr"ucklich auf \texttt{komabug.tex} und die +Schlu"sbemerkung aus der dreizehnten Ausgabe der News, \texttt{scrnew13.tex}, +aufmerksam! + +\end{document} +% +% Ende der Datei `scrnew14.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew15.tex b/Master/texmf-dist/source/latex/koma-script/scrnew15.tex new file mode 100644 index 00000000000..28567372485 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew15.tex @@ -0,0 +1,110 @@ +% Ausgabe 15 der KOMA-Script-News +% Copyright (C) Markus Kohm, November 1997 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage{t1enc} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{November} +\publicationyear{1997} +\publicationissue{15} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1997} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version von +\KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.5c (\texttt{scrartcl}, \texttt{scrreprt}, +\texttt{scrbook}) bzw. 2.4c (\texttt{scrlettr}). + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} eine "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{scrnew11.tex}. + +\section{Neuerungen der aktuellen Version} + +Wie immer wurden einige Fehler in den Hauptklassen gefunden und behoben. +Auff"allige Bugs gab es aber eher wenige. Am schwerwiegendsten waren +wiedereinmal Fehler im \texttt{typearea} Paket. Hier hat es au"serdem die +gr"o"sen "Anderungen gegeben. Das Paket ist nun in der Lage beliebige +DIN/ISO-A-, -B- und -C-Formate zu berechnen. Dabei wurde auch der h"aufig +vernachl"assigsten Abrundungsvorschrift auf ganze Millimeter Rechnung +getragen. + +Die Brief-Klasse, \texttt{scrlettr}, wurde an mehreren Stellen korrigiert und +erweitert. Sie bietet nun eine neue Option, \texttt{orgdate}, die verhindert, +da"s die Klasse ihre eigene Datumsausgabe definiert. Damit k"onnen die +Datumsausgaben von \texttt{german}und \texttt{Babel} direkt verwendet werden. +Au"serdem wurden Erg"anzungen im Sprachumfang vorgenommen. Die generelle +"Uberarbeitung l"a"st aber noch auf sich warten. Leider finde ich momentan +keine Zeit f"ur den Test der vorgenommenen "Anderungen, so da"s ich nur hoffen +kann, da"s diese nicht zu neuen Fehlern f"uhren. + +Die Erweiterung des Sprachumfangs betrifft ebenfalls die kleinen Zugaben. + +Eine "Ubersicht "uber die gemeldeten Fehler -- tats"achlich wurden mehr als +nur diese behoben -- ist in der Datei \texttt{knownbug.txt} zu finden. Darin +ist auch ein Fehler von \texttt{scrlettr} dokumentiert, der zwar reproduziert +werden kann, dessen Ursache aber bisher unbekannt ist. + +\section{Dankesch"on} + +An dieser Stelle ist es wiedereinmal Zeit, all denen zu danken, die Fehler -- +vorzugsweise mit Hilfe von \texttt{komabug.tex} -- gemeldet und konstruktive +Verbesserungsvorschl"age z.\,B. in Form von Sprachspenden unterbreitet haben. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Zur Erstellung eines Fehlerreports verwenden Sie bitte das interaktive +\TeX-Dokument \texttt{komabug.tex}. +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ HD} +\item[InterNet:] unlf@rz.uni-karlsruhe.de +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Fichtenstra"se 63\\ + 68535 Edingen-Neckarhausen\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 32KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an.} + +\section{Schlu"sbemerkung} + +Ich mache hiermit nocheinmal ausdr"ucklich auf \texttt{komabug.tex} und die +Schlu"sbemerkung aus der dreizehnten Ausgabe der News, \texttt{scrnew13.tex}, +aufmerksam! + +\end{document} +% +% Ende der Datei `scrnew15.tex' \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew16.tex b/Master/texmf-dist/source/latex/koma-script/scrnew16.tex new file mode 100644 index 00000000000..4c7f6de51a7 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew16.tex @@ -0,0 +1,179 @@ +% Ausgabe 16 der KOMA-Script-News +% Copyright (C) Markus Kohm, Oktober 1998 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage[T1]{fontenc} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Oktober} +\publicationyear{1998} +\publicationissue{16} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1998} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version +von \KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.5e (\texttt{scrartcl}, \texttt{scrreprt}, +\texttt{scrbook}) bzw. 2.4c (\texttt{scrlettr}). + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} ein "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{scrnew11.tex}. + +\section{Neuerungen der aktuellen Version} + +Die "Anderungen beschr"anken sich diesmal auf einige wenige +Bugfixes. Unauff"allig war ein Fehler, der schon l"angere Zeit in +\texttt{scrbook} und \texttt{scrreprt} vorhanden war und bei Verwendung von +\verb|\addsec|\ auftrat. + +Gravierender war ein Fehler, der "uber mehrere Makros verteilt war. Wer mit +Version 2.5c einen \verb|\part|-Eintrag im Inhaltsverzeichnis betrachtet hat, +wunderte sich "uber die Ausr"uckung in den linken Rand. Dieses Verhalten war +keineswegs beabsichtigt! Die Behebung erschien zwar zun"achst trivial, war es +aber leider nicht, da sich dabei eine andere Unsauberheit an anderer Stelle +zum Bug auswuchs. Die Verquickung war "ahnlich kompliziert wie bei der +Behebung des Fu"snotenbugs in einer vorherigen Version. Nach Behebung der +Fehler stellte ich schlie"slich fest, da"s das Ergebnis typographisch +betrachtet nicht optimal ist. Da f"ur r"omische Zahlen mehr Platz ben"otigt +wird als f"ur arabische, ist die Platzreservierung f"ur Nummern im +Inhaltsverzeichnis ung"unstig. Entweder ist der Platz in der +\verb|\part|-Ebene zu klein oder der Platz in der \verb|\chapter|- (bei +\texttt{scrbook} oder \texttt{scrreprt}) bzw. \verb|\section|-Ebene (bei +\texttt{scrartcl}) zu gro"s. Um eine Umformatierung aller alten Dokumente zu +vermeiden, habe ich die Ebenen unter \verb|\part| nicht ge"andert, sondern +einen Kompromis nur f"ur \verb|\part| gesucht. Ich hoffe, dies ist gelungen. + +Die unauff"alligste, gleichzeitig aber wichtigste und aufwendigste Neuerung +d"urfte in der Erweiterung des Index im \texttt{scrguide} sein. Diverse +Stichworte wurden neu aufgenommen. So findet man nun beispielsweise unter dem +Stichwort "`Satzspiegel"' Verweise auf Seiten, die vorher nur unter +entsprechenden Makro- oder Optionennamen zu finden waren. Nat"urlich kann +diese Erweiterung nur der erste Schritt zu einer Verbesserung oder generellen +"Uberarbeitung sein, die ich jedoch ohne Hilfe eines oder mehrerer +Freiwilliger kaum bew"altigen kann. + +\section{Kritik} + +In letzter Zeit h"auft sich die Kritik an der Anleitung zu \KomaScript, dem +\texttt{scrguide}. Die meisten Kritikpunkte beziehen sich darauf, da"s die +Anleitung an diversen Stellen Grundwissen voraussetzt. Dazu m"ochte ich +bemerken, da"s der \texttt{scrguide} nie als \LaTeX-Einf"uhrung gedacht war, +sondern lediglich Unterschiede und Erweiterungen gegen"uber den +Standardklassen auff"uhren und begr"unden sollte. Ich empfehle allen Anwendern +dringend das Studium eines der Standardwerke zu \LaTeX. Eine Liste dieser +Dokumente und B"ucher ist in der deutschsprachigen \LaTeX-FAQ "uber +\texttt{www.dante.de} zu finden. + +Dar"uber hinaus bitte ich um Verst"andnis, da"s es zum einen schwierig ist, +eine Anleitung zu erstellen, die es jedem recht macht, zum anderen eine gute +Anleitung sehr viel Zeit und Aufwand kostet. Ich bin nicht immer bereit, +dieser teilweise sehr l"astigen Pflicht umfassend nachzukommen. Dies umso +mehr, als das deutlich auf Kosten der Weiterentwicklung geht. Dennoch nehme +ich Kritik an der Anleitung ernst und bem"uhe mich um Verbesserung. Allerdings +f"allt mir das angesichts wenig konkreter Beschimpfungen sehr viel schwerer +als bei klar durchdachten und ausgef"uhrten Vorschl"agen. Auf meine +Gegenfrage, ob der Kritiker bereit sei, die Anleitung zu verbessern, erhalte +ich oft abschl"agige Antworten mit den Argumenten, derjenige habe keine Zeit +oder es sei nicht die Aufgabe eines Anwenders mir meine Anleitungen zu +schreiben. + +Trotz dieser negativer Erfahrungen machen mir Entwicklung und Support noch +immer viel Spa"s, deshalb ist es nun Zeit f"ur ein: + +\section{Dankesch"on} + +Ich bedanke mich bei all denen, die in den letzten Jahren an der Entwicklung +weiter Weiterf"uhrung von \KomaScript\ mitgearbeitet haben. Dies gilt nicht +nur f"ur diejenigen, die sich zeitweilig der Anleitung angenommen, Teile des +Paketes geschrieben oder Verbesserungsvorschl"age und Fehlermeldungen an mich +geschickt haben, dies gilt auch all denen, die mir ein schlichtes "`Danke"' +oder "`Weiter so"' haben zukommen lassen. + +\section{Die Zukunft} + +Der vorletzte Abschnitt klang nicht von ungef"ahr ein wenig wie Abschied. +Derzeit ist die Zukunft von \KomaScript\ etwas ungewi"s. Zum einen scheinen +Fehler nun nur noch offenbar zu werden, wenn "Anderungen stattfinden. Zum +anderen sind echte Verbesserungen unter Beibehaltung der Kompatibilit"at zu +fr"uheren Versionen kaum noch m"oglich bzw. nur dann, wenn man die Klassen mit +immer weiteren Optionen und Schaltern spickt. + +Zwar habe ich viele Ideen f"ur echte Verbesserungen, dazu ist aber im Prinzip +ein "ahnlich harter Schnitt wie beim Umstieg von \Script~2.0 auf \KomaScript\ +notwendig. Streng genommen m"u"ste der Schnitt noch h"arter sein, da ich es +damals vers"aumt hatte, nicht nur einige, sondern alle alten Z"opfe +abzuschneiden. + +Die von mir angedachten "Anderungen und Erweiterungen w"aren f"ur den normalen +Anwender vermutlich gar nicht einmal allzu deutlich erkennbar. In gewisser +Weise w"aren sie oftmals mit den "Anderungen in \texttt{typearea} der letzten +Versionen vergleichbar. Aber die kleinste Abweichung in der Formatierung kann +bei alten Dokumenten erhebliche Auswirkungen haben. Erhebliche "Anderungen wie +beispielsweise die Verwendung von \texttt{DIVcalc} als Voreinstellung, h"atten +mit Sicherheit gravierende Folgen. + +Dementsprechend bin ich geneigt, an \KomaScript\ zuk"unftig nur noch Fehler zu +beheben. Ob ich echte Verbesserungen in Form neuer Klassen oder zus"atzlicher +Pakete realisieren werde, wei"s ich noch nicht. Teilweise bed"urfen diese auch +erheblicher Eingriffe in \LaTeX\ selbst. Man betrachte dazu nur einmal die +Realisierung der Optionen f"ur \texttt{typearea}. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu erstellen, +aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau schildern. +Zur Erstellung eines Fehlerreports verwenden Sie bitte das interaktive +\TeX-Dokument \texttt{komabug.tex}, das leider in vielen unauthorisierten +Verteilungen nur im Source-Paket von \KomaScript{} zu finden ist. + +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ HD} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Fichtenstra"se 63\\ + 68535 Edingen-Neckarhausen\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 48KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an. Dies gilt insbesondere bei Absendern aus dem InterNet, die meine +MausNet-Adresse mit Markus\_Kohm@HD.maus.de erreichen.} + +\section{Schlu"sbemerkung} + +Ich mache hiermit nocheinmal ausdr"ucklich auf \texttt{komabug.tex} und die +Schlu"sbemerkung aus der dreizehnten Ausgabe der News, \texttt{scrnew13.tex}, +aufmerksam! + +\end{document} +% +% Ende der Datei `scrnew16.tex' diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew17.tex b/Master/texmf-dist/source/latex/koma-script/scrnew17.tex new file mode 100644 index 00000000000..6d504d587b5 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew17.tex @@ -0,0 +1,142 @@ +% Ausgabe 17 der KOMA-Script-News +% Copyright (C) Markus Kohm, Dezember 1999 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage[T1]{fontenc} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Dezember} +\publicationyear{1999} +\publicationissue{17} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 1999} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version +von \KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.5h (\texttt{scrartcl}, \texttt{scrreprt}, +\texttt{scrbook}) bzw. 2.5a (\texttt{scrlettr}). + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} ein "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{INSTALL.TXT} bzw. \texttt{INSTALLD.TXT}. + +\section{Neuerungen der aktuellen Version} + +Wie immer gab es einige Buxfixes. Diesmal waren es jedoch sehr +wenige. Wichtiger war die "Anderungen f"ur \texttt{ngerman}. W"aren die Leute, +die \texttt{ngerman} erfunden haben, auf die Idee gekommen bei der Umschaltung +auf "`Die Neue Deutsche Rechtschreibung"' zuvor einfach auf \texttt{german} +umzuschalten, w"aren in \KomaScript\ keinerlei "Anderungen notwendig gewesen. + +Interessant mag die Erweiterung f"ur die Positionierung der Tabellen- +bzw. Abbildungsunterschriften sein (siehe \texttt{scrguide}). + +Da es bez"uglich der Installation einige Kritik gab, existiert nun eine +getrennte Installationsanleitung in der Datei \texttt{INSTALL.TXT} +bzw. \texttt{INSTALLD.TXT}. + +Trotz aller Bedenken meinerseits habe ich mich entschieden, diese Version von +\KomaScript\ unter die \texttt{LPPL} zu stellen. Siehe hierzu +\texttt{LEGAL.TXT} bzw. \texttt{LEGALDE.TXT} + +Eine weitere "Anderung kann ich ank"undigen, auch wenn sie noch nicht +vollst"andig vollzogen ist. Axel Kielhorn wird zuk"unftig den Adre"skonverter +nicht nur wie bisher weiterentwickeln, sondern als eigenst"andiges Paket +selbst auch supporten. Es wird angestrebt, im \KomaScript-Verzeichnis auf CTAN +vermutlich in einem Verzeichnis \texttt{contrib} einen Link auf dieses Paket +anzulegen. In \KomaScript\ ist derzeit noch eine "altere Version des +Adre"skonverters enthalten. Support f"ur diesen gibt es jedoch von mir nicht! + +\section{Kritik} + +Wie bereits in \texttt{scrnew16} erw"ahnt, h"auft sich die Kritik an der +Anleitung zu \KomaScript, dem \texttt{scrguide}. Es hat sich jemand gefunden, +der bereit ist, die Anleitung zu "uberarbeiten. Wann mit einem neuen +\texttt{scrguide} zu rechnen ist, kann ich jedoch nicht sagen. + +Ein anderes Problem scheint zu sein, da"s Anwender es nicht f"ur notwendig +oder sinnvoll erachten Fehler oder W"unsche bei mir zu melden. Die +\texttt{ngerman}-Erweiterung ist ein sehr gutes Beispiel daf"ur, da"s dies +eben doch sinnvoll ist. Da bis August 1999 diesbez"uglich keine direkte +Anfrage an mich kam, habe ich die Nachfrage danach absolut untersch"atzt. +Dar"uber hinaus ist zu bedenken, da"s auch triviale Fehler so lange nicht +beseitigt werden, bis sie mir bewu"st werden. Es ist besser, wenn ein Fehler +zehnmal gemeldet wird, als da"s er ewig unbehoben bleibt. Ggf. werde ich mir +erlauben mit einem einfachen "`Danke, Fehler ist bereits bekannt."' zu +anworten. + +Es gab auch einige Beschwerden, da"s zwischen dem letzten Upate und diesem +extrem viel Zeit vergangen ist. Das lag zum einen an meiner "Uberlastung, zum +anderen daran, da"s ich nichts davon halte, Neuerungen zu einzuarbeiten aber +nirgendwo halbwegs ordentlich zu dokumentieren. Wenn nun Neuerungen +implementiert aber noch nicht vollst"andig dokumentiert sind, ist es immer +etwas schwierig neue Versionen ohne die Neuerungen aber mit zus"atzlichen +Bugfixes herauszubringen. + +\section{Dankesch"on} + +Ich bedanke mich bei all denen, die in den letzten Jahren an der Entwicklung +weiter Weiterf"uhrung von \KomaScript\ mitgearbeitet haben. Dies gilt nicht +nur f"ur diejenigen, die sich zeitweilig der Anleitung angenommen, Teile des +Paketes geschrieben oder Verbesserungsvorschl"age und Fehlermeldungen an mich +geschickt haben, dies gilt auch all denen, die mir ein schlichtes "`Danke"' +oder "`Weiter so"' haben zukommen lassen. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu +erstellen, aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau +schildern. Zur Erstellung eines Fehlerreports verwenden Sie bitte das +interaktive \TeX-Dokument \texttt{komabug.tex}, das leider in vielen +Verteilungen nur im Source-Paket von \KomaScript{} zu finden ist. + +Ich bin derzeit folgenderma"sen zu erreichen: +\begin{description} +\item[MausNet\footnotemark:] \texttt{Markus Kohm @ HD} +\item[InterNet:] \texttt{Markus.Kohm@gmx.de} +\item[Briefpost:] \begin{minipage}[t]{10em}\raggedright + Markus Kohm\\ + Fichtenstra"se 63\\ + 68535 Edingen-Neckarhausen\\ + \end{minipage} +\end{description} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 48KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an. InterNet-Anwender werden gebeten meine InterNet-Adresse zu verwenden.} + +\section{Schlu"sbemerkung} + +Ich mache hiermit nocheinmal ausdr"ucklich auf \texttt{komabug.tex} und die +Schlu"sbemerkung aus der dreizehnten Ausgabe der News, \texttt{scrnew13.tex}, +aufmerksam! + +\end{document} +% +% Ende der Datei `scrnew17.tex' diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew18.tex b/Master/texmf-dist/source/latex/koma-script/scrnew18.tex new file mode 100644 index 00000000000..2c29b6a0162 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew18.tex @@ -0,0 +1,149 @@ +% Ausgabe 18 der KOMA-Script-News +% Copyright (C) Markus Kohm, Juni 2000 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage[T1]{fontenc} +\usepackage{german} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{Juni} +\publicationyear{2000} +\publicationissue{18} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 2000} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version +von \KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.6c (\texttt{scrartcl}, \texttt{scrreprt}, +\texttt{scrbook}) bzw. 2.5d (\texttt{scrlettr}). + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren \emph{classes} und \emph{packages}. +Prinzipiell ist zu jeder Standard-\emph{class} ein "Aquivalent als +\KomaScript-\emph{class} vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{INSTALL.TXT} bzw. \texttt{INSTALLD.TXT}. + +\section{Neuerungen der aktuellen Version} + +Wie immer gab es einige Buxfixes. Diesmal waren es jedoch sehr +wenige. In erster Linie wurde ein Bug behoben, der aus den Standardklassen +"ubernommen wurde und auch dort bis vor kurzem unbemerkt blieb. Au"serdem +hatten sich in der letzten Version mit der Umstellung der +Verbreitungsbedingungen und der Installationsanleitung einige Fehler in den +zugeh"origen Begleittexten eingeschlichen, die -- soweit entdeckt -- behoben +wurden. + +Sehr viel interessanter als die Bugfixes d"urften die neusten Erweiterungen +sein. So sind die drei Hauptklassen darauf vorbereitet, mit nahezu beliebigen +Schriftgr"o"sen umzugehen, die man als Option angeben kann. Man ist also nicht +mehr auf \texttt{10pt}, \texttt{11pt} und \texttt{12pt} beschr"ankt. +Allerdings mu"s man f"ur die ben"otigten +\texttt{size}\emph{XX}\texttt{.clo}-Dateien selbst sorgen. + +Im Zuge dieser "Anderung wurde die Bedeutung von \verb|\@ptsize| neu aber +abw"artskompatibel definiert. Das Makro beinhaltet nun die um 10 veringerte +Grundschriftgr"o"se. Der Autor von \texttt{setspace.sty}, Geoffrey Tobin, hat +zugesagt, diese Erweiterung ebenfalls zu unterst"utzen. Bis es soweit ist, +sollten die setspace-Makros \verb|\singlespacing|, \verb|\onehalfspacing| und +\verb|\doublespacing| nicht zusammen mit anderen Gr"o"senoptionen als +\texttt{10pt}, \texttt{11pt} und \texttt{12pt} verwendet werden. Auch bei +anderen Paketen ist ggf. Vorsicht geboten. + +Ebenfalls neu ist, da"s dem Index und dem Literaturverzeichnis nun eine +Pr"aambel vorangestellt werden kann. Siehe hierzu \verb|\setbibpreamble| und +\verb|\setindexpreamble| im Index des \texttt{scrguide}. + +In der Briefklasse wurde der Abstand zwischen Schlu"sgru"s und Signatur +variabel gestaltet. Siehe hierzu \verb|\setpresigskip| im Index des +\texttt{scrguide}. + +Bez"uglich der angek"undigten "Anderung zum Adre"skonverter (siehe +\texttt{scrnew17.tex}) hat sich noch nichts neues ergeben. Axel ben"otigt wohl +einfach noch etwas mehr Zeit. + +Zur Anleitung gibt es leider auch nichts neues. Zwar hat sich wie in +\texttt{scrnew17.tex} angek"undigt ein Freiwilliger gefunden. Dieser scheint +jedoch ebenfalls unter der Last der Arbeit begraben zu sein, so da"s ich "uber +den Fortschritt nicht informiert bin. + +Immerhin war mir Oliver Jennrich bei der "Ubersetzung von +\texttt{liesmich.txt} in \texttt{readme.txt} behilflich, dem hierf"ur mein +Dank gilt. + +\section{Dankesch"on} + +Damit bin ich auch schon bei den Danksagungen angelangt. Wie immer, aber +denoch ernst gemeint, bedanke ich mich bei all denen, die in den letzten +Jahren an der Entwicklung und Weiterf"uhrung von \KomaScript\ mitgearbeitet +haben. Dies gilt nicht nur f"ur diejenigen, die sich zeitweilig der Anleitung +angenommen, Teile des Paketes geschrieben oder Verbesserungsvorschl"age und +Fehlermeldungen an mich geschickt haben, dies gilt auch all denen, die mir ein +schlichtes "`Danke"' oder "`Weiter so"' haben zukommen lassen. + +Besonderer Dank gilt diesmal denjenigen, die nicht nur Ideen ge"au"sert, +sondern diese entwickelt und fertig ausgearbeitet an mich geschickt und meine +Kritik dazu ertragen haben. So sind beispielsweise oben genannte "Anderungen +am Index und der Bibliographie oder der variable Abstand in der Briefklasse +entstanden. Aber auch die Verbesserungen in der Sprachunterst"utzung w"aren +ohne solche konstruktiven Vorschl"age nicht oder sehr viel sp"ater entstanden. + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu +erstellen, aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau +schildern. Zur Erstellung eines Fehlerreports verwenden Sie bitte das +interaktive \TeX-Dokument \texttt{komabug.tex}, das leider in vielen +Verteilungen nur im Source-Paket von \KomaScript{} zu finden ist. + +Um abzukl"aren, ob der Fehler eindeutig auf \KomaScript{} zur"uckzuf"uhren +ist, und um das Problem zu verdeutlichen, erstellen Sie bitte ein minimales +Beispiel, das insbesondere nur die \emph{packages} einbindet, die f"ur die +Verdeutlichung des Fehlers unbedingt notwendig sind. + +Ich bin derzeit folgenderma"sen zu erreichen: + +\vspace{1ex} +\begin{tabular}{ll} +\textbf{MausNet:\footnotemark} & \texttt{Markus Kohm @ HD} \\[.5ex] +\textbf{InterNet:} & \texttt{Markus.Kohm@gmx.de} \\[.5ex] +\textbf{Briefpost:} & Markus Kohm\\ + & Fichtenstra"se 63\\ + & 68535 Edingen-Neckarhausen\\ +\end{tabular} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 48KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an. InterNet-Anwender werden gebeten meine InterNet-Adresse zu verwenden.} + +\section{Schlu"sbemerkung} + +Ich mache hiermit nocheinmal ausdr"ucklich auf \texttt{komabug.tex} und die +Schlu"sbemerkung aus der dreizehnten Ausgabe der News, \texttt{scrnew13.tex}, +aufmerksam! + +\end{document} +% +% Ende der Datei `scrnew18.tex' diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew19.tex b/Master/texmf-dist/source/latex/koma-script/scrnew19.tex new file mode 100644 index 00000000000..558b9251983 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew19.tex @@ -0,0 +1,166 @@ +% Ausgabe 19 der KOMA-Script-News +% Copyright (C) Markus Kohm, April 2001 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +%\usepackage[T1]{fontenc} +\usepackage{ngerman} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\Koma}{\textsc{Koma}} +\DeclareRobustCommand{\KomaScript}{\Koma-\Script} +\publicationmonth{April} +\publicationyear{2001} +\publicationissue{19} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 2001} + +\begin{document} +\maketitle + +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KomaScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version +von \KomaScript\ aufgef"uhrt. + +Aktuell ist nun Version 2.7d (\texttt{scrartcl}, \texttt{scrreprt}, +\texttt{scrbook}) bzw. 2.6 (\texttt{scrlettr}). + +\section{Das \KomaScript-Paket} + +Das \KomaScript-Paket besteht aus mehreren Klassen +(engl. \emph{class}) und Paketen (engl. \emph{package}). +Prinzipiell ist zu jeder Standard-Klasse ein "Aquivalent als +\KomaScript-Klasse vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + +\section{Installation} + +Siehe dazu \texttt{INSTALL.TXT} bzw. \texttt{INSTALLD.TXT}. + +\section{Neuerungen der aktuellen Version} + +Die Anzahl der Bugfixes sinkt nicht weiter, sondern bleibt im +Wesentlichen konstant. Das liegt in erster Linie daran, dass sich +wieder etwas tut und neue Features in {\KomaScript} eingebaut +werden. Viele Neuerungen in der aktuellen Version sind \emph{nicht} +oder nicht ausreichend im \texttt{scrguide} dokumentiert. Daf"ur gibt +es einen einfachen Grund. + +Seit Anfang des Jahres existiert dank Robin Sochas Hilfe das +"`{\KomaScript} Dokumentationsprojekt"'\footnote{Den Titel habe ich + eben erfunden.}. Ziel dieses Projektes ist eine neue verbesserte +Anleitung f"ur {\KomaScript}. Jeder, der ernsthaft bereit ist, etwas +Zeit zu investieren, ist aufgerufen, daran teilzunehmen. Wer nicht +bereit ist, Zeit zu investieren, m"oge es lassen -- sich dann aber auch +nicht "uber mangelnde Dokumentation beschweren. + +Ein Problem in diesem Projekt ist, dass sich viele Freiwillige +gemeldet haben, zum jetzigen Zeitpunkt, da die Aufgaben klar definiert +sind, aber nur noch einige wenige tats"achlich an die Arbeit +machen. Es gibt "ubrigens nicht nur Aufgaben f"ur +{\LaTeX}-Freaks. Solange es nur sehr wenige gibt, die etwas tun -- +inbesondere au"ser mir kaum jemanden, der am scrguide selbst schreibt +--, mu"s die verf"ugbare Arbeitskraft eingeteilt werden. Dabei +entfallen derzeit Erweiterungen am alten scrguide. Neuerungen bleiben +damit f"ur die "Offentlichkeit nahezu verborgen. Aber auch am neuen +scrguide wird nur dann wirklich etwas getan und werden neue +Features dokumentiert werden, wenn sich Leute finden, die bereit sind, +dies im Wesentlichen zu leisten. Ich selbst will mich wieder mehr auf +die Weiterentwicklung konzentrieren. Dabei gehe ich bewusst und mit +Absicht das Risiko ein, dass ich Dinge implementiere, die +m"oglicherweise nie dokumentiert werden. Das w"are dann mehr oder +weniger das Ende von \KomaScript. + +Eine wichtige Neuerung in der aktuellen Version ist unter der +Oberfl"ache verborgen und wird kaum jemandem auffallen, der nicht +vorher diesbez"uglich Probleme hatte. Die drei Hauptklassen von +{\KomaScript} arbeiten nun besser mit \texttt{hyperref} zusammen. Dies +betrifft alle Hyperlinks, die auf Kapitel oder Abschnitte verweisen +sollen, die mit \verb|\addchap| oder \verb|\addsec| eingeleitet +werden, sowie Index und Literaturverzeichnis. Dazu wurde die +Definition von \verb|\addchap| komplett neu geschrieben. Leider +vertr"agt sich die neue Definition nicht mit alten Versionen von +\texttt{hyperref}. {\KomaScript} gibt deshalb bei Verwendung einer zu +alten Version von \texttt{hyperref} eine entsprechende Warnung aus. + +Die "Anderung kann m"oglicherweise bei alten Dokumenten auch dazu +f"uhren, dass die dort verwendeten \emph{Workarounds} zur Korrektur +der Hyperlinks kontraproduktiv sind. Dies wurde nicht vollst"andig +getestet. Da diese Workarounds aber mit den neuen Versionen von +\texttt{hyperref} und {\KomaScript} "uberfl"ussig sind, sollte das +kein Problem darstellen. + +Einige, die mir in letzter Zeit Vorschl"age unterbreitet und diese +teilweise auch mit konkreten Texten beispielweise zu +\texttt{INSTALLD.TXT} erg"anzt haben, werden sich wundern, dass diese +Arbeiten offenbar nicht in das \KomaScript-Paket eingegangen +sind. Keine Sorge, diese Dinge sind nicht verloren gegangen und werden +zu einem sp"ateren Zeitpunkt Verwendung finden. + +Die aktuelle Version von {\KomaScript} stellt eine Art Zwischenversion +dar. Es dauert mir einfach zu lange zu warten, bis alles umgesetzt +ist. Dies gilt insbesondere auch deshalb, weil derzeit gr"o"sere +Arbeiten an \texttt{typearea} und \texttt{scrpage} stattfinden oder +geplant sind. Ich kann nicht absch"atzen, wann diese abgeschlossen +oder gar dokumentiert sind. Andererseits erschienen mir die oben +erw"ahnten "Anderungen und die Beseitigung einer Bugs im Bereich der +neuen Features der letzten Version wichtig genug, um diese +eigentlich unfertige Zwischenversion zu rechtfertigen. + + +\section{Dankesch"on} + +Damit bin ich auch schon bei den Danksagungen angelangt. Diesmal gilt +mein Dank in erster Linie Robin Socha und Colin Marquardt. Beide sind +im Rahmen ihrer M"oglichkeiten bereits aktiv f"ur den neuen scrguide +t"atig geworden. Mein Dank gilt aber auch denen, die Arbeit konkret +angek"undigt oder mit ihrer Meinung beigetragen haben. + + +\section{Fehler} + +Ich habe mich zwar bem"uht, das ganze Paket m"oglichst fehlerfrei zu +erstellen, aber ich konnte auch nicht alles austesten. Sollte +jemand Fehler finden, die er eindeutig auf das \KomaScript-Paket +zur"uckf"uhren kann, so m"oge er mir diese m"oglichst kurz und genau +schildern. Zur Erstellung eines Fehlerreports verwenden Sie bitte das +interaktive \TeX-Dokument \texttt{komabug.tex}, das leider in vielen +Verteilungen nur im Source-Paket von \KomaScript{} zu finden ist. + +Um abzukl"aren, ob der Fehler eindeutig auf \KomaScript{} zur"uckzuf"uhren +ist, und um das Problem zu verdeutlichen, erstellen Sie bitte ein minimales +Beispiel, das insbesondere nur die \emph{packages} einbindet, die f"ur die +Verdeutlichung des Fehlers unbedingt notwendig sind. + +Ich bin derzeit folgenderma"sen zu erreichen: + +\vspace{1ex} +\begin{tabular}{ll} +\textbf{MausNet:\footnotemark} & \texttt{Markus Kohm @ HD} \\[.5ex] +\textbf{Internet:} & \texttt{Markus.Kohm@gmx.de} \\[.5ex] +\textbf{Briefpost:} & Markus Kohm\\ + & Fichtenstra"se 63\\ + & 68535 Edingen-Neckarhausen\\ +\end{tabular} +\footnotetext{Bitte nur Mails bis zu einer Maximalgr"o"se von 48KByte +und davon h"ochstens eine pro Tag. Alles andere kommt bei mir vermutlich nie +an. Internet-Anwender werden gebeten meine Internet-Adresse zu verwenden.} + +\section{Schlu"sbemerkung} + +Ich mache hiermit nocheinmal ausdr"ucklich auf \texttt{komabug.tex} und die +Schlu"sbemerkung aus der dreizehnten Ausgabe der News, \texttt{scrnew13.tex}, +aufmerksam! + +\end{document} +% +% Ende der Datei `scrnew18.tex' diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew20.tex b/Master/texmf-dist/source/latex/koma-script/scrnew20.tex new file mode 100644 index 00000000000..63a417f109b --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew20.tex @@ -0,0 +1,131 @@ +% Ausgabe 20 der KOMA-Script-News +% Copyright (C) Markus Kohm, August 2001 +% Dieser Text darf nur unver"andert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +\usepackage{ngerman} +\usepackage[latin1]{inputenc} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\ScriptNews}{\Script\ News} +\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +\publicationmonth{august} +\publicationyear{2001} +\publicationissue{20} +\renewcommand{\issuename}{Ausgabe} +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 2001} + +\begin{document} +\maketitle +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KOMAScript-Pakets zu informieren. In der Regel werden hier jeweils die +wichtigsten "Anderungen gegen"uber der jeweils letzten "offentlichen Version +von \KOMAScript\ aufgef"uhrt. + +Diese Ausgabe bezieht sich auf Version 2.8j der Hauptklassen und +Version 2.6b der Briefklasse. + + +\section{Das \KOMAScript-Paket} + +Das \KOMAScript-Paket besteht aus mehreren Klassen +(engl. \emph{class}) und Paketen (engl. \emph{package}). +Prinzipiell ist zu jeder Standard-Klasse ein "Aquivalent als +\KOMAScript-Klasse vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + + +\section{Installation} + +Siehe dazu \texttt{INSTALL.TXT} bzw. \texttt{INSTALLD.TXT}. + + +\section{Neuerungen der aktuellen Version} + +Auffälligster Unterschied der aktuellen Version von \KOMAScript{} ist +die neue Anleitung. Nachdem ich vor fast einem Jahr wiedereinmal dazu +aufgerufen hatte, mich bei der Erstellung eines neuen +\texttt{scrguide} zu unterstützen, damit ich mehr Zeit für die +Weiterentwicklung von \KOMAScript{} habe, gab es erstmals ein +umwerfendes Echo. Robin Socha war schnell bereit, die Infrastruktur +zur Verfügung zu stellen. Viele Freiwillige haben sich daraufhin auf +der eigens dafür eingerichteten Mailingliste eingetragen und ihre +Mitarbeit angeboten. Tatsächlich wurde die Arbeit aber in den letzten +Monaten von ganz anderen Leuten erledigt. Dieser Hand voll Mitstreiter +will ich ganz besonders danken. Ich hoffe, ich bleibe damit nicht der +einzige. + +Die neue Anleitung ist nicht nur in einem neuen Format und mit +teilweise neuer Aufmachung, sie ist auch inhaltlich vollkommen +überarbeitet und weitgehend neu. Bewußt wurde auch vieles +dokumentiert, was es nicht nur in den \KOMAScript- sondern auch den +Standardklassen gibt. Leider ist es nicht gelungen, rechtzeitig auch +eine neue englische Übersetzung zu erstellen. Dafür werden dringend +noch Freiwillige gesucht. + +Wer nun glaubt, er bräuchte die Anleitung nicht neu zu lesen, da er +den alten \texttt{scrguide} sehr gut kennt, der sei gewarnt: Obwohl +ich einen großen Teil der neuen Anleitung selbst geschrieben habe, +habe ich in den letzten Monaten tatsächlich Zeit für die +Weiterentwicklung von \KOMAScript{} gefunden. Nicht nur gibt es mit +\texttt{scrpage2} einen Nachfolger von \texttt{scrpage}, der in der +Handhabung nicht voll kompatibel zu \texttt{scrpage} ist - dafür aber +mit einem neuen Konzept auch neue Möglichkeiten bietet. Die +Hauptklassen wurden ebenfalls erheblich erweitert. Teilweise machen +sich diese Erweiterungen nur im Zusammenspiel mit anderen Paketen, +etwas \texttt{hyperref} oder \texttt{float} bemerkbar. In diesem Fall +sollten auch von diesen Paketen neue Versionen installiert +werden. Teilweise sind die Erweiterungen aber auch direkt in den +Klassen verfügbar. Es lohnt sich also sicher, die neue Anleitung +aufmerksam zu studieren. Leider hat der Index bei der Umstellung etwas +gelitten. Es darf jedoch davon ausgegangen werden, dass auch er in +zukünftigen Versionen wieder mehr Suchbegriffe enthalten wird. + +Bei \texttt{scrlettr} hat sich nicht viel geändert. Im Wesentlichen +wurde die Papieroption \texttt{a4paper} implementiert und +voreingestellt. Bemerkbar ist dies jedoch fast nur für Anwender, die +mit Hilfe von V\TeX{} eine PDF- oder PS-Datei erstellen wollen. + + +\section{Fehler} + +Bei all den Änderungen wäre es verwunderlich, wenn sich nicht wieder +ein paar Fehler in das Paket eingeschlichen hätten. Wer glaubt, einen +solchen gefunden zu haben, ist gebeten, diese mit Hilfe von +\texttt{komabug.tex} zu melden. Dazu bearbeiten Sie +\texttt{komabug.tex} einfach mit \LaTeX{} und beantworten die dort +gestellten Fragen möglichst genau. Sie werden dabei auch aufgefordert +eine möglichst kurze aber aussagekräftige Beispieldatei +anzugeben. Dieses Beispiel sollte nur unbedingt benötigte Pakete +einladen und auch sonst nur das enthalten, was für die Verdeutlichung +des Problems unbedingt notwendig ist. + +Meldungen, die nicht mit \texttt{komabug.tex} erstellt wurden, sind +nur schwer zu bearbeiten. Meldungen zu Paketen oder Klassen ohne +minimales Beispiel sind praktisch nicht bearbeitbar. + +Ich bin derzeit folgenderma"sen zu erreichen: + +\vspace{1ex} +\begin{tabular}{ll} +\textbf{Internet:} & \texttt{Markus.Kohm@gmx.de} \\[.5ex] +\textbf{Briefpost:} & Markus Kohm\\ + & Fichtenstra"se 63\\ + & 68535 Edingen-Neckarhausen\\ +\end{tabular} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + diff --git a/Master/texmf-dist/source/latex/koma-script/scrnew21.tex b/Master/texmf-dist/source/latex/koma-script/scrnew21.tex new file mode 100644 index 00000000000..2b0f98b1a16 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrnew21.tex @@ -0,0 +1,260 @@ +% Ausgabe 21 der KOMA-Script-News +% Copyright (C) Markus Kohm, Juni/June 2002 +% Dieser Text darf nur unveraendert und +% nur zusammen mit dem KOMA-Script-Paket +% weitergegeben werden. +% ---------------------------------------------------- + +\documentclass{ltnews} +\usepackage{ngerman} +\usepackage[latin1]{inputenc} + +\DeclareRobustCommand{\Script}{\textsc{Script}} +\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +\DeclareRobustCommand{\ScriptNews}{% + \KOMAScript\textsf{-News}} +\newcommand*{\othermessage}{Deutsch umseitig} +\newcommand*{\germanmonth}{} +\newcommand*{\OrigPublicationmonth}{} +\let\OrigPublicationmonth=\publicationmonth +\renewcommand*{\publicationmonth}[1]{% + \renewcommand*{\germanmonth}{#1}\OrigPublicationmonth} +\makeatletter +\g@addto@macro\ps@titlepage{\@oddhead{% + \begingroup\setlength{\unitlength}{\columnwidth}% + \begin{picture}(0,0)% + \put(1,0){\makebox(0,0)[r]{\raisebox{1in}{(\rightmark)}}} + \end{picture}% + \endgroup}} +\makeatother +\newcommand*{\Origmaketitle}{} +\let\Origmaketitle=\maketitle +\renewcommand*{\maketitle}{\Origmaketitle\markright{\othermessage}} +\newcommand*{\makegermantitle}{% +\begingroup + \OrigPublicationmonth{\germanmonth} + \renewcommand{\issuename}{Ausgabe} + \renewcommand{\othermessage}{English: see other page} + \maketitle +\endgroup +} + +%--- +\publicationmonth{Juni}{June} +\publicationyear{2002} +\publicationissue{21} +%--- + + +\title{\ScriptNews} +\indicia{\hfill Copyright \copyright\ Markus Kohm, 2002} + +\begin{document} +\makegermantitle +\section{Die \ScriptNews} + +Zweck dieser Informationsschrift ist es, "uber die Neuerungen des +\KOMAScript-Pakets zu informieren. In der Regel werden hier jeweils +die wichtigsten "Anderungen gegen"uber der jeweils letzten +"offentlichen Version von \KOMAScript\ aufgef"uhrt. + +Diese Ausgabe bezieht sich auf Version 2.9 der Hauptklassen und +der neuen Briefklasse. + + +\section{Das \KOMAScript-Paket} + +Das \KOMAScript-Paket besteht aus mehreren Klassen +(engl. \emph{class}) und Paketen (engl. \emph{package}). +Prinzipiell ist zu jeder Standard-Klasse ein Äquivalent als +\KOMAScript-Klasse vorhanden (siehe \texttt{scr\_new5.tex}). + +Desweiteren siehe \texttt{scrnew11.tex}. + + +\section{Installation} + +Siehe dazu \texttt{INSTALLD.TXT}. + + +\section{Neuerungen der aktuellen Version} + +Auffälligster Unterschied der aktuellen Version von \KOMAScript{} ist +die neue Briefklasse. Doch dazu gleich. Bei den Hauptklassen wurden +einige wenige Bugs beseitigt. Außerdem wurde ein Workaround für einen +Bug im \texttt{color} Paket eingebaut. Das \texttt{color} Paket +erlaubt nämlich einen Zeilen- und Seitenumbruch nach der +Farbumschaltung also auch nach \verb|\normalcolor|. Das konnte dazu +führen, dass beispielsweise zwischen \verb|\section| und nachfolgendem +\verb|\subsection| ein Seitenumbruch erfolgt. Bugreport an das +\LaTeX3-Team ist erfolgt. + +In \texttt{scrpage2} wurden ebenfalls einige kleinere Bugs +beseitigt. An erster Stelle steht hier das Problem mit den Kopf- und +Fußbreiten in einseitigen Dokumenten. + +Die Briefklasse \texttt{scrlttr2} ist richtig neu. Sie ist nicht nur +komplett neu entworfen und implementiert, sie führt auch neue Konzepte +ein. Daher ist es gerechtfertigt, dass genau wie bei \texttt{scrpage} +und \texttt{scrpage2} eine Ziffer an den Dateinamen angehängt wurde. +Aus Gründen der 8+3-Kompatibilität musste dafür ein weiterer Buchstabe +geopfert werden. Über eine Option kann die neue Klasse weitgehend +befehlskompatibel zur alten Klasse eingesetzt werden. Nicht zuletzt, +weil in der alten Klasse einige Fehler im Umbruch enthalten waren, ist +es jedoch nicht möglich, mit der neuen Klasse ganz genau denselben +Umbruch wie mit der alten zu erhalten. + +Die alte Briefklasse \texttt{scrlettr} ist nun obsolet. Aufgrund der +oben erwähnten Einschränkungen bei der Kompatibilität der neuen Klasse +ist sie aber weiterhin Bestandteil von \KOMAScript. Die Dokumentation +zur alten Klasse ist aber nicht mehr im scrguide enthalten. + +Da Axel Kielhorn sein \texttt{adrconv}-Paket inzwischen auf CTAN +veröffentlicht hat, ist -- wie bereits angekündigt -- nichts +dergleichen mehr in \KOMAScript{} enthalten. Wenn Sie das gesamte +\KOMAScript-Verzeichnis von CTAN heruntergeladen haben, finden Sie +Axels Paket dort im \texttt{contrib}-Verzeichnis. + + +\section{Das "`\KOMAScript{} Documentation Project"'} + +Das \KOMAScript{} Documentation Project verfolgt das Ziel, +\KOMAScript{} so zu dokumentieren, dass sowohl Anfänger als auch +Fortgeschrittene damit zurechtkommen. Jeder kann mithelfen. +Zwei Ergebnisse des \KOMAScript{} Documentation Projects liegen +inzwischen vor: die Anleitung in Deutsch und Englisch. Ergänzende +Dokumentation in Form von Beispielen und möglicherweise auch einer FAQ +werden direkt auf \mbox{http://koma-script.net.tf}, der Homepage des +\KOMAScript{} Documentation Projects entstehen. + + +\section{Fehler} + +Bei all den Änderungen wäre es verwunderlich, wenn sich nicht wieder +ein paar Fehler in das Paket eingeschlichen hätten. Wer glaubt, einen +solchen gefunden zu haben, ist gebeten, diesen mit Hilfe von +\texttt{komabug.tex} zu melden. Dazu bearbeiten Sie +\texttt{komabug.tex} einfach mit \LaTeX{} und beantworten die dort +gestellten Fragen möglichst genau. Sie werden dabei auch aufgefordert, +eine möglichst kurze aber aussagekräftige Beispieldatei +anzugeben. Dieses Beispiel sollte nur unbedingt benötigte Pakete +laden und auch sonst nur das enthalten, was für die Verdeutlichung +des Problems unbedingt notwendig ist. + +Meldungen, die nicht mit \texttt{komabug.tex} erstellt wurden, sind +nur schwer zu bearbeiten. Meldungen zu Paketen oder Klassen ohne +minimales Beispiel sind praktisch nicht bearbeitbar. + +Ich bin derzeit folgenderma"sen zu erreichen: + +\vspace{1ex} +\begin{tabular}{ll} +\textbf{Internet:} & \texttt{Markus.Kohm@gmx.de} \\[.5ex] +\textbf{Briefpost:} & Markus Kohm\\ + & Fichtenstra"se 63\\ + & 68535 Edingen-Neckarhausen\\ +\end{tabular} + + + +\maketitle + +\section{The \ScriptNews} + +\ScriptNews{} is an update about the \KOMAScript{} bundle. +It provides mainly information about important changes since +the last release. + +This issue accompanies version 2.9 of main classes and letter +class. + + +\section{The \KOMAScript{} Bundle} + +The \KOMAScript{} bundle contains several classes and packages. Each +\LaTeX{} standard class has an equivalent in the \KOMAScript{} bundle. +Please refer to the English manual \texttt{scrguien} for more information. + + +\section{Installation} + +See \texttt{INSTALL.TXT}. + + +\section{News and Changes in this Release} + +Users, who do not understand German, or understand English better than +German, may be pleased to find the new English manual +\texttt{scrguien} coming with the \KOMAScript{} bundle. Since August +2001, I was searching for translators. Partly, translation was done by +the chapters' German authors, partly by other helpful volunteers. Not +all of them were native English speakers. + +Some bugs were fixed in \texttt{scrpage2}. Changing the width +of head and foot now should work also with single sided documents. + +The letter class \texttt{scrlttr2} is completely new. It hasn't only +been designed and implemented newly from scratch, but it also introduces +new concepts. Hence, as in \texttt{scrpage} and \texttt{scrpage2}, the +name change from \texttt{scrlettr} to \texttt{scrlttr2}. + +With this release, class \texttt{scrlettr} is obsolete. It is still +part of \KOMAScript{}, but you should not use it any longer to write +new letters. Please use \texttt{scrlttr2} instead. If necessary, you +can use the compatibility switch for the old class \texttt{scrlettr}. +I'm still looking for information about letter standards other than +DIN or SN. For instance, I don't have much informations about French +or English letters. + +As announced earlier, the address converter and address list parts +were removed from \KOMAScript{} since Axel Kielhorn released his +\texttt{adrconv} package at CTAN. You may find Axel's package in the +\texttt{contrib} directory within the \KOMAScript{} directory at CTAN. + + +\section{The "`\KOMAScript{} Documentation Project"'} + +The goal of the \KOMAScript{} Documentation Project is to provide +\KOMAScript{} documentation in a way not only useful for beginners, +but also for advanced \LaTeX{} users. You're welcome to help. Two +results of the \KOMAScript{} Documentation Project are already +available: the new manual, both in English and German. More +documentation, mostly examples but maybe also a FAQ in the near +future, is under development at the homepage of the \KOMAScript{} +Documentation Project: \mbox{http://koma-script.net.tf}. + + +\section{Bugs, Errors, Mistakes} + +Along with the bug fixes, I've made a lot of other changes. It would +be surprising, if there weren't some bugs still hiding in the bundle. +If you think you found one, please report it with +\texttt{komabug.tex}. Please run \texttt{komabug.tex} through \LaTeX{} +and answer the questions as precisely as possible. You will be asked +for a short example, please add one. It should exclusively use those +packages, text, and commands, that must be present to demonstrate the +problem. + +It's quite difficult to deal with bug reports that haven't been +generated with \texttt{komabug.tex}. Also, if an example is missing, +it's almost impossible to handle the bug report. + +You can reach me at: + +\vspace{1ex} +\begin{tabular}{ll} +\textbf{email:} & \texttt{Markus.Kohm@gmx.de} \\[.5ex] +\textbf{letter:} & Markus Kohm\\ + & Fichtenstra"se 63\\ + & 68535 Edingen-Neckarhausen\\ + & Germany\\ +\end{tabular} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + diff --git a/Master/texmf-dist/source/latex/koma-script/scrpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrpage.dtx new file mode 100644 index 00000000000..497989572aa --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrpage.dtx @@ -0,0 +1,2588 @@ +% \CheckSum{2540} +% \iffalse +% ====================================================================== +% scrpage.dtx +% Copyright (C) 1995-2004 Markus Kohm +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the +% main documentation is german. There is also a english documentation, +% but this is NOT up-to-date. +% ---------------------------------------------------------------------- +% scrpage.dtx +% Copyright (C) 1995-2004 Markus Kohm +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +% englische Version der Anleitung, diese hinkt der deutschen Anleitung +% jedoch fast immer hinterher. +% ====================================================================== +% +% \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 \~} +% +%<*dtx> + \ProvidesFile{scrpage.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1995/06/01] +% \ProvidesFile{scrpage.drv} +%<*scrpage> +%\ProvidesPackage{scrpage}[2001/06/22 v1.3c KOMA +%\ProvidesPackage{scrpage2} +%<*!v1> + [2004/09/05 v2.2a LaTeX2e KOMA +% +% BETA-VERSION +% package] +%<*driver> + driver] +\documentclass{ltxdoc} +\usepackage{scrpage} +\usepackage[a4paper,DIV11]{typearea} +\addtolength{\oddsidemargin}{.75\marginparwidth} +\addtolength{\evensidemargin}{.75\marginparwidth} +\CodelineIndex +\pagestyle{headings} +\begin{document} + \DocInput{scrpage.dtx} +\end{document} +% +% \fi +% \GetFileInfo{scrpage.dtx} +% \RecordChanges +% +% \makeatletter +% \def\macro{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 0} +% \def\environment{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 1} +% \def\option{\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ 2} +% \long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist +% \edef\saved@macroname{\string#2}% +% \ifcase #1% +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \or +% \edef\saved@@macroname{\expandafter\@gobble\saved@macroname} +% \else +% \let\saved@@macroname\saved@macroname +% \fi +% \def\makelabel##1{\llap{##1}}% +% \if@inlabel +% \let\@tempa\@empty \count@\macro@cnt +% \loop \ifnum\count@>\z@ +% \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat +% \edef\makelabel##1{\llap{\vtop to\baselineskip +% {\@tempa\hbox{##1}\vss}}}% +% \advance \macro@cnt \@ne +% \else \macro@cnt\@ne \fi +% \edef\@tempa{\noexpand\item[% +% \ifcase #1% +% \noexpand\PrintMacroName +% \or +% \noexpand\PrintEnvName +% \else +% \noexpand\PrintOptionName +% \fi +% {\string#2}]}% +% \@tempa +% {\advance\c@CodelineNo\@ne +% \ifcase #1% +% \SpecialMainIndex{#2}\nobreak +% \DoNotIndex{#2}% +% \or +% \SpecialMainEnvIndex{#2}\nobreak +% \else +% \SpecialMainOptionIndex{#2}\nobreak +% \fi +% }% +% \ignorespaces} +% \let\endoption\endtrivlist +% \@ifundefined{PrintOptionName} +% {\def\PrintOptionName#1{\strut \MacroFont #1\ }}{} +% \def\SpecialOptionIndex#1{\@bsphack +% \index{#1\actualchar{\protect\ttfamily#1} +% (option)\encapchar usage}% +% \index{options:\levelchar{\protect\ttfamily#1}\encapchar +% usage}\@esphack} +% \def\SpecialMainOptionIndex#1{\@bsphack\special@index{#1% +% \actualchar +% {\string\ttfamily\space#1} +% (option)\encapchar main}% +% \special@index{options:\levelchar{% +% \string\ttfamily\space#1}\encapchar% +% main}\@esphack} +% \def\changes@#1#2#3{% +% \protected@edef\@tempa{\noexpand\glossary{#1\levelchar +% \ifx\saved@macroname\@empty +% \space +% \actualchar +% \generalname +% \else +% \saved@@macroname +% \actualchar +% \string\verb\quotechar*\verbatimchar% +% \saved@macroname +% \verbatimchar +% \fi +% :\levelchar #3}}% +% \@tempa\endgroup\@esphack} +% \makeatother +% +% \title{The \textsf{KOMA}-pagestyle-package\thanks{This file has +% version number \fileversion, last revised \filedate.}} +% \author{Markus Kohm} +% \date{\filedate} +% \maketitle +% +% \def\oarg#1{{\ttfamily[}{\em#1\/}{\ttfamily]}} +% \def\arg#1{{\ttfamily\char`\{}{\em#1\/}{\ttfamily\char`\}}} +% \def\star{{\ttfamily*}} +% \makeatletter +% \def\Describe@Macro#1{\endgroup +% \setbox0=\lastbox\llap{\PrintDescribeMacro{#1}}}% +% \def\Describe@Env#1{\endgroup +% \setbox0=\lastbox\llap{\PrintDescribeEnv{#1}}}% +% \makeatother +% \marginparsep0pt +% \renewpagestyle{headings}{(\textwidth,1pt)% +% {\headmark\hfill}{\hfill\headmark}{\hfill\headmark\hfill}% +% (\textwidth,.4pt)}% +% {(\textwidth,.4pt)% +% {\pagemark\hfill% +% Copyright \copyright\ Markus Kohm, 1994--2002}% +% {Package \texttt{scrpage}\hfill\pagemark}% +% {\rlap{Package \texttt{scrpage}}\hfill% +% Copyright \copyright\ Markus Kohm, 1994--2002\hfill% +% \llap\pagemark}% +% (\textwidth,1pt)} +% \renewpagestyle{plain}{(\textwidth,1pt)% +% {\hfill}{\hfill}{\hfill}% +% (\textwidth,.4pt)}% +% {(\textwidth,.4pt)% +% {\pagemark\hfill}% +% {\hfill\pagemark}% +% {\hfill\pagemark\hfill}% +% (\textwidth,1pt)} +% \pagestyle{headings} +% +% \begin{abstract} +% This is \texttt{scrpage.sty}. This obsolete package is part of the +% \textsf{KOMA}-script-bundle. It defines a new user-interface for +% pagestyle-definition. It's something like \texttt{fancyheadings} +% but not the same. You may use \texttt{scrpage} or \texttt{fancyheadings}. +% You may use \texttt{scrpage} with standard classes, too. Note: Package +% \texttt{scrpage} was replaced by package \texttt{scrpage2}. +% \end{abstract} +% +% \tableofcontents +% +% \section{Introduction} +% +% There is a simple user-interface and a expert-interface. Using the +% user-interface you can define a lot of different pagestyles. But there are +% combinations, you cannot define. Using the expert-interface you can do +% allmost all you may ever want. To do more, you should learn more about +% defining macros yourself. +% +% +% \subsection{Interface for all users} +% +% \DescribeMacro +% \headfont\\ +% This font is used to write pageheads and -foots. You may change it using +% |\renewcommand|, e.g. |\renewcommand\headfont{\normalfont\slshape}|. +% +% \DescribeMacro +% \headmark\\ +% Using \texttt{twoside}-option this is |\leftmark| at left/even pages and +% |\rightmark| at right/odd pages. Using \texttt{oneside}-option there are +% only right pages, so it is |\rightmark|. +% +% \DescribeMacro +% \pnumfont\\ +% This font is used to write pagenumbers at |\pagemark|. You may change it +% using |\renewcommand| (see |\headfont|). +% +% \DescribeMacro +% \pagemark\\ +% This is the number of the actual page written with |\pnumfont|. +% +% \DescribeMacro +% \deftripstyle\arg{name}\oarg{olw}\oarg{ilw}% +% \arg{headleft}\arg{headmiddle}\arg{headright}% +% \arg{footleft}\arg{footmiddle}\arg{footright}\\ +% Defines a new pagestyle. You can activate this pagestyle using +% |\pagestyle| or |\thispagestyle|. Without optional argument this defines a +% page like this: +% \begin{center}\unitlength1mm\begin{picture}(120,82) +% \put(0,0){\dashbox{2}(58,82){~}} +% \put(1,78){\makebox(0,0)[l]{\emph{headright}}} +% \put(29,78){\makebox(0,0){\emph{headmiddle}}} +% \put(57,78){\makebox(0,0)[r]{\emph{headleft}}} +% \put(29,41){\makebox(0,0){left page}} +% \put(1,3){\makebox(0,0)[l]{\emph{footright}}} +% \put(29,3){\makebox(0,0){\emph{footmiddle}}} +% \put(57,3){\makebox(0,0)[r]{\emph{footleft}}} +% \put(60,0){\dashbox{2}(58,82){~}} +% \put(61,78){\makebox(0,0)[l]{\emph{headleft}}} +% \put(89,78){\makebox(0,0){\emph{headmiddle}}} +% \put(117,78){\makebox(0,0)[r]{\emph{headright}}} +% \put(89,41){\makebox(0,0){right page}} +% \put(61,3){\makebox(0,0)[l]{\emph{footleft}}} +% \put(89,3){\makebox(0,0){\emph{footmiddle}}} +% \put(117,3){\makebox(0,0)[r]{\emph{footright}}} +% \end{picture}\end{center} +% Using one optional argument \oarg{ilw} (means \emph{i}nner \emph{l}ine +% \emph{w}idth) you get a separationline between head and text and between +% text and foot like this (\emph{ilw}=0.5pt): +% \begin{center}\unitlength1mm\begin{picture}(120,82) +% \put(0,0){\dashbox{2}(58,82){~}} +% \put(1,78){\makebox(0,0)[l]{\emph{headright}}} +% \put(29,78){\makebox(0,0){\emph{headmiddle}}} +% \put(57,78){\makebox(0,0)[r]{\emph{headleft}}} +% \put(1,76){\rule{56\unitlength}{0.5pt}} +% \put(29,41){\makebox(0,0){left page}} +% \put(1,5){\rule{56\unitlength}{0.5pt}} +% \put(1,3){\makebox(0,0)[l]{\emph{footright}}} +% \put(29,3){\makebox(0,0){\emph{footmiddle}}} +% \put(57,3){\makebox(0,0)[r]{\emph{footleft}}} +% \put(60,0){\dashbox{2}(58,82){~}} +% \put(61,78){\makebox(0,0)[l]{\emph{headleft}}} +% \put(89,78){\makebox(0,0){\emph{headmiddle}}} +% \put(117,78){\makebox(0,0)[r]{\emph{headright}}} +% \put(61,76){\rule{56\unitlength}{0.5pt}} +% \put(89,41){\makebox(0,0){right page}} +% \put(61,5){\rule{56\unitlength}{0.5pt}} +% \put(61,3){\makebox(0,0)[l]{\emph{footleft}}} +% \put(89,3){\makebox(0,0){\emph{footmiddle}}} +% \put(117,3){\makebox(0,0)[r]{\emph{footright}}} +% \end{picture}\end{center} +% Using both optional arguments \oarg{olw} (means \emph{o}uter \emph{l}ine +% \emph{w}idth) and \oarg{ilw} you get a separationline between head and +% text and between text and foot and a line above head and below foot like +% this (\emph{olw}=2pt, \emph{ilw}=0.5pt): +% \begin{center}\unitlength1mm\begin{picture}(120,82) +% \put(0,0){\dashbox{2}(58,82){~}} +% \put(1,80){\rule{56\unitlength}{2pt}} +% \put(1,78){\makebox(0,0)[l]{\emph{headright}}} +% \put(29,78){\makebox(0,0){\emph{headmiddle}}} +% \put(57,78){\makebox(0,0)[r]{\emph{headleft}}} +% \put(1,76){\rule{56\unitlength}{0.5pt}} +% \put(29,41){\makebox(0,0){left page}} +% \put(1,5){\rule{56\unitlength}{0.5pt}} +% \put(1,3){\makebox(0,0)[l]{\emph{footright}}} +% \put(29,3){\makebox(0,0){\emph{footmiddle}}} +% \put(57,3){\makebox(0,0)[r]{\emph{footleft}}} +% \put(1,1){\rule{56\unitlength}{2pt}} +% \put(60,0){\dashbox{2}(58,82){~}} +% \put(61,80){\rule{56\unitlength}{2pt}} +% \put(61,78){\makebox(0,0)[l]{\emph{headleft}}} +% \put(89,78){\makebox(0,0){\emph{headmiddle}}} +% \put(117,78){\makebox(0,0)[r]{\emph{headright}}} +% \put(61,76){\rule{56\unitlength}{0.5pt}} +% \put(89,41){\makebox(0,0){right page}} +% \put(61,5){\rule{56\unitlength}{0.5pt}} +% \put(61,3){\makebox(0,0)[l]{\emph{footleft}}} +% \put(89,3){\makebox(0,0){\emph{footmiddle}}} +% \put(117,3){\makebox(0,0)[r]{\emph{footright}}} +% \put(61,1){\rule{56\unitlength}{2pt}} +% \end{picture}\end{center} +% +% You can define new pagestyles and you can redefine existing pagestyles. If +% you redefine an active pagestyle, this doesn't change the actual shown +% pagestyle. To activate you have to use always a |\pagestyle|- or +% |\thispagestyle|-command. +% +% You can change the standard pagestyle \texttt{headings} to. If you want to +% change pagestyle \texttt{myheadings}, you should use the star-version of +% the command:\\ +% \DescribeMacro +% \deftripstyle\star\arg{name}\oarg{olw}\oarg{ilw}% +% \arg{headleft}\arg{headmiddle}\arg{headright}% +% \arg{footleft}\arg{footmiddle}\arg{footright}\\ +% this defines a my-version pagestyle. This means, section- and +% chapter-commands or perhaps |\tableofcontents| don't change the +% marks. Only |\markboth| and |\markright| change them. But if you don't +% use |\headmark|, |\leftmark| or |\rightmark|, star- and starless version +% of |\deftripstyle| are almost the same. +% +% +% \subsection{Interface for experts} +% +% \DescribeMacro +% \defpagestyle\arg{name}\arg{head-definition}\arg{foot-definition}\\ +% defines a new pagestyle \emph{name}. \emph{head-definition} defines the +% head at the new pagestyle. It contains five parts: +% \begin{flushleft} +% (\emph{toplinelength},\emph{toplinewidth})\\% +% \arg{evenpagehead}\arg{oddpagehead}\arg{onesidepagehead}\\% +% (\emph{headseplinelength},\emph{headseplinewidth})\\ +% \end{flushleft} +% These five parts have to be \textbf{one} argument! So you should put them +% together in group-braces (``|{|'' and ``|}|''). +% +% \emph{foot-definition} analogous defines the foot at the new pagestyle. +% +% \DescribeMacro +% \newpagestyle\arg{name}\arg{head-definition}\arg{foot-definition}\\ +% defines a real new pagestyle. If there's already a pagestyle named +% \emph{name}, you'll get an error. Otherwise it's the same like +% |\defpagestyle|. +% +% \DescribeMacro +% \renewpagestyle\arg{name}\arg{head-definition}\arg{foot-definition}\\ +% redefines a old pagestyle. If there isn't a pagestyle named +% \emph{name}, you'll get an error. Otherwise it's the same like +% |\defpagestyle|. +% +% \DescribeMacro +% \providepagestyle\arg{name}\arg{head-definition}\arg{foot-definition}\\ +% defines a new pagestyle, if it is realy new. If there is already a +% pagestyle named \emph{name}, it does nothing (but writing an info to +% the log file). Otherwise it's the same like |\defpagestyle|. +% +% You may use the user-interface-macros |\pagemark| and |\headmark|, too. +% +% +% \subsection{Configuration file} +% There's a configuration file \texttt{scrpage.cfg}, included at the end +% of \texttt{scrpage.sty}, if it exists. There you can define your own +% default pagestyles using all the commands above. +% +% +% \subsection{Example} +% The pagestyles of this documentation was defined using: +% \begin{verbatim} +% \renewpagestyle{headings}{(\textwidth,1pt)% +% {\headmark\hfill}{\hfill\headmark}{\hfill\headmark\hfill}% +% (\textwidth,.4pt)}% +% {(\textwidth,.4pt)% +% {\pagemark\hfill% +% Copyright \copyright\ Markus Kohm, 1994--2002}% +% {Package \texttt{scrpage}\hfill\pagemark}% +% {\rlap{Package \texttt{scrpage}}\hfill% +% Copyright \copyright\ Markus Kohm, 1994--2002\hfill% +% \llap\pagemark}% +% (\textwidth,1pt)} +% \renewpagestyle{plain}{(\textwidth,1pt)% +% {\hfill}{\hfill}{\hfill}% +% (\textwidth,.4pt)}% +% {(\textwidth,.4pt)% +% {\pagemark\hfill}% +% {\hfill\pagemark}% +% {\hfill\pagemark\hfill}% +% (\textwidth,1pt)} +% \pagestyle{headings} % activate new version +% \end{verbatim} +% +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Implementation} +%\iffalse +% \begin{macrocode} +%<*beta> +\PackageWarningNoLine +% {scrpage} +% {scrpage2} + {THIS IS A BETA VERSION!\MessageBreak + YOU SHOULD NOT USE THIS VERSION!\MessageBreak + YOU SHOULD INSTALL THE RELEASE FROM CTAN\MessageBreak + AND USE THAT INSTEAD OF THIS BETA VERSION} +% +% \end{macrocode} +%\fi +% +% \begin{macrocode} +%<*scrpage> +% \end{macrocode} +% \changes{v1.1}{1995/06/27}{\cs{hbox to} changed into \cs{hb@xt@}.} +% +% \subsection{Options} +% \texttt{scrpage} knows some options. They are similar to the +% \textsf{KOMA}-script-classes. To work with and without +% the \textsf{KOMA}-script-classes their definitions are not quite simple. +% +% \begin{macrocode} +\DeclareOption{headinclude}{\PassOptionsToPackage{headinclude}{typearea}} +\DeclareOption{headexclude}{\PassOptionsToPackage{headexclude}{typearea}} +\DeclareOption{footinclude}{\PassOptionsToPackage{footinclude}{typearea}} +\DeclareOption{footexclude}{\PassOptionsToPackage{footexclude}{typearea}} +% \end{macrocode} +% We do so, because we want so set |headinclude|, |footinclude| by +% default at old version (see below)! +% +% At version 2 we have additonal options designed for the additional +% interface. +% \begin{macrocode} +%<*v2> +% \end{macrocode} +% \begin{option}{mpinclude} +% \changes{v2.8q}{2002/03/28}{New option} +% \begin{option}{mpexclude} +% \changes{v2.8q}{2002/03/28}{New option} +% There are documents where the head and foot should span not only the +% text but also the marginpar. We have an option to do this at +% initialization. This option corresponds with the option of package +% \texttt{typearea} and the classes. +% \begin{macro}{\if@mincl} +% \begin{macro}{\@mincltrue} +% \begin{macro}{\@minclfalse} +% \begin{macrocode} +\@ifundefined{mincltrue}{\newif\if@mincl}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\DeclareOption{mpinclude}{\@mincltrue} +\DeclareOption{mpexclude}{\@minclfalse} +% \end{macrocode} +% \end{option} +% \end{option} +% +% Other new options redefine macros, so we have to define them first. +% \begin{macro}{\scr@headabove@linethickness} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scr@headbelow@linethickness} +% \changes{v2.0}{2001/03/30}{New} +% \begin{macro}{\scr@footabove@linethickness} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scr@footbelow@linethickness} +% \changes{v2.0}{2001/04/20}{New} +% These macros define the thickness of the line above and below the head +% and the foot. +% \begin{macrocode} +\newcommand*{\scr@headabove@linethickness}{0pt} +\newcommand*{\scr@headbelow@linethickness}{0pt} +\newcommand*{\scr@footabove@linethickness}{0pt} +\newcommand*{\scr@footbelow@linethickness}{0pt} +% \end{macrocode} +% \begin{macro}{\scr@headabove@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scr@headbelow@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scr@footabove@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scr@footbelow@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@headabove@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@headbelow@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@footabove@linelength} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@footbelow@linelength} +% \changes{v2.0}{2001/04/20}{New} +% Because we want to have the ``line definitions'' at one place, we +% also define the length of the lines here. We have own length at to +% be used at pagestyle \texttt{scrplain}. +% \begin{macrocode} +\newcommand*{\scr@headabove@linelength}{\@headwidth} +\newcommand*{\scr@headbelow@linelength}{\@headwidth} +\newcommand*{\scr@footabove@linelength}{\@footwidth} +\newcommand*{\scr@footbelow@linelength}{\@footwidth} +\newcommand*{\scrplain@headabove@linelength}{0pt} +\newcommand*{\scrplain@headbelow@linelength}{0pt} +\newcommand*{\scrplain@footabove@linelength}{0pt} +\newcommand*{\scrplain@footbelow@linelength}{0pt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{option}{headtopline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{headsepline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{footsepline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{footbotline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{plainheadtopline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{plainheadsepline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{plainfootsepline} +% \changes{v2.0}{2001/04/20}{New option} +% \begin{option}{plainfootbotline} +% \changes{v2.0}{2001/04/20}{New option} +% The thickness can be set by four simple options: +% \begin{macrocode} +\DeclareOption{headtopline}{% + \renewcommand*{\scr@headabove@linethickness}{.4pt} + \PassOptionsToPackage{headinclude}{typearea}} +\DeclareOption{headsepline}{% + \renewcommand*{\scr@headbelow@linethickness}{.4pt} + \PassOptionsToPackage{headinclude}{typearea}} +\DeclareOption{footsepline}{% + \renewcommand*{\scr@footabove@linethickness}{.4pt} + \PassOptionsToPackage{footinclude}{typearea}} +\DeclareOption{footbotline}{ + \renewcommand*{\scr@footbelow@linethickness}{.4pt} + \PassOptionsToPackage{footinclude}{typearea}} +\DeclareOption{plainheadtopline}{% + \renewcommand*{\scrplain@headabove@linelength}{\scr@headabove@linelength} + \PassOptionsToPackage{headinclude}{typearea}} +\DeclareOption{plainheadsepline}{% + \renewcommand*{\scrplain@headbelow@linelength}{\scr@headbelow@linelength} + \PassOptionsToPackage{headinclude}{typearea}} +\DeclareOption{plainfootsepline}{% + \renewcommand*{\scrplain@footabove@linelength}{\scr@footabove@linelength} + \PassOptionsToPackage{footinclude}{typearea}} +\DeclareOption{plainfootbotline}{ + \renewcommand*{\scrplain@footbelow@linelength}{\scr@footbelow@linelength} + \PassOptionsToPackage{footinclude}{typearea}} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\hfline@adjust} +% \changes{v2.0f}{2001/06/23}{New} +% \begin{option}{ilines} +% \changes{v2.0f}{2001/06/23}{New} +% \begin{option}{clines} +% \changes{v2.0f}{2001/06/23}{New} +% \begin{option}{olines} +% \changes{v2.0f}{2001/06/23}{New} +% At Version 2 lines may be inner adjusted (0), centered (1) or outer +% adjusted (2): +% \begin{macrocode} +\newcommand*{\hfline@adjust}{1} +\DeclareOption{ilines}{\renewcommand*{\hfline@adjust}{0}} +\DeclareOption{clines}{\renewcommand*{\hfline@adjust}{1}} +\DeclareOption{olines}{\renewcommand*{\hfline@adjust}{2}} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{macro} +% +% \begin{option}{automark} +% \changes{v2.0b}{2001/05/31}{use \cs{AtEndOfPackage} to run not yet +% defined macro} +% \begin{option}{manualmark} +% \changes{v2.0b}{2001/05/31}{use \cs{AtEndOfPackage} to run not yet +% defined macro} +% \changes{v2.0i}{2001/08/17}{don't ignore oneside any longer} +% At version 2 we want to distinguish between running headline and +% static headline not only using different pagestyles. We do this with +% options and commands. But here only the options are defined. +% \begin{macrocode} +\DeclareOption{automark}{% + \AtEndOfPackage{\if@twoside% + \if@chapter\automark[section]{chapter}% + \else\automark[subsection]{section}\fi% + \else% + \if@chapter\automark{chapter}\else\automark{section}\fi% + \fi}} +\DeclareOption{manualmark}{\AtEndOfPackage{\manualmark}} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{option}{autoonesize} +% \changes{v2.0i}{2001/08/17}{New} +% \begin{macro}{if@autooneside} +% \changes{v2.0i}{2001/08/17}{New} +% If the optional argument of \cs{automark} should be irgnored at +% onside mode, use this option: +% \begin{macrocode} +\newif\if@autooneside\@autoonesidefalse +\DeclareOption{autooneside}{\@autoonesidetrue} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{markuppercase} +% \changes{v2.0c}{2001/06/07}{New} +% \begin{option}{markusedcase} +% \changes{v2.0c}{2001/06/07}{New} +% For use of running headlines there are also options to say ``class +% uses upper case at the automatic marks'' or ``class use same case at +% the automatic marks like used writing the heading''. +% \begin{macrocode} +\DeclareOption{markuppercase}{\let\MakeMarkcase\MakeUppercase} +\DeclareOption{markusedcase}{\let\MakeMarkcase\@empty} +% \end{macrocode} +% \end{option} +% \end{option} +% +% \begin{macro}{\scr@nouppercase} +% \changes{v2.0j}{2001/08/18}{New} +% \begin{option}{nouppercase} +% \changes{v2.0j}{2001/08/18}{New} +% Sometimes scrpage may be used with a class, which uses +% \cs{uppercase} or \cs{MakeUppercase} at \cs{markboth} or +% \cs{markright}. But the author does not want upper case at the +% headlines. So we define an option, that simply deaktivates +% \cs{uppercase} and \cs{MakeUppercase} at all heads and foots, +% defined by scrpage2. +% \begin{macrocode} +\newcommand*{\scr@nouppercase}{} +\DeclareOption{nouppercase}{\renewcommand*{\scr@nouppercase}{% + \let\uppercase\relax\let\MakeUppercase\relax + \expandafter\let\csname MakeUppercase \endcsname\relax} + \ifx\MakeMarkcase\MakeUppercase + \PackageWarning{scrpage2}{% + Option 'markuppercase' will be ignored.\MessageBreak% + You shouldn't use option 'markuppercase' together\MessageBreak% + with option 'nouppercase'} + \let\MakeMarkcase\@empty + \fi} +% \end{macrocode} +% \end{option} +% \end{macro} +% +% \begin{option}{komastyle} +% \begin{option}{standardstyle} +% At version 2 there is an predefined pagestyle ``scrheadings''. With +% the two options you may decide, wether it has to behave like +% ``headings'' at the standard classes or the KOMA-Script classes. +% The macro saves the name of the style. +% \begin{macrocode} +\DeclareOption{komastyle}{\def\scrheadings@style{koma} + \@ifundefined{MakeMarkcase}{\let\MakeMarkcase\relax}{}} +\DeclareOption{standardstyle}{\def\scrheadings@style{standard} + \@ifundefined{MakeMarkcase}{\let\MakeMarkcase\MakeUppercase}{}} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% Set the default options. +% \begin{macrocode} +\ExecuteOptions{% +%headinclude,footinclude% +} +% \end{macrocode} +% But you may set other Options: +% \begin{macrocode} +\ProcessOptions\relax +% \end{macrocode} +% +% +% \subsection{Some Initialisation} +% +% For easier handling of the differences between article-, report- and +% book-classes we define some more switches. +% +% \begin{macro}{\if@chapter} +% \changes{v2.1b}{2003/05/31}{more save test} +% First distinguish between article and others. +% \begin{macrocode} +\newif\if@chapter +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname chapter\endcsname\relax + \@chapterfalse +\else + \@chaptertrue +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@mainmatter} +% \changes{v1.2}{1995/07/08}{Definition changed} +% \changes{v2.1b}{2003/05/31}{more save test} +% Next distinguish between matter- and nomatter-classes. +% \begin{macrocode} +\def\@tempa{\newif\if@mainmatter\@mainmattertrue} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname mainmatter\endcsname\relax\else\let\@tempa\relax\fi +\@tempa +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Predefinitions} +% There are some commands, you can use at pagestyle-definition. +% +% \begin{macro}{\headmark} +% This macro is |\rightmark| or |\leftmark|. But outside +% pagestyle-definition it's nothing. +% \begin{macrocode} +\let\headmark\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pagemark} +% This macro is the number of the page at the pagenumberfont: +% \begin{macrocode} +\DeclareRobustCommand\pagemark{{\pnumfont\thepage}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Expert-Pagestyle-Definition-Interface} +% The pagestyle-definition-interface for experts is not as easy as the +% simple interface we'll define later. But it's more flexible. We'll +% later use it to define the pagestyle-definition-interface for users. +% +% \begin{macro}{\if@automark} +% \changes{v2.1}{2002/10/30}{New switch} +% \begin{macro}{\@automarktrue} +% \begin{macro}{\@automarkfalse} +% We need this switch to decide to switch on or off \cs{@mkboth} at the +% pagestyles. +% \begin{macrocode} +%\newif\if@automark\@automarkfalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\defpagestyle} +% First we define the simple definition-interface. There's no test, if +% the pagestyle's defined twice. +% +% First there has to be the definition of head and foot. +% \begin{macrocode} +\def\defpagestyle{% +% \end{macrocode} +% We have to decide, whether it is a my-version or not: +% \begin{macrocode} + \@ifstar + {\@defpagestyle[-]}% + {\@defpagestyle[+]}} +% \end{macrocode} +% Now the we can define the head and the foot. First at twoside-mode: +% \changes{v1.0b}{1995/05/25}{Dot deleted after number at +% chapter- and sectionmark} +% \changes{v1.0b}{1995/05/25}{Use CJK at \cs{chaptermark}, +% \cs{sectionmark} and \cs{subsectionmark}} +% \changes{v2.0}{2001/04/20}{Version 2 uses \cs{automark} and +% \cs{manualmark}, so star and non-star +% version are same} +% \changes{v2.1a}{2002/10/30}{Use \cs{if@automark}} +% \begin{macrocode} +\if@twoside + \def\@defpagestyle[#1]#2#3#4{% + \expandafter\def\csname ps@#2\endcsname{% +%<*v1> + \def\@tempa{+}% + \def\@tempb{#1}% + \ifx\@tempa\@tempb + \let\@mkboth\markboth + \if@chapter + \def\chaptermark####1{% + \markboth {\ifnum \c@secnumdepth >\m@ne% + \if@mainmatter\chaptermarkformat\fi\fi ####1}{% + \ifnum \c@secnumdepth >\m@ne% + \if@mainmatter\chaptermarkformat\fi\fi ####1}}% + \def\sectionmark####1{% + \markright {\ifnum \c@secnumdepth >\z@% + \sectionmarkformat\fi ####1}} + \else + \def\sectionmark####1{% + \markboth {\ifnum \c@secnumdepth >\z@% + \sectionmarkformat\fi ####1}{% + \ifnum \c@secnumdepth >\z@% + \sectionmarkformat\fi ####1}} + \def\subsectionmark####1{% + \markright {\ifnum \c@secnumdepth >\@ne% + \subsectionmarkformat\fi ####1}} + \fi + \else + \let\@mkboth\@gobbletwo + \if@chapter + \def\chaptermark####1{} + \else + \def\subsectionmark####1{} + \fi + \def\sectionmark####1{} + \fi +% +% \if@automark\let\@mkboth\markboth\else\let\@mkboth\@gobbletwo\fi + \def@twosidehead#3 + \def@twosidefoot#4 + } + } +\else +% \end{macrocode} +% Then the oneside-mode: +% \begin{macrocode} + \def\@defpagestyle[#1]#2#3#4{% + \expandafter\def\csname ps@#2\endcsname{% +%<*v1> + \def\@tempa{+}% + \def\@tempb{#1}% + \ifx\@tempa\@tempb + \let\@mkboth\markboth + \if@chapter + \def\chaptermark####1{% + \markright {\ifnum \c@secnumdepth >\m@ne% + \if@mainmatter\chaptermarkformat\fi\fi ####1}}% + \def\sectionmark####1{} + \else + \def\sectionmark####1{% + \markright{\ifnum \c@secnumdepth >\z@% + \sectionmarkformat\fi ####1}} + \def\subsectionmark####1{} + \fi + \else + \let\@mkboth\@gobbletwo + \if@chapter + \def\chaptermark####1{} + \else + \def\subsectionmark####1{} + \fi + \def\sectionmark####1{} + \fi +% +% \if@automark\let\@mkboth\markboth\else\let\@mkboth\@gobbletwo\fi + \def@onesidehead#3 + \def@onesidefoot#4 + } + } +\fi +% \end{macrocode} +% \begin{macro}{\def@twosidehead} +% \changes{v1.3}{2001/03/30}{Use of \cs{@headwidth} instead of +% \cs{textwidth}} +% \changes{v2.0}{2001/04/20}{Thickness and length of the lines are +% optional} +% \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}} +% This was real simple, but we already have to do the real definition +% of the heads and foots. First the twosided head: +% \begin{macrocode} +%<*v2> +\def\def@twosidehead{% + \@ifnextchar( + {\def@@twosidehead} + {\def@@twosidehead(\scr@headabove@linelength,% + \scr@headabove@linethickness)}} +\def\def@@twosidehead(#1,#2)#3#4#5{% + \@ifnextchar( + {\def@@@twosidehead({#1},{#2}){#3}{#4}{#5}} + {\def@@@twosidehead({#1},{#2}){#3}{#4}{#5}% + (\scr@headbelow@linelength,% + \scr@headbelow@linethickness)}} +\def\def@@@twosidehead(#1,#2)#3#4#5(#6,#7){% +% +%\def\def@twosidehead(#1,#2)#3#4#5(#6,#7){ + \def\@evenhead{\let\headmark\leftmark% + \hss\hskip\@evenheadshift\vbox{\hsize=\@headwidth\relax% + \hf@rule{#1}{#2}{\@headwidth}% +% {headabove}% + \vskip#2 + \vskip\baselineskip% + \hb@xt@\@headwidth{{% +% \scr@nouppercase% + \headfont\strut #3}}% + \hf@rule{#6}{#7}{\@headwidth}% +% {headbelow}% + }\hskip\@oddheadshift\hss} + \def\@oddhead{\let\headmark\rightmark% + \hss\hskip\@oddheadshift\vbox{\hsize=\@headwidth\relax% + \hf@rule{#1}{#2}{\@headwidth}% +% {headabove}% + \vskip#2 + \vskip\baselineskip% + \hb@xt@\@headwidth{{% +% \scr@nouppercase% + \headfont\strut #4}}% + \hf@rule{#6}{#7}{\@headwidth}% +% {headbelow}% + }\hskip\@evenheadshift\hss} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\def@onesidehead} +% \changes{v1.3}{2001/03/30}{Use of \cmd\@headwidth instead of +% \cmd\textwidth} +% \changes{v2.0}{2001/04/20}{Thickness and length of the lines are +% optional} +% \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}} +% \begin{macro}{\def@@onesidehead} +% \begin{macro}{\def@@@onesidehead} +% \changes{v2.0l}{2001/09/30}{\cs{@oddheadshift} am Ende durch +% \cs{@evenheadshift} ersetzt} +% Next the onesided head: +% \begin{macrocode} +%<*v2> +\def\def@onesidehead{% + \@ifnextchar( + {\def@@onesidehead} + {\def@@onesidehead(\scr@headabove@linelength,% + \scr@headabove@linethickness)}} +\def\def@@onesidehead(#1,#2)#3#4#5{% + \@ifnextchar( + {\def@@@onesidehead({#1},{#2}){#3}{#4}{#5}} + {\def@@@onesidehead({#1},{#2}){#3}{#4}{#5}% + (\scr@headbelow@linelength,% + \scr@headbelow@linethickness)}} +\def\def@@@onesidehead(#1,#2)#3#4#5(#6,#7){% +% +%\def\def@onesidehead(#1,#2)#3#4#5(#6,#7){ + \def\@evenhead{} + \def\@oddhead{\let\headmark\rightmark% + \hss\hskip\@oddheadshift\vbox{\hsize=\@headwidth\relax% + \hf@rule{#1}{#2}{\@headwidth}% +% {headabove}% + \vskip#2% + \vskip\baselineskip% + \hb@xt@\@headwidth{{% +% \scr@nouppercase% + \headfont\strut #5}} + \hf@rule{#6}{#7}{\@headwidth}% +% {headbelow}% + }\hskip\@evenheadshift\hss} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\def@twosidefoot} +% \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of +% \cmd\textwidth} +% \changes{v2.0}{2001/04/20}{Thickness and length of the lines are +% optional} +% \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}} +% And last twosided and onesided foot: +% \begin{macrocode} +%<*v2> +\def\def@twosidefoot{% + \@ifnextchar( + {\def@@twosidefoot} + {\def@@twosidefoot(\scr@footabove@linelength,% + \scr@footabove@linethickness)}} +\def\def@@twosidefoot(#1,#2)#3#4#5{% + \@ifnextchar( + {\def@@@twosidefoot({#1},{#2}){#3}{#4}{#5}} + {\def@@@twosidefoot({#1},{#2}){#3}{#4}{#5}% + (\scr@footbelow@linelength,% + \scr@footbelow@linethickness)}} +\def\def@@@twosidefoot(#1,#2)#3#4#5(#6,#7){% +% +%\def\def@twosidefoot(#1,#2)#3#4#5(#6,#7){ + \def\@evenfoot{\let\headmark\leftmark% + \hss\hskip\@evenfootshift\vbox{\hsize=\@footwidth\relax% + \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{% +% \scr@nouppercase% + \headfont\strut #3}}% + \botfoot@rule{#6}{#7}}\hskip\@oddfootshift\hss} + \def\@oddfoot{\let\headmark\rightmark% + \hss\hskip\@oddfootshift\vbox{\hsize=\@footwidth\relax% + \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{% +% \scr@nouppercase% + \headfont\strut #4}}% + \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss} +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\def@onesidefoot} +% \changes{v1.3}{2001/03/30}{Use of \cmd\@footwidth instead of +% \cmd\textwidth} +% \changes{v2.0}{2001/04/20}{Thickness and length of the lines are +% optional} +% \changes{v2.0j}{2001/08/18}{Use of \cs{scr@nouppercase}} +% \begin{macro}{\def@@onesidefoot} +% \begin{macro}{\def@@@onesidefoot} +% \changes{v2.0l}{2001/09/30}{\cs{vbox} bereits nach der Linie beendet} +% \begin{macrocode} +%<*v2> +\def\def@onesidefoot{% + \@ifnextchar( + {\def@@onesidefoot} + {\def@@onesidefoot(\scr@footabove@linelength,% + \scr@footabove@linethickness)}} +\def\def@@onesidefoot(#1,#2)#3#4#5{% + \@ifnextchar( + {\def@@@onesidefoot({#1},{#2}){#3}{#4}{#5}} + {\def@@@onesidefoot({#1},{#2}){#3}{#4}{#5}% + (\scr@footbelow@linelength,% + \scr@footbelow@linethickness)}} +\def\def@@@onesidefoot(#1,#2)#3#4#5(#6,#7){% +% +%\def\def@onesidefoot(#1,#2)#3#4#5(#6,#7){ + \def\@evenfoot{} + \def\@oddfoot{\let\headmark\rightmark% + \hss\hskip\@oddfootshift\vbox{\hsize=\@footwidth\relax% + \topfoot@rule{#1}{#2}\hb@xt@\@footwidth{{% +% \scr@nouppercase% + \headfont\strut #5}} + \botfoot@rule{#6}{#7}}\hskip\@evenfootshift\hss} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% We now define the rules used at head and foot. +% \begin{macro}{\topfoot@rule} +% \begin{macrocode} +\newcommand\topfoot@rule[2]{% + \@tempdima\baselineskip\advance\@tempdima by-.7\normalbaselineskip + \advance\@tempdima by -#2 + \vskip\@tempdima\hf@rule{#1}{#2}{\@footwidth}% +% {footabove}% + \vskip-\@tempdima} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\botfoot@rule} +% \begin{macrocode} +\newcommand\botfoot@rule[2]{% + \@tempdima-\baselineskip\advance\@tempdima by .3\normalbaselineskip + \advance\@tempdima by #2 + \vskip\@tempdima\hf@rule{#1}{#2}{\@footwidth}% +% {footbelow}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hf@rule} +% \changes{v1.3}{2001/03/30}{New, third parameter ``boxwidth''} +% \changes{v2.0f}{2001/06/23}{Rule can be adjusted at inner margine, +% centered or adjusted at outer margine} +% \changes{v2.2}{2004/07/05}{Last parameter of the rule tells, if it is a +% headabove, headbelow, footabove or footbelow rule} +% \changes{v2.2}{2005/07/05}{Precommands before the rules are allowed} +% \changes{v2.2}{2005/07/05}{Macro is not longer long} +% \begin{macrocode} +%\newcommand\hf@rule[3]{% +%\newcommand*{\hf@rule}[4]{% + \setlength{\@tempdimb}{#1} +%<*v2> + \begingroup + \csname scr@pre@#4@line\endcsname + \ifodd\c@page + \edef\@tempa{\hfline@adjust} + \else + \@tempcnta=2\advance\@tempcnta -\hfline@adjust + \edef\@tempa{\the\@tempcnta} + \fi + \ifnum\@tempa=1 +% + \setlength{\@tempdimb}{.5\@tempdimb} +% \fi + \hb@xt@#3{% +% \ifnum\@tempa>0 + \hfill% + \llap{\vrule\@depth#2\@height\z@\@width\@tempdimb}% +% \fi +% \ifnum\@tempa<2 + \rlap{\vrule\@depth#2\@height\z@\@width\@tempdimb}% + \hfill% +% \fi + }% +% \endgroup +} +% \end{macrocode} +% \begin{macro}{\scr@pre@headabove@line} +% \changes{v2.2}{2004/07/05}{New internal} +% \begin{macro}{\scr@fnt@headtopline} +% \changes{v2.2}{2004/07/05}{New KOMA-Script font command} +% \begin{macro}{\scr@pre@headbelow@line} +% \changes{v2.2}{2004/07/05}{New internal} +% \begin{macro}{\scr@fnt@headsepline} +% \changes{v2.2}{2004/07/05}{New KOMA-Script font command} +% \begin{macro}{\scr@pre@footabove@line} +% \changes{v2.2}{2004/07/05}{New internal} +% \begin{macro}{\scr@fnt@footsepline} +% \changes{v2.2}{2004/07/05}{New KOMA-Script font command} +% \begin{macro}{\scr@pre@footbelow@line} +% \changes{v2.2}{2004/07/05}{New internal} +% \begin{macro}{\scr@fnt@footbottomrule} +% \changes{v2.2}{2004/07/05}{New KOMA-Script font command} +% \begin{macro}{\scr@fnt@instead@footbotline} +% \changes{v2.2}{2004/07/05}{New KOMA-Script font command} +% \begin{macrocode} +%<*v2> +\newcommand*{\scr@pre@headabove@line}{} +\newcommand*{\scr@fnt@headtopline}{\scr@pre@headabove@line} +\newcommand*{\scr@pre@headbelow@line}{} +\newcommand*{\scr@fnt@headsepline}{\scr@pre@headbelow@line} +\newcommand*{\scr@pre@footabove@line}{} +\newcommand*{\scr@fnt@footsepline}{\scr@pre@footabove@line} +\newcommand*{\scr@pre@footbelow@line}{} +\newcommand*{\scr@fnt@footbottomline}{\scr@pre@footbelow@line} +\newcommand*{\scr@fnt@instead@footbotline}{footbottomline} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Using these definitions, we can define the testing macros. +% +% \begin{macro}{\newpagestyle} +% First the simple star/starless-selection: +% \begin{macrocode} +\def\newpagestyle{% +% \end{macrocode} +% We have to decide, whether it is a my-version or not: +% \begin{macrocode} + \@ifstar + {\@newpagestyle[-]}% + {\@newpagestyle[+]}} +% \end{macrocode} +% \begin{macro}{\@newpagestyle} +% There we have to distinguish, whether the pagestyle is already +% defined or not. +% \begin{macrocode} +\def\@newpagestyle[#1]#2#3#4{ + \expandafter\ifx\csname ps@#2\endcsname\relax +% \end{macrocode} +% Then we can use the already defined |\@defpagestyle|. +% \begin{macrocode} + \@defpagestyle[#1]{#2}{#3}{#4} + \else + \PackageError +% {scrpage} +% {scrpage2} + {Your command was ignored}% + {There is already a pagestyle named ``#1''.\MessageBreak% + Use \protect\defpagestyle\space, \protect\renewpagestyle or + \protect\providepagestyle.} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\renewpagestyle} +% First the simple star/starless-selection: +% \begin{macrocode} +\def\renewpagestyle{% +% \end{macrocode} +% We have to decide, whether it is a my-version or not: +% \begin{macrocode} + \@ifstar + {\@renewpagestyle[-]}% + {\@renewpagestyle[+]}} +% \end{macrocode} +% \begin{macro}{\@renewpagestyle} +% \changes{v1.2a}{1996/12/07}{Avoid to define pagestyle as \cs{relax} +% if it wasn't defined (Thanks to Bernd).} +% There we have to distinguish, whether the pagestyle is already +% defined or not. +% \begin{macrocode} +\def\@renewpagestyle[#1]#2#3#4{ + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname ps@#2\endcsname\relax + \PackageError +% {scrpage} +% {scrpage2} + {Your command was ignored}% + {There is no pagestyle named ``#1''.\MessageBreak% + Use \protect\defpagestyle, \protect\newpagestyle or + \protect\providepagestyle.} + \else +% \end{macrocode} +% Then we can use the already defined |\@defpagestyle|. +% \begin{macrocode} + \@defpagestyle[#1]{#2}{#3}{#4} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\providepagestyle} +% First the simple star/starless-selection: +% \begin{macrocode} +\def\providepagestyle{% +% \end{macrocode} +% We have to decide, whether it is a my-version or not: +% \begin{macrocode} + \@ifstar + {\@providepagestyle[-]}% + {\@providepagestyle[+]}} +% \end{macrocode} +% \begin{macro}{\@providepagestyle} +% There we have to distinguish, whether the pagestyle is already +% defined or not. +% \begin{macrocode} +\def\@providepagestyle[#1]#2#3#4{ + \expandafter\ifx\csname ps@#2\endcsname\relax +% \end{macrocode} +% Then we can use the already defined |\@defpagestyle|. +% \begin{macrocode} + \@defpagestyle[#1]{#2}{#3}{#4} + \else + \PackageInfo +% {scrpage} +% {scrpage2} + {\protect\providepagestyle\protect{#1\protect} ignored.} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{User-Pagestyle-Definition-Interface} +% The pagestyle-definition-interface for users is much easier than the +% expert-version. Using the expert-macros, the definition is easy, too. +% +% \begin{macro}{\deftripstyle} +% \begin{macrocode} +% \end{macrocode} +% At version 1 we define the selection of star- or starless-version first: +% \begin{macrocode} +\def\deftripstyle{% + \@ifstar + {\@deftripstyle[-]}% + {\@deftripstyle[+]}} +% \end{macrocode} +% \end{macro} +% Next we check, if there is an optional argument: +% \begin{macro}{\@deftripstyle} +% \begin{macrocode} +\def\@deftripstyle[#1]#2{% + \@ifnextchar[ + {\@@deftripstyle[#1]{#2}}% + {\@@deftripstyle[#1]{#2}[\z@]}} +% \end{macrocode} +% \end{macro} +% or perhaps two optional arguments: +% \begin{macro}{\@@deftripstyle} +% \begin{macrocode} +\def\@@deftripstyle[#1]#2[#3]{ +% \end{macrocode} +% Ok, now we have the problem, that there can be only 9 arguments. So we +% have to distinguish the star-versions by a macro: +% \begin{macrocode} + \def\@tempa{#1} + \@ifnextchar[ + {\@@@deftripstyle#2[#3]}% + {\@@@deftripstyle#2[\z@][#3]}} +% \end{macrocode} +% \end{macro} +% Now the main-definition: +% \begin{macro}{\@@@deftripstyle} +% \begin{macrocode} +\def\@@@deftripstyle#1[#2][#3]#4#5#6#7#8#9{% + \def\@tempb{+} + \ifx\@tempa\@tempb% + \defpagestyle{#1}% + {(\@headwidth,#2)% + {\rlap{#6}\hfill{#5}\hfill\llap{#4}}% + {\rlap{#4}\hfill{#5}\hfill\llap{#6}}% + {\rlap{#4}\hfill{#5}\hfill\llap{#6}}% + (\@headwidth,#3)} + {(\@footwidth,#3)% + {\rlap{#9}\hfill{#8}\hfill\llap{#7}}% + {\rlap{#7}\hfill{#8}\hfill\llap{#9}}% + {\rlap{#7}\hfill{#8}\hfill\llap{#9}}% + (\@footwidth,#2)} + \else + \defpagestyle*{#1}% + {(\@headwidth,#2)% + {\rlap{#6}\hfill{#5}\hfill\llap{#4}}% + {\rlap{#4}\hfill{#5}\hfill\llap{#6}}% + {\rlap{#4}\hfill{#5}\hfill\llap{#6}}% + (\@headwidth,#3)} + {(\@footwidth,#3)% + {\rlap{#9}\hfill{#8}\hfill\llap{#7}}% + {\rlap{#7}\hfill{#8}\hfill\llap{#9}}% + {\rlap{#7}\hfill{#8}\hfill\llap{#9}}% + (\@footwidth,#2)} + \fi +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Automark or not} +% This is only valid at version 2. +% \begin{macrocode} +%<*v2> +% \end{macrocode} +% \begin{macro}{\automark} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0c}{2001/06/07}{Use of \cs{MakeMarkcase}} +% \changes{v2.0g}{2001/06/25}{Use of \cs{manualmark}} +% \changes{v2.0i}{2001/08/17}{Warning, if arguments are mixed up} +% \changes{v2.0i}{2001/08/17}{\cs{markboth} behavior fixed} +% \changes{v2.0i}{2001/08/17}{Use of \cs{if@autooneside}} +% \changes{v2.1a}{2002/10/30}{Switch on \cs{if@automark}} +% This macro activates automatic mark. Is has two arguments. The +% first, optional argument is the sectioning level name of the mark at +% left pages, the second, not optional argument is the same at right +% pages. At oneside mode all pages are right. +% \begin{macro}{\@iflevelok} +% \changes{v2.0i}{2001/08/17}{New} +% \begin{macro}{\markleft} +% \changes{v2.0i}{2001/08/17}{New} +% \begin{macro}{\@markleft} +% \changes{v2.0i}{2001/08/17}{New} +% To define \cs{automark} we also need these three makros. The first +% one decides, if level of second parameter is less than level of +% first parameter and does then third or fourth parameter. +% \cs{markleft} and \cs{@markleft} are similar to \cs{markright} and +% \cs{@markright} at \LaTeX{} kernel. +% \begin{macrocode} +\newcommand*{\@iflevelok}[4]{% + \begingroup% + \edef\@tempa{#1}\ifx\@tempa\@empty\def\@tempa{\endgroup #3}\else% + \def\@tempa{\csname #1level\endcsname}% + \def\@tempb{\csname #2level\endcsname}% + \ifnum \@tempa>\@tempb% + \def\@tempa{\endgroup#3}% + \else% + \def\@tempa{\endgroup#4}% + \fi\fi\@tempa} +\providecommand{\markleft}[1]{% + \begingroup + \let\label\relax \let\index\relax \let\glossary\relax + \expandafter\@markleft\@themark {#1}% + \@temptokena \expandafter{\@themark}% + \mark{\the\@temptokena}% + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi} +\providecommand{\@markleft}[3]{\@temptokena {#2}% + \unrestored@protected@xdef\@themark{{#3}{\the\@temptokena}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \changes{v2.2a}{2004/09/05}{all changes of helper macros and switches are +% local to fix e.g.\ twocolumn problem with \cs{part}} +% \begin{macrocode} +\newcommand*{\automark}[2][\@empty]{% + \manualmark + \@automarktrue + \begingroup + \edef\@tempa{#2}\ifx\@tempa\@empty + \endgroup + \PackageWarning{scrpage2} + {\string\automark\space with empty obligatory argument} + \else + \endgroup + \expandafter\def\csname #2mark\endcsname##1{% + \begingroup + \def\@tempa{\csname #2level\endcsname} + \@tempswafalse + \ifnum \c@secnumdepth <\@tempa\else\if@mainmatter + \@tempswatrue + \fi\fi + \edef\@tempa{#1}% + \if@twoside\edef\@tempb{#2}\else\let\@tempb\@tempa\fi + \ifx\@tempa\@tempb + \if@tempswa + \@mkboth{\MakeMarkcase{\csname #2markformat\endcsname ##1}} + {\MakeMarkcase{\csname #2markformat\endcsname ##1}}% + \else% + \@mkboth{\MakeMarkcase{##1}}{\MakeMarkcase{##1}}% + \fi + \else + \if@tempswa + \@iflevelok{#1}{#2}{% + \@mkboth{\MakeMarkcase{\csname #2markformat\endcsname + ##1}}{}}{% + \ifx\@mkboth\markboth\markleft{\MakeMarkcase{\csname + #2markformat\endcsname ##1}}% + \fi} + \else + \@iflevelok{#1}{#2}{% + \@mkboth{\MakeMarkcase{##1}}{}}{% + \ifx\@mkboth\markboth\markleft{\MakeMarkcase{##1}}\fi} + \fi + \fi + \endgroup + } + \fi + \begingroup + \edef\@tempa{#1}\edef\@tempb{#2} + \if@autooneside\if@twoside\else\let\@tempa\@empty\fi\fi + \ifx\@tempa\@empty + \endgroup + \else + \ifx\@tempa\@tempb + \endgroup + \else + \endgroup + \expandafter\def\csname #1mark\endcsname##1{% + \begingroup + \def\@tempa{\csname #1level\endcsname} + \@tempswafalse + \ifnum \c@secnumdepth <\@tempa\else\if@mainmatter + \@tempswatrue + \fi\fi + \if@tempswa + \@iflevelok{#1}{#2}{% + \ifx\@mkboth\markboth + \markright{\MakeMarkcase{\csname #1markformat\endcsname + ##1}}% + \fi}{% + \@mkboth{}{\MakeMarkcase{\csname #1markformat\endcsname + ##1}}} + \else + \@iflevelok{#1}{#2}{% + \ifx\@mkboth\markboth + \markright{\MakeMarkcase{##1}}% + \fi}{% + \@mkboth{}{\MakeMarkcase{##1}}} + \fi + \endgroup + } + \fi\fi% + \let\@mkboth\markboth +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\manualmark} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0g}{2001/06/25}{also deactivating \cs{...mark}} +% \changes{v2.1a}{2002/10/30}{Switch off \cs{if@automark}} +% This macro switchs to the manual set of marks (using \cs{markboth} +% and \cs{markright}. This is very simple, we only have to deaktivate +% the mark macros. +% \begin{macrocode} +\newcommand*{\manualmark}{% + \if@chapter\let\chaptermark\@gobble\fi + \let\sectionmark\@gobble + \let\subsectionmark\@gobble + \let\subsubsectionmark\@gobble + \let\paragraphmark\@gobble + \let\subparagraphmark\@gobble + \let\@mkboth\@gobbletwo + \@automarkfalse +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\partlevel} +% \changes{v2.2}{2004/07/05}{New} +% \begin{macro}{\chapterlevel} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\sectionlevel} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\subsectionlevel} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\subsubsectionlevel} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\paragraphlevel} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\subparagraphlevel} +% \changes{v2.0}{2001/04/20}{New} +% At \cs{automark} we use some macros to get the numeric level of a +% sectioning name. We simply define these: +% \begin{macrocode} +\if@chapter + \newcommand*{\partlevel}{-1} +\else + \newcommand*{\partlevel}{0} +\fi +\newcommand*{\chapterlevel}{0} +\newcommand*{\sectionlevel}{1} +\newcommand*{\subsectionlevel}{2} +\newcommand*{\subsubsectionlevel}{3} +\newcommand*{\paragraphlevel}{4} +\newcommand*{\subparagraphlevel}{5} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\MakeMarkcase} +% \changes{v2.0m}{2002/02/05}{Klasse \texttt{scrlttr2} ist bekannt} +% At \cs{automark} we use a new macro to enable usability of +% \cs{MakeUppercase} at the head-marks. We set this macro to +% \cs{MakeUppercase} if one of the standard-classes was loaded: +% \begin{macrocode} +\@ifundefined{MakeMarkcase}{ + \@ifclassloaded{scrbook}{\let\MakeMarkcase\relax}{% + \@ifclassloaded{scrreprt}{\let\MakeMarkcase\relax}{% + \@ifclassloaded{scrartcl}{\let\MakeMarkcase\relax}{% + \@ifclassloaded{scrlttr2}{\let\MakeMarkcase\relax}{% + \@ifclassloaded{book}{}{% + \@ifclassloaded{report}{}{% + \@ifclassloaded{article}{}{% + \PackageWarningNoLine{scrpage2}{% + use of scrpage2 with unknown class.\MessageBreak + Please mail to markus.kohm@gmx.de, if + headmarks\MessageBreak + are lower case without use of scrpage2}}}} + \let\MakeMarkcase\MakeUppercase}}}}}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scrheadings@style} +% \changes{v2.0g}{2001/06/25}{New} +% \changes{v2.0m}{2002/02/05}{Klasse \texttt{scrlttr2} wird +% ber"ucksichtigt } +% This macro defines, which style for scrheadings should be used. If +% it is not defined, we have to define it in a propper way. +% \begin{macrocode} +\@ifundefined{scrheadings@style}{ + \@ifclassloaded{scrbook}{\def\scrheadings@style{koma}}{% + \@ifclassloaded{scrreprt}{\def\scrheadings@style{koma}}{% + \@ifclassloaded{scrartcl}{\def\scrheadings@style{koma}}{% + \@ifclassloaded{scrlttr2}{\def\scrheadings@style{koma}}{% + \def\scrheadings@style{standard}}}}}}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Width of head and foot} +% \begin{macro}{\setheadwidth} +% \changes{v1.3}{2001/03/30}{New} +% \begin{macro}{\setfootwidth} +% \changes{v1.3}{2001/03/30}{New} +% \begin{macro}{\set@hf@width} +% \changes{v1.3}{2001/03/30}{New} +% \changes{v1.3a}{2001/05/31}{symbolic values ``paper'', ``text'', +% ``textwidthmarginpar''} +% \changes{v2.0b}{2001/05/31}{symbolic values ``paper'', ``text'', +% ``textwidthmarginpar''} +% \changes{v2.0c}{2001/06/07}{error fix at warning} +% \begin{macro}{\settowidthof} +% \changes{v2.0e}{2001/06/22}{New} +% \begin{macro}{\deftowidthof} +% \changes{v2.0e}{2001/06/22}{New} +% \changes{v2.0f}{2001/06/23}{new symbolic values ``autohead'' and +% ``autofoot''} +% \changes{v2.0i}{2001/08/17}{new symbolic value ``page''} +% \changes{v2.0k}{2001/09/28}{\cs{pagewidth} korrigiert} +% \changes{v2.1b}{2003/05/31}{more save existance test} +% \changes{v2.2}{2004/07/05}{value ``foot'' fixed} +% Until version 1.3, head and foot of a page had same width like the +% text block. Since version 1.3 this was changed. Now the head and +% foot have their own width and an optional shift relative to the text +% part of the page. This shift can be positive or negative. We set +% the width and shift with one macro and save them at macros. The set +% macros have an optional argument: the shift. +% +% For definition of symbolic length values there is the macro +% \cs{settowidthof}. And to define a macro with this value, there +% is \cs{deftowidthof}. +% \begin{macrocode} +\newcommand*{\settowidthof}[2]{% + \edef\@tempa{#2} + \edef\@tempb{paper}\ifx\@tempa\@tempb + \setlength{#1}{\paperwidth} + \else\edef\@tempb{text}\ifx\@tempa\@tempb + \setlength{#1}{\textwidth} + \else\edef\@tempb{textwithmarginpar}\ifx\@tempa\@tempb + \setlength{#1}{\textwidth} + \addtolength{#1}{\marginparwidth} + \addtolength{#1}{\marginparsep} + \else\edef\@tempb{head}\ifx\@tempa\@tempb + \setlength{#1}{\@headwidth} + \else\edef\@tempb{foot}\ifx\@tempa\@tempb + \setlength{#1}{\@footwidth} + \else\edef\@tempb{headtopline}\ifx\@tempa\@tempb + \setlength{#1}{\scr@headabove@linelength} + \else\edef\@tempb{headsepline}\ifx\@tempa\@tempb + \setlength{#1}{\scr@headbelow@linelength} + \else\edef\@tempb{footsepline}\ifx\@tempa\@tempb + \setlength{#1}{\scr@footabove@linelength} + \else\edef\@tempb{footbotline}\ifx\@tempa\@tempb + \setlength{#1}{\scr@footbelow@linelength} + \else\edef\@tempb{page}\ifx\@tempa\@tempb + \setlength{#1}{\paperwidth} + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname ta@bcor\endcsname\relax\else + \addtolength{#1}{-\ta@bcor} + \fi + \else + \setlength{#1}{#2} + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi +} +\newcommand*{\deftowidthof}[2]{% + \edef\@tempa{#2}\edef\@tempb{autohead}\ifx\@tempa\@tempb + \expandafter\def\csname #1\endcsname{\@headwidth} + \else\edef\@tempb{autofoot}\ifx\@tempa\@tempb + \expandafter\def\csname #1\endcsname{\@footwidth} + \else + \settowidthof{\@tempdima}{#2} + \expandafter\edef\csname #1\endcsname{\the\@tempdima} + \fi + \fi +} +\newcommand*{\setheadwidth}[2][\@empty]{% + \set@hf@width{head}{#1}{#2} +} +\newcommand*{\setfootwidth}[2][\@empty]{% + \set@hf@width{foot}{#1}{#2} +} +\newcommand*{\set@hf@width}[3]{% + \settowidthof{\@tempdima}{#3} + \ifdim\@tempdima>\paperwidth + \PackageWarning +% {scrpage} +% {scrpage2} + {You've set width of #1 to a value\MessageBreak + greater than width of page!\MessageBreak% + I`ll reduce width of #1 to width of page} + \setlength{\@tempdima}{\paperwidth} + \else + \ifdim\@tempdima<\z@ + \PackageWarning +% {scrpage} +% {scrpage2} + {You've set width of #1 to negative value!\MessageBreak% + I'll set it to 0pt} + \setlength{\@tempdima}{\z@} + \fi + \fi + \expandafter\edef\csname @#1width\endcsname{\the\@tempdima} + \edef\@tempa{#2} + \setlength{\@tempdima}{\textwidth} + \addtolength{\@tempdima}{-\csname @#1width\endcsname} + \ifx\@tempa\@empty + \if@twoside + \setlength{\@tempdimb}{.3333333333\@tempdima} + \else + \setlength{\@tempdimb}{.5\@tempdima} + \fi + \else + \setlength{\@tempdimb}{#2} + \fi + \addtolength{\@tempdima}{-\@tempdimb} + \ifdim\@tempdimb<\z@ + \setlength{\@tempdimb}{-\@tempdimb} + \expandafter\edef\csname @odd#1shift\endcsname{-\the\@tempdimb} + \else + \expandafter\edef\csname @odd#1shift\endcsname{\the\@tempdimb} + \fi + \ifdim\@tempdima<\z@ + \setlength{\@tempdima}{-\@tempdima} + \expandafter\edef\csname @even#1shift\endcsname{-\the\@tempdima} + \else + \expandafter\edef\csname @even#1shift\endcsname{\the\@tempdima} + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@headwidth} +% \changes{v1.3}{2001/03/30}{New} +% \changes{v2.1}{2002/03/28}{use of option \texttt{mpinclude}} +% \begin{macro}{\@footwidth} +% \changes{v1.3}{2001/03/30}{New} +% \changes{v2.1}{2002/03/28}{use of option \texttt{mpinclude}} +% \begin{macro}{\@oddheadshift} +% \changes{v1.3}{2001/03/30}{New} +% \begin{macro}{\@evenheadshift} +% \changes{v1.3}{2001/03/30}{New} +% \begin{macro}{\@oddfootshift} +% \changes{v1.3}{2001/03/30}{New} +% \begin{macro}{\@evenfootshift} +% \changes{v1.3}{2001/03/30}{New} +% The values of width and shift of head and foot are saved at internal +% macros. +% \begin{macrocode} +\newcommand*{\@headwidth}{\textwidth} +\newcommand*{\@oddheadshift}{\z@} +\newcommand*{\@evenheadshift}{\z@} +\newcommand*{\@footwidth}{\textwidth} +\newcommand*{\@oddfootshift}{\z@} +\newcommand*{\@evenfootshift}{\z@} +% \end{macrocode} +% If option \texttt{mpinclude} was used, we use a special trick to set +% width of head and foot but only if the user doesn't: +% \begin{macrocode} +%<*v2> +\if@mincl + \renewcommand*{\@headwidth}{} + \renewcommand*{\@footwidth}{} + \AtBeginDocument{% + \ifx\@headwidth\@empty + \setheadwidth[0pt]{textwithmarginpar} + \fi + \ifx\@footwidth\@empty + \setfootwidth[0pt]{textwithmarginpar} + \fi + } +\fi +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Fonts} +% \begin{macro}{\pnumfont} +% We have to define a macro defining the font, used by |\pagemark|. Because +% of this macro may already be defined by a \textsf{KOMA}-script-class, we +% have to do this, using |\providecommand| +% \begin{macrocode} +\providecommand\pnumfont{\normalfont} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\headfont} +% There is also a macro used by |\@evenhead|, |\@oddhead| and |\@evenfoot|, +% |\@oddfoot|: +% \begin{macrocode} +\providecommand\headfont{\normalfont% +% \slshape% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Length and thickness of lines at head and foot} +% \begin{macro}{\setheadtopline} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0d}{2001/06/19}{\texttt{headtop} changed into +% \texttt{headabove}} +% \changes{v2.0f}{2001/06/23}{new symbolic value ``auto''} +% \begin{macro}{\setheadsepline} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0d}{2001/06/19}{\texttt{headbot} changed into +% \texttt{headbelow}} +% \changes{v2.0f}{2001/06/23}{new symbolic value ``auto''} +% \begin{macro}{\setfootsepline} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0d}{2001/06/19}{\texttt{foottop} changed into +% \texttt{footabove}} +% \changes{v2.0f}{2001/06/23}{new symbolic value ``auto''} +% \begin{macro}{\setfootbotline} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0d}{2001/06/19}{\texttt{footbot} changed into +% \texttt{footbelow}} +% \changes{v2.0f}{2001/06/23}{new symbolic value ``auto''} +% \begin{macrocode} +%<*v2> +% \end{macrocode} +% Only at version 2 there are new macros to set the length and +% thickness of the lines at head and foot. Wie use macros not +% dimensions, because the amount of dimensions is very small at \TeX. +% \begin{macrocode} +\newcommand*{\setheadtopline}{\scr@setline{head}{above}} +\newcommand*{\setheadsepline}{\scr@setline{head}{below}} +\newcommand*{\setfootsepline}{\scr@setline{foot}{above}} +\newcommand*{\setfootbotline}{\scr@setline{foot}{below}} +% \end{macrocode} +% \begin{macro}{\scr@setline} +% \begin{macro}{\@scr@setline} +% \changes{v2.0d}{2001/06/19}{symbolic values implemented} +% \begin{macro}{\@@scr@setline} +% \changes{v2.0d}{2001/06/18}{macro name fixed} +% \begin{macro}{\@scr@set@pre@line} +% \changes{v2.2}{2004/07/05}{New internal} +% The real change of the lines is done with the macros +% \cs{scr@setline}, \cs{@scr@setline} and \cs{@@scr@setline}: +% \begin{macrocode} +\def\scr@setline#1#2{% + \@ifnextchar[%] + {\@scr@setline{#1}{#2}}{\@@scr@setline{#1#2}}% +} +\def\@scr@setline#1#2[#3]{% + \edef\@tempa{#3}\edef\@tempa{auto}\ifx\@tempa\@tempb + \deftowidthof{scr@#1#2@linelength}{#3#1}% + \else + \deftowidthof{scr@#1#2@linelength}{#3}% + \fi + \@@scr@setline{#1#2}% +} +\def\@@scr@setline#1#2{% + \edef\@tempa{#2}\edef\@tempb{current}\ifx\@tempa\@empty\else + \ifx\@tempa\@tempb\else + \setlength{\@tempdima}{#2}% + \expandafter\edef\csname scr@#1@linethickness\endcsname% + {\the\@tempdima}% + \fi\fi + \@ifnextchar[%] + {\@src@set@pre@line{#1}}{}% +} +\def\@src@set@pre@line#1[#2]{% + \expandafter\def\csname scr@pre@#1@line\endcsname{#2}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Extended multilanguage formats} +% \begin{macro}{\partmarkformat} +% \changes{v2.2}{2004/07/05}{New} +% \begin{macro}{\chaptermarkformat} +% \changes{v1.1}{1995/06/27}{Space after chapternumber increased.} +% \begin{macro}{\sectionmarkformat} +% \changes{v1.1}{1995/06/27}{Space after sectionnumber increased.} +% \begin{macro}{\subsectionmarkformat} +% \changes{v1.1}{1995/06/27}{Space after subsectionnumber increased.} +% \begin{macro}{\subsubsectionmarkformat} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\paragraphmarkformat} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\subparagraphmarkformat} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\@seccntmarkformat} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\@seccntformat} +% \changes{v2.0}{2001/04/20}{New} +% There are some macros to handle languages like Chinese, Japanese or Korean. +% These macros were defined first by Werner Lemberg at his CJK-bundle. See +% |scrclass.dtx| for further information. +% \begin{macrocode} +\providecommand{\partmarkformat} {\partname\ \thepart. \ } +\if@chapter + \providecommand{\chaptermarkformat} {\@chapapp\ \thechapter. \ } + \providecommand{\sectionmarkformat} {\thesection. \ } +% \providecommand{\subsectionmarkformat} {\@seccntmarkformat{subsection}} +\else + \providecommand{\sectionmarkformat} {\thesection\quad} + \providecommand{\subsectionmarkformat} {\thesubsection\quad} +\fi +%<*v2> +\providecommand{\subsubsectionmarkformat}{\@seccntmarkformat{subsubsection}} +\providecommand{\paragraphmarkformat} {\@seccntmarkformat{paragraph}} +\providecommand{\subparagraphmarkformat} {\@seccntmarkformat{subparagraph}} +\providecommand{\@seccntmarkformat}[1] {\@seccntformat{#1}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definition of default pagestyles} +% +% \begin{macrocode} +%<*v2> +% \end{macrocode} +% \begin{macro}{\ps@save@plain} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0b}{2001/05/31}{use this instread of +% \cs{ps@standardplain}} +% We define two default pagestyles, which can be used instead of the +% standard pagestyles. The two pagestyles are something like a +% family. A pagestyle for \emph{normal} pages with head and foot and a +% pagestyle for \emph{plain} pages with not so much head and foot. So +% we have to redefine the standard pagestyle \texttt{plain}. But maybe +% someone want to use the old standard pagestyle. So we first define +% new names for old pagestyles. +% \begin{macrocode} +\newcommand*{\ps@save@plain}{} +\let\ps@save@plain\ps@plain +\newcommand*{\ps@use@plain}{\let\save@@mkboth\@mkboth + \ps@save@plain + \let\@mkboth\save@@mkboth} +\let\ps@plain\ps@use@plain +% \end{macrocode} +% \begin{macro}{\ps@save@headings} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0b}{2001/05/31}{use this instread of +% \cs{ps@standardheadings}} +% \begin{macro}{\ps@save@myheadings} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0b}{2001/05/31}{use this instread of +% \cs{ps@standardmyheadings}} +% \begin{macro}{\ps@headings} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\ps@myheadings} +% \changes{v2.0}{2001/04/20}{New} +% If standard pagestyle \texttt{headings} or \texttt{myheadings} is +% used, also standard pagestyle \texttt{use@plain} should be +% used. So we also define new names for the other old pagestyles and +% new pagestyles with the old names, doing the switch back for the +% plain pagestyle. These are defined even if the pagestyles are +% unknown. +% \begin{macrocode} +\newcommand*{\ps@save@headings}{} +\let\ps@save@headings\ps@headings +\newcommand*{\ps@save@myheadings}{} +\let\ps@save@myheadings\ps@myheadings +\def\ps@headings{% + \PackageWarning{scrpage2} + {you've used pagestyle ``headings''.\MessageBreak + You should not use this pagestyle with a\MessageBreak + scrpage2-pagestyle!\MessageBreak + You should use pagestyle ``useheadings'' instead\MessageBreak}% + \let\ps@plain\ps@save@plain% + \ps@save@headings\@automarktrue} +\def\ps@myheadings{% + \PackageWarning{scrpage2} + {you've used pagestyle ``myheadings''.\MessageBreak + You should not use this pagestyle with a\MessageBreak + scrpage2-pagestyle!\MessageBreak + You should use pagestyle ``useheadings'' instead\MessageBreak}% + \let\ps@plain\ps@save@plain% + \ps@save@myheadings\@automarkfalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\ps@useheadings} +% \changes{v2.0b}{2001/05/31}{New} +% \changes{v2.0m}{2002/02/05}{Fatal bug (\cs{mkboth} instead of +% \cs{@mkboth}) fixed} +% \changes{v2.1a}{2002/10/30}{Use of switch \cs{if@automark}} +% This is the pagestyle, you should use instead of \texttt{headings} +% or \texttt{myheadings}. If you are using manual marks, this behaves +% like pagestyle \texttt{myheadings}. If you are using automatic +% marks, this behaves like headings, but without changing +% \cs{chaptermark}, \cs{sectionmark} or \cs{subsectionmark}. +% \begin{macrocode} +\newcommand*{\ps@useheadings}{% + \if@automark\let\@mkboth\markboth\else\let\@mkboth\@gobbletwo\fi + \let\ps@plain\ps@use@plain% + \let\save@@mkboth\@mkboth% + \let\save@chaptermark\chaptermark% + \let\save@sectionmark\sectionmark% + \let\save@subsectionmark\subsectionmark% + \ifx\@mkboth\markboth\ps@save@headings\else\ps@save@myheadings\fi% + \let\@mkboth\save@@mkboth% + \let\chaptermark\save@chaptermark% + \let\sectionmark\save@sectionmark% + \let\subsectionmark\save@subsectionmark% +} +% \end{macrocode} +% Note: Because of saving \cs{@mkboth}, \cs{chaptermark}, +% \cs{sectionmark} and \cs{subsection} before changing the pagestyle +% and restore them after changing the pagestyle it does not matter, if +% we set pagestyle \texttt{headings} or \texttt{myheadings}. So it +% would be possible to remove the \cs{ifx}\dots\cs{fi}-line above and +% simply use \cs{ps@save@headings} or \cs{ps@save@myheadings} instead +% of. +% \end{macro} +% +% +% \begin{macro}{\ps@scrplain} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0a}{2001/04/24}{\cs{strut} inserted} +% \changes{v2.0f}{2001/06/23}{\cs{strut} inserted} +% \changes{v2.1c}{2004/02/07}{thickness of footbelow line fixed} +% \begin{macro}{\scrplain@even@left@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@even@middle@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@even@right@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@odd@left@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@odd@middle@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@odd@right@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@even@left@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@even@middle@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@even@right@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@odd@left@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@odd@middle@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrplain@odd@right@foot} +% \changes{v2.0}{2001/04/20}{New} +% After this, we can define the new pagestyles, first a new plain +% one. It sould be variable and so we use macros to define the parts. +% \begin{macrocode} +\newcommand*{\ps@scrplain}{\let\ps@plain\ps@@scrplain\ps@plain} +\newpagestyle{@scrplain} +{% + (\scrplain@headabove@linelength,\scr@headabove@linethickness) + {% + \rlap{\parbox{\@headwidth}{\raggedright% + \strut\scrplain@even@left@head\strut}}% + \hfill% + \parbox{\@headwidth}{\centering\strut% + \scrplain@even@middle@head\strut}% + \hfill% + \llap{\parbox{\@headwidth}{\raggedleft% + \strut\scrplain@even@right@head\strut}}} + {% + \rlap{\parbox{\@headwidth}{\raggedright% + \strut\scrplain@odd@left@head\strut}}% + \hfill% + \parbox{\@headwidth}{\centering% + \strut\scrplain@odd@middle@head\strut}% + \hfill% + \llap{\parbox{\@headwidth}{\raggedleft% + \strut\scrplain@odd@right@head\strut}}} + {% + \rlap{\parbox{\@headwidth}{\raggedright% + \strut\scrplain@odd@left@head\strut}}% + \hfill% + \parbox{\@headwidth}{\centering% + \strut\scrplain@odd@middle@head\strut}% + \hfill% + \llap{\parbox{\@headwidth}{\raggedleft% + \strut\scrplain@odd@right@head\strut}}} + (\scrplain@headbelow@linelength,\scr@headbelow@linethickness) +}{% + (\scrplain@footabove@linelength,\scr@footabove@linethickness) + {% + \rlap{\parbox{\@footwidth}{\raggedright% + \strut\scrplain@even@left@foot\strut}}% + \hfill% + \parbox{\@footwidth}{\centering% + \strut\scrplain@even@middle@foot\strut}% + \hfill% + \llap{\parbox{\@footwidth}{\raggedleft% + \strut\scrplain@even@right@foot\strut}}} + {% + \rlap{\parbox{\@footwidth}{\raggedright% + \strut\scrplain@odd@left@foot\strut}}% + \hfill% + \parbox{\@footwidth}{\centering% + \strut\scrplain@odd@middle@foot\strut}% + \hfill% + \llap{\parbox{\@footwidth}{\raggedleft% + \strut\scrplain@odd@right@foot\strut}}} + {% + \rlap{\parbox{\@footwidth}{\raggedright% + \strut\scrplain@odd@left@foot\strut}}% + \hfill% + \parbox{\@footwidth}{\centering% + \strut\scrplain@odd@middle@foot\strut}% + \hfill% + \llap{\parbox{\@footwidth}{\raggedleft% + \strut\scrplain@odd@right@foot\strut}}} + (\scrplain@footbelow@linelength,\scr@footbelow@linethickness) +} +\newcommand*{\scrplain@even@left@head}{} +\newcommand*{\scrplain@even@middle@head}{} +\newcommand*{\scrplain@even@right@head}{} +\newcommand*{\scrplain@odd@left@head}{} +\newcommand*{\scrplain@odd@middle@head}{} +\newcommand*{\scrplain@odd@right@head}{} +\newcommand*{\scrplain@even@left@foot}{} +\newcommand*{\scrplain@even@middle@foot}{} +\newcommand*{\scrplain@even@right@foot}{} +\newcommand*{\scrplain@odd@left@foot}{} +\newcommand*{\scrplain@odd@middle@foot}{} +\newcommand*{\scrplain@odd@right@foot}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\ps@scrheadings} +% \changes{v2.0}{2001/04/20}{New} +% \changes{v2.0a}{2001/04/24}{\cs{strut} inserted} +% \changes{v2.0f}{2001/06/23}{\cs{strut} inserted} +% \begin{macro}{\scrheadings@even@left@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@even@middle@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@even@right@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@odd@left@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@odd@middle@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@odd@right@head} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@even@left@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@even@middle@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@even@right@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@odd@left@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@odd@middle@foot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\scrheadings@odd@right@foot} +% \changes{v2.0}{2001/04/20}{New} +% +% We also define define a new headings one. It sould be variable and +% so we use macros to define the parts. But we need an \emph{also +% action}, so we first define a inner pagestyle and then use this at a +% outer one (definition is done in reverse order): +% \begin{macrocode} +\newcommand*{\ps@scrheadings}{\let\ps@plain\ps@scrplain\ps@@scrheadings} +\newpagestyle{@scrheadings} +{% + {% + \rlap{\parbox{\@headwidth}{\raggedright% + \strut\scrheadings@even@left@head\strut}}% + \hfill% + \parbox{\@headwidth}{\centering% + \strut\scrheadings@even@middle@head\strut}% + \hfill% + \llap{\parbox{\@headwidth}{\raggedleft% + \strut\scrheadings@even@right@head\strut}}} + {% + \rlap{\parbox{\@headwidth}{\raggedright% + \strut\scrheadings@odd@left@head\strut}}% + \hfill% + \parbox{\@headwidth}{\centering% + \strut\scrheadings@odd@middle@head\strut}% + \hfill% + \llap{\parbox{\@headwidth}{\raggedleft% + \strut\scrheadings@odd@right@head\strut}}} + {% + \rlap{\parbox{\@headwidth}{\raggedright% + \strut\scrheadings@odd@left@head\strut}}% + \hfill% + \parbox{\@headwidth}{\centering% + \strut\scrheadings@odd@middle@head\strut}% + \hfill% + \llap{\parbox{\@headwidth}{\raggedleft% + \strut\scrheadings@odd@right@head\strut}}}} +{% + {% + \rlap{\parbox{\@footwidth}{\raggedright% + \strut\scrheadings@even@left@foot\strut}}% + \hfill% + \parbox{\@footwidth}{\centering% + \strut\scrheadings@even@middle@foot\strut}% + \hfill% + \llap{\parbox{\@footwidth}{\raggedleft% + \strut\scrheadings@even@right@foot\strut}}} + {% + \rlap{\parbox{\@footwidth}{\raggedright% + \strut\scrheadings@odd@left@foot\strut}}% + \hfill% + \parbox{\@footwidth}{\centering% + \strut\scrheadings@odd@middle@foot\strut}% + \hfill% + \llap{\parbox{\@footwidth}{\raggedleft% + \strut\scrheadings@odd@right@foot\strut}}} + {% + \rlap{\parbox{\@footwidth}{\raggedright% + \strut\scrheadings@odd@left@foot\strut}}% + \hfill% + \parbox{\@footwidth}{\centering% + \strut\scrheadings@odd@middle@foot\strut}% + \hfill% + \llap{\parbox{\@footwidth}{\raggedleft% + \strut\scrheadings@odd@right@foot\strut}}}} +\newcommand*{\scrheadings@even@left@head}{} +\newcommand*{\scrheadings@even@middle@head}{} +\newcommand*{\scrheadings@even@right@head}{} +\newcommand*{\scrheadings@odd@left@head}{} +\newcommand*{\scrheadings@odd@middle@head}{} +\newcommand*{\scrheadings@odd@right@head}{} +\newcommand*{\scrheadings@even@left@foot}{} +\newcommand*{\scrheadings@even@middle@foot}{} +\newcommand*{\scrheadings@even@right@foot}{} +\newcommand*{\scrheadings@odd@left@foot}{} +\newcommand*{\scrheadings@odd@middle@foot}{} +\newcommand*{\scrheadings@odd@right@foot}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\ihead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\ohead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\chead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\lehead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\lohead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\rehead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\rohead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\cehead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\cohead} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\ifoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\ofoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\cfoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\lefoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\lofoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\refoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\rofoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\cefoot} +% \changes{v2.0}{2001/04/20}{New} +% \begin{macro}{\cofoot} +% \changes{v2.0}{2001/04/20}{New} +% We also need macros to define the contents of the three part head +% and foot. Each macro defines one of the part of head or foot of the +% scrheadings pagestyle and optional of the scrplain pagestyle. +% \begin{macrocode} +\newcommand{\ihead}{\@ifnextchar[{\@@lhead}{\@lhead}} +\newcommand{\@lhead}[1]{\@rehead{#1}\@lohead{#1}} +\newcommand{\@@lhead}[2][]{\@@rehead[{#1}]{#2}\@@lohead[{#1}]{#2}} +\newcommand{\ohead}{\@ifnextchar[{\@@rhead}{\@rhead}} +\newcommand{\@rhead}[1]{\@lehead{#1}\@rohead{#1}} +\newcommand{\@@rhead}[2][]{\@@lehead[{#1}]{#2}\@@rohead[{#1}]{#2}} +\newcommand{\chead}{\@ifnextchar[{\@@chead}{\@chead}} +\newcommand{\@chead}[1]{\@cehead{#1}\@cohead{#1}} +\newcommand{\@@chead}[2][]{\@@cehead[{#1}]{#2}\@@cohead[{#1}]{#2}} +\newcommand{\lehead}{\@ifnextchar[{\@@lehead}{\@lehead}} +\newcommand{\@lehead}[1]{\renewcommand*{\scrheadings@even@left@head}{#1}} +\newcommand{\@@lehead}[2][]{% + \renewcommand*{\scrplain@even@left@head}{#1}% + \renewcommand*{\scrheadings@even@left@head}{#2}} +\newcommand{\lohead}{\@ifnextchar[{\@@lohead}{\@lohead}} +\newcommand{\@lohead}[1]{\renewcommand*{\scrheadings@odd@left@head}{#1}} +\newcommand{\@@lohead}[2][]{% + \renewcommand*{\scrplain@odd@left@head}{#1}% + \renewcommand*{\scrheadings@odd@left@head}{#2}} +\newcommand{\rehead}{\@ifnextchar[{\@@rehead}{\@rehead}} +\newcommand{\@rehead}[1]{\renewcommand*{\scrheadings@even@right@head}{#1}} +\newcommand{\@@rehead}[2][]{% + \renewcommand*{\scrplain@even@right@head}{#1}% + \renewcommand*{\scrheadings@even@right@head}{#2}} +\newcommand{\rohead}{\@ifnextchar[{\@@rohead}{\@rohead}} +\newcommand{\@rohead}[1]{\renewcommand*{\scrheadings@odd@right@head}{#1}} +\newcommand{\@@rohead}[2][]{% + \renewcommand*{\scrplain@odd@right@head}{#1}% + \renewcommand*{\scrheadings@odd@right@head}{#2}} +\newcommand{\cehead}{\@ifnextchar[{\@@cehead}{\@cehead}} +\newcommand{\@cehead}[1]{\renewcommand*{\scrheadings@even@middle@head}{#1}} +\newcommand{\@@cehead}[2][]{% + \renewcommand*{\scrplain@even@middle@head}{#1}% + \renewcommand*{\scrheadings@even@middle@head}{#2}} +\newcommand{\cohead}{\@ifnextchar[{\@@cohead}{\@cohead}} +\newcommand{\@cohead}[1]{\renewcommand*{\scrheadings@odd@middle@head}{#1}} +\newcommand{\@@cohead}[2][]{% + \renewcommand*{\scrplain@odd@middle@head}{#1}% + \renewcommand*{\scrheadings@odd@middle@head}{#2}} +\newcommand{\ifoot}{\@ifnextchar[{\@@lfoot}{\@lfoot}} +\newcommand{\@lfoot}[1]{\@refoot{#1}\@lofoot{#1}} +\newcommand{\@@lfoot}[2][]{\@@refoot[{#1}]{#2}\@@lofoot[{#1}]{#2}} +\newcommand{\ofoot}{\@ifnextchar[{\@@rfoot}{\@rfoot}} +\newcommand{\@rfoot}[1]{\@lefoot{#1}\@rofoot{#1}} +\newcommand{\@@rfoot}[2][]{\@@lefoot[{#1}]{#2}\@@rofoot[{#1}]{#2}} +\newcommand{\cfoot}{\@ifnextchar[{\@@cfoot}{\@cfoot}} +\newcommand{\@cfoot}[1]{\@cefoot{#1}\@cofoot{#1}} +\newcommand{\@@cfoot}[2][]{\@@cefoot[{#1}]{#2}\@@cofoot[{#1}]{#2}} +\newcommand{\lefoot}{\@ifnextchar[{\@@lefoot}{\@lefoot}} +\newcommand{\@lefoot}[1]{\renewcommand*{\scrheadings@even@left@foot}{#1}} +\newcommand{\@@lefoot}[2][]{% + \renewcommand*{\scrplain@even@left@foot}{#1}% + \renewcommand*{\scrheadings@even@left@foot}{#2}} +\newcommand{\lofoot}{\@ifnextchar[{\@@lofoot}{\@lofoot}} +\newcommand{\@lofoot}[1]{\renewcommand*{\scrheadings@odd@left@foot}{#1}} +\newcommand{\@@lofoot}[2][]{% + \renewcommand*{\scrplain@odd@left@foot}{#1}% + \renewcommand*{\scrheadings@odd@left@foot}{#2}} +\newcommand{\refoot}{\@ifnextchar[{\@@refoot}{\@refoot}} +\newcommand{\@refoot}[1]{\renewcommand*{\scrheadings@even@right@foot}{#1}} +\newcommand{\@@refoot}[2][]{% + \renewcommand*{\scrplain@even@right@foot}{#1}% + \renewcommand*{\scrheadings@even@right@foot}{#2}} +\newcommand{\rofoot}{\@ifnextchar[{\@@rofoot}{\@rofoot}} +\newcommand{\@rofoot}[1]{\renewcommand*{\scrheadings@odd@right@foot}{#1}} +\newcommand{\@@rofoot}[2][]{% + \renewcommand*{\scrplain@odd@right@foot}{#1}% + \renewcommand*{\scrheadings@odd@right@foot}{#2}} +\newcommand{\cefoot}{\@ifnextchar[{\@@cefoot}{\@cefoot}} +\newcommand{\@cefoot}[1]{\renewcommand*{\scrheadings@even@middle@foot}{#1}} +\newcommand{\@@cefoot}[2][]{% + \renewcommand*{\scrplain@even@middle@foot}{#1}% + \renewcommand*{\scrheadings@even@middle@foot}{#2}} +\newcommand{\cofoot}{\@ifnextchar[{\@@cofoot}{\@cofoot}} +\newcommand{\@cofoot}[1]{\renewcommand*{\scrheadings@odd@middle@foot}{#1}} +\newcommand{\@@cofoot}[2][]{% + \renewcommand*{\scrplain@odd@middle@foot}{#1}% + \renewcommand*{\scrheadings@odd@middle@foot}{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\clearscrheadings} +% \changes{v2.0j}{2001/08/18}{New} +% \begin{macro}{\clearscrheadfoot} +% \changes{v2.0j}{2001/08/18}{New} +% \begin{macro}{\clearscrpain} +% \changes{v2.0j}{2001/08/18}{New} +% Maybe you want to clear the currently defined head and foot. First +% let's clear only scrheadings pagestyle but not scrplain pagestyle. +% We do this simply using the already known command: +% \begin{macrocode} +\newcommand*{\clearscrheadings}{% + \ihead{}\chead{}\ohead{}\ifoot{}\cfoot{}\ofoot{}} +% \end{macrocode} +% We can do almost the same to clear scrheadings pagestyle and +% scrplain pagestyle together: +% \begin{macrocode} +\newcommand*{\clearscrheadfoot}{% + \ihead[]{}\chead[]{}\ohead[]{}\ifoot[]{}\cfoot[]{}\ofoot[]{}} +% \end{macrocode} +% But, for only clearing the scrplain pagestyle, we have to do the +% redefinition directly: +% \begin{macrocode} +\newcommand*{\clearscrplain}{% + \renewcommand*{\scrplain@even@left@head}{} + \renewcommand*{\scrplain@even@middle@head}{} + \renewcommand*{\scrplain@even@right@head}{} + \renewcommand*{\scrplain@odd@left@head}{} + \renewcommand*{\scrplain@odd@middle@head}{} + \renewcommand*{\scrplain@odd@right@head}{} + \renewcommand*{\scrplain@even@left@foot}{} + \renewcommand*{\scrplain@even@middle@foot}{} + \renewcommand*{\scrplain@even@right@foot}{} + \renewcommand*{\scrplain@odd@left@foot}{} + \renewcommand*{\scrplain@odd@middle@foot}{} + \renewcommand*{\scrplain@odd@right@foot}{} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% Let's do the default setting: +% \changes{v2.0m}{2002/02/05}{Neue Briefklasse \texttt{scrlttr2} +% wird aktiv unterst"utzt} +% \begin{macrocode} +\def\@tempa{koma}\ifx\scrheadings@style\@tempa + \@ifclassloaded{scrlttr2}{% + \ifcase\@pageat + \lehead[\pagemark]{\pagemark}\lohead[\pagemark]{\pagemark}% + \chead{\rightmark}% + \rehead{\leftmark}\lohead{\leftmark}% + \or + \lehead{\leftmark}\lohead{\leftmark}% + \chead[\pagemark]{\pagemark}% + \rehead{\rightmark}\rohead{\rightmark}% + \or + \lehead{\leftmark}\lohead{\leftmark}% + \chead{\rightmark}% + \rehead[\pagemark]{\pagemark}\rohead[\pagemark]{\pagemark}% + \or + \lehead{\leftmark}\lohead{\leftmark}% + \rehead{\rightmark}\rohead{\rightmark}% + \lefoot[\pagemark]{\pagemark}\lofoot[\pagemark]{\pagemark}% + \or + \lehead{\leftmark}\lohead{\leftmark}% + \rehead{\rightmark}\rohead{\rightmark}% + \cfoot[\pagemark]{\pagemark}% + \or + \lehead{\leftmark}\lohead{\leftmark}% + \rehead{\rightmark}\rohead{\rightmark}% + \refoot[\pagemark]{\pagemark}\rofoot[\pagemark]{\pagemark}% + \fi + \let\ps@save@myheadings=\ps@save@headings + }{% + \ohead{\if@twoside\headmark\fi}% + \chead{\if@twoside\else\headmark\fi}% + \cfoot[\if@twoside\else\pagemark\fi]{\if@twoside\else\pagemark\fi}% + \ofoot[\if@twoside\pagemark\fi]{\if@twoside\pagemark\fi}% + }% +\else\def\@tempa{standard}\ifx\scrheadings@style\@tempa + \ihead{\headmark} + \ohead{\pagemark} + \cfoot[\pagemark]{} + \else\PackageErrorNoLine{scrpage2}{unknown scrheadings style} + {Somehow \string\scrheadings@style was + defined\MessageBreak + as ``\scrheadings@style''.\MessageBreak + scrpage2 doesn't know what to do. + If you'll continue, pagestyle + ``scrheadings''\MessageBreak + will be predefined empty} +\fi\fi +\begingroup\expandafter\expandafter\expandafter\endgroup\expandafter +\ifx\csname chaptermark\endcsname\relax + \begingroup\expandafter\expandafter\expandafter\endgroup\expandafter + \ifx\csname sectionmark\endcsname\relax + \ifx\@mkboth\markboth\@automarktrue\fi + \else + \ifx\sectionmark\@gobble\else\@automarktrue\fi + \fi +\else + \ifx\chaptermark\@gobble\else\@automarktrue\fi +\fi +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Configurationfile} +% Not last and not least we include the local configuration-file +% \texttt{scrpage.cfg}, if it exists. +% \begin{macrocode} +\InputIfFileExists{scrpage.cfg} + {\typeout{*************************************^^J% + * Local config file scrpage.cfg used^^J% + *************************************}} + {} +% \end{macrocode} +% +% +% \subsection{Some checks} +% \changes{v2.0}{2001/04/20}{\cs{headheight}-check} +% Last but not least we do some checks at version 2. Some means one at +% the moment. And the one is a check, if the \cs{headheight} should be +% increased. +% \begin{macrocode} +%<*v2> +\AtBeginDocument{ + \ifdim\headheight=12pt + \PackageWarningNoLine{scrpage2} + {seems you are using a constant headheight.\MessageBreak + If you get overfull \string\vbox\space warnings at almost every% + \MessageBreak + page, you should increase headheight e.g. writing\MessageBreak + \space\string\setlength{\string\headheight}{% + 1.1\string\baselineskip}\MessageBreak + into the preamble of your document.\MessageBreak + A better solution would be to use typearea package} + \else\ifdim\headheight<1.07\baselineskip + \PackageWarningNoLine{scrpage2} + {seems you are using a very small headheight.\MessageBreak + If you get overfull \string\vbox\space warnings at almost every% + \MessageBreak + page, you should increase headheight e.g. writing\MessageBreak + \space\string\setlength{\string\headheight}{% + 1.1\string\baselineskip}\MessageBreak + into the preamble of your document.\MessageBreak + A better solution would be to use typearea package} + \fi\fi} +% +% \end{macrocode} +% +% \def\englishonly{} +% \input{scrlogo.dtx} +% +% \subsection{End} +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +% +\endinput +% +% end of file `scrpage.dtx' + +%%% Local Variables: +%%% mode: latex +%%% Text-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/scrpage.ins b/Master/texmf-dist/source/latex/koma-script/scrpage.ins new file mode 100644 index 00000000000..3dae412e692 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrpage.ins @@ -0,0 +1,137 @@ +\let\ifbeta\iffalse +%% +%% This file will generate fast loadable files from the dtx files in this +%% package when run through LaTeX or TeX. +%% +%% This file is part of the LaTeX2e KOMA-Script-bundle +%% --------------------------------------------------- +%% +%% 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: +%% +%% Copyright (C) 1994-2004 by Markus Kohm. +%% +%% All rights reserved. For further copyright information see the file +%% LEGAL.TXT or LEGALDE.TXT. +%% +%% You are not allowed to change this file. +%% +%% Permission is granted to distributed verbatim copies of this file +%% together with all other files of the KOMA-script-bundle (as mentioned +%% in readme.txt and liesmich.txt). +%% +%% No other permissions to copy or distribute this file in any form +%% are granted and in particular no permission to modify its contents. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{scrpage.ins} +\input docstrip.tex + +\keepsilent +\askforoverwritetrue + +\preamble +\endpreamble + +\ifToplevel{\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.3c or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname + \fi + \ifx\askonceonly\undefined\else\askonceonly\fi +} + +\declarepreamble\pagepreamble + +Copyright 1994-2004 Markus Kohm. + +All rights reserved. For further copyright information see the file +legal.txt, and any other copyright indicated in this file. + +This file is part of the LaTeX2e KOMA-Script-bundle. +---------------------------------------------------- + +The KOMA-Script-bundle (but not this file) bases on the +Script-family created by Frank Neukam 1993 and the standard +documents classes created by the LaTeX3-Team 1994-1996. +------------------------------------------------------------- + + 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 documentation. + +Please do not request updates from us directly. Distribution is +done through Mail-Servers, Mailboxes 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 readme.txt +and liesmich.txt. See LEGAL.TXT or LEGALDE.TXT for further +information. + +If you receive only some of these files from someone, complain! + +You are NOT ALLOWED to distribute this file alone. + +\endpreamble + +%% File generation: + +\generate{\usepreamble\pagepreamble + \file{scrpage.sty}{\from{scrpage.dtx}{scrpage,v1% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{scrpage2.sty}{\from{scrpage.dtx}{scrpage,v2% + \ifbeta,beta\fi} + \from{scrlogo.dtx}{}} +} + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\ifbeta +\Msg{* THIS IS A BETA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} +\Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!} +\Msg{* PLEASE INSTALL THE RELEASE YOU CAN FIND AT CTAN!} +\Msg{*} +\else +\Msg{* To finish the installation you have to move some} +\Msg{* files into a directory searched by TeX.} +\Msg{* See INSTALL.TXT (english) or INSTALLD.TXT (german)} +\Msg{* for more information.} +\Msg{*} +\Msg{* You may also produce the implementation-documentation,} +\Msg{* but you don't need. To produce it, run file} +\Msg{* `scrpage.dtx' through LaTeX after finishing the} +\Msg{* installation.} +\Msg{*} +\Msg{* To find the manual read readme.txt (english) or} +\Msg{* liesmich.txt (german).} +\Msg{*} +\Msg{* Happy TeXing} +\fi +\Msg{***********************************************************} +} + +\endinput +%% +%% end of file `scrpage.ins' diff --git a/Master/texmf-dist/source/latex/koma-script/scrtime.dtx b/Master/texmf-dist/source/latex/koma-script/scrtime.dtx new file mode 100644 index 00000000000..ba74f76e7e5 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrtime.dtx @@ -0,0 +1,526 @@ +% \CheckSum{283} +% \iffalse +% ====================================================================== +% scrtime.dtx +% Copyright (C) 1995-2004 Markus Kohm +% +% This file is part of the LaTeX2e KOMA-Script-Bundle +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Version 1.0 distributed +% together with this file. See LEGAL.TXT or LEGALDE.TXT. +% +% This bundle is written specialy for use at german-language. So the +% main documentation is german. There is also a english documentation, +% but this is NOT up-to-date. +% ---------------------------------------------------------------------- +% scrtime.dtx +% Copyright (C) 1995-2004 Markus Kohm +% +% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets. +% +% Diese Datei kann nach den Regeln der LaTeX Project Public +% Licence Version 1.0, wie sie zusammen mit dieser Datei verteilt +% wird, weiterverbreitet und/oder modifiziert werden. Siehe dazu +% auch LEGAL.TXT oder LEGALDE.TXT. +% +% Dieses Paket ist f"ur den deutschen Sprachraum konzipiert. Daher ist +% auch diese Anleitung komplett in Deutsch. Zwar existiert auch eine +% englische Version der Anleitung, diese hinkt der deutschen Anleitung +% jedoch fast immer hinterher. +% ====================================================================== +% +% \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 \~} +% +%<*dtx> + \ProvidesFile{scrtime.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +% \ProvidesFile{scrtime.drv} +%\ProvidesPackage{scrtime} +%\ProvidesPackage{scrdate} + [2002/02/02 v1.1m LaTeX2e KOMA +% BETA-VERSION +% package] +%<*driver> + driver] +\documentclass{ltxdoc} +\usepackage[a4paper]{typearea} +\CodelineIndex +\begin{document} + \DocInput{scrtime.dtx} +\end{document} +% +% \fi +% +% \GetFileInfo{scrtime.dtx} +% \RecordChanges +% \title{The \textsf{KOMA}-timedate-bundle\thanks{This file has +% version number \fileversion, last revised \filedate.}} +% \author{Markus Kohm} +% \date{\filedate} +% \maketitle +% +% \def\oarg#1{{\ttfamily[}{\em#1\/}{\ttfamily]}} +% \def\arg#1{{\ttfamily\char`\{}{\em#1\/}{\ttfamily\char`\}}} +% \def\star{{\ttfamily*}} +% \makeatletter +% \def\Describe@Macro#1{\endgroup +% \setbox0=\lastbox\llap{\PrintDescribeMacro{#1}}}% +% \def\Describe@Env#1{\endgroup +% \setbox0=\lastbox\llap{\PrintDescribeEnv{#1}}}% +% \makeatother +% \marginparsep0pt +% +% \begin{abstract} +% This bundle includes a package \texttt{scrtime} defining some +% macros to handle compilation-time. +% It's a very simple implementation similar to \texttt{time.sty}. +% I've tried to use no additional register. +% +% The second package \texttt{scrdate} defines some macros to +% handle the name of the day! +% \end{abstract} +% +% \tableofcontents +% +% \section{Introduction} +% \subsection{\texttt{scrtime}-package} +% \DescribeMacro +% \today\\ +% \DescribeMacro +% \date\arg{today's-value}\\ +% \DescribeMacro +% \thistime\oarg{hourseparator}\\ +% \DescribeMacro +% \settime\arg{thistime's-value}\\ +% At \LaTeX\ there's a macro |\today| to get compilation-date. There's +% a macro |\date| to set the value of |\today|, too. But to handle +% compilation-time there is only a macro |\time| which shows the +% gone minutes of the day. +% +% With the macro |\thistime| you get the actual time. The optional +% argument \oarg{hourseparator} is used to separate hours and minutes. +% Default-value is ``|:|''. |\thistime| writes values of minutes less than +% ten with prefix ``0''. |\thistime*| doesn't. +% +% With the macro |\settime| you may set the value of |\thistime|. After +% this the optional argument of |\thistime| will be ignored. +% +% +% \subsection{\texttt{scrdate}-package} +% +% At \LaTeX\ there are macros to get the actual day or month or year. Using +% |\today| you even may get the name of the month, but you will never get the +% name of the day. +% +% This package defines some macros to handle the name of the day. +% +% \begin{description} +% \item[Important:] If you use language-packages like \texttt{german} or +% \texttt{babel}, these \emph{must} be loaded \emph{after} +% \texttt{scrdate}-package. Otherwise the name of the day'll be wrong! +% \end{description} +% +% \noindent\texttt{scrdate} knows five languages: +% \begin{itemize} +% \item english +% \item USenglish +% \item german +% \item ngerman +% \item french +% \end{itemize} +% +% \DescribeMacro +% \newdaylanguage\arg{language}\arg{Monday}\arg{Tuesday}\arg{Wednesday}% +% \arg{Thursday}\arg{Friday}\arg{Saturday}\arg{Sunday}\\ +% You may add additional languages using the configurationfile +% \texttt{scrdate.cfg}. There you have to define a macro +% |\dayname@|\emph{language}. You may use |\newdaylanguage| to do so. +% +% +% \DescribeMacro +% \todaysname\\ +% shows the name of the actual day (defined by |\year|, |\month| and +% |\day| or by |\dayname|). +% +% \DescribeMacro +% \dayname\arg{Name}\\ +% sets the name of the day to \arg{Name}. +% +% +% \StopEventually +% +% \section{Implementation} +% +%\iffalse +% \begin{macrocode} +%<*beta> +\PackageWarningNoLine +% {scrtime} +% {scrdate} + {THIS IS A BETA VERSION!\MessageBreak + YOU SHOULD NOT USE THIS VERSION!\MessageBreak + YOU SHOULD INSTALL THE RELEASE FROM CTAN\MessageBreak + AND USE THAT INSTEAD OF THIS BETA VERSION} +% +% \end{macrocode} +%\fi +% +% \subsection{Time-macros} +% +% \begin{macrocode} +%<*scrtime> +% \end{macrocode} +% +% \subsubsection{Options} +% \changes{v1.1b}{1995/02/15}{Options \texttt{12h} and \texttt{24h} added.} +% There are two the two Options |24h| and |12h|. We need a switch to +% distinguish. +% \begin{macrocode} +\newif\if@Hxii +% \end{macrocode} +% +% So the Options are simple. +% \begin{macrocode} +\DeclareOption{12h}{\@Hxiitrue} +\DeclareOption{24h}{\@Hxiifalse} +% \end{macrocode} +% +% Default is 24h-mode. +% \begin{macrocode} +\ExecuteOptions{24h} +\ProcessOptions +% \end{macrocode} +% +% \subsubsection{Macros} +% We use |\@tempcnta| and |\@tempcntb| but we know, that this is not +% a very good idea. +% +% \begin{macro}{\thistime} +% \changes{v1.1b}{1995/02/15}{{\cmd\thistime*} added.} +% \changes{v1.1b}{1995/02/15}{{\cmd\thistime} works.} +% First we have to decide, is it a star-version ore not. +% \begin{macrocode} +\def\thistime{% + \@ifstar + {\let\@tempif\iffalse\@thistime} + {\let\@tempif\iftrue\@thistime}} +% \end{macrocode} +% Know we have to calculate the hours and minutes. |\@tempcnta| are the +% hours and |\@tempcntb| are the minutes. +% \begin{macrocode} +\newcommand*{\@thistime}[1][:]{% + \begingroup + \@tempcnta\time\divide\@tempcnta60\multiply\@tempcnta60 + \@tempcntb\time\advance\@tempcntb-\@tempcnta + \divide\@tempcnta60 +% \end{macrocode} +% If we use 12h-mode, we have to cut the houres. +% \changes{v1.1d}{1996/01/14}{Space added at \cs{@thistime} between -12 +% and \cs{fi} (Martin Schroeder).} +% \begin{macrocode} + \if@Hxii\ifnum\@tempcnta>12 \advance\@tempcnta-12 \fi\fi +% \end{macrocode} +% Know we have to compose the value. If the minutes are less than 10 +% maybe there has to be an additional 0. +% \begin{macrocode} + \the\@tempcnta{#1}\@tempif\ifnum\@tempcntb<10 0\fi\fi\the\@tempcntb% + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\settime} +% \changes{v1.1b}{1995/02/15}{{\cmd\settime} redefines {\cmd\@thistime}} +% \changes{v1.1c}{1995/05/24}{missing macrocode-environment inserted} +% We simply have to set |\thistime|. +% \begin{macrocode} +\newcommand*{\settime}[1]{\renewcommand*{\@thistime}[1][]{#1}} +% \end{macrocode} +% \end{macro} +% +% +% That's it: +% \begin{macrocode} +% +% \end{macrocode} +% +% +% \subsection{Date-macros} +% +% \begin{macrocode} +%<*scrdate> +% \end{macrocode} +% +% \changes{v1.1a}{1995/02/12}{Changed simply all but the user-interface.} +% To handle them, we need counters. We use the same as in \texttt{scrtime}. +% +% \begin{macro}{\todaysname} +% This is not so easy. First we have to calculate how many days they are +% from 1st January 1980. +% \begin{macrocode} +\newcommand\todaysname{% + \begingroup% + \@tempcnta=\year + \@tempcntb=1 % 1. Januar 1980 war ein Dienstag + \ifnum\@tempcnta<1980 unknown\else% + \advance\@tempcnta by-1980% + \@whilenum\@tempcnta>3\do% + {\advance\@tempcntb by5\advance\@tempcnta by-4}% + \ifnum\@tempcnta=0% + \ifnum\month>2\advance \@tempcntb by1\fi% + \else% + \advance\@tempcntb by\@tempcnta% + \advance\@tempcntb by1 + \fi% + \ifcase\month\or\or\advance\@tempcntb3% Jan = 28 + 3 + \or\advance\@tempcntb3% +Feb = 56 + 3 + \or\advance\@tempcntb6% +Mar = 84 + 6 + \or\advance\@tempcntb1% +Apr = 119 + 1 + \or\advance\@tempcntb4% +May = 147 + 4 + \or\advance\@tempcntb6% +Jun = 175 + 6 + \or\advance\@tempcntb2% +Jul = 210 + 2 + \or\advance\@tempcntb5% +Aug = 238 + 5 + \or% +Sep = 273 + 0 + \or\advance\@tempcntb3% +Oct = 301 + 3 + \or\advance\@tempcntb5% +Nov = 329 + 5 + \fi% + \advance\@tempcntb by\day% + \advance\@tempcntb by-1% die Zaehlung beginnt bei 0 + \@whilenum\@tempcntb>6\do% + {\advance\@tempcntb by-7}% +% \end{macrocode} +% Now we can say which day it is. +% \begin{macrocode} + \@dayname{\@tempcntb}% + \fi\endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\nameday} +% We simply have to redefine |\todaysname| +% \begin{macrocode} +\newcommand\nameday[1]{\renewcommand\todaysname{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\newdaylanguage} +% We write a macro to define the name of the days. +% \changes{v1.1e}{1996/12/07}{Bernd's expandafter-trick to not define +% a new language.} +% \begin{macro}{\scrdate@languagenamewarning} +% But before this, we have to define a once only warning. +% \begin{macrocode} +\newcommand*\scrdate@languagenamewarning{ + \PackageWarningNoLine{scrdate} + {\string\languagename\space not + defined, using \string\language.\MessageBreak + This may result in use of wrong language!\MessageBreak + You should use a compatible language + package\MessageBreak + (e.g. `Babel', `german', `french', ...)} + \let\scrdate@languagenamewarning\relax} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newcommand\newdaylanguage[8]{% +% \end{macrocode} +% First we check, if the language is defined at the format, the user uses. +% If it is not defined, we do not define the name of the days and warn. +% \begin{macrocode} + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname l@#1\endcsname\relax + \PackageWarningNoLine{scrdate}{Language #1\space not defined.\MessageBreak + \protect\dayname@#1\space skipped!} +% \end{macrocode} +% \changes{v1.1c}{1995/05/24}{missing \cs{end\{macrocode\}} added.} +% If it is defined, we define the name-selection-macro +% |\dayname@|\emph{language}. +% First we define the new macro |\dayname@|\emph{language}: +% \begin{macrocode} + \else + \@namedef{dayname@#1}##1{% + \begingroup% + \@tempcnta ##1% + \ifcase\@tempcnta% + #2\or #3\or #4\or #5\or #6\or #7\or #8\fi\endgroup% + } +% \end{macrocode} +% Then we define, what to do at |\begin{document}|: +% \begin{macrocode} + \AtBeginDocument{ +% \end{macrocode} +% There we first have to test, if |\date|\emph{language} is defined +% (e.g. using |german.sty|). If not, we have to warn once more. +% \changes{v1.1e}{1996/12/07}{Bernd's expandafter-trick to not define +% new \cs{date}\emph{language}.} +% \begin{macrocode} + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname date#1\endcsname\relax + \PackageWarningNoLine{scrdate} + {\protect\date#1\space not defined.\MessageBreak + \protect\todaysname maybe can't use + \protect\dayname@#1!} +% \end{macrocode} +% But if it is defined, we can use it +% \begin{macrocode} + \else +% \end{macrocode} +% There we first save |\date|\emph{language} as |\D@date|\emph{language}. +% This is a bit tricky, but I think, you'll understand it. +% \begin{macrocode} + \expandafter\let\csname D@date#1\expandafter\endcsname + \csname date#1\endcsname +% \end{macrocode} +% Now we redefine |\date|\emph{language}. It first defines |\@dayname| and +% then calls saved macro. If you've understand the definition before, you'll +% understand this tricky one, too. +% \begin{macrocode} + \@namedef{date#1}{% + \expandafter\let\expandafter\@dayname\csname dayname@#1\endcsname + \@nameuse{D@date#1}}% +% \end{macrocode} +% Last we have to select this new |\date|\emph{language}. +% \changes{v1.1j}{2000/01/20}{use of \cs{languagename} if defined} +% \begin{macrocode} + \@ifundefined{languagename}{ + \scrdate@languagenamewarning + \ifnum\language=\@nameuse{l@#1} + \@nameuse{date#1} + \fi}{ + \@ifundefined{date\languagename} + {} + {\@nameuse{date\languagename}} + } + \fi + } + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dayname} +% This should be named selecting the language. Since I changed the definitions +% |german.sty| and equal may be loaded before or after |scrdate.sty| or not. +% +% First we define the usual languages using |\newdaylanguage|: +% \begin{macro}{\dayname@german} +% \begin{macrocode} +\newdaylanguage{german}{Montag}{Dienstag}{Mittwoch} + {Donnerstag}{Freitag}{Samstag}{Sonntag} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@ngerman} +% \changes{v1.1i}{1999/10/09}{new language ``ngerman''.} +% \begin{macrocode} +\newdaylanguage{ngerman}{Montag}{Dienstag}{Mittwoch} + {Donnerstag}{Freitag}{Samstag}{Sonntag} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@english} +% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.} +% \begin{macrocode} +\newdaylanguage{english}{Monday}{Tuesday}{Wednesday} + {Thursday}{Friday}{Saturday}{Sunday} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@USenglish} +% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.} +% \begin{macrocode} +\newdaylanguage{USenglish}{Monday}{Tuesday}{Wednesday} + {Thursday}{Friday}{Saturday}{Sunday} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@french} +% \begin{macrocode} +\newdaylanguage{french}{Lundi}{Mardi}{Mercredi} + {Jeudi}{Vendredi}{Samedi}{Dimanche} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@italian} +% \changes{v1.1f}{1997/06/06}{New (thanks to Lorenzo M.\ Catucci)} +% \begin{macrocode} +\newdaylanguage{italian}{Luned\`\i}{Marted\`\i}{Mercoled\`\i} + {Gioved\`\i}{Venerd\`\i}{Sabato}{Domenica} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@spanish} +% \changes{v1.1h}{1997/07/26}{New (thanks to Ralph J.\ Hangleiter)} +% \begin{macrocode} +\newdaylanguage{spanish}{Lunes}{Martes}{Mi\'ercoles} + {Jueves}{Viernes}{S\'abado}{Domingo} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@croatian} +% \changes{v1.1l}{2001/10/05}{New (thanks to Branka Lon\v{c}arevi\'{c})} +% \begin{macrocode} +\newdaylanguage{croatian}{Ponedjeljak}{Utorak}{Srijeda} + {\v{C}etvrtak}{Petak}{Subota}{Nedjelja} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dayname@dutch} +% \changes{v1.1m}{2002/02/02}{New (thanks to Henk Jongbloets)} +% \begin{macrocode} +\newdaylanguage{dutch}{Maandag}{Dinsdag}{Woensdag} + {Donderdag}{Vrijdag}{Zaterdag}{Zondag} +% \end{macrocode} +% \end{macro} +% +% If there are no language-definitions, we simply want the US-english names +% of the days. +% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.} +% \begin{macrocode} +\def\@dayname#1{% + \begingroup% + \@tempcnta #1% + \ifcase\@tempcnta% + Monday\or Tuesday\or Wednesday\or Thursday\or + Friday\or Saturday\or Sunday\fi\endgroup% +} +% \end{macrocode} +% \end{macro} +% +% Last but not least file \texttt{scrdate.cfg} has to be included, +% if it exists. +% \begin{macrocode} +\InputIfFileExists{scrdate.cfg} + {\typeout{*************************************^^J% + * Local config file scrdate.cfg used^^J% + *************************************}} + {} +% \end{macrocode} +% +% That's it: +% \begin{macrocode} +% +% \end{macrocode} +% +% \def\englishonly{} +% \input{scrlogo.dtx} +% +% \Finale +% +\endinput +% +% Ende der Datei `scrtime.dtx' + +%%% Local Variables: +%%% mode: latex +%%% Text-master: scrclass.ins +%%% TeX-open-quote: "\"`" +%%% TeX-close-quote: "\"'" +%%% End: \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/koma-script/scrtime.ins b/Master/texmf-dist/source/latex/koma-script/scrtime.ins new file mode 100644 index 00000000000..e27d1e0cc92 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrtime.ins @@ -0,0 +1,133 @@ +\let\ifbeta\iffalse +%% +%% This file will generate fast loadable files from the dtx files in this +%% package when run through LaTeX or TeX. +%% +%% This file is part of the LaTeX2e KOMA-Script-bundle +%% --------------------------------------------------- +%% +%% 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: +%% +%% Copyright (C) 1994-2004 by Markus Kohm. +%% +%% All rights reserved. For further copyright information see the file +%% readme.txt or liesmich.txt, and any other copyright indicated in this +%% file. +%% +%% Permission is granted to distributed verbatim copies of this file +%% together with all other files of the KOMA-script-bundle (as mentioned +%% in readme.txt and liesmich.txt). +%% +%% No other permissions to copy or distribute this file in any form +%% are granted and in particular no permission to modify its contents. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{scrtime.ins} +\input docstrip.tex + +\keepsilent +\askforoverwritetrue + +\preamble +\endpreamble + +\ifToplevel{\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.3c or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname + \fi + \ifx\askonceonly\undefined\else\askonceonly\fi +} + +\declarepreamble\timepreamble + +Copyright (C) 1994-2004 by Markus Kohm. + +All rights reserved. For further copyright information see the file +legal.txt, and any other copyright indicated in this file. + +This file is part of the LaTeX2e KOMA-Script-bundle. +---------------------------------------------------- + +The KOMA-Script-bundle (but not this file) bases on the +Script-family created by Frank Neukam 1993 and the standard +documents classes created by the LaTeX3-Team 1994-1996. +------------------------------------------------------------- + + 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 documentation. + +Please do not request updates from us directly. Distribution is +done through Mail-Servers, Mailboxes 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 readme.txt +and liesmich.txt. See LEGAL.TXT or LEGALDE.TXT for further +information. + +If you receive only some of these files from someone, complain! + +You are NOT ALLOWED to distribute this file alone. + +\endpreamble + +\generate{\usepreamble\timepreamble + \file{scrtime.sty}{\from{scrtime.dtx}{scrtime% +\ifbeta,beta\fi} + \from{scrlogo.dtx}{}} + \file{scrdate.sty}{\from{scrtime.dtx}{scrdate% +\ifbeta,beta\fi} + \from{scrlogo.dtx}{}}} + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\ifbeta +\Msg{* THIS IS A BETA VERSION. YOU SHOULD NOT INSTALL OR USE IT!} +\Msg{* THERE MAY BE A LOT OF BUGS AT THIS VERSION!} +\Msg{* PLEASE INSTALL THE RELEASE YOU CAN FIND AT CTAN!} +\Msg{*} +\else +\Msg{* To finish the installation you have to move some} +\Msg{* files into a directory searched by TeX.} +\Msg{* See INSTALL.TXT (english) or INSTALLD.TXT (german)} +\Msg{* for more information.} +\Msg{*} +\Msg{* You may also produce the implementation-documentation,} +\Msg{* but you don't need. To produce it, run files} +\Msg{* `scrtime.dtx' through LaTeX after finishing the} +\Msg{* installation.} +\Msg{*} +\Msg{* To find the manual read readme.txt (english) or} +\Msg{* liesmich.txt (german).} +\Msg{*} +\Msg{* Happy TeXing} +\fi +\Msg{***********************************************************} +} + +\endinput +% +% Ende der Datei `scrtime.ins' -- cgit v1.2.3